UNPKG

@cdktf/provider-google

Version:

Prebuilt google Provider for Terraform CDK (cdktf)

854 lines (853 loc) 46.2 kB
/** * Copyright (c) HashiCorp, Inc. * SPDX-License-Identifier: MPL-2.0 */ import { Construct } from 'constructs'; import * as cdktf from 'cdktf'; export interface PubsubSubscriptionConfig extends cdktf.TerraformMetaArguments { /** * This value is the maximum time after a subscriber receives a message * before the subscriber should acknowledge the message. After message * delivery but before the ack deadline expires and before the message is * acknowledged, it is an outstanding message and will not be delivered * again during that time (on a best-effort basis). * * For pull subscriptions, this value is used as the initial value for * the ack deadline. To override this value for a given message, call * subscriptions.modifyAckDeadline with the corresponding ackId if using * pull. The minimum custom deadline you can specify is 10 seconds. The * maximum custom deadline you can specify is 600 seconds (10 minutes). * If this parameter is 0, a default value of 10 seconds is used. * * For push delivery, this value is also used to set the request timeout * for the call to the push endpoint. * * If the subscriber never acknowledges the message, the Pub/Sub system * will eventually redeliver the message. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/pubsub_subscription#ack_deadline_seconds PubsubSubscription#ack_deadline_seconds} */ readonly ackDeadlineSeconds?: number; /** * If 'true', Pub/Sub provides the following guarantees for the delivery * of a message with a given value of messageId on this Subscriptions': * * - The message sent to a subscriber is guaranteed not to be resent before the message's acknowledgement deadline expires. * * - An acknowledged message will not be resent to a subscriber. * * Note that subscribers may still receive multiple copies of a message when 'enable_exactly_once_delivery' * is true if the message was published multiple times by a publisher client. These copies are considered distinct by Pub/Sub and have distinct messageId values * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/pubsub_subscription#enable_exactly_once_delivery PubsubSubscription#enable_exactly_once_delivery} */ readonly enableExactlyOnceDelivery?: boolean | cdktf.IResolvable; /** * If 'true', messages published with the same orderingKey in PubsubMessage will be delivered to * the subscribers in the order in which they are received by the Pub/Sub system. Otherwise, they * may be delivered in any order. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/pubsub_subscription#enable_message_ordering PubsubSubscription#enable_message_ordering} */ readonly enableMessageOrdering?: boolean | cdktf.IResolvable; /** * The subscription only delivers the messages that match the filter. * Pub/Sub automatically acknowledges the messages that don't match the filter. You can filter messages * by their attributes. The maximum length of a filter is 256 bytes. After creating the subscription, * you can't modify the filter. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/pubsub_subscription#filter PubsubSubscription#filter} */ readonly filter?: string; /** * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/pubsub_subscription#id PubsubSubscription#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; /** * A set of key/value label pairs to assign to this Subscription. * * * **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_subscription#labels PubsubSubscription#labels} */ readonly labels?: { [key: string]: string; }; /** * How long to retain unacknowledged messages in the subscription's * backlog, from the moment a message is published. If * retain_acked_messages is true, then this also configures the retention * of acknowledged messages, and thus configures how far back in time a * subscriptions.seek can be done. Defaults to 7 days. Cannot be more * than 31 days ('"2678400s"') or less than 10 minutes ('"600s"'). * * A duration in seconds with up to nine fractional digits, terminated * by 's'. Example: '"600.5s"'. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/pubsub_subscription#message_retention_duration PubsubSubscription#message_retention_duration} */ readonly messageRetentionDuration?: string; /** * Name of the subscription. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/pubsub_subscription#name PubsubSubscription#name} */ readonly name: string; /** * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/pubsub_subscription#project PubsubSubscription#project} */ readonly project?: string; /** * Indicates whether to retain acknowledged messages. If 'true', then * messages are not expunged from the subscription's backlog, even if * they are acknowledged, until they fall out of the * messageRetentionDuration window. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/pubsub_subscription#retain_acked_messages PubsubSubscription#retain_acked_messages} */ readonly retainAckedMessages?: boolean | cdktf.IResolvable; /** * A reference to a Topic resource, of the form projects/{project}/topics/{{name}} * (as in the id property of a google_pubsub_topic), or just a topic name if * the topic is in the same project as the subscription. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/pubsub_subscription#topic PubsubSubscription#topic} */ readonly topic: string; /** * bigquery_config block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/pubsub_subscription#bigquery_config PubsubSubscription#bigquery_config} */ readonly bigqueryConfig?: PubsubSubscriptionBigqueryConfig; /** * cloud_storage_config block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/pubsub_subscription#cloud_storage_config PubsubSubscription#cloud_storage_config} */ readonly cloudStorageConfig?: PubsubSubscriptionCloudStorageConfig; /** * dead_letter_policy block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/pubsub_subscription#dead_letter_policy PubsubSubscription#dead_letter_policy} */ readonly deadLetterPolicy?: PubsubSubscriptionDeadLetterPolicy; /** * expiration_policy block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/pubsub_subscription#expiration_policy PubsubSubscription#expiration_policy} */ readonly expirationPolicy?: PubsubSubscriptionExpirationPolicy; /** * push_config block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/pubsub_subscription#push_config PubsubSubscription#push_config} */ readonly pushConfig?: PubsubSubscriptionPushConfig; /** * retry_policy block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/pubsub_subscription#retry_policy PubsubSubscription#retry_policy} */ readonly retryPolicy?: PubsubSubscriptionRetryPolicy; /** * timeouts block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/pubsub_subscription#timeouts PubsubSubscription#timeouts} */ readonly timeouts?: PubsubSubscriptionTimeouts; } export interface PubsubSubscriptionBigqueryConfig { /** * When true and use_topic_schema or use_table_schema is true, any fields that are a part of the topic schema or message schema that * are not part of the BigQuery table schema are dropped when writing to BigQuery. Otherwise, the schemas must be kept in sync * and any messages with extra fields are not written and remain in the subscription's backlog. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/pubsub_subscription#drop_unknown_fields PubsubSubscription#drop_unknown_fields} */ readonly dropUnknownFields?: boolean | cdktf.IResolvable; /** * The service account to use to write to BigQuery. If not specified, the Pub/Sub * [service agent](https://cloud.google.com/iam/docs/service-agents), * service-{project_number}@gcp-sa-pubsub.iam.gserviceaccount.com, is used. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/pubsub_subscription#service_account_email PubsubSubscription#service_account_email} */ readonly serviceAccountEmail?: string; /** * The name of the table to which to write data, of the form {projectId}.{datasetId}.{tableId} * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/pubsub_subscription#table PubsubSubscription#table} */ readonly table: string; /** * When true, use the BigQuery table's schema as the columns to write to in BigQuery. Messages * must be published in JSON format. Only one of use_topic_schema and use_table_schema can be set. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/pubsub_subscription#use_table_schema PubsubSubscription#use_table_schema} */ readonly useTableSchema?: boolean | cdktf.IResolvable; /** * When true, use the topic's schema as the columns to write to in BigQuery, if it exists. * Only one of use_topic_schema and use_table_schema can be set. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/pubsub_subscription#use_topic_schema PubsubSubscription#use_topic_schema} */ readonly useTopicSchema?: boolean | cdktf.IResolvable; /** * When true, write the subscription name, messageId, publishTime, attributes, and orderingKey to additional columns in the table. * The subscription name, messageId, and publishTime fields are put in their own columns while all other message properties (other than data) are written to a JSON object in the attributes column. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/pubsub_subscription#write_metadata PubsubSubscription#write_metadata} */ readonly writeMetadata?: boolean | cdktf.IResolvable; } export declare function pubsubSubscriptionBigqueryConfigToTerraform(struct?: PubsubSubscriptionBigqueryConfigOutputReference | PubsubSubscriptionBigqueryConfig): any; export declare function pubsubSubscriptionBigqueryConfigToHclTerraform(struct?: PubsubSubscriptionBigqueryConfigOutputReference | PubsubSubscriptionBigqueryConfig): any; export declare class PubsubSubscriptionBigqueryConfigOutputReference 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(): PubsubSubscriptionBigqueryConfig | undefined; set internalValue(value: PubsubSubscriptionBigqueryConfig | undefined); private _dropUnknownFields?; get dropUnknownFields(): boolean | cdktf.IResolvable; set dropUnknownFields(value: boolean | cdktf.IResolvable); resetDropUnknownFields(): void; get dropUnknownFieldsInput(): boolean | cdktf.IResolvable | undefined; private _serviceAccountEmail?; get serviceAccountEmail(): string; set serviceAccountEmail(value: string); resetServiceAccountEmail(): void; get serviceAccountEmailInput(): string | undefined; private _table?; get table(): string; set table(value: string); get tableInput(): string | undefined; private _useTableSchema?; get useTableSchema(): boolean | cdktf.IResolvable; set useTableSchema(value: boolean | cdktf.IResolvable); resetUseTableSchema(): void; get useTableSchemaInput(): boolean | cdktf.IResolvable | undefined; private _useTopicSchema?; get useTopicSchema(): boolean | cdktf.IResolvable; set useTopicSchema(value: boolean | cdktf.IResolvable); resetUseTopicSchema(): void; get useTopicSchemaInput(): boolean | cdktf.IResolvable | undefined; private _writeMetadata?; get writeMetadata(): boolean | cdktf.IResolvable; set writeMetadata(value: boolean | cdktf.IResolvable); resetWriteMetadata(): void; get writeMetadataInput(): boolean | cdktf.IResolvable | undefined; } export interface PubsubSubscriptionCloudStorageConfigAvroConfig { /** * When true, the output Cloud Storage file will be serialized using the topic schema, if it exists. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/pubsub_subscription#use_topic_schema PubsubSubscription#use_topic_schema} */ readonly useTopicSchema?: boolean | cdktf.IResolvable; /** * When true, write the subscription name, messageId, publishTime, attributes, and orderingKey as additional fields in the output. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/pubsub_subscription#write_metadata PubsubSubscription#write_metadata} */ readonly writeMetadata?: boolean | cdktf.IResolvable; } export declare function pubsubSubscriptionCloudStorageConfigAvroConfigToTerraform(struct?: PubsubSubscriptionCloudStorageConfigAvroConfigOutputReference | PubsubSubscriptionCloudStorageConfigAvroConfig): any; export declare function pubsubSubscriptionCloudStorageConfigAvroConfigToHclTerraform(struct?: PubsubSubscriptionCloudStorageConfigAvroConfigOutputReference | PubsubSubscriptionCloudStorageConfigAvroConfig): any; export declare class PubsubSubscriptionCloudStorageConfigAvroConfigOutputReference 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(): PubsubSubscriptionCloudStorageConfigAvroConfig | undefined; set internalValue(value: PubsubSubscriptionCloudStorageConfigAvroConfig | undefined); private _useTopicSchema?; get useTopicSchema(): boolean | cdktf.IResolvable; set useTopicSchema(value: boolean | cdktf.IResolvable); resetUseTopicSchema(): void; get useTopicSchemaInput(): boolean | cdktf.IResolvable | undefined; private _writeMetadata?; get writeMetadata(): boolean | cdktf.IResolvable; set writeMetadata(value: boolean | cdktf.IResolvable); resetWriteMetadata(): void; get writeMetadataInput(): boolean | cdktf.IResolvable | undefined; } export interface PubsubSubscriptionCloudStorageConfig { /** * User-provided name for the Cloud Storage bucket. The bucket must be created by the user. The bucket name must be without any prefix like "gs://". * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/pubsub_subscription#bucket PubsubSubscription#bucket} */ readonly bucket: string; /** * User-provided format string specifying how to represent datetimes in Cloud Storage filenames. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/pubsub_subscription#filename_datetime_format PubsubSubscription#filename_datetime_format} */ readonly filenameDatetimeFormat?: string; /** * User-provided prefix for Cloud Storage filename. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/pubsub_subscription#filename_prefix PubsubSubscription#filename_prefix} */ readonly filenamePrefix?: string; /** * User-provided suffix for Cloud Storage filename. Must not end in "/". * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/pubsub_subscription#filename_suffix PubsubSubscription#filename_suffix} */ readonly filenameSuffix?: string; /** * The maximum bytes that can be written to a Cloud Storage file before a new file is created. Min 1 KB, max 10 GiB. * The maxBytes limit may be exceeded in cases where messages are larger than the limit. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/pubsub_subscription#max_bytes PubsubSubscription#max_bytes} */ readonly maxBytes?: number; /** * The maximum duration that can elapse before a new Cloud Storage file is created. Min 1 minute, max 10 minutes, default 5 minutes. * May not exceed the subscription's acknowledgement deadline. * A duration in seconds with up to nine fractional digits, ending with 's'. Example: "3.5s". * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/pubsub_subscription#max_duration PubsubSubscription#max_duration} */ readonly maxDuration?: string; /** * The maximum messages that can be written to a Cloud Storage file before a new file is created. Min 1000 messages. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/pubsub_subscription#max_messages PubsubSubscription#max_messages} */ readonly maxMessages?: number; /** * The service account to use to write to Cloud Storage. If not specified, the Pub/Sub * [service agent](https://cloud.google.com/iam/docs/service-agents), * service-{project_number}@gcp-sa-pubsub.iam.gserviceaccount.com, is used. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/pubsub_subscription#service_account_email PubsubSubscription#service_account_email} */ readonly serviceAccountEmail?: string; /** * avro_config block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/pubsub_subscription#avro_config PubsubSubscription#avro_config} */ readonly avroConfig?: PubsubSubscriptionCloudStorageConfigAvroConfig; } export declare function pubsubSubscriptionCloudStorageConfigToTerraform(struct?: PubsubSubscriptionCloudStorageConfigOutputReference | PubsubSubscriptionCloudStorageConfig): any; export declare function pubsubSubscriptionCloudStorageConfigToHclTerraform(struct?: PubsubSubscriptionCloudStorageConfigOutputReference | PubsubSubscriptionCloudStorageConfig): any; export declare class PubsubSubscriptionCloudStorageConfigOutputReference 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(): PubsubSubscriptionCloudStorageConfig | undefined; set internalValue(value: PubsubSubscriptionCloudStorageConfig | undefined); private _bucket?; get bucket(): string; set bucket(value: string); get bucketInput(): string | undefined; private _filenameDatetimeFormat?; get filenameDatetimeFormat(): string; set filenameDatetimeFormat(value: string); resetFilenameDatetimeFormat(): void; get filenameDatetimeFormatInput(): string | undefined; private _filenamePrefix?; get filenamePrefix(): string; set filenamePrefix(value: string); resetFilenamePrefix(): void; get filenamePrefixInput(): string | undefined; private _filenameSuffix?; get filenameSuffix(): string; set filenameSuffix(value: string); resetFilenameSuffix(): void; get filenameSuffixInput(): string | undefined; private _maxBytes?; get maxBytes(): number; set maxBytes(value: number); resetMaxBytes(): void; get maxBytesInput(): number | undefined; private _maxDuration?; get maxDuration(): string; set maxDuration(value: string); resetMaxDuration(): void; get maxDurationInput(): string | undefined; private _maxMessages?; get maxMessages(): number; set maxMessages(value: number); resetMaxMessages(): void; get maxMessagesInput(): number | undefined; private _serviceAccountEmail?; get serviceAccountEmail(): string; set serviceAccountEmail(value: string); resetServiceAccountEmail(): void; get serviceAccountEmailInput(): string | undefined; get state(): string; private _avroConfig; get avroConfig(): PubsubSubscriptionCloudStorageConfigAvroConfigOutputReference; putAvroConfig(value: PubsubSubscriptionCloudStorageConfigAvroConfig): void; resetAvroConfig(): void; get avroConfigInput(): PubsubSubscriptionCloudStorageConfigAvroConfig | undefined; } export interface PubsubSubscriptionDeadLetterPolicy { /** * The name of the topic to which dead letter messages should be published. * Format is 'projects/{project}/topics/{topic}'. * * The Cloud Pub/Sub service account associated with the enclosing subscription's * parent project (i.e., * service-{project_number}@gcp-sa-pubsub.iam.gserviceaccount.com) must have * permission to Publish() to this topic. * * The operation will fail if the topic does not exist. * Users should ensure that there is a subscription attached to this topic * since messages published to a topic with no subscriptions are lost. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/pubsub_subscription#dead_letter_topic PubsubSubscription#dead_letter_topic} */ readonly deadLetterTopic?: string; /** * The maximum number of delivery attempts for any message. The value must be * between 5 and 100. * * The number of delivery attempts is defined as 1 + (the sum of number of * NACKs and number of times the acknowledgement deadline has been exceeded for the message). * * A NACK is any call to ModifyAckDeadline with a 0 deadline. Note that * client libraries may automatically extend ack_deadlines. * * This field will be honored on a best effort basis. * * If this parameter is 0, a default value of 5 is used. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/pubsub_subscription#max_delivery_attempts PubsubSubscription#max_delivery_attempts} */ readonly maxDeliveryAttempts?: number; } export declare function pubsubSubscriptionDeadLetterPolicyToTerraform(struct?: PubsubSubscriptionDeadLetterPolicyOutputReference | PubsubSubscriptionDeadLetterPolicy): any; export declare function pubsubSubscriptionDeadLetterPolicyToHclTerraform(struct?: PubsubSubscriptionDeadLetterPolicyOutputReference | PubsubSubscriptionDeadLetterPolicy): any; export declare class PubsubSubscriptionDeadLetterPolicyOutputReference 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(): PubsubSubscriptionDeadLetterPolicy | undefined; set internalValue(value: PubsubSubscriptionDeadLetterPolicy | undefined); private _deadLetterTopic?; get deadLetterTopic(): string; set deadLetterTopic(value: string); resetDeadLetterTopic(): void; get deadLetterTopicInput(): string | undefined; private _maxDeliveryAttempts?; get maxDeliveryAttempts(): number; set maxDeliveryAttempts(value: number); resetMaxDeliveryAttempts(): void; get maxDeliveryAttemptsInput(): number | undefined; } export interface PubsubSubscriptionExpirationPolicy { /** * Specifies the "time-to-live" duration for an associated resource. The * resource expires if it is not active for a period of ttl. * If ttl is set to "", the associated resource never expires. * A duration in seconds with up to nine fractional digits, terminated by 's'. * Example - "3.5s". * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/pubsub_subscription#ttl PubsubSubscription#ttl} */ readonly ttl: string; } export declare function pubsubSubscriptionExpirationPolicyToTerraform(struct?: PubsubSubscriptionExpirationPolicyOutputReference | PubsubSubscriptionExpirationPolicy): any; export declare function pubsubSubscriptionExpirationPolicyToHclTerraform(struct?: PubsubSubscriptionExpirationPolicyOutputReference | PubsubSubscriptionExpirationPolicy): any; export declare class PubsubSubscriptionExpirationPolicyOutputReference 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(): PubsubSubscriptionExpirationPolicy | undefined; set internalValue(value: PubsubSubscriptionExpirationPolicy | undefined); private _ttl?; get ttl(): string; set ttl(value: string); get ttlInput(): string | undefined; } export interface PubsubSubscriptionPushConfigNoWrapper { /** * When true, writes the Pub/Sub message metadata to * 'x-goog-pubsub-<KEY>:<VAL>' headers of the HTTP request. Writes the * Pub/Sub message attributes to '<KEY>:<VAL>' headers of the HTTP request. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/pubsub_subscription#write_metadata PubsubSubscription#write_metadata} */ readonly writeMetadata: boolean | cdktf.IResolvable; } export declare function pubsubSubscriptionPushConfigNoWrapperToTerraform(struct?: PubsubSubscriptionPushConfigNoWrapperOutputReference | PubsubSubscriptionPushConfigNoWrapper): any; export declare function pubsubSubscriptionPushConfigNoWrapperToHclTerraform(struct?: PubsubSubscriptionPushConfigNoWrapperOutputReference | PubsubSubscriptionPushConfigNoWrapper): any; export declare class PubsubSubscriptionPushConfigNoWrapperOutputReference 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(): PubsubSubscriptionPushConfigNoWrapper | undefined; set internalValue(value: PubsubSubscriptionPushConfigNoWrapper | undefined); private _writeMetadata?; get writeMetadata(): boolean | cdktf.IResolvable; set writeMetadata(value: boolean | cdktf.IResolvable); get writeMetadataInput(): boolean | cdktf.IResolvable | undefined; } export interface PubsubSubscriptionPushConfigOidcToken { /** * Audience to be used when generating OIDC token. The audience claim * identifies the recipients that the JWT is intended for. The audience * value is a single case-sensitive string. Having multiple values (array) * for the audience field is not supported. More info about the OIDC JWT * token audience here: https://tools.ietf.org/html/rfc7519#section-4.1.3 * Note: if not specified, the Push endpoint URL will be used. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/pubsub_subscription#audience PubsubSubscription#audience} */ readonly audience?: string; /** * Service account email to be used for generating the OIDC token. * The caller (for subscriptions.create, subscriptions.patch, and * subscriptions.modifyPushConfig RPCs) must have the * iam.serviceAccounts.actAs permission for the service account. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/pubsub_subscription#service_account_email PubsubSubscription#service_account_email} */ readonly serviceAccountEmail: string; } export declare function pubsubSubscriptionPushConfigOidcTokenToTerraform(struct?: PubsubSubscriptionPushConfigOidcTokenOutputReference | PubsubSubscriptionPushConfigOidcToken): any; export declare function pubsubSubscriptionPushConfigOidcTokenToHclTerraform(struct?: PubsubSubscriptionPushConfigOidcTokenOutputReference | PubsubSubscriptionPushConfigOidcToken): any; export declare class PubsubSubscriptionPushConfigOidcTokenOutputReference 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(): PubsubSubscriptionPushConfigOidcToken | undefined; set internalValue(value: PubsubSubscriptionPushConfigOidcToken | undefined); private _audience?; get audience(): string; set audience(value: string); resetAudience(): void; get audienceInput(): string | undefined; private _serviceAccountEmail?; get serviceAccountEmail(): string; set serviceAccountEmail(value: string); get serviceAccountEmailInput(): string | undefined; } export interface PubsubSubscriptionPushConfig { /** * Endpoint configuration attributes. * * Every endpoint has a set of API supported attributes that can * be used to control different aspects of the message delivery. * * The currently supported attribute is x-goog-version, which you * can use to change the format of the pushed message. This * attribute indicates the version of the data expected by * the endpoint. This controls the shape of the pushed message * (i.e., its fields and metadata). The endpoint version is * based on the version of the Pub/Sub API. * * If not present during the subscriptions.create call, * it will default to the version of the API used to make * such call. If not present during a subscriptions.modifyPushConfig * call, its value will not be changed. subscriptions.get * calls will always return a valid version, even if the * subscription was created without this attribute. * * The possible values for this attribute are: * * - v1beta1: uses the push format defined in the v1beta1 Pub/Sub API. * - v1 or v1beta2: uses the push format defined in the v1 Pub/Sub API. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/pubsub_subscription#attributes PubsubSubscription#attributes} */ readonly attributes?: { [key: string]: string; }; /** * A URL locating the endpoint to which messages should be pushed. * For example, a Webhook endpoint might use * "https://example.com/push". * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/pubsub_subscription#push_endpoint PubsubSubscription#push_endpoint} */ readonly pushEndpoint: string; /** * no_wrapper block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/pubsub_subscription#no_wrapper PubsubSubscription#no_wrapper} */ readonly noWrapper?: PubsubSubscriptionPushConfigNoWrapper; /** * oidc_token block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/pubsub_subscription#oidc_token PubsubSubscription#oidc_token} */ readonly oidcToken?: PubsubSubscriptionPushConfigOidcToken; } export declare function pubsubSubscriptionPushConfigToTerraform(struct?: PubsubSubscriptionPushConfigOutputReference | PubsubSubscriptionPushConfig): any; export declare function pubsubSubscriptionPushConfigToHclTerraform(struct?: PubsubSubscriptionPushConfigOutputReference | PubsubSubscriptionPushConfig): any; export declare class PubsubSubscriptionPushConfigOutputReference 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(): PubsubSubscriptionPushConfig | undefined; set internalValue(value: PubsubSubscriptionPushConfig | undefined); private _attributes?; get attributes(): { [key: string]: string; }; set attributes(value: { [key: string]: string; }); resetAttributes(): void; get attributesInput(): { [key: string]: string; } | undefined; private _pushEndpoint?; get pushEndpoint(): string; set pushEndpoint(value: string); get pushEndpointInput(): string | undefined; private _noWrapper; get noWrapper(): PubsubSubscriptionPushConfigNoWrapperOutputReference; putNoWrapper(value: PubsubSubscriptionPushConfigNoWrapper): void; resetNoWrapper(): void; get noWrapperInput(): PubsubSubscriptionPushConfigNoWrapper | undefined; private _oidcToken; get oidcToken(): PubsubSubscriptionPushConfigOidcTokenOutputReference; putOidcToken(value: PubsubSubscriptionPushConfigOidcToken): void; resetOidcToken(): void; get oidcTokenInput(): PubsubSubscriptionPushConfigOidcToken | undefined; } export interface PubsubSubscriptionRetryPolicy { /** * The maximum delay between consecutive deliveries of a given message. Value should be between 0 and 600 seconds. Defaults to 600 seconds. * A duration in seconds with up to nine fractional digits, terminated by 's'. Example: "3.5s". * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/pubsub_subscription#maximum_backoff PubsubSubscription#maximum_backoff} */ readonly maximumBackoff?: string; /** * The minimum delay between consecutive deliveries of a given message. Value should be between 0 and 600 seconds. Defaults to 10 seconds. * A duration in seconds with up to nine fractional digits, terminated by 's'. Example: "3.5s". * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/pubsub_subscription#minimum_backoff PubsubSubscription#minimum_backoff} */ readonly minimumBackoff?: string; } export declare function pubsubSubscriptionRetryPolicyToTerraform(struct?: PubsubSubscriptionRetryPolicyOutputReference | PubsubSubscriptionRetryPolicy): any; export declare function pubsubSubscriptionRetryPolicyToHclTerraform(struct?: PubsubSubscriptionRetryPolicyOutputReference | PubsubSubscriptionRetryPolicy): any; export declare class PubsubSubscriptionRetryPolicyOutputReference 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(): PubsubSubscriptionRetryPolicy | undefined; set internalValue(value: PubsubSubscriptionRetryPolicy | undefined); private _maximumBackoff?; get maximumBackoff(): string; set maximumBackoff(value: string); resetMaximumBackoff(): void; get maximumBackoffInput(): string | undefined; private _minimumBackoff?; get minimumBackoff(): string; set minimumBackoff(value: string); resetMinimumBackoff(): void; get minimumBackoffInput(): string | undefined; } export interface PubsubSubscriptionTimeouts { /** * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/pubsub_subscription#create PubsubSubscription#create} */ readonly create?: string; /** * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/pubsub_subscription#delete PubsubSubscription#delete} */ readonly delete?: string; /** * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/pubsub_subscription#update PubsubSubscription#update} */ readonly update?: string; } export declare function pubsubSubscriptionTimeoutsToTerraform(struct?: PubsubSubscriptionTimeouts | cdktf.IResolvable): any; export declare function pubsubSubscriptionTimeoutsToHclTerraform(struct?: PubsubSubscriptionTimeouts | cdktf.IResolvable): any; export declare class PubsubSubscriptionTimeoutsOutputReference 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(): PubsubSubscriptionTimeouts | cdktf.IResolvable | undefined; set internalValue(value: PubsubSubscriptionTimeouts | 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_subscription google_pubsub_subscription} */ export declare class PubsubSubscription extends cdktf.TerraformResource { static readonly tfResourceType = "google_pubsub_subscription"; /** * Generates CDKTF code for importing a PubsubSubscription 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 PubsubSubscription to import * @param importFromId The id of the existing PubsubSubscription that should be imported. Refer to the {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/pubsub_subscription#import import section} in the documentation of this resource for the id to use * @param provider? Optional instance of the provider where the PubsubSubscription 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_subscription google_pubsub_subscription} 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 PubsubSubscriptionConfig */ constructor(scope: Construct, id: string, config: PubsubSubscriptionConfig); private _ackDeadlineSeconds?; get ackDeadlineSeconds(): number; set ackDeadlineSeconds(value: number); resetAckDeadlineSeconds(): void; get ackDeadlineSecondsInput(): number | undefined; private _effectiveLabels; get effectiveLabels(): cdktf.StringMap; private _enableExactlyOnceDelivery?; get enableExactlyOnceDelivery(): boolean | cdktf.IResolvable; set enableExactlyOnceDelivery(value: boolean | cdktf.IResolvable); resetEnableExactlyOnceDelivery(): void; get enableExactlyOnceDeliveryInput(): boolean | cdktf.IResolvable | undefined; private _enableMessageOrdering?; get enableMessageOrdering(): boolean | cdktf.IResolvable; set enableMessageOrdering(value: boolean | cdktf.IResolvable); resetEnableMessageOrdering(): void; get enableMessageOrderingInput(): boolean | cdktf.IResolvable | undefined; private _filter?; get filter(): string; set filter(value: string); resetFilter(): void; get filterInput(): 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; 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 _retainAckedMessages?; get retainAckedMessages(): boolean | cdktf.IResolvable; set retainAckedMessages(value: boolean | cdktf.IResolvable); resetRetainAckedMessages(): void; get retainAckedMessagesInput(): boolean | cdktf.IResolvable | undefined; private _terraformLabels; get terraformLabels(): cdktf.StringMap; private _topic?; get topic(): string; set topic(value: string); get topicInput(): string | undefined; private _bigqueryConfig; get bigqueryConfig(): PubsubSubscriptionBigqueryConfigOutputReference; putBigqueryConfig(value: PubsubSubscriptionBigqueryConfig): void; resetBigqueryConfig(): void; get bigqueryConfigInput(): PubsubSubscriptionBigqueryConfig | undefined; private _cloudStorageConfig; get cloudStorageConfig(): PubsubSubscriptionCloudStorageConfigOutputReference; putCloudStorageConfig(value: PubsubSubscriptionCloudStorageConfig): void; resetCloudStorageConfig(): void; get cloudStorageConfigInput(): PubsubSubscriptionCloudStorageConfig | undefined; private _deadLetterPolicy; get deadLetterPolicy(): PubsubSubscriptionDeadLetterPolicyOutputReference; putDeadLetterPolicy(value: PubsubSubscriptionDeadLetterPolicy): void; resetDeadLetterPolicy(): void; get deadLetterPolicyInput(): PubsubSubscriptionDeadLetterPolicy | undefined; private _expirationPolicy; get expirationPolicy(): PubsubSubscriptionExpirationPolicyOutputReference; putExpirationPolicy(value: PubsubSubscriptionExpirationPolicy): void; resetExpirationPolicy(): void; get expirationPolicyInput(): PubsubSubscriptionExpirationPolicy | undefined; private _pushConfig; get pushConfig(): PubsubSubscriptionPushConfigOutputReference; putPushConfig(value: PubsubSubscriptionPushConfig): void; resetPushConfig(): void; get pushConfigInput(): PubsubSubscriptionPushConfig | undefined; private _retryPolicy; get retryPolicy(): PubsubSubscriptionRetryPolicyOutputReference; putRetryPolicy(value: PubsubSubscriptionRetryPolicy): void; resetRetryPolicy(): void; get retryPolicyInput(): PubsubSubscriptionRetryPolicy | undefined; private _timeouts; get timeouts(): PubsubSubscriptionTimeoutsOutputReference; putTimeouts(value: PubsubSubscriptionTimeouts): void; resetTimeouts(): void; get timeoutsInput(): cdktf.IResolvable | PubsubSubscriptionTimeouts | undefined; protected synthesizeAttributes(): { [name: string]: any; }; protected synthesizeHclAttributes(): { [name: string]: any; }; }