/**
 * Copyright (c) HashiCorp, Inc.
 * SPDX-License-Identifier: MPL-2.0
 */
import { Construct } from 'constructs';
import * as cdktf from 'cdktf';
export interface SecretManagerSecretConfig extends cdktf.TerraformMetaArguments {
    /**
    * Custom metadata about the secret.
    *
    * Annotations are distinct from various forms of labels. Annotations exist to allow
    * client tools to store their own state information without requiring a database.
    *
    * Annotation keys must be between 1 and 63 characters long, have a UTF-8 encoding of
    * maximum 128 bytes, begin and end with an alphanumeric character ([a-z0-9A-Z]), and
    * may have dashes (-), underscores (_), dots (.), and alphanumerics in between these
    * symbols.
    *
    * The total size of annotation keys and values must be less than 16KiB.
    *
    * An object containing a list of "key": value pairs. Example:
    * { "name": "wrench", "mass": "1.3kg", "count": "3" }.
    *
    *
    * **Note**: This field is non-authoritative, and will only manage the annotations present in your configuration.
    * Please refer to the field 'effective_annotations' for all of the annotations present on the resource.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/secret_manager_secret#annotations SecretManagerSecret#annotations}
    */
    readonly annotations?: {
        [key: string]: string;
    };
    /**
    * Whether Terraform will be prevented from destroying the secret. Defaults to false.
    * When the field is set to true in Terraform state, a 'terraform apply'
    * or 'terraform destroy' that would delete the secret will fail.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/secret_manager_secret#deletion_protection SecretManagerSecret#deletion_protection}
    */
    readonly deletionProtection?: boolean | cdktf.IResolvable;
    /**
    * Timestamp in UTC when the Secret is scheduled to expire. This is always provided on output, regardless of what was sent on input.
    * A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits. Examples: "2014-10-02T15:01:23Z" and "2014-10-02T15:01:23.045123456Z".
    * Only one of 'expire_time' or 'ttl' can be provided.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/secret_manager_secret#expire_time SecretManagerSecret#expire_time}
    */
    readonly expireTime?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/secret_manager_secret#id SecretManagerSecret#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 labels assigned to this Secret.
    *
    * Label keys must be between 1 and 63 characters long, have a UTF-8 encoding of maximum 128 bytes,
    * and must conform to the following PCRE regular expression: [\p{Ll}\p{Lo}][\p{Ll}\p{Lo}\p{N}_-]{0,62}
    *
    * Label values must be between 0 and 63 characters long, have a UTF-8 encoding of maximum 128 bytes,
    * and must conform to the following PCRE regular expression: [\p{Ll}\p{Lo}\p{N}_-]{0,63}
    *
    * No more than 64 labels can be assigned to a given resource.
    *
    * An object containing a list of "key": value pairs. Example:
    * { "name": "wrench", "mass": "1.3kg", "count": "3" }.
    *
    *
    * **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
    * Please refer to the field 'effective_labels' for all of the labels present on the resource.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/secret_manager_secret#labels SecretManagerSecret#labels}
    */
    readonly labels?: {
        [key: string]: string;
    };
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/secret_manager_secret#project SecretManagerSecret#project}
    */
    readonly project?: string;
    /**
    * This must be unique within the project.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/secret_manager_secret#secret_id SecretManagerSecret#secret_id}
    */
    readonly secretId: string;
    /**
    * A map of resource manager tags.
    * Resource manager tag keys and values have the same definition as resource manager tags.
    * Keys must be in the format tagKeys/{tag_key_id}, and values are in the format tagValues/{tag_value_id}.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/secret_manager_secret#tags SecretManagerSecret#tags}
    */
    readonly tags?: {
        [key: string]: string;
    };
    /**
    * The TTL for the Secret.
    * A duration in seconds with up to nine fractional digits, terminated by 's'. Example: "3.5s".
    * Only one of 'ttl' or 'expire_time' can be provided.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/secret_manager_secret#ttl SecretManagerSecret#ttl}
    */
    readonly ttl?: string;
    /**
    * Mapping from version alias to version name.
    *
    * A version alias is a string with a maximum length of 63 characters and can contain
    * uppercase and lowercase letters, numerals, and the hyphen (-) and underscore ('_')
    * characters. An alias string must start with a letter and cannot be the string
    * 'latest' or 'NEW'. No more than 50 aliases can be assigned to a given secret.
    *
    * An object containing a list of "key": value pairs. Example:
    * { "name": "wrench", "mass": "1.3kg", "count": "3" }.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/secret_manager_secret#version_aliases SecretManagerSecret#version_aliases}
    */
    readonly versionAliases?: {
        [key: string]: string;
    };
    /**
    * Secret Version TTL after destruction request.
    * This is a part of the delayed delete feature on Secret Version.
    * For secret with versionDestroyTtl>0, version destruction doesn't happen immediately
    * on calling destroy instead the version goes to a disabled state and
    * the actual destruction happens after this TTL expires.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/secret_manager_secret#version_destroy_ttl SecretManagerSecret#version_destroy_ttl}
    */
    readonly versionDestroyTtl?: string;
    /**
    * replication block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/secret_manager_secret#replication SecretManagerSecret#replication}
    */
    readonly replication: SecretManagerSecretReplication;
    /**
    * rotation block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/secret_manager_secret#rotation SecretManagerSecret#rotation}
    */
    readonly rotation?: SecretManagerSecretRotation;
    /**
    * timeouts block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/secret_manager_secret#timeouts SecretManagerSecret#timeouts}
    */
    readonly timeouts?: SecretManagerSecretTimeouts;
    /**
    * topics block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/secret_manager_secret#topics SecretManagerSecret#topics}
    */
    readonly topics?: SecretManagerSecretTopics[] | cdktf.IResolvable;
}
export interface SecretManagerSecretReplicationAutoCustomerManagedEncryption {
    /**
    * The resource name of the Cloud KMS CryptoKey used to encrypt secret payloads.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/secret_manager_secret#kms_key_name SecretManagerSecret#kms_key_name}
    */
    readonly kmsKeyName: string;
}
export declare function secretManagerSecretReplicationAutoCustomerManagedEncryptionToTerraform(struct?: SecretManagerSecretReplicationAutoCustomerManagedEncryptionOutputReference | SecretManagerSecretReplicationAutoCustomerManagedEncryption): any;
export declare function secretManagerSecretReplicationAutoCustomerManagedEncryptionToHclTerraform(struct?: SecretManagerSecretReplicationAutoCustomerManagedEncryptionOutputReference | SecretManagerSecretReplicationAutoCustomerManagedEncryption): any;
export declare class SecretManagerSecretReplicationAutoCustomerManagedEncryptionOutputReference 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(): SecretManagerSecretReplicationAutoCustomerManagedEncryption | undefined;
    set internalValue(value: SecretManagerSecretReplicationAutoCustomerManagedEncryption | undefined);
    private _kmsKeyName?;
    get kmsKeyName(): string;
    set kmsKeyName(value: string);
    get kmsKeyNameInput(): string | undefined;
}
export interface SecretManagerSecretReplicationAuto {
    /**
    * customer_managed_encryption block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/secret_manager_secret#customer_managed_encryption SecretManagerSecret#customer_managed_encryption}
    */
    readonly customerManagedEncryption?: SecretManagerSecretReplicationAutoCustomerManagedEncryption;
}
export declare function secretManagerSecretReplicationAutoToTerraform(struct?: SecretManagerSecretReplicationAutoOutputReference | SecretManagerSecretReplicationAuto): any;
export declare function secretManagerSecretReplicationAutoToHclTerraform(struct?: SecretManagerSecretReplicationAutoOutputReference | SecretManagerSecretReplicationAuto): any;
export declare class SecretManagerSecretReplicationAutoOutputReference 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(): SecretManagerSecretReplicationAuto | undefined;
    set internalValue(value: SecretManagerSecretReplicationAuto | undefined);
    private _customerManagedEncryption;
    get customerManagedEncryption(): SecretManagerSecretReplicationAutoCustomerManagedEncryptionOutputReference;
    putCustomerManagedEncryption(value: SecretManagerSecretReplicationAutoCustomerManagedEncryption): void;
    resetCustomerManagedEncryption(): void;
    get customerManagedEncryptionInput(): SecretManagerSecretReplicationAutoCustomerManagedEncryption | undefined;
}
export interface SecretManagerSecretReplicationUserManagedReplicasCustomerManagedEncryption {
    /**
    * Describes the Cloud KMS encryption key that will be used to protect destination secret.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/secret_manager_secret#kms_key_name SecretManagerSecret#kms_key_name}
    */
    readonly kmsKeyName: string;
}
export declare function secretManagerSecretReplicationUserManagedReplicasCustomerManagedEncryptionToTerraform(struct?: SecretManagerSecretReplicationUserManagedReplicasCustomerManagedEncryptionOutputReference | SecretManagerSecretReplicationUserManagedReplicasCustomerManagedEncryption): any;
export declare function secretManagerSecretReplicationUserManagedReplicasCustomerManagedEncryptionToHclTerraform(struct?: SecretManagerSecretReplicationUserManagedReplicasCustomerManagedEncryptionOutputReference | SecretManagerSecretReplicationUserManagedReplicasCustomerManagedEncryption): any;
export declare class SecretManagerSecretReplicationUserManagedReplicasCustomerManagedEncryptionOutputReference 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(): SecretManagerSecretReplicationUserManagedReplicasCustomerManagedEncryption | undefined;
    set internalValue(value: SecretManagerSecretReplicationUserManagedReplicasCustomerManagedEncryption | undefined);
    private _kmsKeyName?;
    get kmsKeyName(): string;
    set kmsKeyName(value: string);
    get kmsKeyNameInput(): string | undefined;
}
export interface SecretManagerSecretReplicationUserManagedReplicas {
    /**
    * The canonical IDs of the location to replicate data. For example: "us-east1".
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/secret_manager_secret#location SecretManagerSecret#location}
    */
    readonly location: string;
    /**
    * customer_managed_encryption block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/secret_manager_secret#customer_managed_encryption SecretManagerSecret#customer_managed_encryption}
    */
    readonly customerManagedEncryption?: SecretManagerSecretReplicationUserManagedReplicasCustomerManagedEncryption;
}
export declare function secretManagerSecretReplicationUserManagedReplicasToTerraform(struct?: SecretManagerSecretReplicationUserManagedReplicas | cdktf.IResolvable): any;
export declare function secretManagerSecretReplicationUserManagedReplicasToHclTerraform(struct?: SecretManagerSecretReplicationUserManagedReplicas | cdktf.IResolvable): any;
export declare class SecretManagerSecretReplicationUserManagedReplicasOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    private resolvableValue?;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param complexObjectIndex the index of this item in the list
    * @param complexObjectIsFromSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, complexObjectIndex: number, complexObjectIsFromSet: boolean);
    get internalValue(): SecretManagerSecretReplicationUserManagedReplicas | cdktf.IResolvable | undefined;
    set internalValue(value: SecretManagerSecretReplicationUserManagedReplicas | cdktf.IResolvable | undefined);
    private _location?;
    get location(): string;
    set location(value: string);
    get locationInput(): string | undefined;
    private _customerManagedEncryption;
    get customerManagedEncryption(): SecretManagerSecretReplicationUserManagedReplicasCustomerManagedEncryptionOutputReference;
    putCustomerManagedEncryption(value: SecretManagerSecretReplicationUserManagedReplicasCustomerManagedEncryption): void;
    resetCustomerManagedEncryption(): void;
    get customerManagedEncryptionInput(): SecretManagerSecretReplicationUserManagedReplicasCustomerManagedEncryption | undefined;
}
export declare class SecretManagerSecretReplicationUserManagedReplicasList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: SecretManagerSecretReplicationUserManagedReplicas[] | cdktf.IResolvable;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param wrapsSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, wrapsSet: boolean);
    /**
    * @param index the index of the item to return
    */
    get(index: number): SecretManagerSecretReplicationUserManagedReplicasOutputReference;
}
export interface SecretManagerSecretReplicationUserManaged {
    /**
    * replicas block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/secret_manager_secret#replicas SecretManagerSecret#replicas}
    */
    readonly replicas: SecretManagerSecretReplicationUserManagedReplicas[] | cdktf.IResolvable;
}
export declare function secretManagerSecretReplicationUserManagedToTerraform(struct?: SecretManagerSecretReplicationUserManagedOutputReference | SecretManagerSecretReplicationUserManaged): any;
export declare function secretManagerSecretReplicationUserManagedToHclTerraform(struct?: SecretManagerSecretReplicationUserManagedOutputReference | SecretManagerSecretReplicationUserManaged): any;
export declare class SecretManagerSecretReplicationUserManagedOutputReference 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(): SecretManagerSecretReplicationUserManaged | undefined;
    set internalValue(value: SecretManagerSecretReplicationUserManaged | undefined);
    private _replicas;
    get replicas(): SecretManagerSecretReplicationUserManagedReplicasList;
    putReplicas(value: SecretManagerSecretReplicationUserManagedReplicas[] | cdktf.IResolvable): void;
    get replicasInput(): cdktf.IResolvable | SecretManagerSecretReplicationUserManagedReplicas[] | undefined;
}
export interface SecretManagerSecretReplication {
    /**
    * auto block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/secret_manager_secret#auto SecretManagerSecret#auto}
    */
    readonly auto?: SecretManagerSecretReplicationAuto;
    /**
    * user_managed block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/secret_manager_secret#user_managed SecretManagerSecret#user_managed}
    */
    readonly userManaged?: SecretManagerSecretReplicationUserManaged;
}
export declare function secretManagerSecretReplicationToTerraform(struct?: SecretManagerSecretReplicationOutputReference | SecretManagerSecretReplication): any;
export declare function secretManagerSecretReplicationToHclTerraform(struct?: SecretManagerSecretReplicationOutputReference | SecretManagerSecretReplication): any;
export declare class SecretManagerSecretReplicationOutputReference 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(): SecretManagerSecretReplication | undefined;
    set internalValue(value: SecretManagerSecretReplication | undefined);
    private _auto;
    get auto(): SecretManagerSecretReplicationAutoOutputReference;
    putAuto(value: SecretManagerSecretReplicationAuto): void;
    resetAuto(): void;
    get autoInput(): SecretManagerSecretReplicationAuto | undefined;
    private _userManaged;
    get userManaged(): SecretManagerSecretReplicationUserManagedOutputReference;
    putUserManaged(value: SecretManagerSecretReplicationUserManaged): void;
    resetUserManaged(): void;
    get userManagedInput(): SecretManagerSecretReplicationUserManaged | undefined;
}
export interface SecretManagerSecretRotation {
    /**
    * Timestamp in UTC at which the Secret is scheduled to rotate.
    * A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits. Examples: "2014-10-02T15:01:23Z" and "2014-10-02T15:01:23.045123456Z".
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/secret_manager_secret#next_rotation_time SecretManagerSecret#next_rotation_time}
    */
    readonly nextRotationTime?: string;
    /**
    * The Duration between rotation notifications. Must be in seconds and at least 3600s (1h) and at most 3153600000s (100 years).
    * If rotationPeriod is set, 'next_rotation_time' must be set. 'next_rotation_time' will be advanced by this period when the service automatically sends rotation notifications.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/secret_manager_secret#rotation_period SecretManagerSecret#rotation_period}
    */
    readonly rotationPeriod?: string;
}
export declare function secretManagerSecretRotationToTerraform(struct?: SecretManagerSecretRotationOutputReference | SecretManagerSecretRotation): any;
export declare function secretManagerSecretRotationToHclTerraform(struct?: SecretManagerSecretRotationOutputReference | SecretManagerSecretRotation): any;
export declare class SecretManagerSecretRotationOutputReference 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(): SecretManagerSecretRotation | undefined;
    set internalValue(value: SecretManagerSecretRotation | undefined);
    private _nextRotationTime?;
    get nextRotationTime(): string;
    set nextRotationTime(value: string);
    resetNextRotationTime(): void;
    get nextRotationTimeInput(): string | undefined;
    private _rotationPeriod?;
    get rotationPeriod(): string;
    set rotationPeriod(value: string);
    resetRotationPeriod(): void;
    get rotationPeriodInput(): string | undefined;
}
export interface SecretManagerSecretTimeouts {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/secret_manager_secret#create SecretManagerSecret#create}
    */
    readonly create?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/secret_manager_secret#delete SecretManagerSecret#delete}
    */
    readonly delete?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/secret_manager_secret#update SecretManagerSecret#update}
    */
    readonly update?: string;
}
export declare function secretManagerSecretTimeoutsToTerraform(struct?: SecretManagerSecretTimeouts | cdktf.IResolvable): any;
export declare function secretManagerSecretTimeoutsToHclTerraform(struct?: SecretManagerSecretTimeouts | cdktf.IResolvable): any;
export declare class SecretManagerSecretTimeoutsOutputReference 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(): SecretManagerSecretTimeouts | cdktf.IResolvable | undefined;
    set internalValue(value: SecretManagerSecretTimeouts | 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;
}
export interface SecretManagerSecretTopics {
    /**
    * The resource name of the Pub/Sub topic that will be published to, in the following format: projects/* /topics/*.
    * For publication to succeed, the Secret Manager Service Agent service account must have pubsub.publisher permissions on the topic.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/secret_manager_secret#name SecretManagerSecret#name}
     *
    * Note: The above comment contained a comment block ending sequence (* followed by /). We have introduced a space between to prevent syntax errors. Please ignore the space.
    */
    readonly name: string;
}
export declare function secretManagerSecretTopicsToTerraform(struct?: SecretManagerSecretTopics | cdktf.IResolvable): any;
export declare function secretManagerSecretTopicsToHclTerraform(struct?: SecretManagerSecretTopics | cdktf.IResolvable): any;
export declare class SecretManagerSecretTopicsOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    private resolvableValue?;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param complexObjectIndex the index of this item in the list
    * @param complexObjectIsFromSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, complexObjectIndex: number, complexObjectIsFromSet: boolean);
    get internalValue(): SecretManagerSecretTopics | cdktf.IResolvable | undefined;
    set internalValue(value: SecretManagerSecretTopics | cdktf.IResolvable | undefined);
    private _name?;
    get name(): string;
    set name(value: string);
    get nameInput(): string | undefined;
}
export declare class SecretManagerSecretTopicsList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: SecretManagerSecretTopics[] | cdktf.IResolvable;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param wrapsSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, wrapsSet: boolean);
    /**
    * @param index the index of the item to return
    */
    get(index: number): SecretManagerSecretTopicsOutputReference;
}
/**
* Represents a {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/secret_manager_secret google_secret_manager_secret}
*/
export declare class SecretManagerSecret extends cdktf.TerraformResource {
    static readonly tfResourceType = "google_secret_manager_secret";
    /**
    * Generates CDKTF code for importing a SecretManagerSecret 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 SecretManagerSecret to import
    * @param importFromId The id of the existing SecretManagerSecret that should be imported. Refer to the {@link https://registry.terraform.io/providers/hashicorp/google/6.50.0/docs/resources/secret_manager_secret#import import section} in the documentation of this resource for the id to use
    * @param provider? Optional instance of the provider where the SecretManagerSecret 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.50.0/docs/resources/secret_manager_secret google_secret_manager_secret} 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 SecretManagerSecretConfig
    */
    constructor(scope: Construct, id: string, config: SecretManagerSecretConfig);
    private _annotations?;
    get annotations(): {
        [key: string]: string;
    };
    set annotations(value: {
        [key: string]: string;
    });
    resetAnnotations(): void;
    get annotationsInput(): {
        [key: string]: string;
    } | undefined;
    get createTime(): string;
    private _deletionProtection?;
    get deletionProtection(): boolean | cdktf.IResolvable;
    set deletionProtection(value: boolean | cdktf.IResolvable);
    resetDeletionProtection(): void;
    get deletionProtectionInput(): boolean | cdktf.IResolvable | undefined;
    private _effectiveAnnotations;
    get effectiveAnnotations(): cdktf.StringMap;
    private _effectiveLabels;
    get effectiveLabels(): cdktf.StringMap;
    private _expireTime?;
    get expireTime(): string;
    set expireTime(value: string);
    resetExpireTime(): void;
    get expireTimeInput(): string | undefined;
    private _id?;
    get id(): string;
    set id(value: string);
    resetId(): void;
    get idInput(): string | undefined;
    private _labels?;
    get labels(): {
        [key: string]: string;
    };
    set labels(value: {
        [key: string]: string;
    });
    resetLabels(): void;
    get labelsInput(): {
        [key: string]: string;
    } | undefined;
    get name(): string;
    private _project?;
    get project(): string;
    set project(value: string);
    resetProject(): void;
    get projectInput(): string | undefined;
    private _secretId?;
    get secretId(): string;
    set secretId(value: string);
    get secretIdInput(): string | undefined;
    private _tags?;
    get tags(): {
        [key: string]: string;
    };
    set tags(value: {
        [key: string]: string;
    });
    resetTags(): void;
    get tagsInput(): {
        [key: string]: string;
    } | undefined;
    private _terraformLabels;
    get terraformLabels(): cdktf.StringMap;
    private _ttl?;
    get ttl(): string;
    set ttl(value: string);
    resetTtl(): void;
    get ttlInput(): string | undefined;
    private _versionAliases?;
    get versionAliases(): {
        [key: string]: string;
    };
    set versionAliases(value: {
        [key: string]: string;
    });
    resetVersionAliases(): void;
    get versionAliasesInput(): {
        [key: string]: string;
    } | undefined;
    private _versionDestroyTtl?;
    get versionDestroyTtl(): string;
    set versionDestroyTtl(value: string);
    resetVersionDestroyTtl(): void;
    get versionDestroyTtlInput(): string | undefined;
    private _replication;
    get replication(): SecretManagerSecretReplicationOutputReference;
    putReplication(value: SecretManagerSecretReplication): void;
    get replicationInput(): SecretManagerSecretReplication | undefined;
    private _rotation;
    get rotation(): SecretManagerSecretRotationOutputReference;
    putRotation(value: SecretManagerSecretRotation): void;
    resetRotation(): void;
    get rotationInput(): SecretManagerSecretRotation | undefined;
    private _timeouts;
    get timeouts(): SecretManagerSecretTimeoutsOutputReference;
    putTimeouts(value: SecretManagerSecretTimeouts): void;
    resetTimeouts(): void;
    get timeoutsInput(): cdktf.IResolvable | SecretManagerSecretTimeouts | undefined;
    private _topics;
    get topics(): SecretManagerSecretTopicsList;
    putTopics(value: SecretManagerSecretTopics[] | cdktf.IResolvable): void;
    resetTopics(): void;
    get topicsInput(): cdktf.IResolvable | SecretManagerSecretTopics[] | undefined;
    protected synthesizeAttributes(): {
        [name: string]: any;
    };
    protected synthesizeHclAttributes(): {
        [name: string]: any;
    };
}
