// This file is auto-generated, don't edit it import * as $dara from '@darabonba/typescript'; export class DescribePriceResponseBodyPriceInfoPriceDetailInfosDetailInfoSubRulesRule extends $dara.Model { description?: string; ruleId?: number; static names(): { [key: string]: string } { return { description: 'Description', ruleId: 'RuleId', }; } static types(): { [key: string]: any } { return { description: 'string', ruleId: 'number', }; } validate() { super.validate(); } constructor(map?: { [key: string]: any }) { super(map); } } export class DescribePriceResponseBodyPriceInfoPriceDetailInfosDetailInfoSubRules extends $dara.Model { rule?: DescribePriceResponseBodyPriceInfoPriceDetailInfosDetailInfoSubRulesRule[]; static names(): { [key: string]: string } { return { rule: 'Rule', }; } static types(): { [key: string]: any } { return { rule: { 'type': 'array', 'itemType': DescribePriceResponseBodyPriceInfoPriceDetailInfosDetailInfoSubRulesRule }, }; } validate() { if(Array.isArray(this.rule)) { $dara.Model.validateArray(this.rule); } super.validate(); } constructor(map?: { [key: string]: any }) { super(map); } } export class DescribePriceResponseBodyPriceInfoPriceDetailInfosDetailInfo extends $dara.Model { discountPrice?: number; originalPrice?: number; resource?: string; subRules?: DescribePriceResponseBodyPriceInfoPriceDetailInfosDetailInfoSubRules; tradePrice?: number; static names(): { [key: string]: string } { return { discountPrice: 'DiscountPrice', originalPrice: 'OriginalPrice', resource: 'Resource', subRules: 'SubRules', tradePrice: 'TradePrice', }; } static types(): { [key: string]: any } { return { discountPrice: 'number', originalPrice: 'number', resource: 'string', subRules: DescribePriceResponseBodyPriceInfoPriceDetailInfosDetailInfoSubRules, tradePrice: 'number', }; } validate() { if(this.subRules && typeof (this.subRules as any).validate === 'function') { (this.subRules as any).validate(); } super.validate(); } constructor(map?: { [key: string]: any }) { super(map); } } export class DescribePriceResponseBodyPriceInfoPriceDetailInfos extends $dara.Model { detailInfo?: DescribePriceResponseBodyPriceInfoPriceDetailInfosDetailInfo[]; static names(): { [key: string]: string } { return { detailInfo: 'DetailInfo', }; } static types(): { [key: string]: any } { return { detailInfo: { 'type': 'array', 'itemType': DescribePriceResponseBodyPriceInfoPriceDetailInfosDetailInfo }, }; } validate() { if(Array.isArray(this.detailInfo)) { $dara.Model.validateArray(this.detailInfo); } super.validate(); } constructor(map?: { [key: string]: any }) { super(map); } } export class DescribePriceResponseBodyPriceInfoPrice extends $dara.Model { /** * @remarks * The currency unit. * * Alibaba Cloud China site (aliyun.com): CNY. * * Alibaba Cloud International site (alibabacloud.com): USD. * * @example * CNY */ currency?: string; detailInfos?: DescribePriceResponseBodyPriceInfoPriceDetailInfos; /** * @remarks * The discount. * * @example * 655.2 */ discountPrice?: number; /** * @remarks * The original price. * * @example * 4368 */ originalPrice?: number; /** * @remarks * The hourly price of the reserved instance for which the No Upfront or Partial Upfront payment option is used. * * @example * 1 */ reservedInstanceHourPrice?: number; /** * @remarks * The transaction price of the order. The transaction price is equal to the original price minus the discount. * * @example * 3712.8 */ tradePrice?: number; static names(): { [key: string]: string } { return { currency: 'Currency', detailInfos: 'DetailInfos', discountPrice: 'DiscountPrice', originalPrice: 'OriginalPrice', reservedInstanceHourPrice: 'ReservedInstanceHourPrice', tradePrice: 'TradePrice', }; } static types(): { [key: string]: any } { return { currency: 'string', detailInfos: DescribePriceResponseBodyPriceInfoPriceDetailInfos, discountPrice: 'number', originalPrice: 'number', reservedInstanceHourPrice: 'number', tradePrice: 'number', }; } validate() { if(this.detailInfos && typeof (this.detailInfos as any).validate === 'function') { (this.detailInfos as any).validate(); } super.validate(); } constructor(map?: { [key: string]: any }) { super(map); } } export class DescribePriceResponseBodyPriceInfoRelatedPriceMarketplaceImagePrice extends $dara.Model { /** * @remarks * The currency unit. * * China site (aliyun.com): CNY * * International site (alibabacloud.com): USD * * @example * CNY */ currency?: string; /** * @remarks * The discount. * * @example * 0 */ discountPrice?: number; /** * @remarks * The original price. * * @example * 100 */ originalPrice?: number; /** * @remarks * The transaction price, which is equal to the original price minus the discount. * * @example * 100 */ tradePrice?: number; static names(): { [key: string]: string } { return { currency: 'Currency', discountPrice: 'DiscountPrice', originalPrice: 'OriginalPrice', tradePrice: 'TradePrice', }; } static types(): { [key: string]: any } { return { currency: 'string', discountPrice: 'number', originalPrice: 'number', tradePrice: 'number', }; } validate() { super.validate(); } constructor(map?: { [key: string]: any }) { super(map); } } export class DescribePriceResponseBodyPriceInfoRelatedPrice extends $dara.Model { /** * @remarks * The Alibaba Cloud Marketplace image price. */ marketplaceImagePrice?: DescribePriceResponseBodyPriceInfoRelatedPriceMarketplaceImagePrice; static names(): { [key: string]: string } { return { marketplaceImagePrice: 'MarketplaceImagePrice', }; } static types(): { [key: string]: any } { return { marketplaceImagePrice: DescribePriceResponseBodyPriceInfoRelatedPriceMarketplaceImagePrice, }; } validate() { if(this.marketplaceImagePrice && typeof (this.marketplaceImagePrice as any).validate === 'function') { (this.marketplaceImagePrice as any).validate(); } super.validate(); } constructor(map?: { [key: string]: any }) { super(map); } } export class DescribePriceResponseBodyPriceInfoRulesRule extends $dara.Model { description?: string; ruleId?: number; static names(): { [key: string]: string } { return { description: 'Description', ruleId: 'RuleId', }; } static types(): { [key: string]: any } { return { description: 'string', ruleId: 'number', }; } validate() { super.validate(); } constructor(map?: { [key: string]: any }) { super(map); } } export class DescribePriceResponseBodyPriceInfoRules extends $dara.Model { rule?: DescribePriceResponseBodyPriceInfoRulesRule[]; static names(): { [key: string]: string } { return { rule: 'Rule', }; } static types(): { [key: string]: any } { return { rule: { 'type': 'array', 'itemType': DescribePriceResponseBodyPriceInfoRulesRule }, }; } validate() { if(Array.isArray(this.rule)) { $dara.Model.validateArray(this.rule); } super.validate(); } constructor(map?: { [key: string]: any }) { super(map); } } export class DescribePriceResponseBodyPriceInfo extends $dara.Model { /** * @remarks * The price. */ price?: DescribePriceResponseBodyPriceInfoPrice; /** * @remarks * The related price. */ relatedPrice?: DescribePriceResponseBodyPriceInfoRelatedPrice; rules?: DescribePriceResponseBodyPriceInfoRules; static names(): { [key: string]: string } { return { price: 'Price', relatedPrice: 'RelatedPrice', rules: 'Rules', }; } static types(): { [key: string]: any } { return { price: DescribePriceResponseBodyPriceInfoPrice, relatedPrice: DescribePriceResponseBodyPriceInfoRelatedPrice, rules: DescribePriceResponseBodyPriceInfoRules, }; } validate() { if(this.price && typeof (this.price as any).validate === 'function') { (this.price as any).validate(); } if(this.relatedPrice && typeof (this.relatedPrice as any).validate === 'function') { (this.relatedPrice as any).validate(); } if(this.rules && typeof (this.rules as any).validate === 'function') { (this.rules as any).validate(); } super.validate(); } constructor(map?: { [key: string]: any }) { super(map); } } export class DescribePriceResponseBody extends $dara.Model { /** * @remarks * The information about the prices and promotion rules. */ priceInfo?: DescribePriceResponseBodyPriceInfo; /** * @remarks * The request ID. * * @example * 473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E */ requestId?: string; static names(): { [key: string]: string } { return { priceInfo: 'PriceInfo', requestId: 'RequestId', }; } static types(): { [key: string]: any } { return { priceInfo: DescribePriceResponseBodyPriceInfo, requestId: 'string', }; } validate() { if(this.priceInfo && typeof (this.priceInfo as any).validate === 'function') { (this.priceInfo as any).validate(); } super.validate(); } constructor(map?: { [key: string]: any }) { super(map); } }