platform_metadata_credentials

package
v1.10.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 9, 2026 License: MIT Imports: 17 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var DatabricksPlatformMetadataCredentialSchema = schema.Schema{
	Description: helper.DocString(
		`Manages Databricks platform metadata credentials for external metadata ingestion in dbt Cloud.
		
This resource configures credentials that allow dbt Cloud to connect directly to your Databricks workspace 
to ingest metadata outside of normal dbt project runs. This enables features like:

- **Catalog Ingestion**: Ingest metadata about tables/views not defined in dbt
- **Cost Optimization**: Query warehouse cost and performance data
- **Cost Insights**: Enhanced cost visibility and analysis

~> **Note:** At least one of ~~~catalog_ingestion_enabled~~~, ~~~cost_optimization_enabled~~~, or 
~~~cost_insights_enabled~~~ must be enabled for the credential to be usable.

~> **Note:** The ~~~connection_id~~~ cannot be changed after creation. To use a different connection, 
you must destroy and recreate the resource.`,
	),
	Attributes: mergeAttributes(commonAttributes(), map[string]schema.Attribute{
		"token": schema.StringAttribute{
			Description: "The Databricks personal access token. Consider using `token_wo` instead, which is not stored in state.",
			Optional:    true,
			Sensitive:   true,
			Validators: []validator.String{
				stringvalidator.ConflictsWith(path.MatchRoot("token_wo")),
				stringvalidator.PreferWriteOnlyAttribute(path.MatchRoot("token_wo")),
			},
		},
		"token_wo": schema.StringAttribute{
			Optional:    true,
			WriteOnly:   true,
			Description: "Write-only alternative to `token`. The value is not stored in state. Requires `token_wo_version` to trigger updates.",
		},
		"token_wo_version": schema.Int64Attribute{
			Optional:    true,
			Description: "Version number for `token_wo`. Increment this value to trigger an update of the token when using `token_wo`.",
		},
		"catalog": schema.StringAttribute{
			Description: "The Unity Catalog name to use.",
			Required:    true,
		},
	}),
}

DatabricksPlatformMetadataCredentialSchema returns the schema for Databricks platform metadata credentials

View Source
var SnowflakePlatformMetadataCredentialSchema = schema.Schema{
	Description: helper.DocString(
		`Manages Snowflake platform metadata credentials for external metadata ingestion in dbt Cloud.
		
This resource configures credentials that allow dbt Cloud to connect directly to your Snowflake warehouse 
to ingest metadata outside of normal dbt project runs. This enables features like:

- **Catalog Ingestion**: Ingest metadata about tables/views not defined in dbt
- **Cost Optimization**: Query warehouse cost and performance data
- **Cost Insights**: Enhanced cost visibility and analysis

~> **Note:** At least one of ~~~catalog_ingestion_enabled~~~, ~~~cost_optimization_enabled~~~, or 
~~~cost_insights_enabled~~~ must be enabled for the credential to be usable.

~> **Note:** The ~~~connection_id~~~ cannot be changed after creation. To use a different connection, 
you must destroy and recreate the resource.`,
	),
	Attributes: mergeAttributes(commonAttributes(), map[string]schema.Attribute{
		"auth_type": schema.StringAttribute{
			Description: "The authentication type. Must be 'password' or 'keypair'.",
			Required:    true,
			Validators: []validator.String{
				stringvalidator.OneOf("password", "keypair"),
			},
		},
		"user": schema.StringAttribute{
			Description: "The Snowflake user name.",
			Required:    true,
		},
		"password": schema.StringAttribute{
			Description: "The password for password authentication. Required when auth_type is 'password'. Cannot be used with private_key or private_key_passphrase. Consider using `password_wo` instead, which is not stored in state.",
			Optional:    true,
			Sensitive:   true,
			Validators: []validator.String{
				snowflake_credential_validators.ConflictValidator{
					ConflictingFields: []string{"private_key", "private_key_passphrase"},
				},
				stringvalidator.ConflictsWith(path.MatchRoot("password_wo")),
				stringvalidator.PreferWriteOnlyAttribute(path.MatchRoot("password_wo")),
			},
		},
		"password_wo": schema.StringAttribute{
			Optional:    true,
			WriteOnly:   true,
			Description: "Write-only alternative to `password`. The value is not stored in state. Requires `password_wo_version` to trigger updates.",
			Validators: []validator.String{
				snowflake_credential_validators.ConflictValidator{
					ConflictingFields: []string{"private_key", "private_key_passphrase", "private_key_wo", "private_key_passphrase_wo"},
				},
			},
		},
		"password_wo_version": schema.Int64Attribute{
			Optional:    true,
			Description: "Version number for `password_wo`. Increment this value to trigger an update of the password when using `password_wo`.",
		},
		"private_key": schema.StringAttribute{
			Description: "The private key for keypair authentication. Required when auth_type is 'keypair'. Cannot be used with password. Consider using `private_key_wo` instead, which is not stored in state.",
			Optional:    true,
			Sensitive:   true,
			Validators: []validator.String{
				snowflake_credential_validators.ConflictValidator{
					ConflictingFields: []string{"password"},
				},
				stringvalidator.ConflictsWith(path.MatchRoot("private_key_wo")),
				stringvalidator.PreferWriteOnlyAttribute(path.MatchRoot("private_key_wo")),
			},
		},
		"private_key_wo": schema.StringAttribute{
			Optional:    true,
			WriteOnly:   true,
			Description: "Write-only alternative to `private_key`. The value is not stored in state. Requires `private_key_wo_version` to trigger updates.",
			Validators: []validator.String{
				snowflake_credential_validators.ConflictValidator{
					ConflictingFields: []string{"password", "password_wo"},
				},
			},
		},
		"private_key_wo_version": schema.Int64Attribute{
			Optional:    true,
			Description: "Version number for `private_key_wo`. Increment this value to trigger an update of the private key when using `private_key_wo`.",
		},
		"private_key_passphrase": schema.StringAttribute{
			Description: "The passphrase for the private key, if encrypted. Optional when auth_type is 'keypair'. Cannot be used with password. Consider using `private_key_passphrase_wo` instead, which is not stored in state.",
			Optional:    true,
			Sensitive:   true,
			Validators: []validator.String{
				snowflake_credential_validators.ConflictValidator{
					ConflictingFields: []string{"password"},
				},
				stringvalidator.ConflictsWith(path.MatchRoot("private_key_passphrase_wo")),
				stringvalidator.PreferWriteOnlyAttribute(path.MatchRoot("private_key_passphrase_wo")),
			},
		},
		"private_key_passphrase_wo": schema.StringAttribute{
			Optional:    true,
			WriteOnly:   true,
			Description: "Write-only alternative to `private_key_passphrase`. The value is not stored in state. Requires `private_key_passphrase_wo_version` to trigger updates.",
			Validators: []validator.String{
				snowflake_credential_validators.ConflictValidator{
					ConflictingFields: []string{"password", "password_wo"},
				},
			},
		},
		"private_key_passphrase_wo_version": schema.Int64Attribute{
			Optional:    true,
			Description: "Version number for `private_key_passphrase_wo`. Increment this value to trigger an update of the private key passphrase when using `private_key_passphrase_wo`.",
		},
		"role": schema.StringAttribute{
			Description: "The Snowflake role to use.",
			Required:    true,
		},
		"warehouse": schema.StringAttribute{
			Description: "The Snowflake warehouse to use.",
			Required:    true,
		},
	}),
}

