// This file is auto-generated, don't edit it import * as $dara from '@darabonba/typescript'; export class ModifyElasticityAssuranceRequestPrivatePoolOptions extends $dara.Model { /** * @remarks * The ID of the elasticity assurance. * * This parameter is required. * * @example * eap-bp67acfmxazb4**** */ id?: string; /** * @remarks * The name of the elasticity assurance. The name must be 2 to 128 characters in length. The name must start with a letter and cannot start with http:// or https://. The name can contain digits, colons (:), underscores (_), and hyphens (-). * * @example * eapTestName */ name?: string; static names(): { [key: string]: string } { return { id: 'Id', name: 'Name', }; } static types(): { [key: string]: any } { return { id: 'string', name: 'string', }; } validate() { super.validate(); } constructor(map?: { [key: string]: any }) { super(map); } } export class ModifyElasticityAssuranceRequestRecurrenceRules extends $dara.Model { /** * @remarks * The end time of the assurance period for the capacity reservation of the time-segmented elasticity assurance. Specify an on-the-hour point in time. * * @example * 10 */ endHour?: number; /** * @remarks * The type of the assurance schedule. Valid values: * * * Daily * * Weekly * * Monthly * * > If you specify this parameter, you must specify `RecurrenceType` and `RecurrenceValue`. * * @example * Daily */ recurrenceType?: string; /** * @remarks * The days of the week or month on which the capacity reservation of the time-segmented elasticity assurance takes effect or the interval, in number of days, at which the capacity reservation takes effect. * * * If you set `RecurrenceType` to `Daily`, you can specify only one value. Valid values: 1 to 31. The value specifies that the capacity reservation takes effect every few days. * * If you set `RecurrenceType` to `Weekly`, you can specify multiple values. Separate the values with commas (,). Valid values: 0, 1, 2, 3, 4, 5, and 6, which specify Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, and Saturday, respectively. Example: `1,2`, which specifies that the capacity reservation takes effect on Monday and Tuesday. * * If you set `RecurrenceType` to `Monthly`, you can specify two values in the `A-B` format. Valid values of A and B: 1 to 31. B must be greater than or equal to A. Example: `1-5`, which specifies that the capacity reservation takes effect every day from the first day up to the fifth day of each month. * * > If this parameter is specified, you must specify `RecurrenceType` and `RecurrenceValue`. * * @example * 5 */ recurrenceValue?: string; /** * @remarks * The start time of the assurance period for the capacity reservation of the time-segmented elasticity assurance. Specify an on-the-hour point in time. * * > You must specify both `StartHour` and `EndHour`. The EndHour value must be at least 4 hours later than the StartHour value. * * @example * 4 */ startHour?: number; static names(): { [key: string]: string } { return { endHour: 'EndHour', recurrenceType: 'RecurrenceType', recurrenceValue: 'RecurrenceValue', startHour: 'StartHour', }; } static types(): { [key: string]: any } { return { endHour: 'number', recurrenceType: 'string', recurrenceValue: 'string', startHour: 'number', }; } validate() { super.validate(); } constructor(map?: { [key: string]: any }) { super(map); } } export class ModifyElasticityAssuranceRequest extends $dara.Model { privatePoolOptions?: ModifyElasticityAssuranceRequestPrivatePoolOptions; /** * @remarks * The client token that is used to ensure the idempotence of the request. You can use the client to generate the token, but you must make sure that the token is unique among different requests. The token can contain only ASCII characters and cannot exceed 64 characters in length. For more information, see [How to ensure idempotence](https://help.aliyun.com/document_detail/25693.html). * * @example * 123e4567-e89b-12d3-a456-426655440000 */ clientToken?: string; /** * @remarks * The description of the elasticity assurance. The description must be 2 to 256 characters in length and cannot start with `http://` or `https://`. * * @example * This is description. */ description?: string; /** * @remarks * The total number of instances for which you want to reserve capacity. Valid values: the number of created instances to 1000. This parameter is mutually exclusive with other parameters in the same request. * * @example * 10 */ instanceAmount?: number; ownerAccount?: string; ownerId?: number; /** * @remarks * The assurance schedules of the time-segmented elasticity assurance. * * > Time-segmented elasticity assurances are available only in specific regions and to specific users. To use time-segmented elasticity assurances, [submit a ticket](https://smartservice.console.aliyun.com/service/create-ticket-intl). */ recurrenceRules?: ModifyElasticityAssuranceRequestRecurrenceRules[]; /** * @remarks * The region ID of the elasticity assurance. You can call the [DescribeRegions](https://help.aliyun.com/document_detail/25609.html) operation to query the most recent region list. * * This parameter is required. * * @example * cn-hangzhou */ regionId?: string; resourceOwnerAccount?: string; resourceOwnerId?: number; static names(): { [key: string]: string } { return { privatePoolOptions: 'PrivatePoolOptions', clientToken: 'ClientToken', description: 'Description', instanceAmount: 'InstanceAmount', ownerAccount: 'OwnerAccount', ownerId: 'OwnerId', recurrenceRules: 'RecurrenceRules', regionId: 'RegionId', resourceOwnerAccount: 'ResourceOwnerAccount', resourceOwnerId: 'ResourceOwnerId', }; } static types(): { [key: string]: any } { return { privatePoolOptions: ModifyElasticityAssuranceRequestPrivatePoolOptions, clientToken: 'string', description: 'string', instanceAmount: 'number', ownerAccount: 'string', ownerId: 'number', recurrenceRules: { 'type': 'array', 'itemType': ModifyElasticityAssuranceRequestRecurrenceRules }, regionId: 'string', resourceOwnerAccount: 'string', resourceOwnerId: 'number', }; } validate() { if(this.privatePoolOptions && typeof (this.privatePoolOptions as any).validate === 'function') { (this.privatePoolOptions as any).validate(); } if(Array.isArray(this.recurrenceRules)) { $dara.Model.validateArray(this.recurrenceRules); } super.validate(); } constructor(map?: { [key: string]: any }) { super(map); } }