import { Construct } from 'constructs';
import * as cdktf from 'cdktf';
export interface AsStartInstanceRefreshConfig extends cdktf.TerraformMetaArguments {
/**
* Scaling group ID.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/as_start_instance_refresh#auto_scaling_group_id AsStartInstanceRefresh#auto_scaling_group_id}
*/
readonly autoScalingGroupId: string;
/**
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/as_start_instance_refresh#id AsStartInstanceRefresh#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;
/**
* Refresh mode. Value range: ROLLING_UPDATE_RESET: Reinstall the system for rolling update; ROLLING_UPDATE_REPLACE: Create a new instance for rolling update. This mode does not support the rollback interface yet.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/as_start_instance_refresh#refresh_mode AsStartInstanceRefresh#refresh_mode}
*/
readonly refreshMode?: string;
/**
* refresh_settings block
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/as_start_instance_refresh#refresh_settings AsStartInstanceRefresh#refresh_settings}
*/
readonly refreshSettings: AsStartInstanceRefreshRefreshSettings;
/**
* timeouts block
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/as_start_instance_refresh#timeouts AsStartInstanceRefresh#timeouts}
*/
readonly timeouts?: AsStartInstanceRefreshTimeouts;
}
export interface AsStartInstanceRefreshRefreshSettingsRollingUpdateSettings {
/**
* Batch quantity. The batch quantity should be a positive integer greater than 0, but cannot exceed the total number of instances pending refresh.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/as_start_instance_refresh#batch_number AsStartInstanceRefresh#batch_number}
*/
readonly batchNumber: number;
/**
* Pause policy between batches. Default value: Automatic. Valid values:
FIRST_BATCH_PAUSE: Pause after the first batch update completes. BATCH_INTERVAL_PAUSE: Pause between each batch update. AUTOMATIC: No pauses.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/as_start_instance_refresh#batch_pause AsStartInstanceRefresh#batch_pause}
*/
readonly batchPause?: string;
/**
* Failure Handling Policy. The default value is `AUTO_PAUSE`. The values are as follows, `AUTO_PAUSE`: Pause after refresh fails; `AUTO_ROLLBACK`: Roll back after refresh fails; `AUTO_CANCEL`: Cancel after refresh fails.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/as_start_instance_refresh#fail_process AsStartInstanceRefresh#fail_process}
*/
readonly failProcess?: string;
/**
* Maximum Extra Quantity. After setting this parameter, a batch of pay-as-you-go extra instances will be created according to the launch configuration before the rolling update starts, and the extra instances will be destroyed after the rolling update is completed.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/as_start_instance_refresh#max_surge AsStartInstanceRefresh#max_surge}
*/
readonly maxSurge?: number;
}
export declare function asStartInstanceRefreshRefreshSettingsRollingUpdateSettingsToTerraform(struct?: AsStartInstanceRefreshRefreshSettingsRollingUpdateSettingsOutputReference | AsStartInstanceRefreshRefreshSettingsRollingUpdateSettings): any;
export declare function asStartInstanceRefreshRefreshSettingsRollingUpdateSettingsToHclTerraform(struct?: AsStartInstanceRefreshRefreshSettingsRollingUpdateSettingsOutputReference | AsStartInstanceRefreshRefreshSettingsRollingUpdateSettings): any;
export declare class AsStartInstanceRefreshRefreshSettingsRollingUpdateSettingsOutputReference 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(): AsStartInstanceRefreshRefreshSettingsRollingUpdateSettings | undefined;
set internalValue(value: AsStartInstanceRefreshRefreshSettingsRollingUpdateSettings | undefined);
private _batchNumber?;
get batchNumber(): number;
set batchNumber(value: number);
get batchNumberInput(): number;
private _batchPause?;
get batchPause(): string;
set batchPause(value: string);
resetBatchPause(): void;
get batchPauseInput(): string;
private _failProcess?;
get failProcess(): string;
set failProcess(value: string);
resetFailProcess(): void;
get failProcessInput(): string;
private _maxSurge?;
get maxSurge(): number;
set maxSurge(value: number);
resetMaxSurge(): void;
get maxSurgeInput(): number;
}
export interface AsStartInstanceRefreshRefreshSettings {
/**
* Backend service health check status for instances, defaults to FALSE. This setting takes effect only for scaling groups bound with application load balancers. When enabled, if an instance fails the check after being refreshed, its load balancer port weight remains 0 and is marked as a refresh failure. Valid values:
TRUE: Enable the check. FALSE: Do not enable the check.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/as_start_instance_refresh#check_instance_target_health AsStartInstanceRefresh#check_instance_target_health}
*/
readonly checkInstanceTargetHealth?: boolean | cdktf.IResolvable;
/**
* The timeout period for backend service health status checks, in seconds. The valid range is [60, 7200], with a default value of 1800 seconds. This takes effect only when the CheckInstanceTargetHealth parameter is enabled. If the instance health check times out, it will be marked as a refresh failure.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/as_start_instance_refresh#check_instance_target_health_timeout AsStartInstanceRefresh#check_instance_target_health_timeout}
*/
readonly checkInstanceTargetHealthTimeout?: number;
/**
* rolling_update_settings block
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/as_start_instance_refresh#rolling_update_settings AsStartInstanceRefresh#rolling_update_settings}
*/
readonly rollingUpdateSettings: AsStartInstanceRefreshRefreshSettingsRollingUpdateSettings;
}
export declare function asStartInstanceRefreshRefreshSettingsToTerraform(struct?: AsStartInstanceRefreshRefreshSettingsOutputReference | AsStartInstanceRefreshRefreshSettings): any;
export declare function asStartInstanceRefreshRefreshSettingsToHclTerraform(struct?: AsStartInstanceRefreshRefreshSettingsOutputReference | AsStartInstanceRefreshRefreshSettings): any;
export declare class AsStartInstanceRefreshRefreshSettingsOutputReference 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(): AsStartInstanceRefreshRefreshSettings | undefined;
set internalValue(value: AsStartInstanceRefreshRefreshSettings | undefined);
private _checkInstanceTargetHealth?;
get checkInstanceTargetHealth(): boolean | cdktf.IResolvable;
set checkInstanceTargetHealth(value: boolean | cdktf.IResolvable);
resetCheckInstanceTargetHealth(): void;
get checkInstanceTargetHealthInput(): any;
private _checkInstanceTargetHealthTimeout?;
get checkInstanceTargetHealthTimeout(): number;
set checkInstanceTargetHealthTimeout(value: number);
resetCheckInstanceTargetHealthTimeout(): void;
get checkInstanceTargetHealthTimeoutInput(): number;
private _rollingUpdateSettings;
get rollingUpdateSettings(): AsStartInstanceRefreshRefreshSettingsRollingUpdateSettingsOutputReference;
putRollingUpdateSettings(value: AsStartInstanceRefreshRefreshSettingsRollingUpdateSettings): void;
get rollingUpdateSettingsInput(): AsStartInstanceRefreshRefreshSettingsRollingUpdateSettings;
}
export interface AsStartInstanceRefreshTimeouts {
/**
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/as_start_instance_refresh#create AsStartInstanceRefresh#create}
*/
readonly create?: string;
}
export declare function asStartInstanceRefreshTimeoutsToTerraform(struct?: AsStartInstanceRefreshTimeouts | cdktf.IResolvable): any;
export declare function asStartInstanceRefreshTimeoutsToHclTerraform(struct?: AsStartInstanceRefreshTimeouts | cdktf.IResolvable): any;
export declare class AsStartInstanceRefreshTimeoutsOutputReference 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(): AsStartInstanceRefreshTimeouts | cdktf.IResolvable | undefined;
set internalValue(value: AsStartInstanceRefreshTimeouts | cdktf.IResolvable | undefined);
private _create?;
get create(): string;
set create(value: string);
resetCreate(): void;
get createInput(): string;
}
/**
* Represents a {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/as_start_instance_refresh tencentcloud_as_start_instance_refresh}
*/
export declare class AsStartInstanceRefresh extends cdktf.TerraformResource {
static readonly tfResourceType = "tencentcloud_as_start_instance_refresh";
/**
* Generates CDKTF code for importing a AsStartInstanceRefresh 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 AsStartInstanceRefresh to import
* @param importFromId The id of the existing AsStartInstanceRefresh that should be imported. Refer to the {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/as_start_instance_refresh#import import section} in the documentation of this resource for the id to use
* @param provider? Optional instance of the provider where the AsStartInstanceRefresh 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_start_instance_refresh tencentcloud_as_start_instance_refresh} 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 AsStartInstanceRefreshConfig
*/
constructor(scope: Construct, id: string, config: AsStartInstanceRefreshConfig);
private _autoScalingGroupId?;
get autoScalingGroupId(): string;
set autoScalingGroupId(value: string);
get autoScalingGroupIdInput(): string;
private _id?;
get id(): string;
set id(value: string);
resetId(): void;
get idInput(): string;
private _refreshMode?;
get refreshMode(): string;
set refreshMode(value: string);
resetRefreshMode(): void;
get refreshModeInput(): string;
private _refreshSettings;
get refreshSettings(): AsStartInstanceRefreshRefreshSettingsOutputReference;
putRefreshSettings(value: AsStartInstanceRefreshRefreshSettings): void;
get refreshSettingsInput(): AsStartInstanceRefreshRefreshSettings;
private _timeouts;
get timeouts(): AsStartInstanceRefreshTimeoutsOutputReference;
putTimeouts(value: AsStartInstanceRefreshTimeouts): void;
resetTimeouts(): void;
get timeoutsInput(): any;
protected synthesizeAttributes(): {
[name: string]: any;
};
protected synthesizeHclAttributes(): {
[name: string]: any;
};
}