import { Construct } from 'constructs'; import * as cdktf from 'cdktf'; export interface ClsTopicConfig extends cdktf.TerraformMetaArguments { /** * Whether to enable automatic split. Default value: true. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/cls_topic#auto_split ClsTopic#auto_split} */ readonly autoSplit?: boolean | cdktf.IResolvable; /** * Log Topic Description. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/cls_topic#describes ClsTopic#describes} */ readonly describes?: string; /** * Encryption-related parameters. This parameter is supported for users with an open access list and from encrypted regions; it cannot be passed in other scenarios. 0 or not passed: No encryption. 1: KMS-CLS cloud product key encryption. Once enabled, it cannot be disabled. * Supported regions: ap-beijing, ap-guangzhou, ap-shanghai, ap-singapore, ap-bangkok, ap-jakarta, eu-frankfurt, ap-seoul, ap-tokyo. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/cls_topic#encryption ClsTopic#encryption} */ readonly encryption?: number; /** * 0: Turn off log sinking. Non 0: The number of days of standard storage after enabling log settling. HotPeriod needs to be greater than or equal to 7 and less than Period. Only effective when StorageType is hot. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/cls_topic#hot_period ClsTopic#hot_period} */ readonly hotPeriod?: number; /** * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/cls_topic#id ClsTopic#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; /** * No authentication switch. False: closed; True: Enable. The default is false. After activation, anonymous access to the log topic will be supported for specified operations. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/cls_topic#is_web_tracking ClsTopic#is_web_tracking} */ readonly isWebTracking?: boolean | cdktf.IResolvable; /** * Logset ID. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/cls_topic#logset_id ClsTopic#logset_id} */ readonly logsetId: string; /** * Maximum number of partitions to split into for this topic if automatic split is enabled. Default value: 50. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/cls_topic#max_split_partitions ClsTopic#max_split_partitions} */ readonly maxSplitPartitions?: number; /** * Number of log topic partitions. Default value: 1. Maximum value: 10. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/cls_topic#partition_count ClsTopic#partition_count} */ readonly partitionCount?: number; /** * lifetime. Unit: days. Standard storage value range: 1 to 3600. Infrequent storage value range: 7 to 3600 days. A value of 3640 indicates permanent retention.If this value is not input, it defaults to the Period value of the log set corresponding to the accessed log topic (defaults to 30 days in case of access failure). * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/cls_topic#period ClsTopic#period} */ readonly period?: number; /** * Log topic storage class. Valid values: hot: real-time storage; cold: offline storage. Default value: hot. If cold is passed in, please contact the customer service to add the log topic to the allowlist first. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/cls_topic#storage_type ClsTopic#storage_type} */ readonly storageType?: string; /** * Tag description list. Up to 10 tag key-value pairs are supported and must be unique. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/cls_topic#tags ClsTopic#tags} */ readonly tags?: { [key: string]: string; }; /** * Log topic name. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/cls_topic#topic_name ClsTopic#topic_name} */ readonly topicName: string; /** * extends block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/cls_topic#extends ClsTopic#extends} */ readonly extends?: ClsTopicExtends; } export interface ClsTopicExtendsAnonymousAccessConditions { /** * Condition attribute, currently only VpcID is supported. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/cls_topic#attributes ClsTopic#attributes} */ readonly attributes?: string; /** * The value of the corresponding conditional attribute. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/cls_topic#condition_value ClsTopic#condition_value} */ readonly conditionValue?: string; /** * Conditional rule, 1: equal, 2: not equal. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/cls_topic#rule ClsTopic#rule} */ readonly rule?: number; } export declare function clsTopicExtendsAnonymousAccessConditionsToTerraform(struct?: ClsTopicExtendsAnonymousAccessConditions | cdktf.IResolvable): any; export declare function clsTopicExtendsAnonymousAccessConditionsToHclTerraform(struct?: ClsTopicExtendsAnonymousAccessConditions | cdktf.IResolvable): any; export declare class ClsTopicExtendsAnonymousAccessConditionsOutputReference extends cdktf.ComplexObject { private isEmptyObject; private resolvableValue?; /** * @param terraformResource The parent resource * @param terraformAttribute The attribute on the parent resource this class is referencing * @param complexObjectIndex the index of this item in the list * @param complexObjectIsFromSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index) */ constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, complexObjectIndex: number, complexObjectIsFromSet: boolean); get internalValue(): ClsTopicExtendsAnonymousAccessConditions | cdktf.IResolvable | undefined; set internalValue(value: ClsTopicExtendsAnonymousAccessConditions | cdktf.IResolvable | undefined); private _attributes?; get attributes(): string; set attributes(value: string); resetAttributes(): void; get attributesInput(): string; private _conditionValue?; get conditionValue(): string; set conditionValue(value: string); resetConditionValue(): void; get conditionValueInput(): string; private _rule?; get rule(): number; set rule(value: number); resetRule(): void; get ruleInput(): number; } export declare class ClsTopicExtendsAnonymousAccessConditionsList extends cdktf.ComplexList { protected terraformResource: cdktf.IInterpolatingParent; protected terraformAttribute: string; protected wrapsSet: boolean; internalValue?: ClsTopicExtendsAnonymousAccessConditions[] | cdktf.IResolvable; /** * @param terraformResource The parent resource * @param terraformAttribute The attribute on the parent resource this class is referencing * @param wrapsSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index) */ constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, wrapsSet: boolean); /** * @param index the index of the item to return */ get(index: number): ClsTopicExtendsAnonymousAccessConditionsOutputReference; } export interface ClsTopicExtendsAnonymousAccess { /** * Operation list, supporting trackLog (JS/HTTP upload log) and realtimeProducer (kafka protocol upload log). * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/cls_topic#operations ClsTopic#operations} */ readonly operations?: string[]; /** * conditions block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/cls_topic#conditions ClsTopic#conditions} */ readonly conditions?: ClsTopicExtendsAnonymousAccessConditions[] | cdktf.IResolvable; } export declare function clsTopicExtendsAnonymousAccessToTerraform(struct?: ClsTopicExtendsAnonymousAccessOutputReference | ClsTopicExtendsAnonymousAccess): any; export declare function clsTopicExtendsAnonymousAccessToHclTerraform(struct?: ClsTopicExtendsAnonymousAccessOutputReference | ClsTopicExtendsAnonymousAccess): any; export declare class ClsTopicExtendsAnonymousAccessOutputReference 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(): ClsTopicExtendsAnonymousAccess | undefined; set internalValue(value: ClsTopicExtendsAnonymousAccess | undefined); private _operations?; get operations(): string[]; set operations(value: string[]); resetOperations(): void; get operationsInput(): string[]; private _conditions; get conditions(): ClsTopicExtendsAnonymousAccessConditionsList; putConditions(value: ClsTopicExtendsAnonymousAccessConditions[] | cdktf.IResolvable): void; resetConditions(): void; get conditionsInput(): any; } export interface ClsTopicExtends { /** * anonymous_access block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/cls_topic#anonymous_access ClsTopic#anonymous_access} */ readonly anonymousAccess?: ClsTopicExtendsAnonymousAccess; } export declare function clsTopicExtendsToTerraform(struct?: ClsTopicExtendsOutputReference | ClsTopicExtends): any; export declare function clsTopicExtendsToHclTerraform(struct?: ClsTopicExtendsOutputReference | ClsTopicExtends): any; export declare class ClsTopicExtendsOutputReference 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(): ClsTopicExtends | undefined; set internalValue(value: ClsTopicExtends | undefined); private _anonymousAccess; get anonymousAccess(): ClsTopicExtendsAnonymousAccessOutputReference; putAnonymousAccess(value: ClsTopicExtendsAnonymousAccess): void; resetAnonymousAccess(): void; get anonymousAccessInput(): ClsTopicExtendsAnonymousAccess; } /** * Represents a {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/cls_topic tencentcloud_cls_topic} */ export declare class ClsTopic extends cdktf.TerraformResource { static readonly tfResourceType = "tencentcloud_cls_topic"; /** * Generates CDKTF code for importing a ClsTopic 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 ClsTopic to import * @param importFromId The id of the existing ClsTopic that should be imported. Refer to the {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/cls_topic#import import section} in the documentation of this resource for the id to use * @param provider? Optional instance of the provider where the ClsTopic 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/cls_topic tencentcloud_cls_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 ClsTopicConfig */ constructor(scope: Construct, id: string, config: ClsTopicConfig); private _autoSplit?; get autoSplit(): boolean | cdktf.IResolvable; set autoSplit(value: boolean | cdktf.IResolvable); resetAutoSplit(): void; get autoSplitInput(): any; private _describes?; get describes(): string; set describes(value: string); resetDescribes(): void; get describesInput(): string; private _encryption?; get encryption(): number; set encryption(value: number); resetEncryption(): void; get encryptionInput(): number; private _hotPeriod?; get hotPeriod(): number; set hotPeriod(value: number); resetHotPeriod(): void; get hotPeriodInput(): number; private _id?; get id(): string; set id(value: string); resetId(): void; get idInput(): string; private _isWebTracking?; get isWebTracking(): boolean | cdktf.IResolvable; set isWebTracking(value: boolean | cdktf.IResolvable); resetIsWebTracking(): void; get isWebTrackingInput(): any; private _logsetId?; get logsetId(): string; set logsetId(value: string); get logsetIdInput(): string; private _maxSplitPartitions?; get maxSplitPartitions(): number; set maxSplitPartitions(value: number); resetMaxSplitPartitions(): void; get maxSplitPartitionsInput(): number; private _partitionCount?; get partitionCount(): number; set partitionCount(value: number); resetPartitionCount(): void; get partitionCountInput(): number; private _period?; get period(): number; set period(value: number); resetPeriod(): void; get periodInput(): number; private _storageType?; get storageType(): string; set storageType(value: string); resetStorageType(): void; get storageTypeInput(): 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; private _extends; get extends(): ClsTopicExtendsOutputReference; putExtends(value: ClsTopicExtends): void; resetExtends(): void; get extendsInput(): ClsTopicExtends; protected synthesizeAttributes(): { [name: string]: any; }; protected synthesizeHclAttributes(): { [name: string]: any; }; }