SnowflakePlatformMetadataCredentialSchema returns the schema for Snowflake platform metadata credentials

Functions

func DatabricksPlatformMetadataCredentialResource

func DatabricksPlatformMetadataCredentialResource() resource.Resource

DatabricksPlatformMetadataCredentialResource returns a new resource instance

func SnowflakePlatformMetadataCredentialResource

func SnowflakePlatformMetadataCredentialResource() resource.Resource

SnowflakePlatformMetadataCredentialResource returns a new resource instance

Types

type DatabricksPlatformMetadataCredentialResourceModel

type DatabricksPlatformMetadataCredentialResourceModel struct {
	ID           types.String `tfsdk:"id"`
	CredentialID types.Int64  `tfsdk:"credential_id"`
	ConnectionID types.Int64  `tfsdk:"connection_id"`

	// Feature flags
	CatalogIngestionEnabled types.Bool `tfsdk:"catalog_ingestion_enabled"`
	CostOptimizationEnabled types.Bool `tfsdk:"cost_optimization_enabled"`
	CostInsightsEnabled     types.Bool `tfsdk:"cost_insights_enabled"`

	// Databricks-specific fields
	Token          types.String `tfsdk:"token"`
	TokenWo        types.String `tfsdk:"token_wo"`
	TokenWoVersion types.Int64  `tfsdk:"token_wo_version"`
	Catalog        types.String `tfsdk:"catalog"`

	// Read-only fields
	AdapterVersion types.String `tfsdk:"adapter_version"`
}

DatabricksPlatformMetadataCredentialResourceModel represents the Terraform state for Databricks

type SnowflakePlatformMetadataCredentialResourceModel

type SnowflakePlatformMetadataCredentialResourceModel struct {
	ID           types.String `tfsdk:"id"`
	CredentialID types.Int64  `tfsdk:"credential_id"`
	ConnectionID types.Int64  `tfsdk:"connection_id"`

	// Feature flags
	CatalogIngestionEnabled types.Bool `tfsdk:"catalog_ingestion_enabled"`
	CostOptimizationEnabled types.Bool `tfsdk:"cost_optimization_enabled"`
	CostInsightsEnabled     types.Bool `tfsdk:"cost_insights_enabled"`

	// Snowflake-specific fields
	AuthType                      types.String `tfsdk:"auth_type"`
	User                          types.String `tfsdk:"user"`
	Password                      types.String `tfsdk:"password"`
	PasswordWo                    types.String `tfsdk:"password_wo"`
	PasswordWoVersion             types.Int64  `tfsdk:"password_wo_version"`
	PrivateKey                    types.String `tfsdk:"private_key"`
	PrivateKeyWo                  types.String `tfsdk:"private_key_wo"`
	PrivateKeyWoVersion           types.Int64  `tfsdk:"private_key_wo_version"`
	PrivateKeyPassphrase          types.String `tfsdk:"private_key_passphrase"`
	PrivateKeyPassphraseWo        types.String `tfsdk:"private_key_passphrase_wo"`
	PrivateKeyPassphraseWoVersion types.Int64  `tfsdk:"private_key_passphrase_wo_version"`
	Role                          types.String `tfsdk:"role"`
	Warehouse                     types.String `tfsdk:"warehouse"`

	// Read-only fields
	AdapterVersion types.String `tfsdk:"adapter_version"`
}

SnowflakePlatformMetadataCredentialResourceModel represents the Terraform state for Snowflake

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL