ALIYUN::EHPC::Queue

更新时间:
复制 MD 格式

ALIYUN::EHPC::Queue类型用于为指定的E-HPC集群创建队列。

语法

{
  "Type": "ALIYUN::EHPC::Queue",
  "Properties": {
    "ClusterId": String,
    "ComputeNodes": List,
    "EnableScaleIn": Boolean,
    "EnableScaleOut": Boolean,
    "HostnameSuffix": String,
    "HostnamePrefix": String,
    "InterConnect": String,
    "InitialCount": Integer,
    "MaxCount": Integer,
    "MinCount": Integer,
    "QueueName": String,
    "VSwitchIds": List
  }
}

属性

属性名称

类型

必须

允许更新

描述

约束

ClusterId

String

集群ID。

ComputeNodes

List

队列中计算节点的硬件配置。

长度:最小0,最大10。更多信息,请参考ComputeNodes属性

EnableScaleIn

Boolean

是否开启队列的自动缩容。

取值:

  • true

  • false

EnableScaleOut

Boolean

是否开启队列的自动扩容。

取值:

  • true

  • false

HostnamePrefix

String

新增计算节点的主机名前缀。

HostnameSuffix

String

队列中计算节点的主机名后缀。

InitialCount

Integer

队列中计算节点的初始数量。

InterConnect

String

队列中计算节点之间互联的网络类型。

MaxCount

Integer

队列可容纳的最大计算节点数量。

MinCount

Integer

队列必须包含的最小计算节点数量。

QueueName

String

队列名称。

VSwitchIds

List

队列中计算节点可用的交换机。

长度:最小0,最大5

ComputeNodes语法

"ComputeNodes": [
  {
    "SystemDisk": Map,
    "AutoRenewPeriod": Integer,
    "EnableHt": Boolean,
    "InstanceChargeType": String,
    "AutoRenew": Boolean,
    "ImageId": String,
    "Period": Integer,
    "SpotPriceLimit": Number,
    "Duration": Integer,
    "InstanceType": String,
    "SpotStrategy": String,
    "PeriodUnit": String
  }
]

ComputeNodes属性

属性名称

类型

必须

允许更新

描述

约束

AutoRenew

Boolean

是否开启自动续费。

仅当InstanceChargeType取值为PrePaid时该参数生效。取值:

** true:开启自动续费。

** false:不开启自动续费。

默认值:false。

AutoRenewPeriod

Integer

单次自动续费的时长。

取值:

PeriodUnit=Week时:1、2、3。

PeriodUnit=Month时:1、2、3、6、12、24、36、48、60。

默认值:1。

Duration

Integer

抢占式实例的保留时长。

以小时为单位。默认值:1。取值:

** 1:创建后,阿里云保证实例至少运行一小时后才能被自动释放。一小时结束后,系统会持续比较您的出价与市场价格,并检查资源可用性,以决定实例是否保留或回收。

** 0:创建后,阿里云不提供一小时保证。系统立即比较您的出价与市场价格,并检查资源可用性,以决定实例是否保留或回收。

EnableHt

Boolean

是否在节点上开启超线程。

取值:

  • true:开启。

  • false:不开启。

ImageId

String

镜像ID。

启动实例时选择的镜像资源。

InstanceChargeType

String

实例付费类型。

取值:

  • PrePaid:包年包月。

  • PostPaid:按量付费(默认值)。

InstanceType

String

ECS实例的资源规格。

Period

Integer

资源的购买时长,

单位由PeriodUnit指定。仅当InstanceChargeType取值为PrePaid时需要该参数。如果提供了DedicatedHostId,所选的Period不能超过该专有宿主机的剩余订阅时长。取值:

PeriodUnit=Week时:Period: 1、2、3、4。

PeriodUnit=Month时:Period: 1、2、3、4、5、6、7、8、9、12、24、36、48、60。

PeriodUnit

String

包年包月计费方式的时长单位。

取值:

  • Week:周。

  • Month:月(默认值)。

SpotPriceLimit

Number

设置实例的最高每小时价格。

最多支持三位小数。仅当SpotStrategy取值为SpotWithPriceLimit时该参数生效。

SpotStrategy

String

按量付费实例的竞价策略。

仅当InstanceChargeType取值为PostPaid时生效。取值:

  • NoSpot(默认值):普通按量付费实例。

  • SpotWithPriceLimit:设置上限价格的竞价实例。

  • SpotAsPriceGo:系统自动按市场价出价。

SystemDisk

Map

节点系统盘配置详情。

更多信息,请参考SystemDisk属性

SystemDisk语法

"SystemDisk": {
  "Category": String,
  "Size": Integer,
  "Level": String
}

SystemDisk属性

属性名称

类型

必须

允许更新

描述

约束

Category

String

系统盘的云盘类型。

取值:

  • cloud_efficiency:高效云盘。

  • cloud_ssd:SSD云盘。

  • cloud_essd:ESSD云盘。

  • cloud:普通云盘。

Level

String

ESSD云盘作为系统盘时的性能级别。

取值:

  • PL0:单盘最高10,000随机读写IOPS。

  • PL1(默认值):单盘最高50,000随机读写IOPS。

  • PL2:单盘最高100,000随机读写IOPS。

  • PL3:单盘最高1,000,000随机读写IOPS。

Size

Integer

系统盘大小,单位为GiB。

取值范围:

  • cloud_efficiency:40~32,768。

  • cloud_ssd:40~32,768。

  • cloud_essd:取值范围取决于DataDisk.N.PerformanceLevel的值:

  • PL0:40~65,536。

  • PL1:40~65,536。

  • PL2:461~65,536。

  • PL3:1,261~65,536。

  • cloud:40~500。

返回值

Fn::GetAtt

  • VSwitchIds:队列中计算节点可用的交换机。

  • CreateTime:队列创建时间。

  • ComputeNodes:队列中计算节点的硬件配置。

  • InterConnect:队列中计算节点之间互联的网络类型。

  • MaxCount:队列可容纳的最大计算节点数量。

  • HostnamePrefix:新增计算节点的主机名前缀。

  • EnableScaleIn:是否开启队列的自动缩容。

  • HostnameSuffix:队列中计算节点的主机名后缀。

  • UpdateTime:队列更新时间。

  • EnableScaleOut:是否开启队列的自动扩容。

  • QueueName:队列名称。

  • InitialCount:队列中计算节点的初始数量。

  • MinCount:队列必须包含的最小计算节点数量。

示例

