import { Construct } from 'constructs'; import * as cdktf from 'cdktf'; export interface TseCngwServiceRateLimitConfig extends cdktf.TerraformMetaArguments { /** * gateway ID. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/tse_cngw_service_rate_limit#gateway_id TseCngwServiceRateLimit#gateway_id} */ readonly gatewayId: string; /** * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/tse_cngw_service_rate_limit#id TseCngwServiceRateLimit#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; /** * service name or service ID. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/tse_cngw_service_rate_limit#name TseCngwServiceRateLimit#name} */ readonly name: string; /** * limit_detail block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/tse_cngw_service_rate_limit#limit_detail TseCngwServiceRateLimit#limit_detail} */ readonly limitDetail: TseCngwServiceRateLimitLimitDetail; } export interface TseCngwServiceRateLimitLimitDetailExternalRedis { /** * redis ip, maybe null. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/tse_cngw_service_rate_limit#redis_host TseCngwServiceRateLimit#redis_host} */ readonly redisHost: string; /** * redis password, maybe null. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/tse_cngw_service_rate_limit#redis_password TseCngwServiceRateLimit#redis_password} */ readonly redisPassword: string; /** * redis port, maybe null. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/tse_cngw_service_rate_limit#redis_port TseCngwServiceRateLimit#redis_port} */ readonly redisPort: number; /** * redis timeout, unit: `ms`, maybe null. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/tse_cngw_service_rate_limit#redis_timeout TseCngwServiceRateLimit#redis_timeout} */ readonly redisTimeout: number; } export declare function tseCngwServiceRateLimitLimitDetailExternalRedisToTerraform(struct?: TseCngwServiceRateLimitLimitDetailExternalRedisOutputReference | TseCngwServiceRateLimitLimitDetailExternalRedis): any; export declare function tseCngwServiceRateLimitLimitDetailExternalRedisToHclTerraform(struct?: TseCngwServiceRateLimitLimitDetailExternalRedisOutputReference | TseCngwServiceRateLimitLimitDetailExternalRedis): any; export declare class TseCngwServiceRateLimitLimitDetailExternalRedisOutputReference 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(): TseCngwServiceRateLimitLimitDetailExternalRedis | undefined; set internalValue(value: TseCngwServiceRateLimitLimitDetailExternalRedis | undefined); private _redisHost?; get redisHost(): string; set redisHost(value: string); get redisHostInput(): string; private _redisPassword?; get redisPassword(): string; set redisPassword(value: string); get redisPasswordInput(): string; private _redisPort?; get redisPort(): number; set redisPort(value: number); get redisPortInput(): number; private _redisTimeout?; get redisTimeout(): number; set redisTimeout(value: number); get redisTimeoutInput(): number; } export interface TseCngwServiceRateLimitLimitDetailQpsThresholds { /** * the max threshold. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/tse_cngw_service_rate_limit#max TseCngwServiceRateLimit#max} */ readonly max: number; /** * qps threshold unit.Reference value:`second`, `minute`, `hour`, `day`, `month`, `year`. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/tse_cngw_service_rate_limit#unit TseCngwServiceRateLimit#unit} */ readonly unit: string; } export declare function tseCngwServiceRateLimitLimitDetailQpsThresholdsToTerraform(struct?: TseCngwServiceRateLimitLimitDetailQpsThresholds | cdktf.IResolvable): any; export declare function tseCngwServiceRateLimitLimitDetailQpsThresholdsToHclTerraform(struct?: TseCngwServiceRateLimitLimitDetailQpsThresholds | cdktf.IResolvable): any; export declare class TseCngwServiceRateLimitLimitDetailQpsThresholdsOutputReference 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(): TseCngwServiceRateLimitLimitDetailQpsThresholds | cdktf.IResolvable | undefined; set internalValue(value: TseCngwServiceRateLimitLimitDetailQpsThresholds | cdktf.IResolvable | undefined); private _max?; get max(): number; set max(value: number); get maxInput(): number; private _unit?; get unit(): string; set unit(value: string); get unitInput(): string; } export declare class TseCngwServiceRateLimitLimitDetailQpsThresholdsList extends cdktf.ComplexList { protected terraformResource: cdktf.IInterpolatingParent; protected terraformAttribute: string; protected wrapsSet: boolean; internalValue?: TseCngwServiceRateLimitLimitDetailQpsThresholds[] | 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): TseCngwServiceRateLimitLimitDetailQpsThresholdsOutputReference; } export interface TseCngwServiceRateLimitLimitDetailRateLimitResponseHeaders { /** * key of header. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/tse_cngw_service_rate_limit#key TseCngwServiceRateLimit#key} */ readonly key?: string; /** * value of header. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/tse_cngw_service_rate_limit#value TseCngwServiceRateLimit#value} */ readonly value?: string; } export declare function tseCngwServiceRateLimitLimitDetailRateLimitResponseHeadersToTerraform(struct?: TseCngwServiceRateLimitLimitDetailRateLimitResponseHeaders | cdktf.IResolvable): any; export declare function tseCngwServiceRateLimitLimitDetailRateLimitResponseHeadersToHclTerraform(struct?: TseCngwServiceRateLimitLimitDetailRateLimitResponseHeaders | cdktf.IResolvable): any; export declare class TseCngwServiceRateLimitLimitDetailRateLimitResponseHeadersOutputReference 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(): TseCngwServiceRateLimitLimitDetailRateLimitResponseHeaders | cdktf.IResolvable | undefined; set internalValue(value: TseCngwServiceRateLimitLimitDetailRateLimitResponseHeaders | cdktf.IResolvable | undefined); private _key?; get key(): string; set key(value: string); resetKey(): void; get keyInput(): string; private _value?; get value(): string; set value(value: string); resetValue(): void; get valueInput(): string; } export declare class TseCngwServiceRateLimitLimitDetailRateLimitResponseHeadersList extends cdktf.ComplexList { protected terraformResource: cdktf.IInterpolatingParent; protected terraformAttribute: string; protected wrapsSet: boolean; internalValue?: TseCngwServiceRateLimitLimitDetailRateLimitResponseHeaders[] | 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): TseCngwServiceRateLimitLimitDetailRateLimitResponseHeadersOutputReference; } export interface TseCngwServiceRateLimitLimitDetailRateLimitResponse { /** * custom response body, maybe bull. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/tse_cngw_service_rate_limit#body TseCngwServiceRateLimit#body} */ readonly body?: string; /** * http status code. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/tse_cngw_service_rate_limit#http_status TseCngwServiceRateLimit#http_status} */ readonly httpStatus?: number; /** * headers block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/tse_cngw_service_rate_limit#headers TseCngwServiceRateLimit#headers} */ readonly headers?: TseCngwServiceRateLimitLimitDetailRateLimitResponseHeaders[] | cdktf.IResolvable; } export declare function tseCngwServiceRateLimitLimitDetailRateLimitResponseToTerraform(struct?: TseCngwServiceRateLimitLimitDetailRateLimitResponseOutputReference | TseCngwServiceRateLimitLimitDetailRateLimitResponse): any; export declare function tseCngwServiceRateLimitLimitDetailRateLimitResponseToHclTerraform(struct?: TseCngwServiceRateLimitLimitDetailRateLimitResponseOutputReference | TseCngwServiceRateLimitLimitDetailRateLimitResponse): any; export declare class TseCngwServiceRateLimitLimitDetailRateLimitResponseOutputReference 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(): TseCngwServiceRateLimitLimitDetailRateLimitResponse | undefined; set internalValue(value: TseCngwServiceRateLimitLimitDetailRateLimitResponse | undefined); private _body?; get body(): string; set body(value: string); resetBody(): void; get bodyInput(): string; private _httpStatus?; get httpStatus(): number; set httpStatus(value: number); resetHttpStatus(): void; get httpStatusInput(): number; private _headers; get headers(): TseCngwServiceRateLimitLimitDetailRateLimitResponseHeadersList; putHeaders(value: TseCngwServiceRateLimitLimitDetailRateLimitResponseHeaders[] | cdktf.IResolvable): void; resetHeaders(): void; get headersInput(): any; } export interface TseCngwServiceRateLimitLimitDetail { /** * status of service rate limit. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/tse_cngw_service_rate_limit#enabled TseCngwServiceRateLimit#enabled} */ readonly enabled: boolean | cdktf.IResolvable; /** * request headers that require rate limit. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/tse_cngw_service_rate_limit#header TseCngwServiceRateLimit#header} */ readonly header?: string; /** * whether to hide the headers of client. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/tse_cngw_service_rate_limit#hide_client_headers TseCngwServiceRateLimit#hide_client_headers} */ readonly hideClientHeaders: boolean | cdktf.IResolvable; /** * whether to enable request queuing. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/tse_cngw_service_rate_limit#is_delay TseCngwServiceRateLimit#is_delay} */ readonly isDelay: boolean | cdktf.IResolvable; /** * basis for service rate limit.Reference value: `ip`, `service`, `consumer`, `credential`, `path`, `header`. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/tse_cngw_service_rate_limit#limit_by TseCngwServiceRateLimit#limit_by} */ readonly limitBy: string; /** * queue time. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/tse_cngw_service_rate_limit#line_up_time TseCngwServiceRateLimit#line_up_time} */ readonly lineUpTime?: number; /** * request paths that require rate limit. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/tse_cngw_service_rate_limit#path TseCngwServiceRateLimit#path} */ readonly path?: string; /** * counter policy.Reference value: `local`, `redis`, `external_redis`. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/tse_cngw_service_rate_limit#policy TseCngwServiceRateLimit#policy} */ readonly policy?: string; /** * request forwarding address, maybe null. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/tse_cngw_service_rate_limit#rate_limit_response_url TseCngwServiceRateLimit#rate_limit_response_url} */ readonly rateLimitResponseUrl?: string; /** * response strategy.Reference value: `url`: forward request according to url, `text`: response configuration, `default`: return directly. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/tse_cngw_service_rate_limit#response_type TseCngwServiceRateLimit#response_type} */ readonly responseType: string; /** * external_redis block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/tse_cngw_service_rate_limit#external_redis TseCngwServiceRateLimit#external_redis} */ readonly externalRedis?: TseCngwServiceRateLimitLimitDetailExternalRedis; /** * qps_thresholds block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/tse_cngw_service_rate_limit#qps_thresholds TseCngwServiceRateLimit#qps_thresholds} */ readonly qpsThresholds: TseCngwServiceRateLimitLimitDetailQpsThresholds[] | cdktf.IResolvable; /** * rate_limit_response block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/tse_cngw_service_rate_limit#rate_limit_response TseCngwServiceRateLimit#rate_limit_response} */ readonly rateLimitResponse?: TseCngwServiceRateLimitLimitDetailRateLimitResponse; } export declare function tseCngwServiceRateLimitLimitDetailToTerraform(struct?: TseCngwServiceRateLimitLimitDetailOutputReference | TseCngwServiceRateLimitLimitDetail): any; export declare function tseCngwServiceRateLimitLimitDetailToHclTerraform(struct?: TseCngwServiceRateLimitLimitDetailOutputReference | TseCngwServiceRateLimitLimitDetail): any; export declare class TseCngwServiceRateLimitLimitDetailOutputReference 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(): TseCngwServiceRateLimitLimitDetail | undefined; set internalValue(value: TseCngwServiceRateLimitLimitDetail | undefined); private _enabled?; get enabled(): boolean | cdktf.IResolvable; set enabled(value: boolean | cdktf.IResolvable); get enabledInput(): any; private _header?; get header(): string; set header(value: string); resetHeader(): void; get headerInput(): string; private _hideClientHeaders?; get hideClientHeaders(): boolean | cdktf.IResolvable; set hideClientHeaders(value: boolean | cdktf.IResolvable); get hideClientHeadersInput(): any; private _isDelay?; get isDelay(): boolean | cdktf.IResolvable; set isDelay(value: boolean | cdktf.IResolvable); get isDelayInput(): any; private _limitBy?; get limitBy(): string; set limitBy(value: string); get limitByInput(): string; private _lineUpTime?; get lineUpTime(): number; set lineUpTime(value: number); resetLineUpTime(): void; get lineUpTimeInput(): number; private _path?; get path(): string; set path(value: string); resetPath(): void; get pathInput(): string; private _policy?; get policy(): string; set policy(value: string); resetPolicy(): void; get policyInput(): string; private _rateLimitResponseUrl?; get rateLimitResponseUrl(): string; set rateLimitResponseUrl(value: string); resetRateLimitResponseUrl(): void; get rateLimitResponseUrlInput(): string; private _responseType?; get responseType(): string; set responseType(value: string); get responseTypeInput(): string; private _externalRedis; get externalRedis(): TseCngwServiceRateLimitLimitDetailExternalRedisOutputReference; putExternalRedis(value: TseCngwServiceRateLimitLimitDetailExternalRedis): void; resetExternalRedis(): void; get externalRedisInput(): TseCngwServiceRateLimitLimitDetailExternalRedis; private _qpsThresholds; get qpsThresholds(): TseCngwServiceRateLimitLimitDetailQpsThresholdsList; putQpsThresholds(value: TseCngwServiceRateLimitLimitDetailQpsThresholds[] | cdktf.IResolvable): void; get qpsThresholdsInput(): any; private _rateLimitResponse; get rateLimitResponse(): TseCngwServiceRateLimitLimitDetailRateLimitResponseOutputReference; putRateLimitResponse(value: TseCngwServiceRateLimitLimitDetailRateLimitResponse): void; resetRateLimitResponse(): void; get rateLimitResponseInput(): TseCngwServiceRateLimitLimitDetailRateLimitResponse; } /** * Represents a {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/tse_cngw_service_rate_limit tencentcloud_tse_cngw_service_rate_limit} */ export declare class TseCngwServiceRateLimit extends cdktf.TerraformResource { static readonly tfResourceType = "tencentcloud_tse_cngw_service_rate_limit"; /** * Generates CDKTF code for importing a TseCngwServiceRateLimit 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 TseCngwServiceRateLimit to import * @param importFromId The id of the existing TseCngwServiceRateLimit that should be imported. Refer to the {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/tse_cngw_service_rate_limit#import import section} in the documentation of this resource for the id to use * @param provider? Optional instance of the provider where the TseCngwServiceRateLimit 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/tse_cngw_service_rate_limit tencentcloud_tse_cngw_service_rate_limit} 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 TseCngwServiceRateLimitConfig */ constructor(scope: Construct, id: string, config: TseCngwServiceRateLimitConfig); private _gatewayId?; get gatewayId(): string; set gatewayId(value: string); get gatewayIdInput(): string; private _id?; get id(): string; set id(value: string); resetId(): void; get idInput(): string; private _name?; get name(): string; set name(value: string); get nameInput(): string; private _limitDetail; get limitDetail(): TseCngwServiceRateLimitLimitDetailOutputReference; putLimitDetail(value: TseCngwServiceRateLimitLimitDetail): void; get limitDetailInput(): TseCngwServiceRateLimitLimitDetail; protected synthesizeAttributes(): { [name: string]: any; }; protected synthesizeHclAttributes(): { [name: string]: any; }; }