import { Construct } from 'constructs'; import * as cdktf from 'cdktf'; export interface TcmqSubscribeConfig extends cdktf.TerraformMetaArguments { /** * The number of `BindingKey` cannot exceed 5, and the length of each `BindingKey` cannot exceed 64 bytes. This field indicates the filtering policy for subscribing to and receiving messages. Each `BindingKey` includes up to 15 dots (namely up to 16 segments). * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/tcmq_subscribe#binding_key TcmqSubscribe#binding_key} */ readonly bindingKey?: string[]; /** * `Endpoint` for notification receipt, which is distinguished by `Protocol`. For `http`, `Endpoint` must begin with `http://` and `host` can be a domain name or IP. For `Queue`, enter `QueueName`. Note that currently the push service cannot push messages to a VPC; therefore, if a VPC domain name or address is entered for `Endpoint`, pushed messages will not be received. Currently, messages can be pushed only to the public network and classic network. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/tcmq_subscribe#endpoint TcmqSubscribe#endpoint} */ readonly endpoint: string; /** * Message body tag (used for message filtering). The number of tags cannot exceed 5, and each tag can contain up to 16 characters. It is used in conjunction with the `MsgTag` parameter of `(Batch)PublishMessage`. Rules: 1. If `FilterTag` is not configured, no matter whether `MsgTag` is configured, the subscription will receive all messages published to the topic; 2. If the array of `FilterTag` values has a value, only when at least one of the values in the array also exists in the array of `MsgTag` values (i.e., `FilterTag` and `MsgTag` have an intersection) can the subscription receive messages published to the topic; 3. If the array of `FilterTag` values has a value, but `MsgTag` is not configured, then no message published to the topic will be received, which can be considered as a special case of rule 2 as `FilterTag` and `MsgTag` do not intersect in this case. The overall design idea of rules is based on the intention of the subscriber. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/tcmq_subscribe#filter_tags TcmqSubscribe#filter_tags} */ readonly filterTags?: string[]; /** * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/tcmq_subscribe#id TcmqSubscribe#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; /** * Push content format. Valid values: 1. JSON; 2. SIMPLIFIED, i.e., the raw format. If `Protocol` is `queue`, this value must be `SIMPLIFIED`. If `Protocol` is `http`, both options are acceptable, and the default value is `JSON`. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/tcmq_subscribe#notify_content_format TcmqSubscribe#notify_content_format} */ readonly notifyContentFormat?: string; /** * CMQ push server retry policy in case an error occurs while pushing a message to `Endpoint`. Valid values: 1. `BACKOFF_RETRY`: backoff retry, which is to retry at a fixed interval, discard the message after a certain number of retries, and continue to push the next message; 2. `EXPONENTIAL_DECAY_RETRY`: exponential decay retry, which is to retry at an exponentially increasing interval, such as 1s, 2s, 4s, 8s, and so on. As a message can be retained in a topic for one day, failed messages will be discarded at most after one day of retry. Default value: `EXPONENTIAL_DECAY_RETRY`. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/tcmq_subscribe#notify_strategy TcmqSubscribe#notify_strategy} */ readonly notifyStrategy?: string; /** * ubscription protocol. Currently, two protocols are supported: `http` and `queue`. To use the `http` protocol, you need to build your own web server to receive messages. With the `queue` protocol, messages are automatically pushed to a CMQ queue and you can pull them concurrently. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/tcmq_subscribe#protocol TcmqSubscribe#protocol} */ readonly protocol: string; /** * Subscription name, which must be unique in the same topic under the same account in the same region. It can contain up to 64 letters, digits, and hyphens and must begin with a letter. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/tcmq_subscribe#subscription_name TcmqSubscribe#subscription_name} */ readonly subscriptionName: string; /** * Tag description list. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/tcmq_subscribe#tags TcmqSubscribe#tags} */ readonly tags?: { [key: string]: string; }; /** * Topic name, which must be unique in the same topic under the same account in the same region. It can contain up to 64 letters, digits, and hyphens and must begin with a letter. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/tcmq_subscribe#topic_name TcmqSubscribe#topic_name} */ readonly topicName: string; } /** * Represents a {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/tcmq_subscribe tencentcloud_tcmq_subscribe} */ export declare class TcmqSubscribe extends cdktf.TerraformResource { static readonly tfResourceType = "tencentcloud_tcmq_subscribe"; /** * Generates CDKTF code for importing a TcmqSubscribe resource upon running "cdktf plan " * @param scope The scope in which to define this construct * @param importToId The construct id used in the generated config for the TcmqSubscribe to import * @param importFromId The id of the existing TcmqSubscribe that should be imported. Refer to the {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/tcmq_subscribe#import import section} in the documentation of this resource for the id to use * @param provider? Optional instance of the provider where the TcmqSubscribe to import is found */ static generateConfigForImport(scope: Construct, importToId: string, importFromId: string, provider?: cdktf.TerraformProvider): any; /** * Create a new {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/tcmq_subscribe tencentcloud_tcmq_subscribe} 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 TcmqSubscribeConfig */ constructor(scope: Construct, id: string, config: TcmqSubscribeConfig); private _bindingKey?; get bindingKey(): string[]; set bindingKey(value: string[]); resetBindingKey(): void; get bindingKeyInput(): string[]; private _endpoint?; get endpoint(): string; set endpoint(value: string); get endpointInput(): string; private _filterTags?; get filterTags(): string[]; set filterTags(value: string[]); resetFilterTags(): void; get filterTagsInput(): string[]; private _id?; get id(): string; set id(value: string); resetId(): void; get idInput(): string; private _notifyContentFormat?; get notifyContentFormat(): string; set notifyContentFormat(value: string); resetNotifyContentFormat(): void; get notifyContentFormatInput(): string; private _notifyStrategy?; get notifyStrategy(): string; set notifyStrategy(value: string); resetNotifyStrategy(): void; get notifyStrategyInput(): string; private _protocol?; get protocol(): string; set protocol(value: string); get protocolInput(): string; private _subscriptionName?; get subscriptionName(): string; set subscriptionName(value: string); get subscriptionNameInput(): string; private _tags?; get tags(): { [key: string]: string; }; set tags(value: { [key: string]: string; }); resetTags(): void; get tagsInput(): { [key: string]: string; }; private _topicName?; get topicName(): string; set topicName(value: string); get topicNameInput(): string; protected synthesizeAttributes(): { [name: string]: any; }; protected synthesizeHclAttributes(): { [name: string]: any; }; }