ROSTemplateFormatVersion: '2015-09-01'
Parameters:
  InterConnect:
    Type: String
    Description:
      en: The type of the network for interconnecting compute nodes in the queue.
    Default: Null
    Required: false
  EnableScaleOut:
    Type: Boolean
    Description:
      en: |-
        Specifies whether to enable auto scale-out for the queue. Valid values:
        *   true
        *   false.
    Default: Null
    Required: false
  HostnamePrefix:
    Type: String
    Description:
      en: The hostname prefix of the added compute nodes.
    Default: Null
    Required: false
  ClusterId:
    Type: String
    Description:
      en: The cluster ID.
    Default: Null
    Required: false
  ComputeNodes:
    Description:
      en: 'The hardware configurations of the compute nodes in the queue. Valid values of N: 1 to 10.'
    Required: false
    Default: Null
    Type: Json
    MinLength: 0
    MaxLength: 10
    AssociationProperty: List[Parameter]
    AssociationPropertyMetadata:
      Parameter:
        Description:
          en: 'The hardware configurations of the compute nodes in the queue. Valid values of N: 1 to 10.'
        Required: false
        Default: Null
        Type: Json
        AssociationPropertyMetadata:
          Parameters:
            SystemDisk:
              Description:
                en: Node system disk configuration details.
              Required: false
              Default: Null
              Type: Json
              AssociationPropertyMetadata:
                Parameters:
                  Category:
                    Type: String
                    Description:
                      en: |-
                        System disk cloud disk type. Valid values:
                        ** cloud_efficiency: Efficient Cloud Disk
                        ** cloud_ssd: SSD Cloud Disk
                        ** cloud_essd: ESSD Cloud Disk
                        ** cloud: Basic Cloud Disk
                    Default: Null
                    Required: false
                  Level:
                    Type: String
                    Description:
                      en: |-
                        Performance level of the ESSD cloud disk when it is used as the system disk. Valid values: 
                        ** PL0: Up to 10,000 random read/write IOPS per disk.
                        ** PL1 (default): Up to 50,000 random read/write IOPS per disk
                        ** PL2: Up to 100,000 random read/write IOPS per disk
                        ** PL3: Up to 1,000,000 random read/write IOPS per disk
                    Default: Null
                    Required: false
                  Size:
                    Type: Number
                    Description:
                      en: |-
                        System disk size, in GiB. Valid ranges: 
                        ** cloud_efficiency: 40–32,768. 
                        ** cloud_ssd: 40–32,768.
                        ** cloud_essd: The valid range depends on the value of DataDisk.N.PerformanceLevel: 
                           * PL0: 40–65,536. 
                           * PL1: 40–65,536. 
                           * PL2: 461–65,536. 
                           * PL3: 1,261–65,536. 
                        ** cloud: 40–500. 
                    Default: Null
                    Required: false
            PeriodUnit:
              Type: String
              Description:
                en: |-
                  Duration unit for the Subscription (Pay-As-You-Go/Prepaid) billing method. Valid values: 
                  ** Week.
                  ** Month (default).
              AssociationProperty: PayPeriodUnit
              AllowedValues:
                - Week
                - Month
              Default: Null
              Required: false
            EnableHt:
              Type: Boolean
              Description:
                en: |-
                  Whether to enable Hyper-Threading on the node. Valid values: 
                  ** true: enabled. 
                  ** false: disabled
              Default: Null
              Required: false
            AutoRenewPeriod:
              Type: Number
              Description:
                en: |-
                  Duration of a single auto-renewal. Valid values: 
                  When PeriodUnit = Week: 1, 2, 3. 
                  When PeriodUnit = Month: 1, 2, 3, 6, 12, 24, 36, 48, 60. 
                  Default value: 1.
              AllowedValues:
                - 1
                - 2
                - 3
                - 6
                - 12
                - 24
                - 36
                - 48
                - 60
              Default: Null
              Required: false
            Period:
              Type: Number
              Description:
                en: |-
                  Purchase duration of the resource, measured in the unit specified by PeriodUnit.Required only when InstanceChargeType is set to PrePaid.If DedicatedHostId is provided, the chosen Period must not exceed the remaining subscription duration of that dedicated host. Valid values: 
                  PeriodUnit=Week → Period: 1, 2, 3, 4.
                  PeriodUnit=Month → Period: 1, 2, 3, 4, 5, 6, 7, 8, 9, 12, 24, 36, 48, 60
              AssociationProperty: PayPeriod
              AllowedValues:
                - 1
                - 2
                - 3
                - 4
                - 5
                - 6
                - 7
                - 8
                - 9
                - 12
                - 24
                - 36
                - 48
                - 60
              Default: Null
              Required: false
            ImageId:
              Type: String
              Description:
                en: Image ID. The image resource selected when launching the instance.
              Default: Null
              Required: false
            AutoRenew:
              Type: Boolean
              Description:
                en: |-
                  Whether auto-renewal is enabled. This parameter only takes effect when InstanceChargeType is set to PrePaid. Valid values: 
                  ** true: Auto-renewal enabled.
                  ** false: Auto-renewal disabled.
                  Default value: false.
              Default: Null
              Required: false
            SpotPriceLimit:
              Type: Number
              Description:
                en: Set the maximum hourly price for the instance. Supports up to three decimal places. This parameter takes effect only when SpotStrategy is set to SpotWithPriceLimit.
              Default: Null
              Required: false
            InstanceChargeType:
              Type: String
              Description:
                en: |-
                  Instance billing method. Valid values: 
                  ** PrePaid: Subscription. 
                  ** PostPaid: Pay-as-you-go (default).
              AssociationPropertyMetadata:
                LocaleKey: InstanceChargeType
              AllowedValues:
                - PostPaid
                - PrePaid
              Required: false
              Default: Null
            Duration:
              Type: Number
              Description:
                en: |-
                  Retention duration for a preemptible instance, measured in hours. Default value: 1. Valid values: 
                  ** 1: After creation, Alibaba Cloud guarantees that the instance will run for at least one hour before it can be automatically released. Once the first hour has elapsed, the system will continuously compare your bid price against the market price and check resource availability to determine whether the instance is retained or reclaimed.
                  ** 0: After creation, Alibaba Cloud provides no one-hour guarantee. The system immediately compares your bid price with the market price and checks resource availability to decide whether to keep or reclaim the instance.
              AllowedValues:
                - 0
                - 1
              Default: Null
              Required: false
            SpotStrategy:
              Type: String
              Description:
                en: |-
                  Spot (bidding) strategy for pay-as-you-go instances. Valid only when InstanceChargeType is set to PostPaid. Valid values: 
                  ** NoSpot (default): A regular pay-as-you-go instance.
                  ** SpotWithPriceLimit: A spot instance with a user-defined maximum price.
                  ** SpotAsPriceGo: The system bids automatically at the current market price.
              AllowedValues:
                - NoSpot
                - SpotWithPriceLimit
                - SpotAsPriceGo
              Default: Null
              Required: false
            InstanceType:
              Type: String
              Description:
                en: The resource specifications of the ECS instance.
              Default: Null
              Required: false
  EnableScaleIn:
    Type: Boolean
    Description:
      en: |-
        Specifies whether to enable auto scale-in for the queue. Valid values:
        *   true
        *   false.
    Default: Null
    Required: false
  VSwitchIds:
    Description:
      en: The VSwitches available for use by compute nodes in the queue.
    Required: false
    Default: Null
    Type: Json
    MinLength: 0
    MaxLength: 5
    AssociationProperty: List[Parameter]
    AssociationPropertyMetadata:
      Parameter:
        Type: String
        Description:
          en: The VSwitches available for use by compute nodes in the queue.
        AssociationProperty: ALIYUN::VPC::VSwitch::VSwitchId
        AssociationPropertyMetadata:
          ZoneId: ${ZoneId}
          VpcId: ${VpcId}
        Default: Null
        Required: false
  HostnameSuffix:
    Type: String
    Description:
      en: The hostname suffix of the compute nodes in the queue.
    Default: Null
    Required: false
  MaxCount:
    Type: Number
    Description:
      en: The maximum number of compute nodes that the queue can contain.
    Default: Null
    Required: false
  MinCount:
    Type: Number
    Description:
      en: The minimum number of compute nodes that the queue must contain.
    Default: Null
    Required: false
  QueueName:
    Type: String
    Description:
      en: The queue name.
    Default: Null
    Required: false
  InitialCount:
    Type: Number
    Description:
      en: The initial number of compute nodes in the queue.
    Default: Null
    Required: false
