diff --git a/Taskfile.yml b/Taskfile.yml index 124ec842bea..a69e5161ad2 100644 --- a/Taskfile.yml +++ b/Taskfile.yml @@ -707,13 +707,17 @@ tasks: # can be invoked standalone. generate: - desc: Run all generators (genkit, refschema, schema, docs, validation, direct, pydabs) + desc: Run all generators (genkit, tf-schema, refschema, schema, docs, validation, direct, pydabs) cmds: # Runs first: regenerates CLI command stubs from the OpenAPI spec at # .codegen/_openapi_sha. SDK version bumps (go.mod/go.sum) are a manual # step outside this task; TestConsistentDatabricksSdkVersion (run inside # generate-genkit) asserts the two stay in sync. - task: generate-genkit + # Requires Terraform provider access (set TF_CLI_CONFIG_FILE to a + # filesystem mirror, or rely on the public registry). Only re-runs when + # bundle/internal/tf/codegen/schema/version.go changes. + - task: generate-tf-schema # Refreshes acceptance/bundle/refschema/out.fields.txt, which feeds # generate-direct-apitypes and generate-direct-resources below. - task: generate-refschema @@ -868,6 +872,19 @@ tasks: cmds: - go test ./bundle/terraform_dabs_map -run TestGenerateSchemaMap -update -v + generate-tf-schema: + desc: Regenerate bundle/internal/tf/schema from the Databricks Terraform provider + dir: bundle/internal/tf/codegen + sources: + - schema/version.go + - templates/** + - "**/*.go" + - exclude: "**/*_test.go" + generates: + - ../schema/*.go + cmds: + - go run . + generate-direct: desc: Generate direct engine config (apitypes + resources) deps: ['generate-direct-apitypes', 'generate-direct-resources'] diff --git a/bundle/internal/tf/codegen/generator/generator.go b/bundle/internal/tf/codegen/generator/generator.go index 627c39ae0f1..6de191090dd 100644 --- a/bundle/internal/tf/codegen/generator/generator.go +++ b/bundle/internal/tf/codegen/generator/generator.go @@ -2,8 +2,10 @@ package generator import ( + "bytes" "context" "fmt" + "go/format" "log" "maps" "os" @@ -16,6 +18,19 @@ import ( tfjson "github.com/hashicorp/terraform-json" ) +// generateFormatted executes tmpl with data, formats the output with gofmt, and writes it to path. +func generateFormatted(path string, tmpl *template.Template, data any) error { + var buf bytes.Buffer + if err := tmpl.Execute(&buf, data); err != nil { + return err + } + src, err := format.Source(buf.Bytes()) + if err != nil { + return fmt.Errorf("formatting %s: %w", path, err) + } + return os.WriteFile(path, src, 0o644) +} + func normalizeName(name string) string { return strings.TrimPrefix(name, "databricks_") } @@ -27,14 +42,7 @@ type collection struct { func (c *collection) Generate(path string) error { tmpl := template.Must(template.ParseFiles(fmt.Sprintf("./templates/%s.tmpl", c.OutputFile))) - f, err := os.Create(filepath.Join(path, c.OutputFile)) - if err != nil { - return err - } - - defer func() { _ = f.Close() }() - - return tmpl.Execute(f, c) + return generateFormatted(filepath.Join(path, c.OutputFile), tmpl, c) } type root struct { @@ -46,14 +54,7 @@ type root struct { func (r *root) Generate(path string) error { tmpl := template.Must(template.ParseFiles(fmt.Sprintf("./templates/%s.tmpl", r.OutputFile))) - f, err := os.Create(filepath.Join(path, r.OutputFile)) - if err != nil { - return err - } - - defer func() { _ = f.Close() }() - - return tmpl.Execute(f, r) + return generateFormatted(filepath.Join(path, r.OutputFile), tmpl, r) } // Run generates Go type files under path for every resource and data source in schema. @@ -138,10 +139,10 @@ func Run(_ context.Context, schema *tfjson.ProviderSchema, checksums *schemapkg. } } - // Generate resource_schemas.go + // Generate resource_all.go { cr := &collection{ - OutputFile: "resource_schemas.go", + OutputFile: "resource_all.go", Blocks: resources, } err := cr.Generate(path) diff --git a/bundle/internal/tf/codegen/generator/named_block.go b/bundle/internal/tf/codegen/generator/named_block.go index 5cb5bcc9b71..540747b4c57 100644 --- a/bundle/internal/tf/codegen/generator/named_block.go +++ b/bundle/internal/tf/codegen/generator/named_block.go @@ -2,7 +2,6 @@ package generator import ( "fmt" - "os" "path/filepath" "strings" "text/template" @@ -48,13 +47,7 @@ func (b *namedBlock) Generate(path string) error { return err } - f, err := os.Create(filepath.Join(path, fmt.Sprintf(b.filePattern, b.normalizedName()))) - if err != nil { - return err - } - - defer func() { _ = f.Close() }() - tmpl := template.Must(template.ParseFiles("./templates/block.go.tmpl")) - return tmpl.Execute(f, w) + outPath := filepath.Join(path, fmt.Sprintf(b.filePattern, b.normalizedName())) + return generateFormatted(outPath, tmpl, w) } diff --git a/bundle/internal/tf/codegen/templates/resource_schemas.go.tmpl b/bundle/internal/tf/codegen/templates/resource_all.go.tmpl similarity index 78% rename from bundle/internal/tf/codegen/templates/resource_schemas.go.tmpl rename to bundle/internal/tf/codegen/templates/resource_all.go.tmpl index f57c78e2263..c66fd97da84 100644 --- a/bundle/internal/tf/codegen/templates/resource_schemas.go.tmpl +++ b/bundle/internal/tf/codegen/templates/resource_all.go.tmpl @@ -2,11 +2,11 @@ package schema -// ResourceSchemas provides typed access to resource struct types via reflection. +// AllResources provides typed access to resource struct types via reflection. // Each field corresponds to a Terraform resource type; the field type is the // generated Go struct (e.g., ResourceJob) rather than map[string]any. // Use this for field enumeration without a manual type registry. -type ResourceSchemas struct { +type AllResources struct { {{- range .Blocks }} {{ .FieldName }} {{ .TypeName }} `json:"{{ .TerraformName }},omitempty"` {{- end }} diff --git a/bundle/internal/tf/schema/resource_all.go b/bundle/internal/tf/schema/resource_all.go index 8853dfbdede..0fcf35b04fc 100644 --- a/bundle/internal/tf/schema/resource_all.go +++ b/bundle/internal/tf/schema/resource_all.go @@ -7,161 +7,161 @@ package schema // generated Go struct (e.g., ResourceJob) rather than map[string]any. // Use this for field enumeration without a manual type registry. type AllResources struct { - AccessControlRuleSet ResourceAccessControlRuleSet `json:"databricks_access_control_rule_set,omitempty"` - AccountFederationPolicy ResourceAccountFederationPolicy `json:"databricks_account_federation_policy,omitempty"` - AccountNetworkPolicy ResourceAccountNetworkPolicy `json:"databricks_account_network_policy,omitempty"` - AccountSettingUserPreferenceV2 ResourceAccountSettingUserPreferenceV2 `json:"databricks_account_setting_user_preference_v2,omitempty"` - AccountSettingV2 ResourceAccountSettingV2 `json:"databricks_account_setting_v2,omitempty"` - AibiDashboardEmbeddingAccessPolicySetting ResourceAibiDashboardEmbeddingAccessPolicySetting `json:"databricks_aibi_dashboard_embedding_access_policy_setting,omitempty"` + AccessControlRuleSet ResourceAccessControlRuleSet `json:"databricks_access_control_rule_set,omitempty"` + AccountFederationPolicy ResourceAccountFederationPolicy `json:"databricks_account_federation_policy,omitempty"` + AccountNetworkPolicy ResourceAccountNetworkPolicy `json:"databricks_account_network_policy,omitempty"` + AccountSettingUserPreferenceV2 ResourceAccountSettingUserPreferenceV2 `json:"databricks_account_setting_user_preference_v2,omitempty"` + AccountSettingV2 ResourceAccountSettingV2 `json:"databricks_account_setting_v2,omitempty"` + AibiDashboardEmbeddingAccessPolicySetting ResourceAibiDashboardEmbeddingAccessPolicySetting `json:"databricks_aibi_dashboard_embedding_access_policy_setting,omitempty"` AibiDashboardEmbeddingApprovedDomainsSetting ResourceAibiDashboardEmbeddingApprovedDomainsSetting `json:"databricks_aibi_dashboard_embedding_approved_domains_setting,omitempty"` - Alert ResourceAlert `json:"databricks_alert,omitempty"` - AlertV2 ResourceAlertV2 `json:"databricks_alert_v2,omitempty"` - App ResourceApp `json:"databricks_app,omitempty"` - AppSpace ResourceAppSpace `json:"databricks_app_space,omitempty"` - AppsSettingsCustomTemplate ResourceAppsSettingsCustomTemplate `json:"databricks_apps_settings_custom_template,omitempty"` - ArtifactAllowlist ResourceArtifactAllowlist `json:"databricks_artifact_allowlist,omitempty"` - AutomaticClusterUpdateWorkspaceSetting ResourceAutomaticClusterUpdateWorkspaceSetting `json:"databricks_automatic_cluster_update_workspace_setting,omitempty"` - AwsS3Mount ResourceAwsS3Mount `json:"databricks_aws_s3_mount,omitempty"` - AzureAdlsGen1Mount ResourceAzureAdlsGen1Mount `json:"databricks_azure_adls_gen1_mount,omitempty"` - AzureAdlsGen2Mount ResourceAzureAdlsGen2Mount `json:"databricks_azure_adls_gen2_mount,omitempty"` - AzureBlobMount ResourceAzureBlobMount `json:"databricks_azure_blob_mount,omitempty"` - Budget ResourceBudget `json:"databricks_budget,omitempty"` - BudgetPolicy ResourceBudgetPolicy `json:"databricks_budget_policy,omitempty"` - Catalog ResourceCatalog `json:"databricks_catalog,omitempty"` - CatalogWorkspaceBinding ResourceCatalogWorkspaceBinding `json:"databricks_catalog_workspace_binding,omitempty"` - Cluster ResourceCluster `json:"databricks_cluster,omitempty"` - ClusterPolicy ResourceClusterPolicy `json:"databricks_cluster_policy,omitempty"` - ComplianceSecurityProfileWorkspaceSetting ResourceComplianceSecurityProfileWorkspaceSetting `json:"databricks_compliance_security_profile_workspace_setting,omitempty"` - Connection ResourceConnection `json:"databricks_connection,omitempty"` - Credential ResourceCredential `json:"databricks_credential,omitempty"` - CustomAppIntegration ResourceCustomAppIntegration `json:"databricks_custom_app_integration,omitempty"` - Dashboard ResourceDashboard `json:"databricks_dashboard,omitempty"` - DataClassificationCatalogConfig ResourceDataClassificationCatalogConfig `json:"databricks_data_classification_catalog_config,omitempty"` - DataQualityMonitor ResourceDataQualityMonitor `json:"databricks_data_quality_monitor,omitempty"` - DataQualityRefresh ResourceDataQualityRefresh `json:"databricks_data_quality_refresh,omitempty"` - DatabaseDatabaseCatalog ResourceDatabaseDatabaseCatalog `json:"databricks_database_database_catalog,omitempty"` - DatabaseInstance ResourceDatabaseInstance `json:"databricks_database_instance,omitempty"` - DatabaseSyncedDatabaseTable ResourceDatabaseSyncedDatabaseTable `json:"databricks_database_synced_database_table,omitempty"` - DbfsFile ResourceDbfsFile `json:"databricks_dbfs_file,omitempty"` - DefaultNamespaceSetting ResourceDefaultNamespaceSetting `json:"databricks_default_namespace_setting,omitempty"` - Directory ResourceDirectory `json:"databricks_directory,omitempty"` - DisableLegacyAccessSetting ResourceDisableLegacyAccessSetting `json:"databricks_disable_legacy_access_setting,omitempty"` - DisableLegacyDbfsSetting ResourceDisableLegacyDbfsSetting `json:"databricks_disable_legacy_dbfs_setting,omitempty"` - DisableLegacyFeaturesSetting ResourceDisableLegacyFeaturesSetting `json:"databricks_disable_legacy_features_setting,omitempty"` - DisasterRecoveryFailoverGroup ResourceDisasterRecoveryFailoverGroup `json:"databricks_disaster_recovery_failover_group,omitempty"` - DisasterRecoveryStableUrl ResourceDisasterRecoveryStableUrl `json:"databricks_disaster_recovery_stable_url,omitempty"` - Endpoint ResourceEndpoint `json:"databricks_endpoint,omitempty"` - EnhancedSecurityMonitoringWorkspaceSetting ResourceEnhancedSecurityMonitoringWorkspaceSetting `json:"databricks_enhanced_security_monitoring_workspace_setting,omitempty"` - Entitlements ResourceEntitlements `json:"databricks_entitlements,omitempty"` - EntityTagAssignment ResourceEntityTagAssignment `json:"databricks_entity_tag_assignment,omitempty"` - EnvironmentsDefaultWorkspaceBaseEnvironment ResourceEnvironmentsDefaultWorkspaceBaseEnvironment `json:"databricks_environments_default_workspace_base_environment,omitempty"` - EnvironmentsWorkspaceBaseEnvironment ResourceEnvironmentsWorkspaceBaseEnvironment `json:"databricks_environments_workspace_base_environment,omitempty"` - ExternalLocation ResourceExternalLocation `json:"databricks_external_location,omitempty"` - ExternalMetadata ResourceExternalMetadata `json:"databricks_external_metadata,omitempty"` - FeatureEngineeringFeature ResourceFeatureEngineeringFeature `json:"databricks_feature_engineering_feature,omitempty"` - FeatureEngineeringKafkaConfig ResourceFeatureEngineeringKafkaConfig `json:"databricks_feature_engineering_kafka_config,omitempty"` - FeatureEngineeringMaterializedFeature ResourceFeatureEngineeringMaterializedFeature `json:"databricks_feature_engineering_materialized_feature,omitempty"` - File ResourceFile `json:"databricks_file,omitempty"` - GitCredential ResourceGitCredential `json:"databricks_git_credential,omitempty"` - GlobalInitScript ResourceGlobalInitScript `json:"databricks_global_init_script,omitempty"` - Grant ResourceGrant `json:"databricks_grant,omitempty"` - Grants ResourceGrants `json:"databricks_grants,omitempty"` - Group ResourceGroup `json:"databricks_group,omitempty"` - GroupInstanceProfile ResourceGroupInstanceProfile `json:"databricks_group_instance_profile,omitempty"` - GroupMember ResourceGroupMember `json:"databricks_group_member,omitempty"` - GroupRole ResourceGroupRole `json:"databricks_group_role,omitempty"` - InstancePool ResourceInstancePool `json:"databricks_instance_pool,omitempty"` - InstanceProfile ResourceInstanceProfile `json:"databricks_instance_profile,omitempty"` - IpAccessList ResourceIpAccessList `json:"databricks_ip_access_list,omitempty"` - Job ResourceJob `json:"databricks_job,omitempty"` - KnowledgeAssistant ResourceKnowledgeAssistant `json:"databricks_knowledge_assistant,omitempty"` - KnowledgeAssistantKnowledgeSource ResourceKnowledgeAssistantKnowledgeSource `json:"databricks_knowledge_assistant_knowledge_source,omitempty"` - LakehouseMonitor ResourceLakehouseMonitor `json:"databricks_lakehouse_monitor,omitempty"` - Library ResourceLibrary `json:"databricks_library,omitempty"` - MaterializedFeaturesFeatureTag ResourceMaterializedFeaturesFeatureTag `json:"databricks_materialized_features_feature_tag,omitempty"` - Metastore ResourceMetastore `json:"databricks_metastore,omitempty"` - MetastoreAssignment ResourceMetastoreAssignment `json:"databricks_metastore_assignment,omitempty"` - MetastoreDataAccess ResourceMetastoreDataAccess `json:"databricks_metastore_data_access,omitempty"` - MlflowExperiment ResourceMlflowExperiment `json:"databricks_mlflow_experiment,omitempty"` - MlflowModel ResourceMlflowModel `json:"databricks_mlflow_model,omitempty"` - MlflowWebhook ResourceMlflowWebhook `json:"databricks_mlflow_webhook,omitempty"` - ModelServing ResourceModelServing `json:"databricks_model_serving,omitempty"` - ModelServingProvisionedThroughput ResourceModelServingProvisionedThroughput `json:"databricks_model_serving_provisioned_throughput,omitempty"` - Mount ResourceMount `json:"databricks_mount,omitempty"` - MwsCredentials ResourceMwsCredentials `json:"databricks_mws_credentials,omitempty"` - MwsCustomerManagedKeys ResourceMwsCustomerManagedKeys `json:"databricks_mws_customer_managed_keys,omitempty"` - MwsLogDelivery ResourceMwsLogDelivery `json:"databricks_mws_log_delivery,omitempty"` - MwsNccBinding ResourceMwsNccBinding `json:"databricks_mws_ncc_binding,omitempty"` - MwsNccPrivateEndpointRule ResourceMwsNccPrivateEndpointRule `json:"databricks_mws_ncc_private_endpoint_rule,omitempty"` - MwsNetworkConnectivityConfig ResourceMwsNetworkConnectivityConfig `json:"databricks_mws_network_connectivity_config,omitempty"` - MwsNetworks ResourceMwsNetworks `json:"databricks_mws_networks,omitempty"` - MwsPermissionAssignment ResourceMwsPermissionAssignment `json:"databricks_mws_permission_assignment,omitempty"` - MwsPrivateAccessSettings ResourceMwsPrivateAccessSettings `json:"databricks_mws_private_access_settings,omitempty"` - MwsStorageConfigurations ResourceMwsStorageConfigurations `json:"databricks_mws_storage_configurations,omitempty"` - MwsVpcEndpoint ResourceMwsVpcEndpoint `json:"databricks_mws_vpc_endpoint,omitempty"` - MwsWorkspaces ResourceMwsWorkspaces `json:"databricks_mws_workspaces,omitempty"` - Notebook ResourceNotebook `json:"databricks_notebook,omitempty"` - NotificationDestination ResourceNotificationDestination `json:"databricks_notification_destination,omitempty"` - OboToken ResourceOboToken `json:"databricks_obo_token,omitempty"` - OnlineStore ResourceOnlineStore `json:"databricks_online_store,omitempty"` - OnlineTable ResourceOnlineTable `json:"databricks_online_table,omitempty"` - PermissionAssignment ResourcePermissionAssignment `json:"databricks_permission_assignment,omitempty"` - Permissions ResourcePermissions `json:"databricks_permissions,omitempty"` - Pipeline ResourcePipeline `json:"databricks_pipeline,omitempty"` - PolicyInfo ResourcePolicyInfo `json:"databricks_policy_info,omitempty"` - PostgresBranch ResourcePostgresBranch `json:"databricks_postgres_branch,omitempty"` - PostgresCatalog ResourcePostgresCatalog `json:"databricks_postgres_catalog,omitempty"` - PostgresDatabase ResourcePostgresDatabase `json:"databricks_postgres_database,omitempty"` - PostgresEndpoint ResourcePostgresEndpoint `json:"databricks_postgres_endpoint,omitempty"` - PostgresProject ResourcePostgresProject `json:"databricks_postgres_project,omitempty"` - PostgresRole ResourcePostgresRole `json:"databricks_postgres_role,omitempty"` - PostgresSyncedTable ResourcePostgresSyncedTable `json:"databricks_postgres_synced_table,omitempty"` - Provider ResourceProvider `json:"databricks_provider,omitempty"` - QualityMonitor ResourceQualityMonitor `json:"databricks_quality_monitor,omitempty"` - QualityMonitorV2 ResourceQualityMonitorV2 `json:"databricks_quality_monitor_v2,omitempty"` - Query ResourceQuery `json:"databricks_query,omitempty"` - Recipient ResourceRecipient `json:"databricks_recipient,omitempty"` - RegisteredModel ResourceRegisteredModel `json:"databricks_registered_model,omitempty"` - Repo ResourceRepo `json:"databricks_repo,omitempty"` - RestrictWorkspaceAdminsSetting ResourceRestrictWorkspaceAdminsSetting `json:"databricks_restrict_workspace_admins_setting,omitempty"` - RfaAccessRequestDestinations ResourceRfaAccessRequestDestinations `json:"databricks_rfa_access_request_destinations,omitempty"` - Schema ResourceSchema `json:"databricks_schema,omitempty"` - Secret ResourceSecret `json:"databricks_secret,omitempty"` - SecretAcl ResourceSecretAcl `json:"databricks_secret_acl,omitempty"` - SecretScope ResourceSecretScope `json:"databricks_secret_scope,omitempty"` - SecretUc ResourceSecretUc `json:"databricks_secret_uc,omitempty"` - ServicePrincipal ResourceServicePrincipal `json:"databricks_service_principal,omitempty"` - ServicePrincipalFederationPolicy ResourceServicePrincipalFederationPolicy `json:"databricks_service_principal_federation_policy,omitempty"` - ServicePrincipalRole ResourceServicePrincipalRole `json:"databricks_service_principal_role,omitempty"` - ServicePrincipalSecret ResourceServicePrincipalSecret `json:"databricks_service_principal_secret,omitempty"` - Share ResourceShare `json:"databricks_share,omitempty"` - SqlAlert ResourceSqlAlert `json:"databricks_sql_alert,omitempty"` - SqlDashboard ResourceSqlDashboard `json:"databricks_sql_dashboard,omitempty"` - SqlEndpoint ResourceSqlEndpoint `json:"databricks_sql_endpoint,omitempty"` - SqlGlobalConfig ResourceSqlGlobalConfig `json:"databricks_sql_global_config,omitempty"` - SqlPermissions ResourceSqlPermissions `json:"databricks_sql_permissions,omitempty"` - SqlQuery ResourceSqlQuery `json:"databricks_sql_query,omitempty"` - SqlTable ResourceSqlTable `json:"databricks_sql_table,omitempty"` - SqlVisualization ResourceSqlVisualization `json:"databricks_sql_visualization,omitempty"` - SqlWidget ResourceSqlWidget `json:"databricks_sql_widget,omitempty"` - StorageCredential ResourceStorageCredential `json:"databricks_storage_credential,omitempty"` - SupervisorAgent ResourceSupervisorAgent `json:"databricks_supervisor_agent,omitempty"` - SupervisorAgentTool ResourceSupervisorAgentTool `json:"databricks_supervisor_agent_tool,omitempty"` - SystemSchema ResourceSystemSchema `json:"databricks_system_schema,omitempty"` - Table ResourceTable `json:"databricks_table,omitempty"` - TagPolicy ResourceTagPolicy `json:"databricks_tag_policy,omitempty"` - Token ResourceToken `json:"databricks_token,omitempty"` - User ResourceUser `json:"databricks_user,omitempty"` - UserInstanceProfile ResourceUserInstanceProfile `json:"databricks_user_instance_profile,omitempty"` - UserRole ResourceUserRole `json:"databricks_user_role,omitempty"` - VectorSearchEndpoint ResourceVectorSearchEndpoint `json:"databricks_vector_search_endpoint,omitempty"` - VectorSearchIndex ResourceVectorSearchIndex `json:"databricks_vector_search_index,omitempty"` - Volume ResourceVolume `json:"databricks_volume,omitempty"` - WarehousesDefaultWarehouseOverride ResourceWarehousesDefaultWarehouseOverride `json:"databricks_warehouses_default_warehouse_override,omitempty"` - WorkspaceBinding ResourceWorkspaceBinding `json:"databricks_workspace_binding,omitempty"` - WorkspaceConf ResourceWorkspaceConf `json:"databricks_workspace_conf,omitempty"` - WorkspaceEntityTagAssignment ResourceWorkspaceEntityTagAssignment `json:"databricks_workspace_entity_tag_assignment,omitempty"` - WorkspaceFile ResourceWorkspaceFile `json:"databricks_workspace_file,omitempty"` - WorkspaceNetworkOption ResourceWorkspaceNetworkOption `json:"databricks_workspace_network_option,omitempty"` - WorkspaceSettingV2 ResourceWorkspaceSettingV2 `json:"databricks_workspace_setting_v2,omitempty"` + Alert ResourceAlert `json:"databricks_alert,omitempty"` + AlertV2 ResourceAlertV2 `json:"databricks_alert_v2,omitempty"` + App ResourceApp `json:"databricks_app,omitempty"` + AppSpace ResourceAppSpace `json:"databricks_app_space,omitempty"` + AppsSettingsCustomTemplate ResourceAppsSettingsCustomTemplate `json:"databricks_apps_settings_custom_template,omitempty"` + ArtifactAllowlist ResourceArtifactAllowlist `json:"databricks_artifact_allowlist,omitempty"` + AutomaticClusterUpdateWorkspaceSetting ResourceAutomaticClusterUpdateWorkspaceSetting `json:"databricks_automatic_cluster_update_workspace_setting,omitempty"` + AwsS3Mount ResourceAwsS3Mount `json:"databricks_aws_s3_mount,omitempty"` + AzureAdlsGen1Mount ResourceAzureAdlsGen1Mount `json:"databricks_azure_adls_gen1_mount,omitempty"` + AzureAdlsGen2Mount ResourceAzureAdlsGen2Mount `json:"databricks_azure_adls_gen2_mount,omitempty"` + AzureBlobMount ResourceAzureBlobMount `json:"databricks_azure_blob_mount,omitempty"` + Budget ResourceBudget `json:"databricks_budget,omitempty"` + BudgetPolicy ResourceBudgetPolicy `json:"databricks_budget_policy,omitempty"` + Catalog ResourceCatalog `json:"databricks_catalog,omitempty"` + CatalogWorkspaceBinding ResourceCatalogWorkspaceBinding `json:"databricks_catalog_workspace_binding,omitempty"` + Cluster ResourceCluster `json:"databricks_cluster,omitempty"` + ClusterPolicy ResourceClusterPolicy `json:"databricks_cluster_policy,omitempty"` + ComplianceSecurityProfileWorkspaceSetting ResourceComplianceSecurityProfileWorkspaceSetting `json:"databricks_compliance_security_profile_workspace_setting,omitempty"` + Connection ResourceConnection `json:"databricks_connection,omitempty"` + Credential ResourceCredential `json:"databricks_credential,omitempty"` + CustomAppIntegration ResourceCustomAppIntegration `json:"databricks_custom_app_integration,omitempty"` + Dashboard ResourceDashboard `json:"databricks_dashboard,omitempty"` + DataClassificationCatalogConfig ResourceDataClassificationCatalogConfig `json:"databricks_data_classification_catalog_config,omitempty"` + DataQualityMonitor ResourceDataQualityMonitor `json:"databricks_data_quality_monitor,omitempty"` + DataQualityRefresh ResourceDataQualityRefresh `json:"databricks_data_quality_refresh,omitempty"` + DatabaseDatabaseCatalog ResourceDatabaseDatabaseCatalog `json:"databricks_database_database_catalog,omitempty"` + DatabaseInstance ResourceDatabaseInstance `json:"databricks_database_instance,omitempty"` + DatabaseSyncedDatabaseTable ResourceDatabaseSyncedDatabaseTable `json:"databricks_database_synced_database_table,omitempty"` + DbfsFile ResourceDbfsFile `json:"databricks_dbfs_file,omitempty"` + DefaultNamespaceSetting ResourceDefaultNamespaceSetting `json:"databricks_default_namespace_setting,omitempty"` + Directory ResourceDirectory `json:"databricks_directory,omitempty"` + DisableLegacyAccessSetting ResourceDisableLegacyAccessSetting `json:"databricks_disable_legacy_access_setting,omitempty"` + DisableLegacyDbfsSetting ResourceDisableLegacyDbfsSetting `json:"databricks_disable_legacy_dbfs_setting,omitempty"` + DisableLegacyFeaturesSetting ResourceDisableLegacyFeaturesSetting `json:"databricks_disable_legacy_features_setting,omitempty"` + DisasterRecoveryFailoverGroup ResourceDisasterRecoveryFailoverGroup `json:"databricks_disaster_recovery_failover_group,omitempty"` + DisasterRecoveryStableUrl ResourceDisasterRecoveryStableUrl `json:"databricks_disaster_recovery_stable_url,omitempty"` + Endpoint ResourceEndpoint `json:"databricks_endpoint,omitempty"` + EnhancedSecurityMonitoringWorkspaceSetting ResourceEnhancedSecurityMonitoringWorkspaceSetting `json:"databricks_enhanced_security_monitoring_workspace_setting,omitempty"` + Entitlements ResourceEntitlements `json:"databricks_entitlements,omitempty"` + EntityTagAssignment ResourceEntityTagAssignment `json:"databricks_entity_tag_assignment,omitempty"` + EnvironmentsDefaultWorkspaceBaseEnvironment ResourceEnvironmentsDefaultWorkspaceBaseEnvironment `json:"databricks_environments_default_workspace_base_environment,omitempty"` + EnvironmentsWorkspaceBaseEnvironment ResourceEnvironmentsWorkspaceBaseEnvironment `json:"databricks_environments_workspace_base_environment,omitempty"` + ExternalLocation ResourceExternalLocation `json:"databricks_external_location,omitempty"` + ExternalMetadata ResourceExternalMetadata `json:"databricks_external_metadata,omitempty"` + FeatureEngineeringFeature ResourceFeatureEngineeringFeature `json:"databricks_feature_engineering_feature,omitempty"` + FeatureEngineeringKafkaConfig ResourceFeatureEngineeringKafkaConfig `json:"databricks_feature_engineering_kafka_config,omitempty"` + FeatureEngineeringMaterializedFeature ResourceFeatureEngineeringMaterializedFeature `json:"databricks_feature_engineering_materialized_feature,omitempty"` + File ResourceFile `json:"databricks_file,omitempty"` + GitCredential ResourceGitCredential `json:"databricks_git_credential,omitempty"` + GlobalInitScript ResourceGlobalInitScript `json:"databricks_global_init_script,omitempty"` + Grant ResourceGrant `json:"databricks_grant,omitempty"` + Grants ResourceGrants `json:"databricks_grants,omitempty"` + Group ResourceGroup `json:"databricks_group,omitempty"` + GroupInstanceProfile ResourceGroupInstanceProfile `json:"databricks_group_instance_profile,omitempty"` + GroupMember ResourceGroupMember `json:"databricks_group_member,omitempty"` + GroupRole ResourceGroupRole `json:"databricks_group_role,omitempty"` + InstancePool ResourceInstancePool `json:"databricks_instance_pool,omitempty"` + InstanceProfile ResourceInstanceProfile `json:"databricks_instance_profile,omitempty"` + IpAccessList ResourceIpAccessList `json:"databricks_ip_access_list,omitempty"` + Job ResourceJob `json:"databricks_job,omitempty"` + KnowledgeAssistant ResourceKnowledgeAssistant `json:"databricks_knowledge_assistant,omitempty"` + KnowledgeAssistantKnowledgeSource ResourceKnowledgeAssistantKnowledgeSource `json:"databricks_knowledge_assistant_knowledge_source,omitempty"` + LakehouseMonitor ResourceLakehouseMonitor `json:"databricks_lakehouse_monitor,omitempty"` + Library ResourceLibrary `json:"databricks_library,omitempty"` + MaterializedFeaturesFeatureTag ResourceMaterializedFeaturesFeatureTag `json:"databricks_materialized_features_feature_tag,omitempty"` + Metastore ResourceMetastore `json:"databricks_metastore,omitempty"` + MetastoreAssignment ResourceMetastoreAssignment `json:"databricks_metastore_assignment,omitempty"` + MetastoreDataAccess ResourceMetastoreDataAccess `json:"databricks_metastore_data_access,omitempty"` + MlflowExperiment ResourceMlflowExperiment `json:"databricks_mlflow_experiment,omitempty"` + MlflowModel ResourceMlflowModel `json:"databricks_mlflow_model,omitempty"` + MlflowWebhook ResourceMlflowWebhook `json:"databricks_mlflow_webhook,omitempty"` + ModelServing ResourceModelServing `json:"databricks_model_serving,omitempty"` + ModelServingProvisionedThroughput ResourceModelServingProvisionedThroughput `json:"databricks_model_serving_provisioned_throughput,omitempty"` + Mount ResourceMount `json:"databricks_mount,omitempty"` + MwsCredentials ResourceMwsCredentials `json:"databricks_mws_credentials,omitempty"` + MwsCustomerManagedKeys ResourceMwsCustomerManagedKeys `json:"databricks_mws_customer_managed_keys,omitempty"` + MwsLogDelivery ResourceMwsLogDelivery `json:"databricks_mws_log_delivery,omitempty"` + MwsNccBinding ResourceMwsNccBinding `json:"databricks_mws_ncc_binding,omitempty"` + MwsNccPrivateEndpointRule ResourceMwsNccPrivateEndpointRule `json:"databricks_mws_ncc_private_endpoint_rule,omitempty"` + MwsNetworkConnectivityConfig ResourceMwsNetworkConnectivityConfig `json:"databricks_mws_network_connectivity_config,omitempty"` + MwsNetworks ResourceMwsNetworks `json:"databricks_mws_networks,omitempty"` + MwsPermissionAssignment ResourceMwsPermissionAssignment `json:"databricks_mws_permission_assignment,omitempty"` + MwsPrivateAccessSettings ResourceMwsPrivateAccessSettings `json:"databricks_mws_private_access_settings,omitempty"` + MwsStorageConfigurations ResourceMwsStorageConfigurations `json:"databricks_mws_storage_configurations,omitempty"` + MwsVpcEndpoint ResourceMwsVpcEndpoint `json:"databricks_mws_vpc_endpoint,omitempty"` + MwsWorkspaces ResourceMwsWorkspaces `json:"databricks_mws_workspaces,omitempty"` + Notebook ResourceNotebook `json:"databricks_notebook,omitempty"` + NotificationDestination ResourceNotificationDestination `json:"databricks_notification_destination,omitempty"` + OboToken ResourceOboToken `json:"databricks_obo_token,omitempty"` + OnlineStore ResourceOnlineStore `json:"databricks_online_store,omitempty"` + OnlineTable ResourceOnlineTable `json:"databricks_online_table,omitempty"` + PermissionAssignment ResourcePermissionAssignment `json:"databricks_permission_assignment,omitempty"` + Permissions ResourcePermissions `json:"databricks_permissions,omitempty"` + Pipeline ResourcePipeline `json:"databricks_pipeline,omitempty"` + PolicyInfo ResourcePolicyInfo `json:"databricks_policy_info,omitempty"` + PostgresBranch ResourcePostgresBranch `json:"databricks_postgres_branch,omitempty"` + PostgresCatalog ResourcePostgresCatalog `json:"databricks_postgres_catalog,omitempty"` + PostgresDatabase ResourcePostgresDatabase `json:"databricks_postgres_database,omitempty"` + PostgresEndpoint ResourcePostgresEndpoint `json:"databricks_postgres_endpoint,omitempty"` + PostgresProject ResourcePostgresProject `json:"databricks_postgres_project,omitempty"` + PostgresRole ResourcePostgresRole `json:"databricks_postgres_role,omitempty"` + PostgresSyncedTable ResourcePostgresSyncedTable `json:"databricks_postgres_synced_table,omitempty"` + Provider ResourceProvider `json:"databricks_provider,omitempty"` + QualityMonitor ResourceQualityMonitor `json:"databricks_quality_monitor,omitempty"` + QualityMonitorV2 ResourceQualityMonitorV2 `json:"databricks_quality_monitor_v2,omitempty"` + Query ResourceQuery `json:"databricks_query,omitempty"` + Recipient ResourceRecipient `json:"databricks_recipient,omitempty"` + RegisteredModel ResourceRegisteredModel `json:"databricks_registered_model,omitempty"` + Repo ResourceRepo `json:"databricks_repo,omitempty"` + RestrictWorkspaceAdminsSetting ResourceRestrictWorkspaceAdminsSetting `json:"databricks_restrict_workspace_admins_setting,omitempty"` + RfaAccessRequestDestinations ResourceRfaAccessRequestDestinations `json:"databricks_rfa_access_request_destinations,omitempty"` + Schema ResourceSchema `json:"databricks_schema,omitempty"` + Secret ResourceSecret `json:"databricks_secret,omitempty"` + SecretAcl ResourceSecretAcl `json:"databricks_secret_acl,omitempty"` + SecretScope ResourceSecretScope `json:"databricks_secret_scope,omitempty"` + SecretUc ResourceSecretUc `json:"databricks_secret_uc,omitempty"` + ServicePrincipal ResourceServicePrincipal `json:"databricks_service_principal,omitempty"` + ServicePrincipalFederationPolicy ResourceServicePrincipalFederationPolicy `json:"databricks_service_principal_federation_policy,omitempty"` + ServicePrincipalRole ResourceServicePrincipalRole `json:"databricks_service_principal_role,omitempty"` + ServicePrincipalSecret ResourceServicePrincipalSecret `json:"databricks_service_principal_secret,omitempty"` + Share ResourceShare `json:"databricks_share,omitempty"` + SqlAlert ResourceSqlAlert `json:"databricks_sql_alert,omitempty"` + SqlDashboard ResourceSqlDashboard `json:"databricks_sql_dashboard,omitempty"` + SqlEndpoint ResourceSqlEndpoint `json:"databricks_sql_endpoint,omitempty"` + SqlGlobalConfig ResourceSqlGlobalConfig `json:"databricks_sql_global_config,omitempty"` + SqlPermissions ResourceSqlPermissions `json:"databricks_sql_permissions,omitempty"` + SqlQuery ResourceSqlQuery `json:"databricks_sql_query,omitempty"` + SqlTable ResourceSqlTable `json:"databricks_sql_table,omitempty"` + SqlVisualization ResourceSqlVisualization `json:"databricks_sql_visualization,omitempty"` + SqlWidget ResourceSqlWidget `json:"databricks_sql_widget,omitempty"` + StorageCredential ResourceStorageCredential `json:"databricks_storage_credential,omitempty"` + SupervisorAgent ResourceSupervisorAgent `json:"databricks_supervisor_agent,omitempty"` + SupervisorAgentTool ResourceSupervisorAgentTool `json:"databricks_supervisor_agent_tool,omitempty"` + SystemSchema ResourceSystemSchema `json:"databricks_system_schema,omitempty"` + Table ResourceTable `json:"databricks_table,omitempty"` + TagPolicy ResourceTagPolicy `json:"databricks_tag_policy,omitempty"` + Token ResourceToken `json:"databricks_token,omitempty"` + User ResourceUser `json:"databricks_user,omitempty"` + UserInstanceProfile ResourceUserInstanceProfile `json:"databricks_user_instance_profile,omitempty"` + UserRole ResourceUserRole `json:"databricks_user_role,omitempty"` + VectorSearchEndpoint ResourceVectorSearchEndpoint `json:"databricks_vector_search_endpoint,omitempty"` + VectorSearchIndex ResourceVectorSearchIndex `json:"databricks_vector_search_index,omitempty"` + Volume ResourceVolume `json:"databricks_volume,omitempty"` + WarehousesDefaultWarehouseOverride ResourceWarehousesDefaultWarehouseOverride `json:"databricks_warehouses_default_warehouse_override,omitempty"` + WorkspaceBinding ResourceWorkspaceBinding `json:"databricks_workspace_binding,omitempty"` + WorkspaceConf ResourceWorkspaceConf `json:"databricks_workspace_conf,omitempty"` + WorkspaceEntityTagAssignment ResourceWorkspaceEntityTagAssignment `json:"databricks_workspace_entity_tag_assignment,omitempty"` + WorkspaceFile ResourceWorkspaceFile `json:"databricks_workspace_file,omitempty"` + WorkspaceNetworkOption ResourceWorkspaceNetworkOption `json:"databricks_workspace_network_option,omitempty"` + WorkspaceSettingV2 ResourceWorkspaceSettingV2 `json:"databricks_workspace_setting_v2,omitempty"` }