UNPKG

tencentcloud-sdk-nodejs-intl-en

Version:
1,302 lines (1,107 loc) • 334 kB
/* * Copyright (c) 2018 THL A29 Limited, a Tencent company. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ const AbstractModel = require("../../common/abstract_model"); /** * DisableAutoScalingGroup response structure. * @class */ class DisableAutoScalingGroupResponse extends AbstractModel { constructor(){ super(); /** * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem. * @type {string || null} */ this.RequestId = null; } /** * @private */ deserialize(params) { if (!params) { return; } this.RequestId = 'RequestId' in params ? params.RequestId : null; } } /** * ModifyLaunchConfigurationAttributes request structure. * @class */ class ModifyLaunchConfigurationAttributesRequest extends AbstractModel { constructor(){ super(); /** * Launch configuration ID * @type {string || null} */ this.LaunchConfigurationId = null; /** * [Image](https://intl.cloud.tencent.com/document/product/213/4940?from_cn_redirect=1) ID in the format of `img-xxx`. There are three types of images: <br/><li>Public images </li><li>Custom images </li><li>Shared images </li><br/>You can obtain the image IDs in the [CVM console](https://console.cloud.tencent.com/cvm/image?rid=1&imageType=PUBLIC_IMAGE).</li><li>You can also use the [DescribeImages](https://intl.cloud.tencent.com/document/api/213/15715?from_cn_redirect=1) and look for `ImageId` in the response.</li> * @type {string || null} */ this.ImageId = null; /** * List of instance types. Each type specifies different resource specifications. This list contains up to 10 instance types. The launch configuration uses `InstanceType` to indicate one single instance type and `InstanceTypes` to indicate multiple instance types. Specifying the `InstanceTypes` field will invalidate the original `InstanceType`. * @type {Array.<string> || null} */ this.InstanceTypes = null; /** * InstanceType verification policy, which is effective when actual modification is made to InstanceTypes. Valid values include ALL and ANY and the default value is ANY. <li>ALL: Verification passes if all InstanceTypes are available; otherwise, a verification error will be reported.</li> <li>ANY: Verification passes if any InstanceType is available; otherwise, a verification error will be reported.</li> Common reasons for unavailable InstanceTypes include the InstanceType being sold out, and the corresponding cloud disk being sold out. If a model in InstanceTypes does not exist or has been abolished, a verification error will be reported regardless of the valid values set for InstanceTypesCheckPolicy. * @type {string || null} */ this.InstanceTypesCheckPolicy = null; /** * Display name of the launch configuration, which can contain Chinese characters, letters, numbers, underscores, separators ("-"), and decimal points with a maximum length of 60 bytes. * @type {string || null} */ this.LaunchConfigurationName = null; /** * Base64-encoded custom data of up to 16 KB. If you want to clear `UserData`, set it to an empty string. * @type {string || null} */ this.UserData = null; /** * Security group to which the instance belongs. This parameter can be obtained from the `SecurityGroupId` field in the response of the [`DescribeSecurityGroups`](https://intl.cloud.tencent.com/document/api/215/15808?from_cn_redirect=1) API. At least one security group is required for this parameter. The security group specified is sequential. * @type {Array.<string> || null} */ this.SecurityGroupIds = null; /** * Information of the public network bandwidth configuration. When the public outbound network bandwidth is 0 Mbps, assigning a public IP is not allowed. Accordingly, if a public IP is assigned, the new public network outbound bandwidth must be greater than 0 Mbps. * @type {InternetAccessible || null} */ this.InternetAccessible = null; /** * Instance billing mode. Valid values: <li>POSTPAID_BY_HOUR: pay-as-you-go hourly</li> <li>SPOTPAID: spot instance</li> <li> CDCPAID: dedicated cluster</li> * @type {string || null} */ this.InstanceChargeType = null; /** * Parameter setting for the prepaid mode (monthly subscription mode). This parameter can specify the renewal period, whether to set the auto-renewal, and other attributes of the monthly-subscribed instances. This parameter is required when changing the instance billing mode to monthly subscription. It will be automatically discarded after you choose another billing mode. This field requires passing in the `Period` field. Other fields that are not passed in will use their default values. This field can be modified only when the current billing mode is monthly subscription. * @type {InstanceChargePrepaid || null} */ this.InstanceChargePrepaid = null; /** * Market-related options for instances, such as parameters related to spot instances. This parameter is required when changing the instance billing mode to spot instance. It will be automatically discarded after you choose another instance billing mode. This field requires passing in the `MaxPrice` field under the `SpotOptions`. Other fields that are not passed in will use their default values. This field can be modified only when the current billing mode is spot instance. * @type {InstanceMarketOptionsRequest || null} */ this.InstanceMarketOptions = null; /** * Cloud disk type selection policy. Valid values: <li>ORIGINAL: Use the set cloud disk type.</li> <li>AUTOMATIC: Automatically select the currently available cloud disk type.</li> * @type {string || null} */ this.DiskTypePolicy = null; /** * Instance system disk configurations * @type {SystemDisk || null} */ this.SystemDisk = null; /** * Configuration information of instance data disks. Up to 11 data disks can be specified and will be collectively modified. Please provide all the new values for the modification. The default data disk should be the same as the system disk. * @type {Array.<DataDisk> || null} */ this.DataDisks = null; /** * CVM hostname settings. This field is not supported for Windows instances. This field requires passing the `HostName` field. Other fields that are not passed in will use their default values. * @type {HostNameSettings || null} */ this.HostNameSettings = null; /** * Settings of CVM instance names. If this field is configured in a launch configuration, the `InstanceName` of a CVM created by the scaling group will be generated according to the configuration; otherwise, it will be in the `as-{{AutoScalingGroupName }}` format. This field requires passing in the `InstanceName` field. Other fields that are not passed in will use their default values. * @type {InstanceNameSettings || null} */ this.InstanceNameSettings = null; /** * Specifies whether to enable additional services, such as security services and monitoring service. * @type {EnhancedService || null} */ this.EnhancedService = null; /** * CAM role name. This parameter can be obtained from the `roleName` field returned by DescribeRoleList API. * @type {string || null} */ this.CamRoleName = null; /** * HPC ID<br> Note: This field is default to empty * @type {string || null} */ this.HpcClusterId = null; /** * IPv6 public network bandwidth configuration. If the IPv6 address is available in the new instance, public network bandwidth can be allocated to the IPv6 address. This parameter is invalid if `Ipv6AddressCount` of the scaling group associated with the launch configuration is 0. * @type {IPv6InternetAccessible || null} */ this.IPv6InternetAccessible = null; /** * Placement group ID. Only one is allowed. * @type {Array.<string> || null} */ this.DisasterRecoverGroupIds = null; /** * Instance login settings, which include passwords, keys, or the original login settings inherited from the image. <br>Please note that specifying new login settings will overwrite the existing ones. For instance, if you previously used a password for login and then use this parameter to switch the login settings to a key, the original password will be removed. * @type {LoginSettings || null} */ this.LoginSettings = null; /** * Instance tag list. By specifying this parameter, the instances added through scale-out can be bound to the tag. Up to 10 Tags can be specified. This parameter will overwrite the original instance tag list. To add new tags, you need to pass the new tags along with the original tags. * @type {Array.<InstanceTag> || null} */ this.InstanceTags = null; /** * Image family name. * @type {string || null} */ this.ImageFamily = null; /** * Cloud Dedicated Cluster (CDC) ID. * @type {string || null} */ this.DedicatedClusterId = null; /** * Custom metadata. * @type {Metadata || null} */ this.Metadata = null; } /** * @private */ deserialize(params) { if (!params) { return; } this.LaunchConfigurationId = 'LaunchConfigurationId' in params ? params.LaunchConfigurationId : null; this.ImageId = 'ImageId' in params ? params.ImageId : null; this.InstanceTypes = 'InstanceTypes' in params ? params.InstanceTypes : null; this.InstanceTypesCheckPolicy = 'InstanceTypesCheckPolicy' in params ? params.InstanceTypesCheckPolicy : null; this.LaunchConfigurationName = 'LaunchConfigurationName' in params ? params.LaunchConfigurationName : null; this.UserData = 'UserData' in params ? params.UserData : null; this.SecurityGroupIds = 'SecurityGroupIds' in params ? params.SecurityGroupIds : null; if (params.InternetAccessible) { let obj = new InternetAccessible(); obj.deserialize(params.InternetAccessible) this.InternetAccessible = obj; } this.InstanceChargeType = 'InstanceChargeType' in params ? params.InstanceChargeType : null; if (params.InstanceChargePrepaid) { let obj = new InstanceChargePrepaid(); obj.deserialize(params.InstanceChargePrepaid) this.InstanceChargePrepaid = obj; } if (params.InstanceMarketOptions) { let obj = new InstanceMarketOptionsRequest(); obj.deserialize(params.InstanceMarketOptions) this.InstanceMarketOptions = obj; } this.DiskTypePolicy = 'DiskTypePolicy' in params ? params.DiskTypePolicy : null; if (params.SystemDisk) { let obj = new SystemDisk(); obj.deserialize(params.SystemDisk) this.SystemDisk = obj; } if (params.DataDisks) { this.DataDisks = new Array(); for (let z in params.DataDisks) { let obj = new DataDisk(); obj.deserialize(params.DataDisks[z]); this.DataDisks.push(obj); } } if (params.HostNameSettings) { let obj = new HostNameSettings(); obj.deserialize(params.HostNameSettings) this.HostNameSettings = obj; } if (params.InstanceNameSettings) { let obj = new InstanceNameSettings(); obj.deserialize(params.InstanceNameSettings) this.InstanceNameSettings = obj; } if (params.EnhancedService) { let obj = new EnhancedService(); obj.deserialize(params.EnhancedService) this.EnhancedService = obj; } this.CamRoleName = 'CamRoleName' in params ? params.CamRoleName : null; this.HpcClusterId = 'HpcClusterId' in params ? params.HpcClusterId : null; if (params.IPv6InternetAccessible) { let obj = new IPv6InternetAccessible(); obj.deserialize(params.IPv6InternetAccessible) this.IPv6InternetAccessible = obj; } this.DisasterRecoverGroupIds = 'DisasterRecoverGroupIds' in params ? params.DisasterRecoverGroupIds : null; if (params.LoginSettings) { let obj = new LoginSettings(); obj.deserialize(params.LoginSettings) this.LoginSettings = obj; } if (params.InstanceTags) { this.InstanceTags = new Array(); for (let z in params.InstanceTags) { let obj = new InstanceTag(); obj.deserialize(params.InstanceTags[z]); this.InstanceTags.push(obj); } } this.ImageFamily = 'ImageFamily' in params ? params.ImageFamily : null; this.DedicatedClusterId = 'DedicatedClusterId' in params ? params.DedicatedClusterId : null; if (params.Metadata) { let obj = new Metadata(); obj.deserialize(params.Metadata) this.Metadata = obj; } } } /** * DisableAutoScalingGroup request structure. * @class */ class DisableAutoScalingGroupRequest extends AbstractModel { constructor(){ super(); /** * Scaling group ID * @type {string || null} */ this.AutoScalingGroupId = null; } /** * @private */ deserialize(params) { if (!params) { return; } this.AutoScalingGroupId = 'AutoScalingGroupId' in params ? params.AutoScalingGroupId : null; } } /** * DescribeRefreshActivities response structure. * @class */ class DescribeRefreshActivitiesResponse extends AbstractModel { constructor(){ super(); /** * Number of refresh activities that meet the conditions. * @type {number || null} */ this.TotalCount = null; /** * A collection of information about refresh activities that meet the conditions. * @type {Array.<RefreshActivity> || null} */ this.RefreshActivitySet = null; /** * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem. * @type {string || null} */ this.RequestId = null; } /** * @private */ deserialize(params) { if (!params) { return; } this.TotalCount = 'TotalCount' in params ? params.TotalCount : null; if (params.RefreshActivitySet) { this.RefreshActivitySet = new Array(); for (let z in params.RefreshActivitySet) { let obj = new RefreshActivity(); obj.deserialize(params.RefreshActivitySet[z]); this.RefreshActivitySet.push(obj); } } this.RequestId = 'RequestId' in params ? params.RequestId : null; } } /** * ModifyAutoScalingGroup request structure. * @class */ class ModifyAutoScalingGroupRequest extends AbstractModel { constructor(){ super(); /** * Auto scaling group ID * @type {string || null} */ this.AutoScalingGroupId = null; /** * Auto scaling group name, which can only contain letters, numbers, underscores, hyphens ("-"), and decimal points with a maximum length of 55 bytes and must be unique under your account. * @type {string || null} */ this.AutoScalingGroupName = null; /** * Default cooldown period in seconds. Default value: 300 * @type {number || null} */ this.DefaultCooldown = null; /** * Desired number of instances. The number should be no larger than the maximum and no smaller than minimum number of instances * @type {number || null} */ this.DesiredCapacity = null; /** * Launch configuration ID * @type {string || null} */ this.LaunchConfigurationId = null; /** * Maximum number of instances. Value range: 0-2,000. * @type {number || null} */ this.MaxSize = null; /** * Minimum number of instances. Value range: 0-2,000. * @type {number || null} */ this.MinSize = null; /** * Project ID * @type {number || null} */ this.ProjectId = null; /** * List of subnet IDs * @type {Array.<string> || null} */ this.SubnetIds = null; /** * Termination policy, whose maximum length is currently 1. Valid values include OLDEST_INSTANCE and NEWEST_INSTANCE. <li>OLDEST_INSTANCE: Terminate the oldest instance in the scaling group first.</li> <li>NEWEST_INSTANCE: Terminate the newest instance in the scaling group first.</li> * @type {Array.<string> || null} */ this.TerminationPolicies = null; /** * VPC ID. This field is left empty for basic networks. You need to specify SubnetIds when modifying the network of the auto scaling group to a VPC with a specified VPC ID. Specify Zones when modifying the network to a basic network. * @type {string || null} */ this.VpcId = null; /** * List of availability zones * @type {Array.<string> || null} */ this.Zones = null; /** * Retry policy, whose valid values include IMMEDIATE_RETRY, INCREMENTAL_INTERVALS, and NO_RETRY, with the default value being IMMEDIATE_RETRY. A partially successful scaling activity is considered a failed activity. <li>IMMEDIATE_RETRY: Immediately retry, and quickly retry in a short period. There will be no retry anymore after a certain number of consecutive failures (5).</li> <li>INCREMENTAL_INTERVALS: Retry with incremental intervals. As the number of consecutive failures increases, the retry intervals gradually become longer, ranging from seconds to one day.</li> <li>NO_RETRY: There will be no retry until another user call or alarm information is received.</li> * @type {string || null} */ this.RetryPolicy = null; /** * AZ verification policy, whose valid values include ALL and ANY, with the default value being ANY. This policy comes into effect when actual changes are made to resource-related fields in the scaling group (such as launch configuration, AZ, or subnet). <li>ALL: Verification passes if all AZs or subnets are available; otherwise, a verification error will be reported.<li> <li>ANY: Verification passes if any AZ or subnet is available; otherwise, a verification error will be reported.</li> Common reasons for unavailable AZs or subnets include the CVM InstanceType in the AZ being sold out, the CBS cloud disk in the AZ being sold out, insufficient quota in the AZ, and insufficient IP addresses in the subnet. If there is no AZ or subnet in Zones/SubnetIds, a verification error will be reported regardless of the values of ZonesCheckPolicy. * @type {string || null} */ this.ZonesCheckPolicy = null; /** * Service settings such as unhealthy instance replacement. * @type {ServiceSettings || null} */ this.ServiceSettings = null; /** * The number of IPv6 addresses that an instance has. Valid values: 0 and 1. * @type {number || null} */ this.Ipv6AddressCount = null; /** * Multi-AZ/multi-subnet policy, whose valid values include PRIORITY and EQUALITY, with the default value being PRIORITY. <li>PRIORITY: Instances are attempted to be created taking the order of the AZ/subnet list as the priority. If the highest-priority AZ/subnet can create instances successfully, instances can always be created in that AZ/subnet.</li> <li>EQUALITY: The instances added through scale-out will be distributed across multiple AZs/subnets to ensure a relatively balanced number of instances in each AZ/subnet after scaling out.</li> Points to consider regarding this policy: <li>When the scaling group is based on a classic network, this policy applies to the multi-AZ; when the scaling group is based on a VPC network, this policy applies to the multi-subnet, in this case, the AZs are no longer considered. For example, if there are four subnets labeled A, B, C, and D, where A, B, and C are in AZ 1 and D is in AZ 2, the subnets A, B, C, and D are considered for sorting without regard to AZs 1 and 2.</li> <li>This policy applies to the multi-AZ/multi-subnet and not to the InstanceTypes parameter of the launch configuration, which is selected according to the priority policy.</li> <li>When instances are created according to the PRIORITY policy, ensure the policy for multiple models first, followed by the policy for the multi-AZ/subnet. For example, with models A and B and subnets 1, 2, and 3, attempts will be made in the order of A1, A2, A3, B1, B2, and B3. If A1 is sold out, A2 will be attempted (instead of B1).</li> * @type {string || null} */ this.MultiZoneSubnetPolicy = null; /** * Scaling group instance health check type, whose valid values include: <li>CVM: Determines whether an instance is unhealthy based on its network status. An unhealthy network status is indicated by an event where instances become unreachable via PING. Detailed criteria of judgment can be found in [Instance Health Check](https://intl.cloud.tencent.com/document/product/377/8553?from_cn_redirect=1).</li> <li>CLB: Determines whether an instance is unhealthy based on the health check status of CLB. For principles behind CLB health checks, see [Health Check](https://intl.cloud.tencent.com/document/product/214/6097?from_cn_redirect=1).</li> * @type {string || null} */ this.HealthCheckType = null; /** * Grace period of the CLB health check * @type {number || null} */ this.LoadBalancerHealthCheckGracePeriod = null; /** * Instance assignment policy, whose valid values include LAUNCH_CONFIGURATION and SPOT_MIXED. <li>LAUNCH_CONFIGURATION: Represent the traditional mode of assigning instances according to the launch configuration.</li> <li>SPOT_MIXED: Represent the spot mixed mode. Currently, this mode is supported only when the launch configuration is set to the pay-as-you-go billing mode. In the mixed mode, the scaling group will scale out pay-as-you-go models or spot models based on the predefined settings. When the mixed mode is used, the billing type of the associated launch configuration cannot be modified.</li> * @type {string || null} */ this.InstanceAllocationPolicy = null; /** * Specifies how to assign pay-as-you-go instances and spot instances. This parameter is valid only when `InstanceAllocationPolicy` is set to `SPOT_MIXED`. * @type {SpotMixedAllocationPolicy || null} */ this.SpotMixedAllocationPolicy = null; /** * Capacity rebalancing feature, which is applicable only to spot instances within the scaling group. Valid values: <li>TRUE: Enable this feature. When spot instances in the scaling group are about to be automatically recycled by the spot instance service, AS proactively initiates the termination process of the spot instances. If there is a configured scale-in hook, it will be triggered before termination. After the termination process starts, AS asynchronously initiates the scale-out to reach the expected number of instances.</li> <li>FALSE: Disable this feature. AS waits for the spot instance to be terminated before scaling out to reach the number of instances expected by the scaling group.</li> * @type {boolean || null} */ this.CapacityRebalance = null; /** * Instance name sequencing settings. When enabled, an incremental numeric sequence will be appended to the names of instances automatically created within the scaling group. * @type {InstanceNameIndexSettings || null} */ this.InstanceNameIndexSettings = null; } /** * @private */ deserialize(params) { if (!params) { return; } this.AutoScalingGroupId = 'AutoScalingGroupId' in params ? params.AutoScalingGroupId : null; this.AutoScalingGroupName = 'AutoScalingGroupName' in params ? params.AutoScalingGroupName : null; this.DefaultCooldown = 'DefaultCooldown' in params ? params.DefaultCooldown : null; this.DesiredCapacity = 'DesiredCapacity' in params ? params.DesiredCapacity : null; this.LaunchConfigurationId = 'LaunchConfigurationId' in params ? params.LaunchConfigurationId : null; this.MaxSize = 'MaxSize' in params ? params.MaxSize : null; this.MinSize = 'MinSize' in params ? params.MinSize : null; this.ProjectId = 'ProjectId' in params ? params.ProjectId : null; this.SubnetIds = 'SubnetIds' in params ? params.SubnetIds : null; this.TerminationPolicies = 'TerminationPolicies' in params ? params.TerminationPolicies : null; this.VpcId = 'VpcId' in params ? params.VpcId : null; this.Zones = 'Zones' in params ? params.Zones : null; this.RetryPolicy = 'RetryPolicy' in params ? params.RetryPolicy : null; this.ZonesCheckPolicy = 'ZonesCheckPolicy' in params ? params.ZonesCheckPolicy : null; if (params.ServiceSettings) { let obj = new ServiceSettings(); obj.deserialize(params.ServiceSettings) this.ServiceSettings = obj; } this.Ipv6AddressCount = 'Ipv6AddressCount' in params ? params.Ipv6AddressCount : null; this.MultiZoneSubnetPolicy = 'MultiZoneSubnetPolicy' in params ? params.MultiZoneSubnetPolicy : null; this.HealthCheckType = 'HealthCheckType' in params ? params.HealthCheckType : null; this.LoadBalancerHealthCheckGracePeriod = 'LoadBalancerHealthCheckGracePeriod' in params ? params.LoadBalancerHealthCheckGracePeriod : null; this.InstanceAllocationPolicy = 'InstanceAllocationPolicy' in params ? params.InstanceAllocationPolicy : null; if (params.SpotMixedAllocationPolicy) { let obj = new SpotMixedAllocationPolicy(); obj.deserialize(params.SpotMixedAllocationPolicy) this.SpotMixedAllocationPolicy = obj; } this.CapacityRebalance = 'CapacityRebalance' in params ? params.CapacityRebalance : null; if (params.InstanceNameIndexSettings) { let obj = new InstanceNameIndexSettings(); obj.deserialize(params.InstanceNameIndexSettings) this.InstanceNameIndexSettings = obj; } } } /** * ScaleOutInstances request structure. * @class */ class ScaleOutInstancesRequest extends AbstractModel { constructor(){ super(); /** * Scaling group ID * @type {string || null} */ this.AutoScalingGroupId = null; /** * Number of instances to be added * @type {number || null} */ this.ScaleOutNumber = null; } /** * @private */ deserialize(params) { if (!params) { return; } this.AutoScalingGroupId = 'AutoScalingGroupId' in params ? params.AutoScalingGroupId : null; this.ScaleOutNumber = 'ScaleOutNumber' in params ? params.ScaleOutNumber : null; } } /** * AS event notification * @class */ class AutoScalingNotification extends AbstractModel { constructor(){ super(); /** * Auto scaling group ID. * @type {string || null} */ this.AutoScalingGroupId = null; /** * List of user group IDs. * @type {Array.<string> || null} */ this.NotificationUserGroupIds = null; /** * List of notification events. * @type {Array.<string> || null} */ this.NotificationTypes = null; /** * Event notification ID. * @type {string || null} */ this.AutoScalingNotificationId = null; /** * Notification receiver type. * @type {string || null} */ this.TargetType = null; /** * CMQ queue name. * @type {string || null} */ this.QueueName = null; /** * CMQ topic name. * @type {string || null} */ this.TopicName = null; } /** * @private */ deserialize(params) { if (!params) { return; } this.AutoScalingGroupId = 'AutoScalingGroupId' in params ? params.AutoScalingGroupId : null; this.NotificationUserGroupIds = 'NotificationUserGroupIds' in params ? params.NotificationUserGroupIds : null; this.NotificationTypes = 'NotificationTypes' in params ? params.NotificationTypes : null; this.AutoScalingNotificationId = 'AutoScalingNotificationId' in params ? params.AutoScalingNotificationId : null; this.TargetType = 'TargetType' in params ? params.TargetType : null; this.QueueName = 'QueueName' in params ? params.QueueName : null; this.TopicName = 'TopicName' in params ? params.TopicName : null; } } /** * ModifyScheduledAction request structure. * @class */ class ModifyScheduledActionRequest extends AbstractModel { constructor(){ super(); /** * ID of the scheduled task to be edited * @type {string || null} */ this.ScheduledActionId = null; /** * Scheduled task name, which can only contain letters, numbers, underscores, hyphens ("-"), and decimal points with a maximum length of 60 bytes and must be unique in an auto scaling group. * @type {string || null} */ this.ScheduledActionName = null; /** * The maximum number of instances set for the auto scaling group when the scheduled task is triggered. * @type {number || null} */ this.MaxSize = null; /** * The minimum number of instances set for the auto scaling group when the scheduled task is triggered. * @type {number || null} */ this.MinSize = null; /** * The desired number of instances set for the auto scaling group when the scheduled task is triggered. * @type {number || null} */ this.DesiredCapacity = null; /** * Initial triggered time of the scheduled task. The value is in `Beijing time` (UTC+8) in the format of `YYYY-MM-DDThh:mm:ss+08:00` according to the `ISO8601` standard. * @type {string || null} */ this.StartTime = null; /** * End time of the scheduled task. The value is in `Beijing time` (UTC+8) in the format of `YYYY-MM-DDThh:mm:ss+08:00` according to the `ISO8601` standard. <br>This parameter and `Recurrence` need to be specified at the same time. After the end time, the scheduled task will no longer take effect. * @type {string || null} */ this.EndTime = null; /** * Repeating mode of the scheduled task, which is in standard cron format. <br>This parameter and `EndTime` need to be specified at the same time. * @type {string || null} */ this.Recurrence = null; } /** * @private */ deserialize(params) { if (!params) { return; } this.ScheduledActionId = 'ScheduledActionId' in params ? params.ScheduledActionId : null; this.ScheduledActionName = 'ScheduledActionName' in params ? params.ScheduledActionName : null; this.MaxSize = 'MaxSize' in params ? params.MaxSize : null; this.MinSize = 'MinSize' in params ? params.MinSize : null; this.DesiredCapacity = 'DesiredCapacity' in params ? params.DesiredCapacity : null; this.StartTime = 'StartTime' in params ? params.StartTime : null; this.EndTime = 'EndTime' in params ? params.EndTime : null; this.Recurrence = 'Recurrence' in params ? params.Recurrence : null; } } /** * DescribeAutoScalingGroups request structure. * @class */ class DescribeAutoScalingGroupsRequest extends AbstractModel { constructor(){ super(); /** * Queries by one or more auto scaling group IDs in the format of `asg-nkdwoui0`. The maximum quantity per request is 100. This parameter does not support specifying both `AutoScalingGroupIds` and `Filters` at the same time. * @type {Array.<string> || null} */ this.AutoScalingGroupIds = null; /** * Filters. <li> auto-scaling-group-id - String - Required: No - (Filter) Filter by auto scaling group ID.</li> <li> auto-scaling-group-name - String - Required: No - (Filter) Filter by auto scaling group name.</li> <li> vague-auto-scaling-group-name - String - Required: No - (Filter) Fuzzy search by auto scaling group name.</li> <li> launch-configuration-id - String - Required: No - (Filter) Filter by launch configuration ID.</li> <li> tag-key - String - Required: No - (Filter) Filter by tag key.</li> <li> tag-value - String - Required: No - (Filter) Filter by tag value.</li> <li> tag:tag-key - String - Required: No - (Filter) Filter by tag key-value pair. The tag-key should be replaced with a specified tag key. For more information, see example 2.</li> The maximum number of `Filters` in each request is 10. The upper limit for `Filter.Values` is 5. This parameter cannot specify `AutoScalingGroupIds` and `Filters` at the same time. * @type {Array.<Filter> || null} */ this.Filters = null; /** * Number of returned results. Default value: 20. Maximum value: 100. For more information on `Limit`, see the relevant section in the API [overview](https://intl.cloud.tencent.com/document/api/213/15688?from_cn_redirect=1). * @type {number || null} */ this.Limit = null; /** * Offset. Default value: 0. For more information on `Offset`, see the relevant section in the API [overview](https://intl.cloud.tencent.com/document/api/213/15688?from_cn_redirect=1). * @type {number || null} */ this.Offset = null; } /** * @private */ deserialize(params) { if (!params) { return; } this.AutoScalingGroupIds = 'AutoScalingGroupIds' in params ? params.AutoScalingGroupIds : null; if (params.Filters) { this.Filters = new Array(); for (let z in params.Filters) { let obj = new Filter(); obj.deserialize(params.Filters[z]); this.Filters.push(obj); } } this.Limit = 'Limit' in params ? params.Limit : null; this.Offset = 'Offset' in params ? params.Offset : null; } } /** * Information set of eligible launch configurations. * @class */ class LaunchConfiguration extends AbstractModel { constructor(){ super(); /** * Project ID of the instance. * @type {number || null} */ this.ProjectId = null; /** * Launch configuration ID * @type {string || null} */ this.LaunchConfigurationId = null; /** * Launch configuration name. * @type {string || null} */ this.LaunchConfigurationName = null; /** * Instance model. * @type {string || null} */ this.InstanceType = null; /** * Information of the instance's system disk configuration. * @type {SystemDisk || null} */ this.SystemDisk = null; /** * Information of the instance's data disk configuration. * @type {Array.<DataDisk> || null} */ this.DataDisks = null; /** * Instance login settings. * @type {LimitedLoginSettings || null} */ this.LoginSettings = null; /** * Information of the public network bandwidth configuration. * @type {InternetAccessible || null} */ this.InternetAccessible = null; /** * Security group of the instance. * @type {Array.<string> || null} */ this.SecurityGroupIds = null; /** * Auto scaling group associated with the launch configuration. * @type {Array.<AutoScalingGroupAbstract> || null} */ this.AutoScalingGroupAbstractSet = null; /** * Custom data. Note: This field may return null, indicating that no valid values can be obtained. * @type {string || null} */ this.UserData = null; /** * Creation time of the launch configuration. * @type {string || null} */ this.CreatedTime = null; /** * Conditions of enhancement services for the instance and their settings. * @type {EnhancedService || null} */ this.EnhancedService = null; /** * Image ID. * @type {string || null} */ this.ImageId = null; /** * Current status of the launch configuration. Valid values: <li>NORMAL: Normal.</li> <li>IMAGE_ABNORMAL: Image exception in the launch configuration.</li> <li>CBS_SNAP_ABNORMAL: Exception with data disk snapshot in the launch configuration.</li> <li>SECURITY_GROUP_ABNORMAL: Security group exception in the launch configuration.</li> * @type {string || null} */ this.LaunchConfigurationStatus = null; /** * Instance billing type, with the CVM default value processed as POSTPAID_BY_HOUR. <li>POSTPAID_BY_HOUR: Hourly postpaid billing.</li> <li>SPOTPAID: Spot billing.</li> * @type {string || null} */ this.InstanceChargeType = null; /** * Market options of the instance, such as parameters related to spot instances. This parameter is required for spot instances. Note: This field may return null, indicating that no valid values can be obtained. * @type {InstanceMarketOptionsRequest || null} */ this.InstanceMarketOptions = null; /** * List of instance models. * @type {Array.<string> || null} */ this.InstanceTypes = null; /** * List of instance tags, which will be added to instances created by the scale-out activity. Up to 10 tags allowed. * @type {Array.<InstanceTag> || null} */ this.InstanceTags = null; /** * Tag list. Note: This field may return null, indicating that no valid values can be obtained. * @type {Array.<Tag> || null} */ this.Tags = null; /** * Version * @type {number || null} */ this.VersionNumber = null; /** * Update time * @type {string || null} */ this.UpdatedTime = null; /** * CAM role name. This parameter can be obtained from the `roleName` field returned by DescribeRoleList API. * @type {string || null} */ this.CamRoleName = null; /** * Value of InstanceTypesCheckPolicy upon the last operation. * @type {string || null} */ this.LastOperationInstanceTypesCheckPolicy = null; /** * CVM hostname settings. * @type {HostNameSettings || null} */ this.HostNameSettings = null; /** * Settings of CVM instance names * @type {InstanceNameSettings || null} */ this.InstanceNameSettings = null; /** * Details of the monthly subscription, including the purchase period, auto-renewal. It is required if the `InstanceChargeType` is `PREPAID`. * @type {InstanceChargePrepaid || null} */ this.InstanceChargePrepaid = null; /** * Cloud disk type selection policy. Valid values: <li>ORIGINAL: Use the set cloud disk type.</li> <li>AUTOMATIC: Automatically select available cloud disk types in the current availability zone.</li> * @type {string || null} */ this.DiskTypePolicy = null; /** * HPC ID<br> Note: This field is default to empty * @type {string || null} */ this.HpcClusterId = null; /** * IPv6 public network bandwidth configuration. * @type {IPv6InternetAccessible || null} */ this.IPv6InternetAccessible = null; /** * Placement group ID, supporting specification of only one. * @type {Array.<string> || null} */ this.DisasterRecoverGroupIds = null; /** * Image family name. Note: This field may return null, indicating that no valid values can be obtained. * @type {string || null} */ this.ImageFamily = null; /** * CDC ID. * @type {string || null} */ this.DedicatedClusterId = null; } /** * @private */ deserialize(params) { if (!params) { return; } this.ProjectId = 'ProjectId' in params ? params.ProjectId : null; this.LaunchConfigurationId = 'LaunchConfigurationId' in params ? params.LaunchConfigurationId : null; this.LaunchConfigurationName = 'LaunchConfigurationName' in params ? params.LaunchConfigurationName : null; this.InstanceType = 'InstanceType' in params ? params.InstanceType : null; if (params.SystemDisk) { let obj = new SystemDisk(); obj.deserialize(params.SystemDisk) this.SystemDisk = obj; } if (params.DataDisks) { this.DataDisks = new Array(); for (let z in params.DataDisks) { let obj = new DataDisk(); obj.deserialize(params.DataDisks[z]); this.DataDisks.push(obj); } } if (params.LoginSettings) { let obj = new LimitedLoginSettings(); obj.deserialize(params.LoginSettings) this.LoginSettings = obj; } if (params.InternetAccessible) { let obj = new InternetAccessible(); obj.deserialize(params.InternetAccessible) this.InternetAccessible = obj; } this.SecurityGroupIds = 'SecurityGroupIds' in params ? params.SecurityGroupIds : null; if (params.AutoScalingGroupAbstractSet) { this.AutoScalingGroupAbstractSet = new Array(); for (let z in params.AutoScalingGroupAbstractSet) { let obj = new AutoScalingGroupAbstract(); obj.deserialize(params.AutoScalingGroupAbstractSet[z]); this.AutoScalingGroupAbstractSet.push(obj); } } this.UserData = 'UserData' in params ? params.UserData : null; this.CreatedTime = 'CreatedTime' in params ? params.CreatedTime : null; if (params.EnhancedService) { let obj = new EnhancedService(); obj.deserialize(params.EnhancedService) this.EnhancedService = obj; } this.ImageId = 'ImageId' in params ? params.ImageId : null; this.LaunchConfigurationStatus = 'LaunchConfigurationStatus' in params ? params.LaunchConfigurationStatus : null; this.InstanceChargeType = 'InstanceChargeType' in params ? params.InstanceChargeType : null; if (params.InstanceMarketOptions) { let obj = new InstanceMarketOptionsRequest(); obj.deserialize(params.InstanceMarketOptions) this.InstanceMarketOptions = obj; } this.InstanceTypes = 'InstanceTypes' in params ? params.InstanceTypes : null; if (params.InstanceTags) { this.InstanceTags = new Array(); for (let z in params.InstanceTags) { let obj = new InstanceTag(); obj.deserialize(params.InstanceTags[z]); this.InstanceTags.push(obj); } } if (params.Tags) { this.Tags = new Array(); for (let z in params.Tags) { let obj = new Tag(); obj.deserialize(params.Tags[z]); this.Tags.push(obj); } } this.VersionNumber = 'VersionNumber' in params ? params.VersionNumber : null; this.UpdatedTime = 'UpdatedTime' in params ? params.UpdatedTime : null; this.CamRoleName = 'CamRoleName' in params ? params.CamRoleName : null; this.LastOperationInstanceTypesCheckPolicy = 'LastOperationInstanceTypesCheckPolicy' in params ? params.LastOperationInstanceTypesCheckPolicy : null; if (params.HostNameSettings) { let obj = new HostNameSettings(); obj.deserialize(params.HostNameSettings) this.HostNameSettings = obj; } if (params.InstanceNameSettings) { let obj = new InstanceNameSettings(); obj.deserialize(params.InstanceNameSettings) this.InstanceNameSettings = obj; } if (params.InstanceChargePrepaid) { let obj = new InstanceChargePrepaid(); obj.deserialize(params.InstanceChargePrepaid) this.InstanceChargePrepaid = obj; } this.DiskTypePolicy = 'DiskTypePolicy' in params ? params.DiskTypePolicy : null; this.HpcClusterId = 'HpcClusterId' in params ? params.HpcClusterId : null; if (params.IPv6InternetAccessible) { let obj = new IPv6InternetAccessible(); obj.deserialize(params.IPv6InternetAccessible) this.IPv6InternetAccessible = obj; } this.DisasterRecoverGroupIds = 'DisasterRecoverGroupIds' in params ? params.DisasterRecoverGroupIds : null; this.ImageFamily = 'ImageFamily' in params ? params.ImageFamily : null; this.DedicatedClusterId = 'DedicatedClusterId' in params ? params.DedicatedClusterId : null; } } /** * Custom Metadata * @class */ class Metadata extends AbstractModel { constructor(){ super(); /** * Custom metadata key-value pair list. * @type {Array.<MetadataItem> || null} */ this.Items = null; } /** * @private */ deserialize(params) { if (!params) { return; } if (params.Items) { this.Items = new Array(); for (let z in params.Items) { let obj = new MetadataItem(); obj.deserialize(params.Items[z]); this.Items.push(obj); } } } } /** * DescribeAccountLimits response structure. * @class */ class DescribeAccountLimitsResponse extends AbstractModel { constructor(){ super(); /** * Maximum number of launch configurations allowed for creation by the user account * @type {number || null} */ this.MaxNumberOfLaunchConfigurations = null; /** * Current number of launch configurations under the user account * @type {number || null} */ this.NumberOfLaunchConfigurations = null; /** * Maximum number of auto scaling groups allowed for creation by the user account * @type {number || null} */ this.MaxNumberOfAutoScalingGroups = null; /** * Current number of auto scaling groups under the user account * @type {number || null} */ this.NumberOfAutoScalingGroups = null; /** * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem. * @type {string || null} */ this.RequestId = null; } /** * @private */ deserialize(params) {