From aef565fe55ff50a3d30cdcfd9459d9a1d399ee5f Mon Sep 17 00:00:00 2001 From: Dariusz Porowski <3431813+DariuszPorowski@users.noreply.github.com> Date: Thu, 30 Jan 2025 17:14:46 +0100 Subject: [PATCH] feat(rs-eventhouse): add configuration support (#224) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit # 📥 Pull Request ## ❓ What are you trying to address This pull request introduces several changes to the `fabric_eventhouse` resource, including the addition of a new configuration attribute and updates to the documentation and tests. --- .../unreleased/added-20250128-093811.yaml | 5 ++ docs/resources/eventhouse.md | 24 ++++++ .../resources/fabric_eventhouse/resource.tf | 12 +++ ...ource_item_config_definition_properties.go | 32 +++++--- .../resource_item_config_properties.go | 2 +- internal/pkg/fabricitem/resource_schema.go | 4 +- .../eventhouse/models_resource_eventhouse.go | 12 +++ .../eventhouse/resource_eventhouse.go | 31 +++++-- .../eventhouse/resource_eventhouse_test.go | 82 +++++++++++++++++++ .../eventhouse/schema_resource_eventhouse.go | 29 +++++++ .../kqldatabase/resource_kql_database.go | 2 +- .../services/lakehouse/resource_lakehouse.go | 2 +- 12 files changed, 210 insertions(+), 27 deletions(-) create mode 100644 .changes/unreleased/added-20250128-093811.yaml create mode 100644 internal/services/eventhouse/models_resource_eventhouse.go diff --git a/.changes/unreleased/added-20250128-093811.yaml b/.changes/unreleased/added-20250128-093811.yaml new file mode 100644 index 00000000..a91c5156 --- /dev/null +++ b/.changes/unreleased/added-20250128-093811.yaml @@ -0,0 +1,5 @@ +kind: added +body: New `configuration` attribute in the `fabric_eventhouse` Resource. +time: 2025-01-28T09:38:11.8439891+01:00 +custom: + Issue: "224" diff --git a/docs/resources/eventhouse.md b/docs/resources/eventhouse.md index 74938e9e..55b8bcc1 100644 --- a/docs/resources/eventhouse.md +++ b/docs/resources/eventhouse.md @@ -30,6 +30,7 @@ resource "fabric_eventhouse" "example_definition_bootstrap" { display_name = "example2" description = "example with definition bootstrapping" workspace_id = "00000000-0000-0000-0000-000000000000" + format = "Default" definition_update_enabled = false # <-- Disable definition update definition = { "EventhouseProperties.json" = { @@ -43,6 +44,7 @@ resource "fabric_eventhouse" "example_definition_update" { display_name = "example3" description = "example with definition update when source or tokens changed" workspace_id = "00000000-0000-0000-0000-000000000000" + format = "Default" definition = { "EventhouseProperties.json" = { source = "${local.path}/EventhouseProperties.json.tmpl" @@ -52,6 +54,16 @@ resource "fabric_eventhouse" "example_definition_update" { } } } + +# Example 4 - Item with configuration, no definition - configuration and definition cannot be used together at the same time +resource "fabric_eventhouse" "example_configuration" { + display_name = "example4" + description = "example with configuration" + workspace_id = "00000000-0000-0000-0000-000000000000" + configuration = { + minimum_consumption_units = "2.25" + } +} ``` @@ -64,6 +76,10 @@ resource "fabric_eventhouse" "example_definition_update" { ### Optional +- `configuration` (Attributes) The Eventhouse creation configuration. + +Any changes to this configuration will result in recreation of the Eventhouse. (see [below for nested schema](#nestedatt--configuration)) + - `definition` (Attributes Map) Definition parts. Read more about [Eventhouse definition part paths](https://learn.microsoft.com/rest/api/fabric/articles/item-management/definitions/eventhouse-definition). Accepted path keys: **Default** format: `EventhouseProperties.json` (see [below for nested schema](#nestedatt--definition)) - `definition_update_enabled` (Boolean) Update definition on change of source content. Default: `true`. - `description` (String) The Eventhouse description. @@ -75,6 +91,14 @@ resource "fabric_eventhouse" "example_definition_update" { - `id` (String) The Eventhouse ID. - `properties` (Attributes) The Eventhouse properties. (see [below for nested schema](#nestedatt--properties)) + + +### Nested Schema for `configuration` + +Required: + +- `minimum_consumption_units` (Number) When activated, the eventhouse is always available at the selected minimum level and you pay at least the minimum compute selected. Accepted values: `0`, `13`, `18`, `2.25`, `26`, `34`, `4.25`, `50`, `8.5` or any number between `51` and `322`. For more information, see [minimum consumption](https://learn.microsoft.com/fabric/real-time-intelligence/eventhouse#minimum-consumption) + ### Nested Schema for `definition` diff --git a/examples/resources/fabric_eventhouse/resource.tf b/examples/resources/fabric_eventhouse/resource.tf index d417cff4..c894a847 100644 --- a/examples/resources/fabric_eventhouse/resource.tf +++ b/examples/resources/fabric_eventhouse/resource.tf @@ -9,6 +9,7 @@ resource "fabric_eventhouse" "example_definition_bootstrap" { display_name = "example2" description = "example with definition bootstrapping" workspace_id = "00000000-0000-0000-0000-000000000000" + format = "Default" definition_update_enabled = false # <-- Disable definition update definition = { "EventhouseProperties.json" = { @@ -22,6 +23,7 @@ resource "fabric_eventhouse" "example_definition_update" { display_name = "example3" description = "example with definition update when source or tokens changed" workspace_id = "00000000-0000-0000-0000-000000000000" + format = "Default" definition = { "EventhouseProperties.json" = { source = "${local.path}/EventhouseProperties.json.tmpl" @@ -31,3 +33,13 @@ resource "fabric_eventhouse" "example_definition_update" { } } } + +# Example 4 - Item with configuration, no definition - configuration and definition cannot be used together at the same time +resource "fabric_eventhouse" "example_configuration" { + display_name = "example4" + description = "example with configuration" + workspace_id = "00000000-0000-0000-0000-000000000000" + configuration = { + minimum_consumption_units = "2.25" + } +} diff --git a/internal/pkg/fabricitem/resource_item_config_definition_properties.go b/internal/pkg/fabricitem/resource_item_config_definition_properties.go index 2370d5d7..d56147c9 100644 --- a/internal/pkg/fabricitem/resource_item_config_definition_properties.go +++ b/internal/pkg/fabricitem/resource_item_config_definition_properties.go @@ -36,12 +36,13 @@ var ( type ResourceFabricItemConfigDefinitionProperties[Ttfprop, Titemprop, Ttfconfig, Titemconfig any] struct { ResourceFabricItemDefinition - IsConfigRequired bool - ConfigAttributes map[string]schema.Attribute - PropertiesAttributes map[string]schema.Attribute - PropertiesSetter func(ctx context.Context, from *Titemprop, to *ResourceFabricItemConfigDefinitionPropertiesModel[Ttfprop, Titemprop, Ttfconfig, Titemconfig]) diag.Diagnostics - CreationPayloadSetter func(ctx context.Context, from Ttfconfig) (*Titemconfig, diag.Diagnostics) - ItemGetter func(ctx context.Context, fabricClient fabric.Client, model ResourceFabricItemConfigDefinitionPropertiesModel[Ttfprop, Titemprop, Ttfconfig, Titemconfig], fabricItem *FabricItemProperties[Titemprop]) error + ConfigRequired bool + ConfigOrDefinitionRequired bool + ConfigAttributes map[string]schema.Attribute + PropertiesAttributes map[string]schema.Attribute + PropertiesSetter func(ctx context.Context, from *Titemprop, to *ResourceFabricItemConfigDefinitionPropertiesModel[Ttfprop, Titemprop, Ttfconfig, Titemconfig]) diag.Diagnostics + CreationPayloadSetter func(ctx context.Context, from Ttfconfig) (*Titemconfig, diag.Diagnostics) + ItemGetter func(ctx context.Context, fabricClient fabric.Client, model ResourceFabricItemConfigDefinitionPropertiesModel[Ttfprop, Titemprop, Ttfconfig, Titemconfig], fabricItem *FabricItemProperties[Titemprop]) error } func NewResourceFabricItemConfigDefinitionProperties[Ttfprop, Titemprop, Ttfconfig, Titemconfig any](config ResourceFabricItemConfigDefinitionProperties[Ttfprop, Titemprop, Ttfconfig, Titemconfig]) resource.Resource { @@ -97,16 +98,21 @@ func (r *ResourceFabricItemConfigDefinitionProperties[Ttfprop, Titemprop, Ttfcon } func (r *ResourceFabricItemConfigDefinitionProperties[Ttfprop, Titemprop, Ttfconfig, Titemconfig]) ConfigValidators(_ context.Context) []resource.ConfigValidator { //revive:disable-line:confusing-naming - return []resource.ConfigValidator{ - resourcevalidator.Conflicting( - path.MatchRoot("configuration"), - path.MatchRoot("definition"), - ), - resourcevalidator.ExactlyOneOf( + result := []resource.ConfigValidator{} + + if r.ConfigOrDefinitionRequired { + result = append(result, resourcevalidator.ExactlyOneOf( path.MatchRoot("configuration"), path.MatchRoot("definition"), - ), + )) } + + result = append(result, resourcevalidator.Conflicting( + path.MatchRoot("configuration"), + path.MatchRoot("definition"), + )) + + return result } func (r *ResourceFabricItemConfigDefinitionProperties[Ttfprop, Titemprop, Ttfconfig, Titemconfig]) Configure(_ context.Context, req resource.ConfigureRequest, resp *resource.ConfigureResponse) { //revive:disable-line:confusing-naming diff --git a/internal/pkg/fabricitem/resource_item_config_properties.go b/internal/pkg/fabricitem/resource_item_config_properties.go index 0e2dfa5f..b189dea5 100644 --- a/internal/pkg/fabricitem/resource_item_config_properties.go +++ b/internal/pkg/fabricitem/resource_item_config_properties.go @@ -32,7 +32,7 @@ var ( type ResourceFabricItemConfigProperties[Ttfprop, Titemprop, Ttfconfig, Titemconfig any] struct { ResourceFabricItem - IsConfigRequired bool + ConfigRequired bool ConfigAttributes map[string]schema.Attribute PropertiesAttributes map[string]schema.Attribute PropertiesSetter func(ctx context.Context, from *Titemprop, to *ResourceFabricItemConfigPropertiesModel[Ttfprop, Titemprop, Ttfconfig, Titemconfig]) diag.Diagnostics diff --git a/internal/pkg/fabricitem/resource_schema.go b/internal/pkg/fabricitem/resource_schema.go index ed073fea..d69da74d 100644 --- a/internal/pkg/fabricitem/resource_schema.go +++ b/internal/pkg/fabricitem/resource_schema.go @@ -77,7 +77,7 @@ func getResourceFabricItemDefinitionPropertiesSchema[Ttfprop, Titemprop any](ctx func getResourceFabricItemConfigPropertiesSchema[Ttfprop, Titemprop, Ttfconfig, Titemconfig any](ctx context.Context, r ResourceFabricItemConfigProperties[Ttfprop, Titemprop, Ttfconfig, Titemconfig]) schema.Schema { attributes := getResourceFabricItemBaseAttributes(ctx, r.Name, r.DisplayNameMaxLength, r.DescriptionMaxLength, r.NameRenameAllowed) - attributes["configuration"] = getResourceFabricItemConfigNestedAttr[Ttfconfig](ctx, r.Name, r.IsConfigRequired, r.ConfigAttributes) + attributes["configuration"] = getResourceFabricItemConfigNestedAttr[Ttfconfig](ctx, r.Name, r.ConfigRequired, r.ConfigAttributes) attributes["properties"] = getResourceFabricItemPropertiesNestedAttr[Ttfprop](ctx, r.Name, r.PropertiesAttributes) return schema.Schema{ @@ -88,7 +88,7 @@ func getResourceFabricItemConfigPropertiesSchema[Ttfprop, Titemprop, Ttfconfig, func getResourceFabricItemConfigDefinitionPropertiesSchema[Ttfprop, Titemprop, Ttfconfig, Titemconfig any](ctx context.Context, r ResourceFabricItemConfigDefinitionProperties[Ttfprop, Titemprop, Ttfconfig, Titemconfig]) schema.Schema { attributes := getResourceFabricItemBaseAttributes(ctx, r.Name, r.DisplayNameMaxLength, r.DescriptionMaxLength, r.NameRenameAllowed) - attrConfiguration := getResourceFabricItemConfigNestedAttr[Ttfconfig](ctx, r.Name, r.IsConfigRequired, r.ConfigAttributes) + attrConfiguration := getResourceFabricItemConfigNestedAttr[Ttfconfig](ctx, r.Name, r.ConfigRequired, r.ConfigAttributes) attrConfiguration.Validators = []validator.Object{ objectvalidator.ConflictsWith( path.MatchRoot("definition"), diff --git a/internal/services/eventhouse/models_resource_eventhouse.go b/internal/services/eventhouse/models_resource_eventhouse.go new file mode 100644 index 00000000..5eb14e44 --- /dev/null +++ b/internal/services/eventhouse/models_resource_eventhouse.go @@ -0,0 +1,12 @@ +// Copyright (c) Microsoft Corporation +// SPDX-License-Identifier: MPL-2.0 + +package eventhouse + +import ( + "github.com/hashicorp/terraform-plugin-framework/types" +) + +type eventhouseConfigurationModel struct { + MinimumConsumptionUnits types.Float64 `tfsdk:"minimum_consumption_units"` +} diff --git a/internal/services/eventhouse/resource_eventhouse.go b/internal/services/eventhouse/resource_eventhouse.go index e27ce9d8..5bc843a5 100644 --- a/internal/services/eventhouse/resource_eventhouse.go +++ b/internal/services/eventhouse/resource_eventhouse.go @@ -18,15 +18,24 @@ import ( ) func NewResourceEventhouse(ctx context.Context) resource.Resource { - propertiesSetter := func(ctx context.Context, from *fabeventhouse.Properties, to *fabricitem.ResourceFabricItemDefinitionPropertiesModel[eventhousePropertiesModel, fabeventhouse.Properties]) diag.Diagnostics { + creationPayloadSetter := func(_ context.Context, from eventhouseConfigurationModel) (*fabeventhouse.CreationPayload, diag.Diagnostics) { + creationPayload := fabeventhouse.CreationPayload{} + + if !from.MinimumConsumptionUnits.IsNull() && !from.MinimumConsumptionUnits.IsUnknown() { + creationPayload.MinimumConsumptionUnits = from.MinimumConsumptionUnits.ValueFloat64Pointer() + } + + return &creationPayload, nil + } + + propertiesSetter := func(ctx context.Context, from *fabeventhouse.Properties, to *fabricitem.ResourceFabricItemConfigDefinitionPropertiesModel[eventhousePropertiesModel, fabeventhouse.Properties, eventhouseConfigurationModel, fabeventhouse.CreationPayload]) diag.Diagnostics { properties := supertypes.NewSingleNestedObjectValueOfNull[eventhousePropertiesModel](ctx) if from != nil { propertiesModel := &eventhousePropertiesModel{} propertiesModel.set(ctx, from) - diags := properties.Set(ctx, propertiesModel) - if diags.HasError() { + if diags := properties.Set(ctx, propertiesModel); diags.HasError() { return diags } } @@ -36,7 +45,7 @@ func NewResourceEventhouse(ctx context.Context) resource.Resource { return nil } - itemGetter := func(ctx context.Context, fabricClient fabric.Client, model fabricitem.ResourceFabricItemDefinitionPropertiesModel[eventhousePropertiesModel, fabeventhouse.Properties], fabricItem *fabricitem.FabricItemProperties[fabeventhouse.Properties]) error { + itemGetter := func(ctx context.Context, fabricClient fabric.Client, model fabricitem.ResourceFabricItemConfigDefinitionPropertiesModel[eventhousePropertiesModel, fabeventhouse.Properties, eventhouseConfigurationModel, fabeventhouse.CreationPayload], fabricItem *fabricitem.FabricItemProperties[fabeventhouse.Properties]) error { client := fabeventhouse.NewClientFactoryWithClient(fabricClient).NewItemsClient() respGet, err := client.GetEventhouse(ctx, model.WorkspaceID.ValueString(), model.ID.ValueString(), nil) @@ -49,7 +58,7 @@ func NewResourceEventhouse(ctx context.Context) resource.Resource { return nil } - config := fabricitem.ResourceFabricItemDefinitionProperties[eventhousePropertiesModel, fabeventhouse.Properties]{ + config := fabricitem.ResourceFabricItemConfigDefinitionProperties[eventhousePropertiesModel, fabeventhouse.Properties, eventhouseConfigurationModel, fabeventhouse.CreationPayload]{ ResourceFabricItemDefinition: fabricitem.ResourceFabricItemDefinition{ Type: ItemType, Name: ItemName, @@ -69,10 +78,14 @@ func NewResourceEventhouse(ctx context.Context) resource.Resource { DefinitionEmpty: ItemDefinitionEmpty, DefinitionFormats: itemDefinitionFormats, }, - PropertiesAttributes: getResourceEventhousePropertiesAttributes(ctx), - PropertiesSetter: propertiesSetter, - ItemGetter: itemGetter, + ConfigRequired: false, + ConfigOrDefinitionRequired: false, + ConfigAttributes: getResourceEventhouseConfigurationAttributes(), + CreationPayloadSetter: creationPayloadSetter, + PropertiesAttributes: getResourceEventhousePropertiesAttributes(ctx), + PropertiesSetter: propertiesSetter, + ItemGetter: itemGetter, } - return fabricitem.NewResourceFabricItemDefinitionProperties(config) + return fabricitem.NewResourceFabricItemConfigDefinitionProperties(config) } diff --git a/internal/services/eventhouse/resource_eventhouse_test.go b/internal/services/eventhouse/resource_eventhouse_test.go index 9c805476..05c99072 100644 --- a/internal/services/eventhouse/resource_eventhouse_test.go +++ b/internal/services/eventhouse/resource_eventhouse_test.go @@ -111,6 +111,24 @@ func TestUnit_EventhouseResource_Attributes(t *testing.T) { )), ExpectError: regexp.MustCompile(`The argument "display_name" is required, but no definition was found.`), }, + // error - no required attributes + { + ResourceName: testResourceItemFQN, + Config: at.JoinConfigs( + testHelperLocals, + at.CompileConfig( + testResourceItemHeader, + map[string]any{ + "display_name": "test", + "workspace_id": "00000000-0000-0000-0000-000000000000", + "definition": testHelperDefinition, + "configuration": map[string]any{ + "minimum_consumption_units": "2.25", + }, + }, + )), + ExpectError: regexp.MustCompile(`Invalid Attribute Combination`), + }, })) } @@ -372,3 +390,67 @@ func TestAcc_EventhouseDefinitionResource_CRUD(t *testing.T) { }, )) } + +func TestAcc_EventhouseConfigurationResource_CRUD(t *testing.T) { + workspace := testhelp.WellKnown()["WorkspaceRS"].(map[string]any) + workspaceID := workspace["id"].(string) + + entityCreateDisplayName := testhelp.RandomName() + entityUpdateDisplayName := testhelp.RandomName() + entityUpdateDescription := testhelp.RandomName() + + resource.Test(t, testhelp.NewTestAccCase(t, &testResourceItemFQN, nil, []resource.TestStep{ + // Create and Read + { + ResourceName: testResourceItemFQN, + Config: at.JoinConfigs( + testHelperLocals, + at.CompileConfig( + testResourceItemHeader, + map[string]any{ + "workspace_id": workspaceID, + "display_name": entityCreateDisplayName, + "configuration": map[string]any{ + "minimum_consumption_units": "2.25", + }, + }, + )), + Check: resource.ComposeAggregateTestCheckFunc( + resource.TestCheckResourceAttr(testResourceItemFQN, "display_name", entityCreateDisplayName), + resource.TestCheckResourceAttr(testResourceItemFQN, "description", ""), + resource.TestCheckResourceAttr(testResourceItemFQN, "definition_update_enabled", "true"), + resource.TestCheckResourceAttrSet(testResourceItemFQN, "properties.query_service_uri"), + resource.TestCheckResourceAttrSet(testResourceItemFQN, "properties.ingestion_service_uri"), + resource.TestCheckResourceAttrSet(testResourceItemFQN, "properties.database_ids.0"), + resource.TestCheckResourceAttr(testResourceItemFQN, "configuration.minimum_consumption_units", "2.25"), + ), + }, + // Update and Read + { + ResourceName: testResourceItemFQN, + Config: at.JoinConfigs( + testHelperLocals, + at.CompileConfig( + testResourceItemHeader, + map[string]any{ + "workspace_id": workspaceID, + "display_name": entityUpdateDisplayName, + "description": entityUpdateDescription, + "configuration": map[string]any{ + "minimum_consumption_units": "2.25", + }, + }, + )), + Check: resource.ComposeAggregateTestCheckFunc( + resource.TestCheckResourceAttr(testResourceItemFQN, "display_name", entityUpdateDisplayName), + resource.TestCheckResourceAttr(testResourceItemFQN, "description", entityUpdateDescription), + resource.TestCheckResourceAttr(testResourceItemFQN, "definition_update_enabled", "true"), + resource.TestCheckResourceAttrSet(testResourceItemFQN, "properties.query_service_uri"), + resource.TestCheckResourceAttrSet(testResourceItemFQN, "properties.ingestion_service_uri"), + resource.TestCheckResourceAttrSet(testResourceItemFQN, "properties.database_ids.0"), + resource.TestCheckResourceAttr(testResourceItemFQN, "configuration.minimum_consumption_units", "2.25"), + ), + }, + }, + )) +} diff --git a/internal/services/eventhouse/schema_resource_eventhouse.go b/internal/services/eventhouse/schema_resource_eventhouse.go index 4ce3034a..a43c0620 100644 --- a/internal/services/eventhouse/schema_resource_eventhouse.go +++ b/internal/services/eventhouse/schema_resource_eventhouse.go @@ -5,9 +5,16 @@ package eventhouse import ( "context" + "fmt" + "github.com/hashicorp/terraform-plugin-framework-validators/float64validator" "github.com/hashicorp/terraform-plugin-framework/resource/schema" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/float64planmodifier" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/planmodifier" + "github.com/hashicorp/terraform-plugin-framework/schema/validator" supertypes "github.com/orange-cloudavenue/terraform-plugin-framework-supertypes" + + "github.com/microsoft/terraform-provider-fabric/internal/pkg/utils" ) func getResourceEventhousePropertiesAttributes(ctx context.Context) map[string]schema.Attribute { @@ -29,3 +36,25 @@ func getResourceEventhousePropertiesAttributes(ctx context.Context) map[string]s return result } + +func getResourceEventhouseConfigurationAttributes() map[string]schema.Attribute { + possibleMinimumConsumptionUnitsValues := []float64{0, 2.25, 4.25, 8.5, 13, 18, 26, 34, 50} + customMin := float64(51) + customMax := float64(322) + + return map[string]schema.Attribute{ + "minimum_consumption_units": schema.Float64Attribute{ + MarkdownDescription: "When activated, the eventhouse is always available at the selected minimum level and you pay at least the minimum compute selected. Accepted values: " + utils.ConvertStringSlicesToString(possibleMinimumConsumptionUnitsValues, true, true) + " or any number between `" + fmt.Sprintf("%v", customMin) + "` and `" + fmt.Sprintf("%v", customMax) + "`. For more information, see [minimum consumption](https://learn.microsoft.com/fabric/real-time-intelligence/eventhouse#minimum-consumption)", + Required: true, + Validators: []validator.Float64{ + float64validator.Any( + float64validator.OneOf(possibleMinimumConsumptionUnitsValues...), + float64validator.Between(customMin, customMax), + ), + }, + PlanModifiers: []planmodifier.Float64{ + float64planmodifier.RequiresReplace(), + }, + }, + } +} diff --git a/internal/services/kqldatabase/resource_kql_database.go b/internal/services/kqldatabase/resource_kql_database.go index 36d534ef..1e8e507c 100644 --- a/internal/services/kqldatabase/resource_kql_database.go +++ b/internal/services/kqldatabase/resource_kql_database.go @@ -113,7 +113,7 @@ func NewResourceKQLDatabase() resource.Resource { // DefinitionRequired: false, // DefinitionEmpty: "", }, - IsConfigRequired: true, + ConfigRequired: true, ConfigAttributes: getResourceKQLDatabaseConfigurationAttributes(), CreationPayloadSetter: creationPayloadSetter, PropertiesAttributes: getResourceKQLDatabasePropertiesAttributes(), diff --git a/internal/services/lakehouse/resource_lakehouse.go b/internal/services/lakehouse/resource_lakehouse.go index 11c5ff10..b5ff6734 100644 --- a/internal/services/lakehouse/resource_lakehouse.go +++ b/internal/services/lakehouse/resource_lakehouse.go @@ -103,7 +103,7 @@ func NewResourceLakehouse(ctx context.Context) resource.Resource { DisplayNameMaxLength: 123, DescriptionMaxLength: 256, }, - IsConfigRequired: false, + ConfigRequired: false, ConfigAttributes: getResourceLakehouseConfigurationAttributes(), CreationPayloadSetter: creationPayloadSetter, PropertiesAttributes: getResourceLakehousePropertiesAttributes(ctx),