@cdktf/provider-google
Version:
Prebuilt google Provider for Terraform CDK (cdktf)
270 lines (269 loc) • 14.5 kB
TypeScript
/**
* Copyright (c) HashiCorp, Inc.
* SPDX-License-Identifier: MPL-2.0
*/
import { Construct } from 'constructs';
import * as cdktf from 'cdktf';
export interface FirestoreDatabaseConfig extends cdktf.TerraformMetaArguments {
/**
* The App Engine integration mode to use for this database. Possible values: ["ENABLED", "DISABLED"]
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/firestore_database#app_engine_integration_mode FirestoreDatabase#app_engine_integration_mode}
*/
readonly appEngineIntegrationMode?: string;
/**
* The concurrency control mode to use for this database. Possible values: ["OPTIMISTIC", "PESSIMISTIC", "OPTIMISTIC_WITH_ENTITY_GROUPS"]
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/firestore_database#concurrency_mode FirestoreDatabase#concurrency_mode}
*/
readonly concurrencyMode?: string;
/**
* State of delete protection for the database.
* When delete protection is enabled, this database cannot be deleted.
* The default value is 'DELETE_PROTECTION_STATE_UNSPECIFIED', which is currently equivalent to 'DELETE_PROTECTION_DISABLED'.
* **Note:** Additionally, to delete this database using 'terraform destroy', 'deletion_policy' must be set to 'DELETE'. Possible values: ["DELETE_PROTECTION_STATE_UNSPECIFIED", "DELETE_PROTECTION_ENABLED", "DELETE_PROTECTION_DISABLED"]
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/firestore_database#delete_protection_state FirestoreDatabase#delete_protection_state}
*/
readonly deleteProtectionState?: string;
/**
* Deletion behavior for this database.
* If the deletion policy is 'ABANDON', the database will be removed from Terraform state but not deleted from Google Cloud upon destruction.
* If the deletion policy is 'DELETE', the database will both be removed from Terraform state and deleted from Google Cloud upon destruction.
* The default value is 'ABANDON'.
* See also 'delete_protection'.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/firestore_database#deletion_policy FirestoreDatabase#deletion_policy}
*/
readonly deletionPolicy?: string;
/**
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/firestore_database#id FirestoreDatabase#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 location of the database. Available locations are listed at
* https://cloud.google.com/firestore/docs/locations.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/firestore_database#location_id FirestoreDatabase#location_id}
*/
readonly locationId: string;
/**
* The ID to use for the database, which will become the final
* component of the database's resource name. This value should be 4-63
* characters. Valid characters are /[a-z][0-9]-/ with first character
* a letter and the last a letter or a number. Must not be
* UUID-like /[0-9a-f]{8}(-[0-9a-f]{4}){3}-[0-9a-f]{12}/.
* "(default)" database id is also valid.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/firestore_database#name FirestoreDatabase#name}
*/
readonly name: string;
/**
* Whether to enable the PITR feature on this database.
* If 'POINT_IN_TIME_RECOVERY_ENABLED' is selected, reads are supported on selected versions of the data from within the past 7 days.
* versionRetentionPeriod and earliestVersionTime can be used to determine the supported versions. These include reads against any timestamp within the past hour
* and reads against 1-minute snapshots beyond 1 hour and within 7 days.
* If 'POINT_IN_TIME_RECOVERY_DISABLED' is selected, reads are supported on any version of the data from within the past 1 hour. Default value: "POINT_IN_TIME_RECOVERY_DISABLED" Possible values: ["POINT_IN_TIME_RECOVERY_ENABLED", "POINT_IN_TIME_RECOVERY_DISABLED"]
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/firestore_database#point_in_time_recovery_enablement FirestoreDatabase#point_in_time_recovery_enablement}
*/
readonly pointInTimeRecoveryEnablement?: string;
/**
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/firestore_database#project FirestoreDatabase#project}
*/
readonly project?: string;
/**
* The type of the database.
* See https://cloud.google.com/datastore/docs/firestore-or-datastore
* for information about how to choose. Possible values: ["FIRESTORE_NATIVE", "DATASTORE_MODE"]
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/firestore_database#type FirestoreDatabase#type}
*/
readonly type: string;
/**
* cmek_config block
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/firestore_database#cmek_config FirestoreDatabase#cmek_config}
*/
readonly cmekConfig?: FirestoreDatabaseCmekConfig;
/**
* timeouts block
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/firestore_database#timeouts FirestoreDatabase#timeouts}
*/
readonly timeouts?: FirestoreDatabaseTimeouts;
}
export interface FirestoreDatabaseCmekConfig {
/**
* The resource ID of a Cloud KMS key. If set, the database created will
* be a Customer-managed Encryption Key (CMEK) database encrypted with
* this key. This feature is allowlist only in initial launch.
*
* Only keys in the same location as this database are allowed to be used
* for encryption. For Firestore's nam5 multi-region, this corresponds to Cloud KMS
* multi-region us. For Firestore's eur3 multi-region, this corresponds to
* Cloud KMS multi-region europe. See https://cloud.google.com/kms/docs/locations.
*
* This value should be the KMS key resource ID in the format of
* 'projects/{project_id}/locations/{kms_location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}'.
* How to retrive this resource ID is listed at
* https://cloud.google.com/kms/docs/getting-resource-ids#getting_the_id_for_a_key_and_version.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/firestore_database#kms_key_name FirestoreDatabase#kms_key_name}
*/
readonly kmsKeyName: string;
}
export declare function firestoreDatabaseCmekConfigToTerraform(struct?: FirestoreDatabaseCmekConfigOutputReference | FirestoreDatabaseCmekConfig): any;
export declare function firestoreDatabaseCmekConfigToHclTerraform(struct?: FirestoreDatabaseCmekConfigOutputReference | FirestoreDatabaseCmekConfig): any;
export declare class FirestoreDatabaseCmekConfigOutputReference 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(): FirestoreDatabaseCmekConfig | undefined;
set internalValue(value: FirestoreDatabaseCmekConfig | undefined);
get activeKeyVersion(): string[];
private _kmsKeyName?;
get kmsKeyName(): string;
set kmsKeyName(value: string);
get kmsKeyNameInput(): string | undefined;
}
export interface FirestoreDatabaseTimeouts {
/**
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/firestore_database#create FirestoreDatabase#create}
*/
readonly create?: string;
/**
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/firestore_database#delete FirestoreDatabase#delete}
*/
readonly delete?: string;
/**
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/firestore_database#update FirestoreDatabase#update}
*/
readonly update?: string;
}
export declare function firestoreDatabaseTimeoutsToTerraform(struct?: FirestoreDatabaseTimeouts | cdktf.IResolvable): any;
export declare function firestoreDatabaseTimeoutsToHclTerraform(struct?: FirestoreDatabaseTimeouts | cdktf.IResolvable): any;
export declare class FirestoreDatabaseTimeoutsOutputReference 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(): FirestoreDatabaseTimeouts | cdktf.IResolvable | undefined;
set internalValue(value: FirestoreDatabaseTimeouts | 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/firestore_database google_firestore_database}
*/
export declare class FirestoreDatabase extends cdktf.TerraformResource {
static readonly tfResourceType = "google_firestore_database";
/**
* Generates CDKTF code for importing a FirestoreDatabase 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 FirestoreDatabase to import
* @param importFromId The id of the existing FirestoreDatabase that should be imported. Refer to the {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/firestore_database#import import section} in the documentation of this resource for the id to use
* @param provider? Optional instance of the provider where the FirestoreDatabase 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/firestore_database google_firestore_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 FirestoreDatabaseConfig
*/
constructor(scope: Construct, id: string, config: FirestoreDatabaseConfig);
private _appEngineIntegrationMode?;
get appEngineIntegrationMode(): string;
set appEngineIntegrationMode(value: string);
resetAppEngineIntegrationMode(): void;
get appEngineIntegrationModeInput(): string | undefined;
private _concurrencyMode?;
get concurrencyMode(): string;
set concurrencyMode(value: string);
resetConcurrencyMode(): void;
get concurrencyModeInput(): string | undefined;
get createTime(): string;
private _deleteProtectionState?;
get deleteProtectionState(): string;
set deleteProtectionState(value: string);
resetDeleteProtectionState(): void;
get deleteProtectionStateInput(): string | undefined;
private _deletionPolicy?;
get deletionPolicy(): string;
set deletionPolicy(value: string);
resetDeletionPolicy(): void;
get deletionPolicyInput(): string | undefined;
get earliestVersionTime(): string;
get etag(): string;
private _id?;
get id(): string;
set id(value: string);
resetId(): void;
get idInput(): string | undefined;
get keyPrefix(): string;
private _locationId?;
get locationId(): string;
set locationId(value: string);
get locationIdInput(): string | undefined;
private _name?;
get name(): string;
set name(value: string);
get nameInput(): string | undefined;
private _pointInTimeRecoveryEnablement?;
get pointInTimeRecoveryEnablement(): string;
set pointInTimeRecoveryEnablement(value: string);
resetPointInTimeRecoveryEnablement(): void;
get pointInTimeRecoveryEnablementInput(): string | undefined;
private _project?;
get project(): string;
set project(value: string);
resetProject(): void;
get projectInput(): string | undefined;
private _type?;
get type(): string;
set type(value: string);
get typeInput(): string | undefined;
get uid(): string;
get updateTime(): string;
get versionRetentionPeriod(): string;
private _cmekConfig;
get cmekConfig(): FirestoreDatabaseCmekConfigOutputReference;
putCmekConfig(value: FirestoreDatabaseCmekConfig): void;
resetCmekConfig(): void;
get cmekConfigInput(): FirestoreDatabaseCmekConfig | undefined;
private _timeouts;
get timeouts(): FirestoreDatabaseTimeoutsOutputReference;
putTimeouts(value: FirestoreDatabaseTimeouts): void;
resetTimeouts(): void;
get timeoutsInput(): cdktf.IResolvable | FirestoreDatabaseTimeouts | undefined;
protected synthesizeAttributes(): {
[name: string]: any;
};
protected synthesizeHclAttributes(): {
[name: string]: any;
};
}