@cdktf/provider-google
Version:
Prebuilt google Provider for Terraform CDK (cdktf)
557 lines (556 loc) • 31.5 kB
TypeScript
/**
* 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;
};
}