UNPKG

@cdktf/provider-google

Version:

Prebuilt google Provider for Terraform CDK (cdktf)

557 lines (556 loc) 31.5 kB
/** * Copyright (c) HashiCorp, Inc. * SPDX-License-Identifier: MPL-2.0 */ import { Construct } from 'constructs'; import * as cdktf from 'cdktf'; export interface PubsubTopicConfig extends cdktf.TerraformMetaArguments { /** * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/pubsub_topic#id PubsubTopic#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 resource name of the Cloud KMS CryptoKey to be used to protect access * to messages published on this topic. Your project's PubSub service account * ('service-{{PROJECT_NUMBER}}@gcp-sa-pubsub.iam.gserviceaccount.com') must have * 'roles/cloudkms.cryptoKeyEncrypterDecrypter' to use this feature. * The expected format is 'projects/* /locations/* /keyRings/* /cryptoKeys/*' * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/pubsub_topic#kms_key_name PubsubTopic#kms_key_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 kmsKeyName?: string; /** * A set of key/value label pairs to assign to this Topic. * * * **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.13.0/docs/resources/pubsub_topic#labels PubsubTopic#labels} */ readonly labels?: { [key: string]: string; }; /** * Indicates the minimum duration to retain a message after it is published * to the topic. If this field is set, messages published to the topic in * the last messageRetentionDuration are always available to subscribers. * For instance, it allows any attached subscription to seek to a timestamp * that is up to messageRetentionDuration in the past. If this field is not * set, message retention is controlled by settings on individual subscriptions. * The rotation period has the format of a decimal number, followed by the * letter 's' (seconds). Cannot be more than 31 days or less than 10 minutes. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/pubsub_topic#message_retention_duration PubsubTopic#message_retention_duration} */ readonly messageRetentionDuration?: string; /** * Name of the topic. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/pubsub_topic#name PubsubTopic#name} */ readonly name: string; /** * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/pubsub_topic#project PubsubTopic#project} */ readonly project?: string; /** * ingestion_data_source_settings block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/pubsub_topic#ingestion_data_source_settings PubsubTopic#ingestion_data_source_settings} */ readonly ingestionDataSourceSettings?: PubsubTopicIngestionDataSourceSettings; /** * message_storage_policy block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/pubsub_topic#message_storage_policy PubsubTopic#message_storage_policy} */ readonly messageStoragePolicy?: PubsubTopicMessageStoragePolicy; /** * schema_settings block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/pubsub_topic#schema_settings PubsubTopic#schema_settings} */ readonly schemaSettings?: PubsubTopicSchemaSettings; /** * timeouts block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/pubsub_topic#timeouts PubsubTopic#timeouts} */ readonly timeouts?: PubsubTopicTimeouts; } export interface PubsubTopicIngestionDataSourceSettingsAwsKinesis { /** * AWS role ARN to be used for Federated Identity authentication with * Kinesis. Check the Pub/Sub docs for how to set up this role and the * required permissions that need to be attached to it. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/pubsub_topic#aws_role_arn PubsubTopic#aws_role_arn} */ readonly awsRoleArn: string; /** * The Kinesis consumer ARN to used for ingestion in * Enhanced Fan-Out mode. The consumer must be already * created and ready to be used. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/pubsub_topic#consumer_arn PubsubTopic#consumer_arn} */ readonly consumerArn: string; /** * The GCP service account to be used for Federated Identity authentication * with Kinesis (via a 'AssumeRoleWithWebIdentity' call for the provided * role). The 'awsRoleArn' must be set up with 'accounts.google.com:sub' * equals to this service account number. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/pubsub_topic#gcp_service_account PubsubTopic#gcp_service_account} */ readonly gcpServiceAccount: string; /** * The Kinesis stream ARN to ingest data from. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/pubsub_topic#stream_arn PubsubTopic#stream_arn} */ readonly streamArn: string; } export declare function pubsubTopicIngestionDataSourceSettingsAwsKinesisToTerraform(struct?: PubsubTopicIngestionDataSourceSettingsAwsKinesisOutputReference | PubsubTopicIngestionDataSourceSettingsAwsKinesis): any; export declare function pubsubTopicIngestionDataSourceSettingsAwsKinesisToHclTerraform(struct?: PubsubTopicIngestionDataSourceSettingsAwsKinesisOutputReference | PubsubTopicIngestionDataSourceSettingsAwsKinesis): any; export declare class PubsubTopicIngestionDataSourceSettingsAwsKinesisOutputReference 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(): PubsubTopicIngestionDataSourceSettingsAwsKinesis | undefined; set internalValue(value: PubsubTopicIngestionDataSourceSettingsAwsKinesis | undefined); private _awsRoleArn?; get awsRoleArn(): string; set awsRoleArn(value: string); get awsRoleArnInput(): string | undefined; private _consumerArn?; get consumerArn(): string; set consumerArn(value: string); get consumerArnInput(): string | undefined; private _gcpServiceAccount?; get gcpServiceAccount(): string; set gcpServiceAccount(value: string); get gcpServiceAccountInput(): string | undefined; private _streamArn?; get streamArn(): string; set streamArn(value: string); get streamArnInput(): string | undefined; } export interface PubsubTopicIngestionDataSourceSettingsCloudStorageAvroFormat { } export declare function pubsubTopicIngestionDataSourceSettingsCloudStorageAvroFormatToTerraform(struct?: PubsubTopicIngestionDataSourceSettingsCloudStorageAvroFormatOutputReference | PubsubTopicIngestionDataSourceSettingsCloudStorageAvroFormat): any; export declare function pubsubTopicIngestionDataSourceSettingsCloudStorageAvroFormatToHclTerraform(struct?: PubsubTopicIngestionDataSourceSettingsCloudStorageAvroFormatOutputReference | PubsubTopicIngestionDataSourceSettingsCloudStorageAvroFormat): any; export declare class PubsubTopicIngestionDataSourceSettingsCloudStorageAvroFormatOutputReference 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(): PubsubTopicIngestionDataSourceSettingsCloudStorageAvroFormat | undefined; set internalValue(value: PubsubTopicIngestionDataSourceSettingsCloudStorageAvroFormat | undefined); } export interface PubsubTopicIngestionDataSourceSettingsCloudStoragePubsubAvroFormat { } export declare function pubsubTopicIngestionDataSourceSettingsCloudStoragePubsubAvroFormatToTerraform(struct?: PubsubTopicIngestionDataSourceSettingsCloudStoragePubsubAvroFormatOutputReference | PubsubTopicIngestionDataSourceSettingsCloudStoragePubsubAvroFormat): any; export declare function pubsubTopicIngestionDataSourceSettingsCloudStoragePubsubAvroFormatToHclTerraform(struct?: PubsubTopicIngestionDataSourceSettingsCloudStoragePubsubAvroFormatOutputReference | PubsubTopicIngestionDataSourceSettingsCloudStoragePubsubAvroFormat): any; export declare class PubsubTopicIngestionDataSourceSettingsCloudStoragePubsubAvroFormatOutputReference 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(): PubsubTopicIngestionDataSourceSettingsCloudStoragePubsubAvroFormat | undefined; set internalValue(value: PubsubTopicIngestionDataSourceSettingsCloudStoragePubsubAvroFormat | undefined); } export interface PubsubTopicIngestionDataSourceSettingsCloudStorageTextFormat { /** * The delimiter to use when using the 'text' format. Each line of text as * specified by the delimiter will be set to the 'data' field of a Pub/Sub * message. When unset, '\n' is used. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/pubsub_topic#delimiter PubsubTopic#delimiter} */ readonly delimiter?: string; } export declare function pubsubTopicIngestionDataSourceSettingsCloudStorageTextFormatToTerraform(struct?: PubsubTopicIngestionDataSourceSettingsCloudStorageTextFormatOutputReference | PubsubTopicIngestionDataSourceSettingsCloudStorageTextFormat): any; export declare function pubsubTopicIngestionDataSourceSettingsCloudStorageTextFormatToHclTerraform(struct?: PubsubTopicIngestionDataSourceSettingsCloudStorageTextFormatOutputReference | PubsubTopicIngestionDataSourceSettingsCloudStorageTextFormat): any; export declare class PubsubTopicIngestionDataSourceSettingsCloudStorageTextFormatOutputReference 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(): PubsubTopicIngestionDataSourceSettingsCloudStorageTextFormat | undefined; set internalValue(value: PubsubTopicIngestionDataSourceSettingsCloudStorageTextFormat | undefined); private _delimiter?; get delimiter(): string; set delimiter(value: string); resetDelimiter(): void; get delimiterInput(): string | undefined; } export interface PubsubTopicIngestionDataSourceSettingsCloudStorage { /** * Cloud Storage bucket. The bucket name must be without any * prefix like "gs://". See the bucket naming requirements: * https://cloud.google.com/storage/docs/buckets#naming. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/pubsub_topic#bucket PubsubTopic#bucket} */ readonly bucket: string; /** * Glob pattern used to match objects that will be ingested. If unset, all * objects will be ingested. See the supported patterns: * https://cloud.google.com/storage/docs/json_api/v1/objects/list#list-objects-and-prefixes-using-glob * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/pubsub_topic#match_glob PubsubTopic#match_glob} */ readonly matchGlob?: string; /** * The timestamp set in RFC3339 text format. If set, only objects with a * larger or equal timestamp will be ingested. Unset by default, meaning * all objects will be ingested. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/pubsub_topic#minimum_object_create_time PubsubTopic#minimum_object_create_time} */ readonly minimumObjectCreateTime?: string; /** * avro_format block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/pubsub_topic#avro_format PubsubTopic#avro_format} */ readonly avroFormat?: PubsubTopicIngestionDataSourceSettingsCloudStorageAvroFormat; /** * pubsub_avro_format block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/pubsub_topic#pubsub_avro_format PubsubTopic#pubsub_avro_format} */ readonly pubsubAvroFormat?: PubsubTopicIngestionDataSourceSettingsCloudStoragePubsubAvroFormat; /** * text_format block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/pubsub_topic#text_format PubsubTopic#text_format} */ readonly textFormat?: PubsubTopicIngestionDataSourceSettingsCloudStorageTextFormat; } export declare function pubsubTopicIngestionDataSourceSettingsCloudStorageToTerraform(struct?: PubsubTopicIngestionDataSourceSettingsCloudStorageOutputReference | PubsubTopicIngestionDataSourceSettingsCloudStorage): any; export declare function pubsubTopicIngestionDataSourceSettingsCloudStorageToHclTerraform(struct?: PubsubTopicIngestionDataSourceSettingsCloudStorageOutputReference | PubsubTopicIngestionDataSourceSettingsCloudStorage): any; export declare class PubsubTopicIngestionDataSourceSettingsCloudStorageOutputReference 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(): PubsubTopicIngestionDataSourceSettingsCloudStorage | undefined; set internalValue(value: PubsubTopicIngestionDataSourceSettingsCloudStorage | undefined); private _bucket?; get bucket(): string; set bucket(value: string); get bucketInput(): string | undefined; private _matchGlob?; get matchGlob(): string; set matchGlob(value: string); resetMatchGlob(): void; get matchGlobInput(): string | undefined; private _minimumObjectCreateTime?; get minimumObjectCreateTime(): string; set minimumObjectCreateTime(value: string); resetMinimumObjectCreateTime(): void; get minimumObjectCreateTimeInput(): string | undefined; private _avroFormat; get avroFormat(): PubsubTopicIngestionDataSourceSettingsCloudStorageAvroFormatOutputReference; putAvroFormat(value: PubsubTopicIngestionDataSourceSettingsCloudStorageAvroFormat): void; resetAvroFormat(): void; get avroFormatInput(): PubsubTopicIngestionDataSourceSettingsCloudStorageAvroFormat | undefined; private _pubsubAvroFormat; get pubsubAvroFormat(): PubsubTopicIngestionDataSourceSettingsCloudStoragePubsubAvroFormatOutputReference; putPubsubAvroFormat(value: PubsubTopicIngestionDataSourceSettingsCloudStoragePubsubAvroFormat): void; resetPubsubAvroFormat(): void; get pubsubAvroFormatInput(): PubsubTopicIngestionDataSourceSettingsCloudStoragePubsubAvroFormat | undefined; private _textFormat; get textFormat(): PubsubTopicIngestionDataSourceSettingsCloudStorageTextFormatOutputReference; putTextFormat(value: PubsubTopicIngestionDataSourceSettingsCloudStorageTextFormat): void; resetTextFormat(): void; get textFormatInput(): PubsubTopicIngestionDataSourceSettingsCloudStorageTextFormat | undefined; } export interface PubsubTopicIngestionDataSourceSettingsPlatformLogsSettings { /** * The minimum severity level of Platform Logs that will be written. If unspecified, * no Platform Logs will be written. Default value: "SEVERITY_UNSPECIFIED" Possible values: ["SEVERITY_UNSPECIFIED", "DISABLED", "DEBUG", "INFO", "WARNING", "ERROR"] * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/pubsub_topic#severity PubsubTopic#severity} */ readonly severity?: string; } export declare function pubsubTopicIngestionDataSourceSettingsPlatformLogsSettingsToTerraform(struct?: PubsubTopicIngestionDataSourceSettingsPlatformLogsSettingsOutputReference | PubsubTopicIngestionDataSourceSettingsPlatformLogsSettings): any; export declare function pubsubTopicIngestionDataSourceSettingsPlatformLogsSettingsToHclTerraform(struct?: PubsubTopicIngestionDataSourceSettingsPlatformLogsSettingsOutputReference | PubsubTopicIngestionDataSourceSettingsPlatformLogsSettings): any; export declare class PubsubTopicIngestionDataSourceSettingsPlatformLogsSettingsOutputReference 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(): PubsubTopicIngestionDataSourceSettingsPlatformLogsSettings | undefined; set internalValue(value: PubsubTopicIngestionDataSourceSettingsPlatformLogsSettings | undefined); private _severity?; get severity(): string; set severity(value: string); resetSeverity(): void; get severityInput(): string | undefined; } export interface PubsubTopicIngestionDataSourceSettings { /** * aws_kinesis block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/pubsub_topic#aws_kinesis PubsubTopic#aws_kinesis} */ readonly awsKinesis?: PubsubTopicIngestionDataSourceSettingsAwsKinesis; /** * cloud_storage block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/pubsub_topic#cloud_storage PubsubTopic#cloud_storage} */ readonly cloudStorage?: PubsubTopicIngestionDataSourceSettingsCloudStorage; /** * platform_logs_settings block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/pubsub_topic#platform_logs_settings PubsubTopic#platform_logs_settings} */ readonly platformLogsSettings?: PubsubTopicIngestionDataSourceSettingsPlatformLogsSettings; } export declare function pubsubTopicIngestionDataSourceSettingsToTerraform(struct?: PubsubTopicIngestionDataSourceSettingsOutputReference | PubsubTopicIngestionDataSourceSettings): any; export declare function pubsubTopicIngestionDataSourceSettingsToHclTerraform(struct?: PubsubTopicIngestionDataSourceSettingsOutputReference | PubsubTopicIngestionDataSourceSettings): any; export declare class PubsubTopicIngestionDataSourceSettingsOutputReference 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(): PubsubTopicIngestionDataSourceSettings | undefined; set internalValue(value: PubsubTopicIngestionDataSourceSettings | undefined); private _awsKinesis; get awsKinesis(): PubsubTopicIngestionDataSourceSettingsAwsKinesisOutputReference; putAwsKinesis(value: PubsubTopicIngestionDataSourceSettingsAwsKinesis): void; resetAwsKinesis(): void; get awsKinesisInput(): PubsubTopicIngestionDataSourceSettingsAwsKinesis | undefined; private _cloudStorage; get cloudStorage(): PubsubTopicIngestionDataSourceSettingsCloudStorageOutputReference; putCloudStorage(value: PubsubTopicIngestionDataSourceSettingsCloudStorage): void; resetCloudStorage(): void; get cloudStorageInput(): PubsubTopicIngestionDataSourceSettingsCloudStorage | undefined; private _platformLogsSettings; get platformLogsSettings(): PubsubTopicIngestionDataSourceSettingsPlatformLogsSettingsOutputReference; putPlatformLogsSettings(value: PubsubTopicIngestionDataSourceSettingsPlatformLogsSettings): void; resetPlatformLogsSettings(): void; get platformLogsSettingsInput(): PubsubTopicIngestionDataSourceSettingsPlatformLogsSettings | undefined; } export interface PubsubTopicMessageStoragePolicy { /** * A list of IDs of GCP regions where messages that are published to * the topic may be persisted in storage. Messages published by * publishers running in non-allowed GCP regions (or running outside * of GCP altogether) will be routed for storage in one of the * allowed regions. An empty list means that no regions are allowed, * and is not a valid configuration. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/pubsub_topic#allowed_persistence_regions PubsubTopic#allowed_persistence_regions} */ readonly allowedPersistenceRegions: string[]; } export declare function pubsubTopicMessageStoragePolicyToTerraform(struct?: PubsubTopicMessageStoragePolicyOutputReference | PubsubTopicMessageStoragePolicy): any; export declare function pubsubTopicMessageStoragePolicyToHclTerraform(struct?: PubsubTopicMessageStoragePolicyOutputReference | PubsubTopicMessageStoragePolicy): any; export declare class PubsubTopicMessageStoragePolicyOutputReference 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(): PubsubTopicMessageStoragePolicy | undefined; set internalValue(value: PubsubTopicMessageStoragePolicy | undefined); private _allowedPersistenceRegions?; get allowedPersistenceRegions(): string[]; set allowedPersistenceRegions(value: string[]); get allowedPersistenceRegionsInput(): string[] | undefined; } export interface PubsubTopicSchemaSettings { /** * The encoding of messages validated against schema. Default value: "ENCODING_UNSPECIFIED" Possible values: ["ENCODING_UNSPECIFIED", "JSON", "BINARY"] * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/pubsub_topic#encoding PubsubTopic#encoding} */ readonly encoding?: string; /** * The name of the schema that messages published should be * validated against. Format is projects/{project}/schemas/{schema}. * The value of this field will be _deleted-schema_ * if the schema has been deleted. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/pubsub_topic#schema PubsubTopic#schema} */ readonly schema: string; } export declare function pubsubTopicSchemaSettingsToTerraform(struct?: PubsubTopicSchemaSettingsOutputReference | PubsubTopicSchemaSettings): any; export declare function pubsubTopicSchemaSettingsToHclTerraform(struct?: PubsubTopicSchemaSettingsOutputReference | PubsubTopicSchemaSettings): any; export declare class PubsubTopicSchemaSettingsOutputReference 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(): PubsubTopicSchemaSettings | undefined; set internalValue(value: PubsubTopicSchemaSettings | undefined); private _encoding?; get encoding(): string; set encoding(value: string); resetEncoding(): void; get encodingInput(): string | undefined; private _schema?; get schema(): string; set schema(value: string); get schemaInput(): string | undefined; } export interface PubsubTopicTimeouts { /** * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/pubsub_topic#create PubsubTopic#create} */ readonly create?: string; /** * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/pubsub_topic#delete PubsubTopic#delete} */ readonly delete?: string; /** * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/pubsub_topic#update PubsubTopic#update} */ readonly update?: string; } export declare function pubsubTopicTimeoutsToTerraform(struct?: PubsubTopicTimeouts | cdktf.IResolvable): any; export declare function pubsubTopicTimeoutsToHclTerraform(struct?: PubsubTopicTimeouts | cdktf.IResolvable): any; export declare class PubsubTopicTimeoutsOutputReference 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(): PubsubTopicTimeouts | cdktf.IResolvable | undefined; set internalValue(value: PubsubTopicTimeouts | 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/pubsub_topic google_pubsub_topic} */ export declare class PubsubTopic extends cdktf.TerraformResource { static readonly tfResourceType = "google_pubsub_topic"; /** * Generates CDKTF code for importing a PubsubTopic 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 PubsubTopic to import * @param importFromId The id of the existing PubsubTopic that should be imported. Refer to the {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/pubsub_topic#import import section} in the documentation of this resource for the id to use * @param provider? Optional instance of the provider where the PubsubTopic 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/pubsub_topic google_pubsub_topic} 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 PubsubTopicConfig */ constructor(scope: Construct, id: string, config: PubsubTopicConfig); private _effectiveLabels; get effectiveLabels(): cdktf.StringMap; private _id?; get id(): string; set id(value: string); resetId(): void; get idInput(): string | undefined; private _kmsKeyName?; get kmsKeyName(): string; set kmsKeyName(value: string); resetKmsKeyName(): void; get kmsKeyNameInput(): string | undefined; private _labels?; get labels(): { [key: string]: string; }; set labels(value: { [key: string]: string; }); resetLabels(): void; get labelsInput(): { [key: string]: string; } | undefined; private _messageRetentionDuration?; get messageRetentionDuration(): string; set messageRetentionDuration(value: string); resetMessageRetentionDuration(): void; get messageRetentionDurationInput(): 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; private _terraformLabels; get terraformLabels(): cdktf.StringMap; private _ingestionDataSourceSettings; get ingestionDataSourceSettings(): PubsubTopicIngestionDataSourceSettingsOutputReference; putIngestionDataSourceSettings(value: PubsubTopicIngestionDataSourceSettings): void; resetIngestionDataSourceSettings(): void; get ingestionDataSourceSettingsInput(): PubsubTopicIngestionDataSourceSettings | undefined; private _messageStoragePolicy; get messageStoragePolicy(): PubsubTopicMessageStoragePolicyOutputReference; putMessageStoragePolicy(value: PubsubTopicMessageStoragePolicy): void; resetMessageStoragePolicy(): void; get messageStoragePolicyInput(): PubsubTopicMessageStoragePolicy | undefined; private _schemaSettings; get schemaSettings(): PubsubTopicSchemaSettingsOutputReference; putSchemaSettings(value: PubsubTopicSchemaSettings): void; resetSchemaSettings(): void; get schemaSettingsInput(): PubsubTopicSchemaSettings | undefined; private _timeouts; get timeouts(): PubsubTopicTimeoutsOutputReference; putTimeouts(value: PubsubTopicTimeouts): void; resetTimeouts(): void; get timeoutsInput(): cdktf.IResolvable | PubsubTopicTimeouts | undefined; protected synthesizeAttributes(): { [name: string]: any; }; protected synthesizeHclAttributes(): { [name: string]: any; }; }