UNPKG

@cdktf/provider-google

Version:

Prebuilt google Provider for Terraform CDK (cdktf)

256 lines (255 loc) 13.3 kB
/** * Copyright (c) HashiCorp, Inc. * SPDX-License-Identifier: MPL-2.0 */ import { Construct } from 'constructs'; import * as cdktf from 'cdktf'; export interface SpannerDatabaseConfig extends cdktf.TerraformMetaArguments { /** * The dialect of the Cloud Spanner Database. * If it is not provided, "GOOGLE_STANDARD_SQL" will be used. Possible values: ["GOOGLE_STANDARD_SQL", "POSTGRESQL"] * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/spanner_database#database_dialect SpannerDatabase#database_dialect} */ readonly databaseDialect?: string; /** * An optional list of DDL statements to run inside the newly created * database. Statements can create tables, indexes, etc. These statements * execute atomically with the creation of the database: if there is an * error in any statement, the database is not created. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/spanner_database#ddl SpannerDatabase#ddl} */ readonly ddl?: string[]; /** * Whether Terraform will be prevented from destroying the database. Defaults to true. * When a'terraform destroy' or 'terraform apply' would delete the database, * the command will fail if this field is not set to false in Terraform state. * When the field is set to true or unset in Terraform state, a 'terraform apply' * or 'terraform destroy' that would delete the database will fail. * When the field is set to false, deleting the database is allowed. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/spanner_database#deletion_protection SpannerDatabase#deletion_protection} */ readonly deletionProtection?: boolean | cdktf.IResolvable; /** * Whether drop protection is enabled for this database. Defaults to false. * Drop protection is different from * the "deletion_protection" attribute in the following ways: * (1) "deletion_protection" only protects the database from deletions in Terraform. * whereas setting “enableDropProtection” to true protects the database from deletions in all interfaces. * (2) Setting "enableDropProtection" to true also prevents the deletion of the parent instance containing the database. * "deletion_protection" attribute does not provide protection against the deletion of the parent instance. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/spanner_database#enable_drop_protection SpannerDatabase#enable_drop_protection} */ readonly enableDropProtection?: boolean | cdktf.IResolvable; /** * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/spanner_database#id SpannerDatabase#id} * * Please be aware that the id field is automatically added to all resources in Terraform providers using a Terraform provider SDK version below 2. * If you experience problems setting this value it might not be settable. Please take a look at the provider documentation to ensure it should be settable. */ readonly id?: string; /** * The instance to create the database on. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/spanner_database#instance SpannerDatabase#instance} */ readonly instance: string; /** * A unique identifier for the database, which cannot be changed after the * instance is created. Values are of the form '[a-z][-_a-z0-9]*[a-z0-9]'. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/spanner_database#name SpannerDatabase#name} */ readonly name: string; /** * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/spanner_database#project SpannerDatabase#project} */ readonly project?: string; /** * The retention period for the database. The retention period must be between 1 hour * and 7 days, and can be specified in days, hours, minutes, or seconds. For example, * the values 1d, 24h, 1440m, and 86400s are equivalent. Default value is 1h. * If this property is used, you must avoid adding new DDL statements to 'ddl' that * update the database's version_retention_period. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/spanner_database#version_retention_period SpannerDatabase#version_retention_period} */ readonly versionRetentionPeriod?: string; /** * encryption_config block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/spanner_database#encryption_config SpannerDatabase#encryption_config} */ readonly encryptionConfig?: SpannerDatabaseEncryptionConfig; /** * timeouts block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/spanner_database#timeouts SpannerDatabase#timeouts} */ readonly timeouts?: SpannerDatabaseTimeouts; } export interface SpannerDatabaseEncryptionConfig { /** * Fully qualified name of the KMS key to use to encrypt this database. This key must exist * in the same location as the Spanner Database. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/spanner_database#kms_key_name SpannerDatabase#kms_key_name} */ readonly kmsKeyName?: string; /** * Fully qualified name of the KMS keys to use to encrypt this database. The keys must exist * in the same locations as the Spanner Database. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/spanner_database#kms_key_names SpannerDatabase#kms_key_names} */ readonly kmsKeyNames?: string[]; } export declare function spannerDatabaseEncryptionConfigToTerraform(struct?: SpannerDatabaseEncryptionConfigOutputReference | SpannerDatabaseEncryptionConfig): any; export declare function spannerDatabaseEncryptionConfigToHclTerraform(struct?: SpannerDatabaseEncryptionConfigOutputReference | SpannerDatabaseEncryptionConfig): any; export declare class SpannerDatabaseEncryptionConfigOutputReference extends cdktf.ComplexObject { private isEmptyObject; /** * @param terraformResource The parent resource * @param terraformAttribute The attribute on the parent resource this class is referencing */ constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string); get internalValue(): SpannerDatabaseEncryptionConfig | undefined; set internalValue(value: SpannerDatabaseEncryptionConfig | undefined); private _kmsKeyName?; get kmsKeyName(): string; set kmsKeyName(value: string); resetKmsKeyName(): void; get kmsKeyNameInput(): string | undefined; private _kmsKeyNames?; get kmsKeyNames(): string[]; set kmsKeyNames(value: string[]); resetKmsKeyNames(): void; get kmsKeyNamesInput(): string[] | undefined; } export interface SpannerDatabaseTimeouts { /** * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/spanner_database#create SpannerDatabase#create} */ readonly create?: string; /** * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/spanner_database#delete SpannerDatabase#delete} */ readonly delete?: string; /** * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/spanner_database#update SpannerDatabase#update} */ readonly update?: string; } export declare function spannerDatabaseTimeoutsToTerraform(struct?: SpannerDatabaseTimeouts | cdktf.IResolvable): any; export declare function spannerDatabaseTimeoutsToHclTerraform(struct?: SpannerDatabaseTimeouts | cdktf.IResolvable): any; export declare class SpannerDatabaseTimeoutsOutputReference extends cdktf.ComplexObject { private isEmptyObject; private resolvableValue?; /** * @param terraformResource The parent resource * @param terraformAttribute The attribute on the parent resource this class is referencing */ constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string); get internalValue(): SpannerDatabaseTimeouts | cdktf.IResolvable | undefined; set internalValue(value: SpannerDatabaseTimeouts | cdktf.IResolvable | undefined); private _create?; get create(): string; set create(value: string); resetCreate(): void; get createInput(): string | undefined; private _delete?; get delete(): string; set delete(value: string); resetDelete(): void; get deleteInput(): string | undefined; private _update?; get update(): string; set update(value: string); resetUpdate(): void; get updateInput(): string | undefined; } /** * Represents a {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/spanner_database google_spanner_database} */ export declare class SpannerDatabase extends cdktf.TerraformResource { static readonly tfResourceType = "google_spanner_database"; /** * Generates CDKTF code for importing a SpannerDatabase resource upon running "cdktf plan <stack-name>" * @param scope The scope in which to define this construct * @param importToId The construct id used in the generated config for the SpannerDatabase to import * @param importFromId The id of the existing SpannerDatabase that should be imported. Refer to the {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/spanner_database#import import section} in the documentation of this resource for the id to use * @param provider? Optional instance of the provider where the SpannerDatabase to import is found */ static generateConfigForImport(scope: Construct, importToId: string, importFromId: string, provider?: cdktf.TerraformProvider): cdktf.ImportableResource; /** * Create a new {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/spanner_database google_spanner_database} Resource * * @param scope The scope in which to define this construct * @param id The scoped construct ID. Must be unique amongst siblings in the same scope * @param options SpannerDatabaseConfig */ constructor(scope: Construct, id: string, config: SpannerDatabaseConfig); private _databaseDialect?; get databaseDialect(): string; set databaseDialect(value: string); resetDatabaseDialect(): void; get databaseDialectInput(): string | undefined; private _ddl?; get ddl(): string[]; set ddl(value: string[]); resetDdl(): void; get ddlInput(): string[] | undefined; private _deletionProtection?; get deletionProtection(): boolean | cdktf.IResolvable; set deletionProtection(value: boolean | cdktf.IResolvable); resetDeletionProtection(): void; get deletionProtectionInput(): boolean | cdktf.IResolvable | undefined; private _enableDropProtection?; get enableDropProtection(): boolean | cdktf.IResolvable; set enableDropProtection(value: boolean | cdktf.IResolvable); resetEnableDropProtection(): void; get enableDropProtectionInput(): boolean | cdktf.IResolvable | undefined; private _id?; get id(): string; set id(value: string); resetId(): void; get idInput(): string | undefined; private _instance?; get instance(): string; set instance(value: string); get instanceInput(): string | undefined; private _name?; get name(): string; set name(value: string); get nameInput(): string | undefined; private _project?; get project(): string; set project(value: string); resetProject(): void; get projectInput(): string | undefined; get state(): string; private _versionRetentionPeriod?; get versionRetentionPeriod(): string; set versionRetentionPeriod(value: string); resetVersionRetentionPeriod(): void; get versionRetentionPeriodInput(): string | undefined; private _encryptionConfig; get encryptionConfig(): SpannerDatabaseEncryptionConfigOutputReference; putEncryptionConfig(value: SpannerDatabaseEncryptionConfig): void; resetEncryptionConfig(): void; get encryptionConfigInput(): SpannerDatabaseEncryptionConfig | undefined; private _timeouts; get timeouts(): SpannerDatabaseTimeoutsOutputReference; putTimeouts(value: SpannerDatabaseTimeouts): void; resetTimeouts(): void; get timeoutsInput(): cdktf.IResolvable | SpannerDatabaseTimeouts | undefined; protected synthesizeAttributes(): { [name: string]: any; }; protected synthesizeHclAttributes(): { [name: string]: any; }; }