import { Construct } from 'constructs'; import * as cdktf from 'cdktf'; export interface AsLifecycleHookConfig extends cdktf.TerraformMetaArguments { /** * Defines the action the AS group should take when the lifecycle hook timeout elapses or if an unexpected failure occurs. Valid values: `CONTINUE` and `ABANDON`. The default value is `CONTINUE`. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/as_lifecycle_hook#default_result AsLifecycleHook#default_result} */ readonly defaultResult?: string; /** * Defines the amount of time, in seconds, that can elapse before the lifecycle hook times out. Valid value ranges: (30~7200). and default value is `300`. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/as_lifecycle_hook#heartbeat_timeout AsLifecycleHook#heartbeat_timeout} */ readonly heartbeatTimeout?: number; /** * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/as_lifecycle_hook#id AsLifecycleHook#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 name of the lifecycle hook. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/as_lifecycle_hook#lifecycle_hook_name AsLifecycleHook#lifecycle_hook_name} */ readonly lifecycleHookName: string; /** * The instance state to which you want to attach the lifecycle hook. Valid values: `INSTANCE_LAUNCHING` and `INSTANCE_TERMINATING`. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/as_lifecycle_hook#lifecycle_transition AsLifecycleHook#lifecycle_transition} */ readonly lifecycleTransition: string; /** * The scenario where the lifecycle hook is applied. `EXTENSION`: the lifecycle hook will be triggered when AttachInstances, DetachInstances or RemoveInstaces is called. `NORMAL`: the lifecycle hook is not triggered by the above APIs. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/as_lifecycle_hook#lifecycle_transition_type AsLifecycleHook#lifecycle_transition_type} */ readonly lifecycleTransitionType?: string; /** * Contains additional information that you want to include any time AS sends a message to the notification target. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/as_lifecycle_hook#notification_metadata AsLifecycleHook#notification_metadata} */ readonly notificationMetadata?: string; /** * For CMQ_QUEUE type, a name of queue must be set. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/as_lifecycle_hook#notification_queue_name AsLifecycleHook#notification_queue_name} */ readonly notificationQueueName?: string; /** * Target type. Valid values: `CMQ_QUEUE`, `CMQ_TOPIC`, `TDMQ_CMQ_QUEUE`, `TDMQ_CMQ_TOPIC`. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/as_lifecycle_hook#notification_target_type AsLifecycleHook#notification_target_type} */ readonly notificationTargetType?: string; /** * For CMQ_TOPIC type, a name of topic must be set. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/as_lifecycle_hook#notification_topic_name AsLifecycleHook#notification_topic_name} */ readonly notificationTopicName?: string; /** * ID of a scaling group. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/as_lifecycle_hook#scaling_group_id AsLifecycleHook#scaling_group_id} */ readonly scalingGroupId: string; /** * lifecycle_command block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/as_lifecycle_hook#lifecycle_command AsLifecycleHook#lifecycle_command} */ readonly lifecycleCommand?: AsLifecycleHookLifecycleCommand; } export interface AsLifecycleHookLifecycleCommand { /** * Remote command ID. It is required to execute a command. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/as_lifecycle_hook#command_id AsLifecycleHook#command_id} */ readonly commandId: string; /** * Custom parameter. The field type is JSON encoded string. For example, {"varA": "222"}. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/as_lifecycle_hook#parameters AsLifecycleHook#parameters} */ readonly parameters?: string; } export declare function asLifecycleHookLifecycleCommandToTerraform(struct?: AsLifecycleHookLifecycleCommandOutputReference | AsLifecycleHookLifecycleCommand): any; export declare function asLifecycleHookLifecycleCommandToHclTerraform(struct?: AsLifecycleHookLifecycleCommandOutputReference | AsLifecycleHookLifecycleCommand): any; export declare class AsLifecycleHookLifecycleCommandOutputReference 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(): AsLifecycleHookLifecycleCommand | undefined; set internalValue(value: AsLifecycleHookLifecycleCommand | undefined); private _commandId?; get commandId(): string; set commandId(value: string); get commandIdInput(): string; private _parameters?; get parameters(): string; set parameters(value: string); resetParameters(): void; get parametersInput(): string; } /** * Represents a {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/as_lifecycle_hook tencentcloud_as_lifecycle_hook} */ export declare class AsLifecycleHook extends cdktf.TerraformResource { static readonly tfResourceType = "tencentcloud_as_lifecycle_hook"; /** * Generates CDKTF code for importing a AsLifecycleHook 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 AsLifecycleHook to import * @param importFromId The id of the existing AsLifecycleHook that should be imported. Refer to the {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/as_lifecycle_hook#import import section} in the documentation of this resource for the id to use * @param provider? Optional instance of the provider where the AsLifecycleHook 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/as_lifecycle_hook tencentcloud_as_lifecycle_hook} 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 AsLifecycleHookConfig */ constructor(scope: Construct, id: string, config: AsLifecycleHookConfig); private _defaultResult?; get defaultResult(): string; set defaultResult(value: string); resetDefaultResult(): void; get defaultResultInput(): string; private _heartbeatTimeout?; get heartbeatTimeout(): number; set heartbeatTimeout(value: number); resetHeartbeatTimeout(): void; get heartbeatTimeoutInput(): number; private _id?; get id(): string; set id(value: string); resetId(): void; get idInput(): string; private _lifecycleHookName?; get lifecycleHookName(): string; set lifecycleHookName(value: string); get lifecycleHookNameInput(): string; private _lifecycleTransition?; get lifecycleTransition(): string; set lifecycleTransition(value: string); get lifecycleTransitionInput(): string; private _lifecycleTransitionType?; get lifecycleTransitionType(): string; set lifecycleTransitionType(value: string); resetLifecycleTransitionType(): void; get lifecycleTransitionTypeInput(): string; private _notificationMetadata?; get notificationMetadata(): string; set notificationMetadata(value: string); resetNotificationMetadata(): void; get notificationMetadataInput(): string; private _notificationQueueName?; get notificationQueueName(): string; set notificationQueueName(value: string); resetNotificationQueueName(): void; get notificationQueueNameInput(): string; private _notificationTargetType?; get notificationTargetType(): string; set notificationTargetType(value: string); resetNotificationTargetType(): void; get notificationTargetTypeInput(): string; private _notificationTopicName?; get notificationTopicName(): string; set notificationTopicName(value: string); resetNotificationTopicName(): void; get notificationTopicNameInput(): string; private _scalingGroupId?; get scalingGroupId(): string; set scalingGroupId(value: string); get scalingGroupIdInput(): string; private _lifecycleCommand; get lifecycleCommand(): AsLifecycleHookLifecycleCommandOutputReference; putLifecycleCommand(value: AsLifecycleHookLifecycleCommand): void; resetLifecycleCommand(): void; get lifecycleCommandInput(): AsLifecycleHookLifecycleCommand; protected synthesizeAttributes(): { [name: string]: any; }; protected synthesizeHclAttributes(): { [name: string]: any; }; }