Resources:
  ExtensionResource:
    Type: ALIYUN::EHPC::Queue
    Properties:
      InterConnect:
        Ref: InterConnect
      EnableScaleOut:
        Ref: EnableScaleOut
      HostnamePrefix:
        Ref: HostnamePrefix
      ClusterId:
        Ref: ClusterId
      ComputeNodes:
        Ref: ComputeNodes
      EnableScaleIn:
        Ref: EnableScaleIn
      VSwitchIds:
        Ref: VSwitchIds
      HostnameSuffix:
        Ref: HostnameSuffix
      MaxCount:
        Ref: MaxCount
      MinCount:
        Ref: MinCount
      QueueName:
        Ref: QueueName
      InitialCount:
        Ref: InitialCount
Outputs:
  UpdateTime:
    Value:
      Fn::GetAtt:
        - ExtensionResource
        - UpdateTime
    Description: Queue update time.
  InterConnect:
    Value:
      Fn::GetAtt:
        - ExtensionResource
        - InterConnect
    Description: The type of the network for interconnecting compute nodes in the queue.
  EnableScaleOut:
    Value:
      Fn::GetAtt:
        - ExtensionResource
        - EnableScaleOut
    Description: Specifies whether to enable auto scale-out for the queue.
  HostnamePrefix:
    Value:
      Fn::GetAtt:
        - ExtensionResource
        - HostnamePrefix
    Description: The hostname prefix of the added compute nodes.
  ComputeNodes:
    Value:
      Fn::GetAtt:
        - ExtensionResource
        - ComputeNodes
    Description: The hardware configurations of the compute nodes in the queue.
  QueueName:
    Value:
      Fn::GetAtt:
        - ExtensionResource
        - QueueName
    Description: The queue name.
  EnableScaleIn:
    Value:
      Fn::GetAtt:
        - ExtensionResource
        - EnableScaleIn
    Description: Specifies whether to enable auto scale-in for the queue.
  VSwitchIds:
    Value:
      Fn::GetAtt:
        - ExtensionResource
        - VSwitchIds
    Description: The VSwitches available for use by compute nodes in the queue.
  HostnameSuffix:
    Value:
      Fn::GetAtt:
        - ExtensionResource
        - HostnameSuffix
    Description: The hostname suffix of the compute nodes in the queue.
  MaxCount:
    Value:
      Fn::GetAtt:
        - ExtensionResource
        - MaxCount
    Description: The maximum number of compute nodes that the queue can contain.
  MinCount:
    Value:
      Fn::GetAtt:
        - ExtensionResource
        - MinCount
    Description: The minimum number of compute nodes that the queue must contain.
  CreateTime:
    Value:
      Fn::GetAtt:
        - ExtensionResource
        - CreateTime
    Description: Queue creation time.
  InitialCount:
    Value:
      Fn::GetAtt:
        - ExtensionResource
        - InitialCount
    Description: The initial number of compute nodes in the queue.
{
  "ROSTemplateFormatVersion": "2015-09-01",
  "Parameters": {
    "InterConnect": {
      "Type": "String",
      "Description": {
        "en": "The type of the network for interconnecting compute nodes in the queue."
      },
      "Default": null,
      "Required": false
    },
    "EnableScaleOut": {
      "Type": "Boolean",
      "Description": {
        "en": "Specifies whether to enable auto scale-out for the queue. Valid values:\n*   true\n*   false."
      },
      "Default": null,
      "Required": false
    },
    "HostnamePrefix": {
      "Type": "String",
      "Description": {
        "en": "The hostname prefix of the added compute nodes."
      },
      "Default": null,
      "Required": false
    },
    "ClusterId": {
      "Type": "String",
      "Description": {
        "en": "The cluster ID."
      },
      "Default": null,
      "Required": false
    },
    "ComputeNodes": {
      "Description": {
        "en": "The hardware configurations of the compute nodes in the queue. Valid values of N: 1 to 10."
      },
      "Required": false,
      "Default": null,
      "Type": "Json",
      "MinLength": 0,
      "MaxLength": 10,
      "AssociationProperty": "List[Parameter]",
      "AssociationPropertyMetadata": {
        "Parameter": {
          "Description": {
            "en": "The hardware configurations of the compute nodes in the queue. Valid values of N: 1 to 10."
          },
          "Required": false,
          "Default": null,
          "Type": "Json",
          "AssociationPropertyMetadata": {
            "Parameters": {
              "SystemDisk": {
                "Description": {
                  "en": "Node system disk configuration details."
                },
                "Required": false,
                "Default": null,
                "Type": "Json",
                "AssociationPropertyMetadata": {
                  "Parameters": {
                    "Category": {
                      "Type": "String",
                      "Description": {
                        "en": "System disk cloud disk type. Valid values:\n** cloud_efficiency: Efficient Cloud Disk\n** cloud_ssd: SSD Cloud Disk\n** cloud_essd: ESSD Cloud Disk\n** cloud: Basic Cloud Disk"
                      },
                      "Default": null,
                      "Required": false
                    },
                    "Level": {
                      "Type": "String",
                      "Description": {
                        "en": "Performance level of the ESSD cloud disk when it is used as the system disk. Valid values: \n** PL0: Up to 10,000 random read/write IOPS per disk.\n** PL1 (default): Up to 50,000 random read/write IOPS per disk\n** PL2: Up to 100,000 random read/write IOPS per disk\n** PL3: Up to 1,000,000 random read/write IOPS per disk"
                      },
                      "Default": null,
                      "Required": false
                    },
                    "Size": {
                      "Type": "Number",
                      "Description": {
                        "en": "System disk size, in GiB. Valid ranges: \n** cloud_efficiency: 40–32,768. \n** cloud_ssd: 40–32,768.\n** cloud_essd: The valid range depends on the value of DataDisk.N.PerformanceLevel: \n   * PL0: 40–65,536. \n   * PL1: 40–65,536. \n   * PL2: 461–65,536. \n   * PL3: 1,261–65,536. \n** cloud: 40–500. "
                      },
                      "Default": null,
                      "Required": false
                    }
                  }
                }
              },
              "PeriodUnit": {
                "Type": "String",
                "Description": {
                  "en": "Duration unit for the Subscription (Pay-As-You-Go/Prepaid) billing method. Valid values: \n** Week.\n** Month (default)."
                },
                "AssociationProperty": "PayPeriodUnit",
                "AllowedValues": [
                  "Week",
                  "Month"
                ],
                "Default": null,
                "Required": false
              },
              "EnableHt": {
                "Type": "Boolean",
                "Description": {
                  "en": "Whether to enable Hyper-Threading on the node. Valid values: \n** true: enabled. \n** false: disabled"
                },
                "Default": null,
                "Required": false
              },
              "AutoRenewPeriod": {
                "Type": "Number",
                "Description": {
                  "en": "Duration of a single auto-renewal. Valid values: \nWhen PeriodUnit = Week: 1, 2, 3. \nWhen PeriodUnit = Month: 1, 2, 3, 6, 12, 24, 36, 48, 60. \nDefault value: 1."
                },
                "AllowedValues": [
                  1,
                  2,
                  3,
                  6,
                  12,
                  24,
                  36,
                  48,
                  60
                ],
                "Default": null,
                "Required": false
              },
              "Period": {
                "Type": "Number",
                "Description": {
                  "en": "Purchase duration of the resource, measured in the unit specified by PeriodUnit.Required only when InstanceChargeType is set to PrePaid.If DedicatedHostId is provided, the chosen Period must not exceed the remaining subscription duration of that dedicated host. Valid values: \nPeriodUnit=Week → Period: 1, 2, 3, 4.\nPeriodUnit=Month → Period: 1, 2, 3, 4, 5, 6, 7, 8, 9, 12, 24, 36, 48, 60"
                },
                "AssociationProperty": "PayPeriod",
                "AllowedValues": [
                  1,
                  2,
                  3,
                  4,
                  5,
                  6,
                  7,
                  8,
                  9,
                  12,
                  24,
                  36,
                  48,
                  60
                ],
                "Default": null,
                "Required": false
              },
              "ImageId": {
                "Type": "String",
                "Description": {
                  "en": "Image ID. The image resource selected when launching the instance."
                },
                "Default": null,
                "Required": false
              },
              "AutoRenew": {
                "Type": "Boolean",
                "Description": {
                  "en": "Whether auto-renewal is enabled. This parameter only takes effect when InstanceChargeType is set to PrePaid. Valid values: \n** true: Auto-renewal enabled.\n** false: Auto-renewal disabled.\nDefault value: false."
                },
                "Default": null,
                "Required": false
              },
              "SpotPriceLimit": {
                "Type": "Number",
                "Description": {
                  "en": "Set the maximum hourly price for the instance. Supports up to three decimal places. This parameter takes effect only when SpotStrategy is set to SpotWithPriceLimit."
                },
                "Default": null,
                "Required": false
              },
              "InstanceChargeType": {
                "Type": "String",
                "Description": {
                  "en": "Instance billing method. Valid values: \n** PrePaid: Subscription. \n** PostPaid: Pay-as-you-go (default)."
                },
                "AssociationPropertyMetadata": {
                  "LocaleKey": "InstanceChargeType"
                },
                "AllowedValues": [
                  "PostPaid",
                  "PrePaid"
                ],
                "Required": false,
                "Default": null
              },
              "Duration": {
                "Type": "Number",
                "Description": {
                  "en": "Retention duration for a preemptible instance, measured in hours. Default value: 1. Valid values: \n** 1: After creation, Alibaba Cloud guarantees that the instance will run for at least one hour before it can be automatically released. Once the first hour has elapsed, the system will continuously compare your bid price against the market price and check resource availability to determine whether the instance is retained or reclaimed.\n** 0: After creation, Alibaba Cloud provides no one-hour guarantee. The system immediately compares your bid price with the market price and checks resource availability to decide whether to keep or reclaim the instance."
                },
                "AllowedValues": [
                  0,
                  1
                ],
                "Default": null,
                "Required": false
              },
              "SpotStrategy": {
                "Type": "String",
                "Description": {
                  "en": "Spot (bidding) strategy for pay-as-you-go instances. Valid only when InstanceChargeType is set to PostPaid. Valid values: \n** NoSpot (default): A regular pay-as-you-go instance.\n** SpotWithPriceLimit: A spot instance with a user-defined maximum price.\n** SpotAsPriceGo: The system bids automatically at the current market price."
                },
                "AllowedValues": [
                  "NoSpot",
                  "SpotWithPriceLimit",
                  "SpotAsPriceGo"
                ],
                "Default": null,
                "Required": false
              },
              "InstanceType": {
                "Type": "String",
                "Description": {
                  "en": "The resource specifications of the ECS instance."
                },
                "Default": null,
                "Required": false
              }
            }
          }
        }
      }
    },
    "EnableScaleIn": {
      "Type": "Boolean",
      "Description": {
        "en": "Specifies whether to enable auto scale-in for the queue. Valid values:\n*   true\n*   false."
      },
      "Default": null,
      "Required": false
    },
    "VSwitchIds": {
      "Description": {
        "en": "The VSwitches available for use by compute nodes in the queue."
      },
      "Required": false,
      "Default": null,
      "Type": "Json",
      "MinLength": 0,
      "MaxLength": 5,
      "AssociationProperty": "List[Parameter]",
      "AssociationPropertyMetadata": {
        "Parameter": {
          "Type": "String",
          "Description": {
            "en": "The VSwitches available for use by compute nodes in the queue."
          },
          "AssociationProperty": "ALIYUN::VPC::VSwitch::VSwitchId",
          "AssociationPropertyMetadata": {
            "ZoneId": "${ZoneId}",
            "VpcId": "${VpcId}"
          },
          "Default": null,
          "Required": false
        }
      }
    },
    "HostnameSuffix": {
      "Type": "String",
      "Description": {
        "en": "The hostname suffix of the compute nodes in the queue."
      },
      "Default": null,
      "Required": false
    },
    "MaxCount": {
      "Type": "Number",
      "Description": {
        "en": "The maximum number of compute nodes that the queue can contain."
      },
      "Default": null,
      "Required": false
    },
    "MinCount": {
      "Type": "Number",
      "Description": {
        "en": "The minimum number of compute nodes that the queue must contain."
      },
      "Default": null,
      "Required": false
    },
    "QueueName": {
      "Type": "String",
      "Description": {
        "en": "The queue name."
      },
      "Default": null,
      "Required": false
    },
    "InitialCount": {
      "Type": "Number",
      "Description": {
        "en": "The initial number of compute nodes in the queue."
      },
      "Default": null,
      "Required": false
    }
  },
  "Resources": {
    "ExtensionResource": {
      "Type": "ALIYUN::EHPC::Queue",
      "Properties": {
        "InterConnect": {
          "Ref": "InterConnect"
        },
        "EnableScaleOut": {
          "Ref": "EnableScaleOut"
        },
        "HostnamePrefix": {
          "Ref": "HostnamePrefix"
        },
        "ClusterId": {
          "Ref": "ClusterId"
        },
        "ComputeNodes": {
          "Ref": "ComputeNodes"
        },
        "EnableScaleIn": {
          "Ref": "EnableScaleIn"
        },
        "VSwitchIds": {
          "Ref": "VSwitchIds"
        },
        "HostnameSuffix": {
          "Ref": "HostnameSuffix"
        },
        "MaxCount": {
          "Ref": "MaxCount"
        },
        "MinCount": {
          "Ref": "MinCount"
        },
        "QueueName": {
          "Ref": "QueueName"
        },
        "InitialCount": {
          "Ref": "InitialCount"
        }
      }
    }
  },
  "Outputs": {
    "UpdateTime": {
      "Value": {
        "Fn::GetAtt": [
          "ExtensionResource",
          "UpdateTime"
        ]
      },
      "Description": "Queue update time."
    },
    "InterConnect": {
      "Value": {
        "Fn::GetAtt": [
          "ExtensionResource",
          "InterConnect"
        ]
      },
      "Description": "The type of the network for interconnecting compute nodes in the queue."
    },
    "EnableScaleOut": {
      "Value": {
        "Fn::GetAtt": [
          "ExtensionResource",
          "EnableScaleOut"
        ]
      },
      "Description": "Specifies whether to enable auto scale-out for the queue."
    },
    "HostnamePrefix": {
      "Value": {
        "Fn::GetAtt": [
          "ExtensionResource",
          "HostnamePrefix"
        ]
      },
      "Description": "The hostname prefix of the added compute nodes."
    },
    "ComputeNodes": {
      "Value": {
        "Fn::GetAtt": [
          "ExtensionResource",
          "ComputeNodes"
        ]
      },
      "Description": "The hardware configurations of the compute nodes in the queue."
    },
    "QueueName": {
      "Value": {
        "Fn::GetAtt": [
          "ExtensionResource",
          "QueueName"
        ]
      },
      "Description": "The queue name."
    },
    "EnableScaleIn": {
      "Value": {
        "Fn::GetAtt": [
          "ExtensionResource",
          "EnableScaleIn"
        ]
      },
      "Description": "Specifies whether to enable auto scale-in for the queue."
    },
    "VSwitchIds": {
      "Value": {
        "Fn::GetAtt": [
          "ExtensionResource",
          "VSwitchIds"
        ]
      },
      "Description": "The VSwitches available for use by compute nodes in the queue."
    },
    "HostnameSuffix": {
      "Value": {
        "Fn::GetAtt": [
          "ExtensionResource",
          "HostnameSuffix"
        ]
      },
      "Description": "The hostname suffix of the compute nodes in the queue."
    },
    "MaxCount": {
      "Value": {
        "Fn::GetAtt": [
          "ExtensionResource",
          "MaxCount"
        ]
      },
      "Description": "The maximum number of compute nodes that the queue can contain."
    },
    "MinCount": {
      "Value": {
        "Fn::GetAtt": [
          "ExtensionResource",
          "MinCount"
        ]
      },
      "Description": "The minimum number of compute nodes that the queue must contain."
    },
    "CreateTime": {
      "Value": {
        "Fn::GetAtt": [
          "ExtensionResource",
          "CreateTime"
        ]
      },
      "Description": "Queue creation time."
    },
    "InitialCount": {
      "Value": {
        "Fn::GetAtt": [
          "ExtensionResource",
          "InitialCount"
        ]
      },
      "Description": "The initial number of compute nodes in the queue."
    }
  }
}