summaryrefslogtreecommitdiff
path: root/data/en_us/ens
diff options
context:
space:
mode:
authorZhineng Li <[email protected]>2026-02-13 10:54:11 +0800
committerZhineng Li <[email protected]>2026-02-13 10:54:11 +0800
commit7347bac4ab7e136157fc94777e6cf87ef9e08599 (patch)
tree0dec367dac6e152161a6f7cc0dba6ebbef1f34a2 /data/en_us/ens
downloadacs-metadata-full-1.0.0+20260212.tar.gz
acs-metadata-full-1.0.0+20260212.zip
Diffstat (limited to 'data/en_us/ens')
-rw-r--r--data/en_us/ens/2017-11-10/api-docs.php59831
1 files changed, 59831 insertions, 0 deletions
diff --git a/data/en_us/ens/2017-11-10/api-docs.php b/data/en_us/ens/2017-11-10/api-docs.php
new file mode 100644
index 0000000..d0351e0
--- /dev/null
+++ b/data/en_us/ens/2017-11-10/api-docs.php
@@ -0,0 +1,59831 @@
+<?php return [
+ 'version' => '1.0',
+ 'info' => [
+ 'style' => 'RPC',
+ 'product' => 'Ens',
+ 'version' => '2017-11-10',
+ ],
+ 'directories' => [
+ [
+ 'id' => 390769,
+ 'title' => null,
+ 'type' => 'directory',
+ 'children' => [
+ 'RunInstances',
+ 'CreateInstance',
+ 'ReleasePostPaidInstance',
+ 'ReleasePrePaidInstance',
+ 'RenewInstance',
+ 'ReinitInstance',
+ 'ModifyInstanceAttribute',
+ 'ModifyPrepayInstanceSpec',
+ 'ModifyInstanceAutoRenewAttribute',
+ 'AttachEnsInstances',
+ 'RebootInstance',
+ 'StartInstance',
+ 'StopInstance',
+ 'AddNetworkInterfaceToInstance',
+ 'DescribeAvailableResource',
+ 'DescribeInstances',
+ 'DescribeAvailableResourceInfo',
+ 'DescribeEnsNetSaleDistrict',
+ 'DescribeEnsNetLevel',
+ 'DescribeBandWithdChargeType',
+ 'DescribeInstanceSpec',
+ 'DescribeEnsRegionIdIpv6Info',
+ 'DescribeRegionIsps',
+ 'DescribeInstanceAutoRenewAttribute',
+ 'DescribeInstanceMonitorData',
+ 'DescribeInstanceTypes',
+ 'DescribeInstanceVncUrl',
+ 'DescribeCreatePrePaidInstanceResult',
+ ],
+ ],
+ [
+ 'id' => 390798,
+ 'title' => null,
+ 'type' => 'directory',
+ 'children' => [
+ 'CreateImage',
+ 'ExportImage',
+ 'DescribeSelfImages',
+ 'DeleteImage',
+ 'ModifyImageAttribute',
+ 'ModifyImageSharePermission',
+ 'DescribeImages',
+ 'DescribeImageInfos',
+ 'DescribeImageSharePermission',
+ 'DescribeExportImageStatus',
+ 'DescribeExportImageInfo',
+ ],
+ ],
+ [
+ 'id' => 390810,
+ 'title' => null,
+ 'type' => 'directory',
+ 'children' => [
+ 'CreateKeyPair',
+ 'DeleteKeyPairs',
+ 'ImportKeyPair',
+ 'DescribeKeyPairs',
+ ],
+ ],
+ [
+ 'id' => 390815,
+ 'title' => null,
+ 'type' => 'directory',
+ 'children' => [
+ 'CreateDisk',
+ 'DeleteDisk',
+ 'AttachDisk',
+ 'DetachDisk',
+ 'ResizeDisk',
+ 'DescribeDisks',
+ 'ReInitDisk',
+ 'ResetDisk',
+ 'DescribeDiskIopsList',
+ ],
+ ],
+ [
+ 'id' => 390825,
+ 'title' => null,
+ 'type' => 'directory',
+ 'children' => [
+ 'CreateSnapshot',
+ 'DeleteSnapshot',
+ 'ModifySnapshotAttribute',
+ 'DescribeSnapshots',
+ 'CopySnapshot',
+ ],
+ ],
+ [
+ 'id' => 390831,
+ 'title' => null,
+ 'type' => 'directory',
+ 'children' => [
+ 'CreateNetwork',
+ 'CreateClassicNetwork',
+ 'DeleteNetwork',
+ 'ModifyNetworkAttribute',
+ 'DescribeNetworkInterfaces',
+ 'DescribeNetworkAttribute',
+ 'DescribeNetworks',
+ 'CreateEnsRouteEntry',
+ 'DeleteEnsRouteEntry',
+ 'DescribeEnsRouteEntryList',
+ ],
+ ],
+ [
+ 'id' => 390842,
+ 'title' => null,
+ 'type' => 'directory',
+ 'children' => [
+ 'CreateVSwitch',
+ 'DeleteVSwitch',
+ 'ModifyVSwitchAttribute',
+ 'DescribeVSwitches',
+ ],
+ ],
+ [
+ 'id' => 390847,
+ 'title' => null,
+ 'type' => 'directory',
+ 'children' => [
+ 'CreateSecurityGroup',
+ 'DeleteSecurityGroup',
+ 'JoinSecurityGroup',
+ 'LeaveSecurityGroup',
+ 'ModifySecurityGroupAttribute',
+ 'DescribeSecurityGroups',
+ 'AuthorizeSecurityGroup',
+ 'RevokeSecurityGroup',
+ 'AuthorizeSecurityGroupEgress',
+ 'RevokeSecurityGroupEgress',
+ 'DescribeSecurityGroupAttribute',
+ ],
+ ],
+ [
+ 'id' => 390859,
+ 'title' => null,
+ 'type' => 'directory',
+ 'children' => [
+ 'DeleteEip',
+ 'CreateEipInstance',
+ 'AssociateEnsEipAddress',
+ 'UnAssociateEnsEipAddress',
+ 'ModifyEnsEipAddressAttribute',
+ 'DescribeEnsEipAddresses',
+ ],
+ ],
+ [
+ 'id' => 390866,
+ 'title' => null,
+ 'type' => 'directory',
+ 'children' => [
+ 'CreateNatGateway',
+ 'DeleteNatGateway',
+ 'DescribeNatGateways',
+ 'CreateForwardEntry',
+ 'DeleteForwardEntry',
+ 'ModifyForwardEntry',
+ 'DescribeForwardTableEntries',
+ 'CreateSnatEntry',
+ 'DeleteSnatEntry',
+ 'DescribeSnatTableEntries',
+ 'DescribeSnatAttribute',
+ 'AddSnatIpForSnatEntry',
+ 'DeleteSnatIpForSnatEntry',
+ 'StartSnatIpForSnatEntry',
+ 'StopSnatIpForSnatEntry',
+ ],
+ ],
+ [
+ 'id' => 390882,
+ 'title' => null,
+ 'type' => 'directory',
+ 'children' => [
+ 'CreateLoadBalancer',
+ 'ModifyLoadBalancerAttribute',
+ 'SetLoadBalancerStatus',
+ 'DescribeLoadBalancerAttribute',
+ 'DescribeLoadBalancers',
+ 'CreateLoadBalancerUDPListener',
+ 'SetLoadBalancerUDPListenerAttribute',
+ 'DescribeLoadBalancerUDPListenerAttribute',
+ 'CreateLoadBalancerTCPListener',
+ 'SetLoadBalancerTCPListenerAttribute',
+ 'DescribeLoadBalancerTCPListenerAttribute',
+ 'CreateLoadBalancerHTTPListener',
+ 'SetLoadBalancerHTTPListenerAttribute',
+ 'DescribeLoadBalancerHTTPListenerAttribute',
+ 'CreateLoadBalancerHTTPSListener',
+ 'SetLoadBalancerHTTPSListenerAttribute',
+ 'DescribeLoadBalancerHTTPSListenerAttribute',
+ 'StartLoadBalancerListener',
+ 'StopLoadBalancerListener',
+ 'DeleteLoadBalancerListener',
+ 'DescribeLoadBalancerListeners',
+ 'AddBackendServers',
+ 'RemoveBackendServers',
+ 'SetBackendServers',
+ 'DescribeLoadBalancerListenMonitor',
+ 'DescribeServerLoadBalancerMonitor',
+ 'DescribeServerLoadBalancerListenMonitor',
+ ],
+ ],
+ [
+ 'id' => 390910,
+ 'title' => null,
+ 'type' => 'directory',
+ 'children' => [
+ 'CreateNetworkInterface',
+ 'DeleteNetworkInterfaces',
+ 'AttachNetworkInterface',
+ 'DetachNetworkInterface',
+ 'ModifyNetworkInterfaceAttribute',
+ 'DescribeSecondaryPublicIpAddresses',
+ ],
+ ],
+ [
+ 'id' => 390917,
+ 'title' => null,
+ 'type' => 'directory',
+ 'children' => [
+ 'CreateHaVip',
+ 'ModifyHaVipAttribute',
+ 'DescribeHaVips',
+ 'AssociateHaVip',
+ 'UnassociateHaVip',
+ ],
+ ],
+ [
+ 'id' => 390923,
+ 'title' => null,
+ 'type' => 'directory',
+ 'children' => [
+ 'CreateNetworkAcl',
+ 'DeleteNetworkAcl',
+ 'DescribeNetworkAcls',
+ 'AccosicateNetworkAcl',
+ 'UnassociateNetworkAcl',
+ 'CreateNetworkAclEntry',
+ 'DeleteNetworkAclEntry',
+ ],
+ ],
+ [
+ 'id' => 390931,
+ 'title' => null,
+ 'type' => 'directory',
+ 'children' => [
+ 'CreateFileSystem',
+ 'DeleteFileSystem',
+ 'ModifyFileSystem',
+ 'DescribeFileSystems',
+ 'CreateMountTarget',
+ 'DeleteMountTarget',
+ 'DescribeMountTargets',
+ ],
+ ],
+ [
+ 'id' => 390939,
+ 'title' => null,
+ 'type' => 'directory',
+ 'children' => [
+ 'PutBucket',
+ 'DeleteBucket',
+ 'GetBucketInfo',
+ 'PutBucketAcl',
+ 'GetBucketAcl',
+ 'PrepareUpload',
+ 'DeleteObject',
+ 'ListObjects',
+ 'PutBucketLifecycle',
+ 'DeleteBucketLifecycle',
+ 'GetBucketLifecycle',
+ 'ListBuckets',
+ 'GetOssUsageData',
+ 'GetOssStorageAndAccByBuckets',
+ ],
+ ],
+ [
+ 'id' => 390954,
+ 'title' => null,
+ 'type' => 'directory',
+ 'children' => [
+ 'DescribeStorageGateway',
+ 'CreateStorageGateway',
+ 'DeleteStorageGateway',
+ ],
+ ],
+ [
+ 'id' => 390958,
+ 'title' => null,
+ 'type' => 'directory',
+ 'children' => [
+ 'DescribeStorageVolume',
+ 'CreateStorageVolume',
+ 'DeleteStorageVolume',
+ ],
+ ],
+ [
+ 'id' => 390962,
+ 'title' => null,
+ 'type' => 'directory',
+ 'children' => [
+ 'AssignPrivateIpAddresses',
+ 'UnassignPrivateIpAddresses',
+ ],
+ ],
+ [
+ 'id' => 390965,
+ 'title' => null,
+ 'type' => 'directory',
+ 'children' => [
+ 'CreateCluster',
+ 'DeleteCluster',
+ 'DescribeClustersV1',
+ 'DescribeClusterDetail',
+ 'DescribeClusterUserKubeconfig',
+ 'ListClusterAddonInstances',
+ 'GetClusterAddonInstance',
+ 'UnInstallClusterAddons',
+ 'InstallClusterAddons',
+ 'ModifyClusterAddon',
+ 'ListAddons',
+ 'DescribeAddon',
+ 'UpgradeClusterAddons',
+ 'DeleteClusterNodes',
+ 'DescribeClusterNodes',
+ 'ScaleClusterNodePool',
+ 'CreateClusterNodePool',
+ 'DescribeClusterNodePools',
+ 'ModifyClusterNodePool',
+ 'DeleteClusterNodePool',
+ 'InitializeENSECKServiceRole',
+ ],
+ ],
+ [
+ 'id' => 390987,
+ 'title' => null,
+ 'type' => 'directory',
+ 'children' => [
+ 'DescribeInstanceSDGStatus',
+ 'MountInstanceSDG',
+ 'UnmountInstanceSDG',
+ 'AttachInstanceSDG',
+ 'DetachInstanceSDG',
+ 'CreateSDG',
+ 'DeploySDG',
+ 'DeployInstanceSDG',
+ 'CopySDG',
+ 'PreloadRegionSDG',
+ 'DescribeSDGs',
+ 'DescribeSDG',
+ 'DescribeSDGDeploymentStatus',
+ 'DeleteSDG',
+ 'UnloadRegionSDG',
+ 'RemoveSDG',
+ 'RemoveInstanceSDG',
+ 'SaveSDG',
+ 'RemoveSDGs',
+ ],
+ ],
+ [
+ 'id' => 391007,
+ 'title' => null,
+ 'type' => 'directory',
+ 'children' => [
+ 'ModifyAICInstanceType',
+ 'ResetAICInstance',
+ 'UpgradeAICInstanceImage',
+ 'RebootAICInstance',
+ 'DescribeARMServerInstances',
+ 'RebootARMServerInstance',
+ 'ReleaseARMServerInstance',
+ 'CreateARMServerInstances',
+ 'RenewARMServerInstance',
+ 'DescribeAICImages',
+ 'RecoverAICInstance',
+ 'ReleaseAICInstance',
+ ],
+ ],
+ [
+ 'id' => 391020,
+ 'title' => null,
+ 'type' => 'directory',
+ 'children' => [
+ 'RunServiceSchedule',
+ 'DescribeServcieSchedule',
+ 'RescaleDeviceService',
+ 'DescribeDeviceService',
+ 'DescribeDataPushResult',
+ 'DescribeDataDownloadURL',
+ 'DescribeDataDistResult',
+ 'DistApplicationData',
+ 'CreateApplication',
+ 'DeleteApplication',
+ 'ListApplications',
+ 'DescribeApplication',
+ 'UpgradeApplication',
+ 'RollbackApplication',
+ 'RescaleApplication',
+ 'PushApplicationData',
+ ],
+ ],
+ [
+ 'id' => 391037,
+ 'title' => null,
+ 'type' => 'directory',
+ 'children' => [
+ 'DescribeEnsRegions',
+ 'DescribeEnsRegionIdResource',
+ 'DescribeReservedResource',
+ 'DescribePrePaidInstanceStock',
+ 'DescribeLoadBalancerSpec',
+ 'DescribeElbAvailableResourceInfo',
+ 'DescribeCloudDiskTypes',
+ 'DescribeCloudDiskAvailableResourceInfo',
+ ],
+ ],
+ [
+ 'id' => 391046,
+ 'title' => null,
+ 'type' => 'directory',
+ 'children' => [
+ 'UntagResources',
+ 'TagResources',
+ 'ListTagResources',
+ ],
+ ],
+ [
+ 'id' => 391050,
+ 'title' => null,
+ 'type' => 'directory',
+ 'children' => [
+ 'DescribeBandwitdhByInternetChargeType',
+ 'DescribeUserBandWidthData',
+ ],
+ ],
+ [
+ 'id' => 391053,
+ 'title' => null,
+ 'type' => 'directory',
+ 'children' => [
+ 'DescribeMeasurementData',
+ 'DescribePrice',
+ 'ExportBillDetailData',
+ 'ExportMeasurementData',
+ ],
+ ],
+ [
+ 'id' => 391058,
+ 'title' => null,
+ 'type' => 'directory',
+ 'children' => [
+ 'DescribeHistoryEvents',
+ 'BatchEventRebootInstance',
+ 'EventRebootInstance',
+ 'EventMigrateInstance',
+ 'BatchEventMigrateInstance',
+ 'EventRedeployInstance',
+ 'BatchEventRedeployInstance',
+ ],
+ ],
+ [
+ 'id' => 391066,
+ 'title' => null,
+ 'type' => 'directory',
+ 'children' => [
+ 'ReleaseInstance',
+ 'CreateEnsService',
+ 'DescribeNASAvailableResourceInfo',
+ 'CreateEpnInstance',
+ 'DeleteEpnInstance',
+ 'DescribeEnsNetDistrict',
+ 'DescribeEpnBandWidthData',
+ 'DescribeEpnBandwitdhByInternetChargeType',
+ 'DescribeEpnInstanceAttribute',
+ 'DescribeEpnInstances',
+ 'DescribeEpnMeasurementData',
+ 'JoinPublicIpsToEpnInstance',
+ 'JoinVSwitchesToEpnInstance',
+ 'ModifyEpnInstance',
+ 'RemovePublicIpsFromEpnInstance',
+ 'RemoveVSwitchesFromEpnInstance',
+ 'StartEpnInstance',
+ 'StopEpnInstance',
+ 'DescribeEnsResourceUsage',
+ 'ModifyInstanceChargeType',
+ 'DescribeInstanceBandwidthDetail',
+ 'ModifyInstanceBootConfiguration',
+ 'DescribeEnsRouteTables',
+ 'DeleteHaVips',
+ 'ModifySnatEntry',
+ 'DescribeVSwitchAttributes',
+ 'ModifyEnsRouteEntry',
+ 'ListProductAbilities',
+ 'DescribeInstanceBootConfiguration',
+ 'ImportImage',
+ 'DescribeForwardEntryAttribute',
+ 'ModifyInstanceNetworkAttribute',
+ 'CreateSecurityGroupPermissions',
+ 'DeleteSecurityGroupPermissions',
+ 'ManageAICLogin',
+ 'ListAICPublicKeys',
+ 'DeleteAICPublicKey',
+ 'ListAICPublicKeyDeliveries',
+ 'ShareAICImage',
+ 'UploadAICPublicKey',
+ 'DescribeSDGSharedDisks',
+ 'DescribeClusterKubeConfig',
+ 'DescribeCluster',
+ ],
+ ],
+ ],
+ 'components' => [
+ 'schemas' => [],
+ ],
+ 'apis' => [
+ 'RunInstances' => [
+ 'summary' => 'Creates a pay-as-you-go or subscription ENS instance.',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'create',
+ 'riskType' => 'high',
+ 'chargeType' => 'paid',
+ 'abilityTreeCode' => '101683',
+ 'abilityTreeNodes' => [
+ 'FEATUREensI1ZRKE',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'InstanceType',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '实例规格',
+ 'description' => 'The instance type.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'ens.sn1.small',
+ ],
+ ],
+ [
+ 'name' => 'InstanceChargeType',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '实例付费方式,PrePaid:预付费,包年包月 PostPaid:按量付费',
+ 'description' => 'The billing method of the instance. Valid values:'."\n"
+ ."\n"
+ .'* **PrePaid**: subscription.'."\n"
+ .'* **PostPaid:** pay-as-you-go.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'enumValueTitles' => [
+ 'PostPaid' => '',
+ 'PrePaid' => '',
+ ],
+ 'example' => 'PostPaid',
+ 'enum' => [
+ 'PrePaid',
+ 'PostPaid',
+ ],
+ ],
+ ],
+ [
+ 'name' => 'ImageId',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '镜像id',
+ 'description' => 'The ID of the image. For ARM PCB-based server instances, leave this parameter empty. For other instances, this parameter is required.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'm-5si16wo6simkt267p8b7hcmy3',
+ ],
+ ],
+ [
+ 'name' => 'NetDistrictCode',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '地区code',
+ 'description' => 'The code of the region.'."\n"
+ ."\n"
+ .'> This parameter is not available if ScheduleAreaLevel is set to Region and is required if ScheduleAreaLevel is set to other values.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '350000',
+ ],
+ ],
+ [
+ 'name' => 'Carrier',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '运营商',
+ 'description' => 'The Internet service provider (ISP).'."\n"
+ ."\n"
+ .'> This parameter required if ScheduleAreaLevel is set to Region.\\'."\n"
+ .'If you set ScheduleAreaLevel to Region, a node has multiple ISPs, and you do not specify an ISP, then the create instance uses the ISP of the node. If the node has two ISPs, such as China Mobile and China Unicom, the created instance has two ISPs.\\'."\n"
+ .'You can call the DescribeRegionIsps operation to query ISPs of the edge node.[](~~2637461~~)'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'telecom',
+ ],
+ ],
+ [
+ 'name' => 'ScheduleAreaLevel',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '调度层级',
+ 'description' => 'The scheduling level. This parameter specifies area-level scheduling or node-level scheduling. Valid values:'."\n"
+ ."\n"
+ .'* **Big**: greater area'."\n"
+ .'* **Middle**: province'."\n"
+ .'* **Small**: city'."\n"
+ .'* **Region**: node'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'Region',
+ ],
+ ],
+ [
+ 'name' => 'SchedulingStrategy',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '调度策略',
+ 'description' => 'The scheduling policy of the taint. Valid values:'."\n"
+ ."\n"
+ .'* **Concentrate**'."\n"
+ .'* **Disperse**'."\n"
+ ."\n"
+ .'> If ScheduleAreaLevel is set to Region, set this parameter to **Concentrate**. If ScheduleAreaLevel is set to other values, set this parameter to Concentrate or Disperse based on your business requirements.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'concentrate',
+ ],
+ ],
+ [
+ 'name' => 'EnsRegionId',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '节点id',
+ 'description' => 'The ID of the node.'."\n"
+ ."\n"
+ .'> This parameter is required if ScheduleAreaLevel is set to Region and is not available if ScheduleAreaLevel is set to other values.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'cn-foshan-telecom',
+ ],
+ ],
+ [
+ 'name' => 'Password',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '实例密码',
+ 'description' => 'The password that is used to connect to the instance.'."\n"
+ ."\n"
+ .'> You need to specify at least one of **Password**, **KeyPairName**, and **PasswordInherit**.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'testPassword',
+ ],
+ ],
+ [
+ 'name' => 'KeyPairName',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '密钥对名称',
+ 'description' => 'The name of the key pair.'."\n"
+ ."\n"
+ .'> You need to specify at least one of **Password**, **KeyPairName**, and **PasswordInherit**.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'wx2-jumpserver',
+ ],
+ ],
+ [
+ 'name' => 'InternetChargeType',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '带宽计费方式',
+ 'description' => 'The bandwidth billing method. Valid values:'."\n"
+ ."\n"
+ .'* **BandwidthByDay**: pay by daily peak bandwidth'."\n"
+ .'* **95BandwidthByMonth**: pay by monthly 95th percentile bandwidth'."\n"
+ ."\n"
+ .'> This parameter is required if you purchase an ENS instance for the first time. The value that you specified is used as the default value for subsequent purchases.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'BandwidthByDay',
+ ],
+ ],
+ [
+ 'name' => 'SystemDisk',
+ 'in' => 'query',
+ 'style' => 'json',
+ 'schema' => [
+ 'title' => '系统盘规格',
+ 'description' => 'The specification of the system disk.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'Size' => [
+ 'description' => 'The size of the system disk. Unit: GiB.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int64',
+ 'required' => false,
+ 'example' => '50',
+ ],
+ 'Category' => [
+ 'description' => 'The category of the system disk.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'local_ssd',
+ ],
+ ],
+ 'required' => false,
+ ],
+ ],
+ [
+ 'name' => 'DataDisk',
+ 'in' => 'query',
+ 'style' => 'json',
+ 'schema' => [
+ 'title' => '数据盘规格',
+ 'description' => 'The specifications of data disks.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The information about the data disks.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'Size' => [
+ 'description' => 'The size of a data disk. Unit: GiB.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int64',
+ 'required' => false,
+ 'example' => '20',
+ ],
+ 'Category' => [
+ 'description' => 'The category of the disk. Valid values:'."\n"
+ ."\n"
+ .'* **cloud_efficiency**: ultra disk.'."\n"
+ .'* **cloud_ssd**: all-flash disk.'."\n"
+ .'* **local_hdd**: local HDD.'."\n"
+ .'* **local_ssd**: local SSD.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'cloud_efficiency',
+ ],
+ 'Encrypted' => [
+ 'description' => 'Specifies whether to encrypt the disk. Valid values:'."\n"
+ ."\n"
+ .'* true.'."\n"
+ .'* false (default).'."\n",
+ 'type' => 'boolean',
+ 'required' => false,
+ 'example' => 'false'."\n",
+ 'default' => 'false',
+ ],
+ 'KMSKeyId' => [
+ 'description' => 'The ID of the Key Management Service (KMS) key that is used for the disk. Valid values:'."\n"
+ ."\n"
+ .'* true.'."\n"
+ .'* false (default).'."\n"
+ ."\n"
+ .'> If you set the Encrypted parameter to true, the default service key is used when the KMSKeyId parameter is empty.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'false',
+ ],
+ ],
+ 'required' => false,
+ ],
+ 'required' => false,
+ ],
+ ],
+ [
+ 'name' => 'Period',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '购买资源的时长,单位为:月',
+ 'description' => 'The unit of the subscription period.'."\n"
+ ."\n"
+ .'* If **PeriodUnit** is set to **Day**, **Period** can only be set to **3**.'."\n"
+ .'* If **PeriodUnit** is **Month**, **Period** can be set to **1 to 9** or **12**.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int64',
+ 'required' => false,
+ 'example' => '1-9,12',
+ ],
+ ],
+ [
+ 'name' => 'InternetMaxBandwidthOut',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '公网最大带宽,如果参数InternetMaxBandwidthOut的值大于0,则自动为实例分配公网IP。',
+ 'description' => 'The maximum public bandwidth. If the value of this parameter is greater than 0, a public IP address is assigned to the instance.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int64',
+ 'required' => false,
+ 'example' => '1',
+ ],
+ ],
+ [
+ 'name' => 'Amount',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '数量',
+ 'description' => 'The number of instances that you want to create. Valid values: 1 to 100.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int64',
+ 'required' => false,
+ 'maximum' => '100',
+ 'minimum' => '1',
+ 'example' => '1',
+ 'default' => '1',
+ ],
+ ],
+ [
+ 'name' => 'NetWorkId',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '网络id',
+ 'description' => 'The ID of the network.'."\n"
+ ."\n"
+ .'> This parameter is available only if ScheduleAreaLevel is set to Region and cannot be configured if ScheduleAreaLevel is set to other values. Otherwise, an error occurs.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'net-id',
+ ],
+ ],
+ [
+ 'name' => 'VSwitchId',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '交换机id',
+ 'description' => 'The ID of the vSwitch.'."\n"
+ ."\n"
+ .'> This parameter is available only if ScheduleAreaLevel is set to Region and cannot be configured if ScheduleAreaLevel is set to other values. Otherwise, an error occurs.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'vsw-5sagnw7m613oulalkd10nv0ob',
+ ],
+ ],
+ [
+ 'name' => 'SecurityId',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '安全组id',
+ 'description' => 'The ID of security group.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'sg-test',
+ ],
+ ],
+ [
+ 'name' => 'HostName',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '主机名称',
+ 'description' => 'The name of the host.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'test-HostName',
+ ],
+ ],
+ [
+ 'name' => 'InstanceName',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '实例名称。长度为2~128个字符,必须以大小字母或中文开头,不能以http://和https://开头。可以包含中文、英文、数字、半角冒号(:)、下划线(_)、点号(.)或者连字符(-)。默认值为实例的InstanceId',
+ 'description' => 'The name of the instance. The name must be 2 to 128 characters in length. It must start with a letter and cannot start with `http://` or `https://`. It can contain letters, digits, colons (:), underscores (\\_), periods (.), and hyphens (-).'."\n"
+ ."\n"
+ .'The default value of this parameter is the value of the InstanceId parameter.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'TestName',
+ ],
+ ],
+ [
+ 'name' => 'UniqueSuffix',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '是否为HostName和InstanceName添加有序后缀,有序后缀从001开始递增,最大不能超过999',
+ 'description' => 'Specifies whether to append sequential suffixes to the hostname specified by the **HostName** parameter and to the instance name specified by the **InstanceName** parameter. The sequential suffixes range from 001 to 999.'."\n",
+ 'type' => 'boolean',
+ 'required' => false,
+ 'example' => 'True',
+ ],
+ ],
+ [
+ 'name' => 'UserData',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '用户自定义数据,最大支持16KB 您可传入UserData信息。UserData以Base64的方式编码',
+ 'description' => 'The custom data. The maximum data size is 16 KB. You can specify **UserData**. **UserData** must be Base64-encoded.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'ZWtest',
+ ],
+ ],
+ [
+ 'name' => 'AutoRenew',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '是否自动续费,默认为false',
+ 'description' => 'Specifies whether to enable auto-renewal for the premium bandwidth plan. Valid values:'."\n"
+ ."\n"
+ .'* **true**.'."\n"
+ .'* **false** (default).'."\n"
+ ."\n"
+ .'> This parameter is not available when InstanceChargeType is set to PostPaid.'."\n",
+ 'type' => 'boolean',
+ 'required' => false,
+ 'example' => 'true',
+ 'default' => 'false',
+ ],
+ ],
+ [
+ 'name' => 'SchedulingPriceStrategy',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '调度价格策略',
+ 'description' => 'The scheduling price policy. Valid values:'."\n"
+ ."\n"
+ .'* **PriceHighPriority**: The high price prevails.'."\n"
+ .'* **PriceLowPriority**: The low price prevails.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'PriceHighPriority',
+ 'default' => 'PriceLowPriority',
+ 'enum' => [
+ 'PriceHighPriority',
+ 'PriceLowPriority',
+ ],
+ ],
+ ],
+ [
+ 'name' => 'PrivateIpAddress',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '私网ip',
+ 'description' => 'The private IP address.'."\n"
+ ."\n"
+ .'> This parameter is available only if ScheduleAreaLevel is set to Region and cannot be configured if ScheduleAreaLevel is set to other values. Otherwise, an error occurs. If you specify a private IP address, the number of instances must be 1. The private IP address takes effect only when the private IP address and the vSwitch ID are not empty.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '10.0.0.120',
+ ],
+ ],
+ [
+ 'name' => 'PeriodUnit',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '查询云服务器ENS不同计费周期的价格。取值范围:'."\n"
+ .'Month(默认):按月计费的价格单位。'."\n"
+ .'Day:按天计费的价格单位。',
+ 'description' => 'The unit of the subscription period. Valid values:'."\n"
+ ."\n"
+ .'* **Month** (default).'."\n"
+ .'* **Day**.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'Month',
+ 'enum' => [
+ 'Month',
+ 'Day',
+ ],
+ ],
+ ],
+ [
+ 'name' => 'PublicIpIdentification',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'Specifies whether to enable public IP address identification. Valid values: true and false. Default value: false.'."\n",
+ 'type' => 'boolean',
+ 'required' => false,
+ 'example' => 'true',
+ 'default' => 'true',
+ ],
+ ],
+ [
+ 'name' => 'PasswordInherit',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'Specifies whether to use the preset password of the image. Valid values:'."\n"
+ ."\n"
+ .'* **true**'."\n"
+ .'* **false**'."\n"
+ ."\n"
+ .'> You need to specify at least one of **Password**, **KeyPairName**, and **PasswordInherit**.'."\n",
+ 'type' => 'boolean',
+ 'required' => false,
+ 'example' => 'false',
+ ],
+ ],
+ [
+ 'name' => 'InstanceChargeStrategy',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The billing policy of the instance. Valid values:'."\n"
+ ."\n"
+ .'* **instance**: Bills are generated based on instances.'."\n"
+ .'* If you do not specify this parameter, bills are generated based on users.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'instance',
+ ],
+ ],
+ [
+ 'name' => 'BillingCycle',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '实例计算资源计费周期,仅支持实例级后付费。'."\n"
+ .'取值'."\n"
+ .'* Hour'."\n"
+ .'* Day'."\n"
+ .'* Month',
+ 'description' => 'The billing cycle of computing resources of the instance. Only pay-as-you-go instances are supported. Valid values:'."\n"
+ ."\n"
+ .'* **Day**.'."\n"
+ .'* **Month**.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'enumValueTitles' => [
+ 'Month' => 'Month',
+ 'Day' => 'Day',
+ ],
+ 'example' => 'Day',
+ 'enum' => [
+ 'Month',
+ 'Day',
+ 'Hour',
+ ],
+ ],
+ ],
+ [
+ 'name' => 'IpType',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The type of the IP address. Valid values:'."\n"
+ ."\n"
+ .'* **ipv4** (default).'."\n"
+ .'* **ipv6**.'."\n"
+ .'* **ipv4Andipv6** (single stack).'."\n"
+ .'* **ipv4Withipv6** (dual stack).'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'ipv4',
+ 'enum' => [
+ 'ipv4',
+ 'ipv6',
+ 'ipv4Andipv6',
+ 'ipv4Withipv6',
+ ],
+ ],
+ ],
+ [
+ 'name' => 'AutoUseCoupon',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '是否使用代金券,默认为使用,即AutoUseCoupon=true。',
+ 'description' => 'Specifies whether to use coupons. Default value: true.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'true',
+ 'default' => 'true',
+ ],
+ ],
+ [
+ 'name' => 'Tag',
+ 'in' => 'query',
+ 'style' => 'repeatList',
+ 'schema' => [
+ 'description' => 'The tags.',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The tags.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'Key' => [
+ 'description' => 'The key of the tag.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'team',
+ ],
+ 'Value' => [
+ 'description' => 'The value of the tag.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'tagValue',
+ ],
+ ],
+ 'required' => false,
+ ],
+ 'required' => false,
+ 'maxItems' => 20,
+ ],
+ ],
+ [
+ 'name' => 'AutoReleaseTime',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The time when to automatically release the pay-as-you-go instance. Specify the time in the [ISO 8601](~~25696~~) standard in the `yyyy-MM-ddTHH:mm:ssZ` format. The time must be in Coordinated Universal Time (UTC).'."\n"
+ ."\n"
+ .'* If the value of `ss` is not `00`, the start time is automatically rounded down to the nearest minute based on the value of `mm`.'."\n"
+ .'* The specified time must be at least one hour later than the current time.'."\n",
+ 'type' => 'string',
+ 'format' => 'iso8601',
+ 'required' => false,
+ 'example' => '2023-06-28T14:38:52Z',
+ ],
+ ],
+ [
+ 'name' => 'SpotStrategy',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The bidding policy for the pay-as-you-go instance. This parameter is valid only when the `InstanceChargeType` parameter is set to `PostPaid`. Valid values:'."\n"
+ ."\n"
+ .'* NoSpot: The elastic container instances are pay-as-you-go instances.'."\n"
+ .'* SpotAsPriceGo: The instance is a preemptible instance for which the market price at the time of purchase is automatically used as the bidding price.'."\n"
+ ."\n"
+ .'Default value: NoSpot.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'SpotAsPriceGo',
+ 'enum' => [
+ 'SpotAsPriceGo',
+ 'NoSpot',
+ ],
+ ],
+ ],
+ [
+ 'name' => 'SpotDuration',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The protection period of the preemptible instance. Unit: hours. Default value: 1. Valid values:'."\n"
+ ."\n"
+ .'* 1: After a preemptible instance is created, Alibaba Cloud ensures that the instance is not automatically released within 1 hour. After the 1-hour protection period ends, the system compares the bid price with the market price and checks the resource inventory to determine whether to retain or release the instance.'."\n"
+ .'* 0: After a preemptible instance is created, Alibaba Cloud does not ensure that the instance runs for 1 hour. The system compares the bid price with the market price and checks the resource inventory to determine whether to retain or release the instance.'."\n"
+ ."\n"
+ .'Alibaba Cloud sends an ECS system event to notify you 5 minutes before the instance is released. Preemptible instances are billed by second. We recommend that you specify an appropriate protection period based on your business requirements.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'example' => '2',
+ ],
+ ],
+ [
+ 'name' => 'Ipv6AddressCount',
+ 'in' => 'query',
+ 'schema' => [
+ 'type' => 'integer',
+ 'format' => 'int64',
+ 'maximum' => '10',
+ 'minimum' => '1',
+ ],
+ ],
+ [
+ 'name' => 'DeletionProtection',
+ 'in' => 'query',
+ 'schema' => [
+ 'type' => 'boolean',
+ ],
+ ],
+ [
+ 'name' => 'LaunchTemplateId',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '实例启动模板ID',
+ 'type' => 'string',
+ 'example' => 'lt-test',
+ ],
+ ],
+ [
+ 'name' => 'LaunchTemplateName',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '实例启动模板名称',
+ 'type' => 'string',
+ 'example' => 'lt-test',
+ ],
+ ],
+ [
+ 'name' => 'LaunchTemplateVersion',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '实例启动模板版本',
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '2',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '91E4AFBE-4E35-5D2A-A886-BB477C9953D2',
+ ],
+ 'InstanceIds' => [
+ 'description' => 'The IDs of instances.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The list of instance IDs.'."\n",
+ 'type' => 'string',
+ 'example' => '[\'i-5xxxx26dix05koz15l5413j25o\', \'i-5sdmxxxx\']',
+ ],
+ ],
+ 'OrderId' => [
+ 'description' => 'The order ID.'."\n",
+ 'type' => 'string',
+ 'example' => '213177957850399',
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'Invalid%s',
+ 'errorMessage' => 'The specified parameter %s is invalid.',
+ ],
+ [
+ 'errorCode' => 'Missing%s',
+ 'errorMessage' => 'You must specify the parameter %s.',
+ ],
+ [
+ 'errorCode' => 'SaleControlVerificationFailedInstanceDistrict',
+ 'errorMessage' => 'The regional sales constraint verification failed, please re-match or contact the product.',
+ ],
+ [
+ 'errorCode' => 'ens.interface.error',
+ 'errorMessage' => 'Failed to call API.',
+ ],
+ [
+ 'errorCode' => 'OrderFailed',
+ 'errorMessage' => 'Order failed, please try again.',
+ ],
+ [
+ 'errorCode' => 'SystemUseCouponFailed',
+ 'errorMessage' => 'Failed to use coupon.',
+ ],
+ [
+ 'errorCode' => 'SystemUseStoredCardFailed',
+ 'errorMessage' => 'Failed to use stored value card.',
+ ],
+ [
+ 'errorCode' => 'System.SystemError',
+ 'errorMessage' => 'system error.',
+ ],
+ [
+ 'errorCode' => 'SystemCanRefundCheckFailed',
+ 'errorMessage' => 'The business rule check of the cloud product fails, and this order cannot be refunded.',
+ ],
+ [
+ 'errorCode' => 'SystemOtsSystem',
+ 'errorMessage' => 'ots storage error.',
+ ],
+ [
+ 'errorCode' => 'SystemQueryImmortalError',
+ 'errorMessage' => 'Failed to call Juxiange.',
+ ],
+ [
+ 'errorCode' => 'SystemQueryInstanceInfoFailed',
+ 'errorMessage' => 'Failed to find instance information.',
+ ],
+ [
+ 'errorCode' => 'SystemResellerPayCalRefundUnitError',
+ 'errorMessage' => 'Ecological payment channel calculation unsubscribe information error.',
+ ],
+ [
+ 'errorCode' => 'SystemSaleValidateFailed',
+ 'errorMessage' => 'Sales Expression Validation System Error.',
+ ],
+ [
+ 'errorCode' => 'SystemTransferDeleteOldResourceFailed',
+ 'errorMessage' => 'Failed to delete the transferred instance in the transfer order.',
+ ],
+ [
+ 'errorCode' => 'SystemUnSupportOperationType',
+ 'errorMessage' => 'Unsupported operation type.',
+ ],
+ [
+ 'errorCode' => 'RiskRiskControlRejection',
+ 'errorMessage' => 'Risk Control Rejection.',
+ ],
+ [
+ 'errorCode' => 'AuthRamAuthFailed',
+ 'errorMessage' => 'ram sub-account authentication failed.',
+ ],
+ [
+ 'errorCode' => 'CommodityInvalidComponent',
+ 'errorMessage' => 'The module you purchased is illegal, please re-select.',
+ ],
+ [
+ 'errorCode' => 'CommodityInvalidItemCode',
+ 'errorMessage' => 'Specification code illegal.',
+ ],
+ [
+ 'errorCode' => 'PriceHsfTimeoutError',
+ 'errorMessage' => 'Time out when calling the request for quotation interface.',
+ ],
+ [
+ 'errorCode' => 'PricePatingConfigError',
+ 'errorMessage' => 'Inquiry related goods configuration error.',
+ ],
+ [
+ 'errorCode' => 'PricePricingPlanResultNotFound',
+ 'errorMessage' => 'Pricing plan price result not found.',
+ ],
+ [
+ 'errorCode' => 'PriceRatingGetRatingpricingPlan',
+ 'errorMessage' => 'Obtain a valid pricing plan exception.',
+ ],
+ [
+ 'errorCode' => 'OrderAbnormalResourceStatusForRenew',
+ 'errorMessage' => 'Invalid resource status for renewal.',
+ ],
+ [
+ 'errorCode' => 'OrderAccountStatusIllegal',
+ 'errorMessage' => 'Illegal account status.',
+ ],
+ [
+ 'errorCode' => 'OrderArrearage',
+ 'errorMessage' => 'User Arrears.',
+ ],
+ [
+ 'errorCode' => 'OrderBidUserOrderForbidden',
+ 'errorMessage' => 'Bid users cannot buy on the official website.',
+ ],
+ [
+ 'errorCode' => 'OrderCaptureFailed',
+ 'errorMessage' => 'The paid order of the instance has not been deducted successfully.',
+ ],
+ [
+ 'errorCode' => 'OrderExistsReleasedInstances',
+ 'errorMessage' => 'There are already released instances.',
+ ],
+ [
+ 'errorCode' => 'OrderGroupOrderSizeOverflow',
+ 'errorMessage' => 'The quantity of bound combined payment order exceeds the limit.',
+ ],
+ [
+ 'errorCode' => 'OrderHomeCurrencyCanNotDowngrade',
+ 'errorMessage' => 'Users in current currency cannot downgrade.',
+ ],
+ [
+ 'errorCode' => 'OrderHomeCurrencyCanNotUpgradeByValueTransfer',
+ 'errorMessage' => 'Users of current currency cannot upgrade through residual value transfer.',
+ ],
+ [
+ 'errorCode' => 'OrderInstanceHasInactiveChange',
+ 'errorMessage' => 'Instances exist temporary upgrade.',
+ ],
+ [
+ 'errorCode' => 'OrderInstHasUnpaidOrder',
+ 'errorMessage' => 'The instance has an unpaid order.',
+ ],
+ [
+ 'errorCode' => 'OrderInstHasUnsettledBills',
+ 'errorMessage' => 'The instance has an unsettled bill.',
+ ],
+ [
+ 'errorCode' => 'OrderLatestOrderIsHandling',
+ 'errorMessage' => 'Recent order is being processed, please try again later.',
+ ],
+ [
+ 'errorCode' => 'OrderMainOrderSizeOverflow',
+ 'errorMessage' => 'The quantity of the main order exceeds the limit.',
+ ],
+ [
+ 'errorCode' => 'OrderMissingModuleInfoError',
+ 'errorMessage' => 'Module parameter not specified.',
+ ],
+ [
+ 'errorCode' => 'OrderNoRealNameAuthentication',
+ 'errorMessage' => 'No real-name authentication.',
+ ],
+ [
+ 'errorCode' => 'OrderNotFound',
+ 'errorMessage' => 'The specified order information is not found.',
+ ],
+ [
+ 'errorCode' => 'OrderOpend',
+ 'errorMessage' => 'You have activated this product.',
+ ],
+ [
+ 'errorCode' => 'OrderPeriodInvalid',
+ 'errorMessage' => 'Illegal order cycle.',
+ ],
+ [
+ 'errorCode' => 'OrderQuantityInvalid',
+ 'errorMessage' => 'Illegal quantity ordered.',
+ ],
+ [
+ 'errorCode' => 'OrderQueryInstanceError',
+ 'errorMessage' => 'Query instance error.',
+ ],
+ [
+ 'errorCode' => 'OrderQueryInstanceNotExists',
+ 'errorMessage' => 'Instance data does not exist.',
+ ],
+ [
+ 'errorCode' => 'OrderQueryOrderExchangeRateFail',
+ 'errorMessage' => 'Failed to query order exchange rate information.',
+ ],
+ [
+ 'errorCode' => 'OrderQueryUserSettleInfoFail',
+ 'errorMessage' => 'Failed to query user settlement information.',
+ ],
+ [
+ 'errorCode' => 'OrderQuotaExceeded',
+ 'errorMessage' => 'Quantity exceeds limit.',
+ ],
+ [
+ 'errorCode' => 'OrderSysConstraintInvalid',
+ 'errorMessage' => 'System constraint check failed.',
+ ],
+ [
+ 'errorCode' => 'OrderTradeCompleteSettleInfoFail',
+ 'errorMessage' => 'Failed to complete the order settlement currency amount information.',
+ ],
+ [
+ 'errorCode' => 'TradeTradeOrderAfterPayCheckError',
+ 'errorMessage' => 'You have already paid for the subsequent orders of this instance. The current order has been automatically voided and you cannot pay any more.',
+ ],
+ [
+ 'errorCode' => 'PurchaseExistRenewchangeProd',
+ 'errorMessage' => 'There is a renewal change subscription that has not yet taken effect.',
+ ],
+ [
+ 'errorCode' => 'PurchaseExistToBeValidProdRuleError',
+ 'errorMessage' => 'Currently, there are temporary orders that are not in effect, and the upgrade operation cannot be performed.',
+ ],
+ [
+ 'errorCode' => 'PurchaseExistToBeValidRenewChangeProdRuleError',
+ 'errorMessage' => 'Currently, there is an uneffective renewal change subscription, and temporary upgrade operation cannot be performed.',
+ ],
+ [
+ 'errorCode' => 'PurchaseExistValidProdRuleError',
+ 'errorMessage' => 'Currently, there is a temporary order in effect, and operations such as upgrade/downgrade/expansion/pre-transfer cannot be performed.',
+ ],
+ [
+ 'errorCode' => 'ProductInstanceReleased',
+ 'errorMessage' => 'Instance released.',
+ ],
+ [
+ 'errorCode' => 'ProductInstanceTypeNotSupported',
+ 'errorMessage' => 'The instance type is not supported.',
+ ],
+ [
+ 'errorCode' => 'PatRiskRejectForTradeData',
+ 'errorMessage' => 'Payment order problem leads to risk control rejection.',
+ ],
+ [
+ 'errorCode' => 'PayAccountBookNotExist',
+ 'errorMessage' => 'There is no insufficient account balance in the account book, please retry after recharging.',
+ ],
+ [
+ 'errorCode' => 'PayAmountLimitExceeded',
+ 'errorMessage' => 'Payment limit exceeded, please resubmit.',
+ ],
+ [
+ 'errorCode' => 'PayBeforePayRiskRuleValidateFailed',
+ 'errorMessage' => 'The payment was blocked by risk control, and the payment failed.',
+ ],
+ [
+ 'errorCode' => 'PayCounponNotExist',
+ 'errorMessage' => 'Counpon does not exist.',
+ ],
+ [
+ 'errorCode' => 'PayCouponAmountNotEnough',
+ 'errorMessage' => 'Insufficient voucher balance or expired.',
+ ],
+ [
+ 'errorCode' => 'PayCouponNotMeetConsumptionRule',
+ 'errorMessage' => 'The coupon does not meet the conditions for use.',
+ ],
+ [
+ 'errorCode' => 'PayCurrencyInconsistency',
+ 'errorMessage' => 'Currency mismatch.',
+ ],
+ [
+ 'errorCode' => 'PayCurrencyNotSupported',
+ 'errorMessage' => 'Currency not supported.',
+ ],
+ [
+ 'errorCode' => 'PayForbiddenNoReasonFefund',
+ 'errorMessage' => 'Banned five days no reason refund.',
+ ],
+ [
+ 'errorCode' => 'PayHsfTimeoutError',
+ 'errorMessage' => 'Call payment system timeout.',
+ ],
+ [
+ 'errorCode' => 'PayInsufficientBalance',
+ 'errorMessage' => 'Account balance is insufficient, please recharge and try again.',
+ ],
+ [
+ 'errorCode' => 'PayInvalidCreditCard',
+ 'errorMessage' => 'Invalid credit card.',
+ ],
+ [
+ 'errorCode' => 'PayInvalidPayMethod',
+ 'errorMessage' => 'Illegal payment method.',
+ ],
+ [
+ 'errorCode' => 'PayMegrePayOrderHasThanOneChagreChannel',
+ 'errorMessage' => 'Payment failed, please retry or submit work order feedback.',
+ ],
+ [
+ 'errorCode' => 'PayNoCreditCard',
+ 'errorMessage' => 'No valid payment method, please check the payment method and try again.',
+ ],
+ [
+ 'errorCode' => 'PayOrderPayTimeInvalid',
+ 'errorMessage' => 'Order effective time is invalid.',
+ ],
+ [
+ 'errorCode' => 'PayPartRefundNotSupport',
+ 'errorMessage' => 'Not Capture, no partial refund.',
+ ],
+ [
+ 'errorCode' => 'PayPayChannelPayOrderInvalidStatus',
+ 'errorMessage' => 'Illegal status of payment order in payment channel.',
+ ],
+ [
+ 'errorCode' => 'PayPayChannelPayOrderNotExist',
+ 'errorMessage' => 'Payment channel payment order does not exist.',
+ ],
+ [
+ 'errorCode' => 'PayPayerAccountIllegal',
+ 'errorMessage' => 'Illegal payment account.',
+ ],
+ [
+ 'errorCode' => 'PayPayFailedParentRelationchanged',
+ 'errorMessage' => 'If the financial custody relationship changes, please void the order and place a new order for payment.',
+ ],
+ [
+ 'errorCode' => 'PayPayForbidUserCoupon',
+ 'errorMessage' => 'Coupon prohibited for orders.',
+ ],
+ [
+ 'errorCode' => 'PayQueryAvailableAmountFailed',
+ 'errorMessage' => 'Failed to query user availability, please try again later.',
+ ],
+ [
+ 'errorCode' => 'PayQueryAvailableEnduserAmountFailed',
+ 'errorMessage' => 'Failed to query the availability of quota direct customer main user, please try again later.',
+ ],
+ [
+ 'errorCode' => 'PayQueryParentRelationshipFailed',
+ 'errorMessage' => 'Failed to query current user hosting relationship, please try again later.',
+ ],
+ [
+ 'errorCode' => 'PayQueryPayChangeChannelNotEqual',
+ 'errorMessage' => 'Multi-order payment channels are inconsistent, please check whether the original order data payment channel is correct.',
+ ],
+ [
+ 'errorCode' => 'PayRefundFailed',
+ 'errorMessage' => 'Accumulated refund amount exceeds payment order amount.',
+ ],
+ [
+ 'errorCode' => 'PayResellerPayGetUrlError',
+ 'errorMessage' => 'Order payment failed, please try again later.',
+ ],
+ [
+ 'errorCode' => 'PayRiskRejectForPayerAccount',
+ 'errorMessage' => 'Payment account problem leads to risk control rejection.',
+ ],
+ [
+ 'errorCode' => 'PayStoredCardNotExist',
+ 'errorMessage' => 'Stored value card does not exist.',
+ ],
+ [
+ 'errorCode' => 'PaySystemError',
+ 'errorMessage' => 'Error calling payment system.',
+ ],
+ [
+ 'errorCode' => 'PayTaxCalcFailed',
+ 'errorMessage' => 'Failed to get user tax address.',
+ ],
+ [
+ 'errorCode' => 'PayWithholdingAgreementIllegal',
+ 'errorMessage' => 'Withholding Agreement Status Illegal.',
+ ],
+ [
+ 'errorCode' => 'AccountAliyunAccountFrozen',
+ 'errorMessage' => 'Alibaba Cloud account is frozen.',
+ ],
+ [
+ 'errorCode' => 'AccountAliyunAccountNotExist',
+ 'errorMessage' => 'Alibaba Cloud account does not exist.',
+ ],
+ [
+ 'errorCode' => 'RefundRefundInstanceNotFound',
+ 'errorMessage' => 'Unable to find instance information.',
+ ],
+ [
+ 'errorCode' => 'RefundRefundNoValidProd',
+ 'errorMessage' => 'Refund is not available to unsubscribe.',
+ ],
+ [
+ 'errorCode' => 'RefundRefundParamInvalid',
+ 'errorMessage' => 'Abnormal refund parameter.',
+ ],
+ [
+ 'errorCode' => 'RefundRefundQueryOrderFail',
+ 'errorMessage' => 'Failed to query order for refund field.',
+ ],
+ [
+ 'errorCode' => 'SystemConcurrentOperate',
+ 'errorMessage' => 'Concurrent operation causes failure.',
+ ],
+ [
+ 'errorCode' => 'PricePricingPlanNotFound',
+ 'errorMessage' => 'Pricing plan tree not found.',
+ ],
+ [
+ 'errorCode' => 'OrderInstanceHasTempUpgrade',
+ 'errorMessage' => 'Instances exist temporary upgrade.',
+ ],
+ [
+ 'errorCode' => 'PayQueryParentRelationchangedFailed',
+ 'errorMessage' => 'The financial custody relationship may change, please refresh and pay again.',
+ ],
+ [
+ 'errorCode' => 'PayforCreditPayInsufficientBalance',
+ 'errorMessage' => 'Insufficient quota, please contact your channel partner to increase the quota.',
+ ],
+ [
+ 'errorCode' => 'PayforAccountMoneyValidateError',
+ 'errorMessage' => 'The available amount of your channel partner\'s account is insufficient, please contact your channel partner to recharge in time.',
+ ],
+ [
+ 'errorCode' => 'BasicInfoUncompleted',
+ 'errorMessage' => 'You have not completed your basic personal information. Please complete the information and re-operate it.',
+ ],
+ [
+ 'errorCode' => 'SaleControlVerificationFailedStock',
+ 'errorMessage' => 'Inventory sales constraint verification failed, please re-match, or contact the product.',
+ ],
+ [
+ 'errorCode' => 'SaleControlVerificationFailedInstanceSpec',
+ 'errorMessage' => 'Instance specification sales constraint verification failed, please re-match, or contact the product.',
+ ],
+ [
+ 'errorCode' => 'SaleControlVerificationFailedInstanceNetLevel',
+ 'errorMessage' => 'The network-level sales constraint verification failed, please re-match or contact the product.',
+ ],
+ [
+ 'errorCode' => 'SaleControlVerificationFailedInstanceCpuCore',
+ 'errorMessage' => 'cpu core sales constraint verification failed, please re-match, or contact the product.',
+ ],
+ [
+ 'errorCode' => 'SaleControlVerificationFailedInstanceBandwidthValue',
+ 'errorMessage' => 'The bandwidth speed limit value sales constraint verification failed, please re-match or contact the product.',
+ ],
+ [
+ 'errorCode' => 'SaleControlVerificationFailedInstanceBandwidthType',
+ 'errorMessage' => 'Bandwidth type sales constraint verification failed, please re-match, or contact the product.',
+ ],
+ [
+ 'errorCode' => 'SaleControlVerificationFailedInstanceSystemDiskSpec',
+ 'errorMessage' => 'The system disk capacity sales constraint verification failed, please re-match or contact the product.',
+ ],
+ [
+ 'errorCode' => 'SaleControlVerificationFailedInstanceDataDiskType',
+ 'errorMessage' => 'Data disk type sales constraint verification failed, please re-select, or contact the product.',
+ ],
+ [
+ 'errorCode' => 'SaleControlVerificationFailedInstanceDataDiskSpec',
+ 'errorMessage' => 'Data disk capacity sales constraint verification failed, please re-match, or contact the product.',
+ ],
+ [
+ 'errorCode' => 'SaleControlVerificationFailedInstanceDataDiskBlock',
+ 'errorMessage' => 'The sales constraint verification of the number of data disks failed, please re-match or contact the product.',
+ ],
+ [
+ 'errorCode' => 'SaleControlVerificationFailedRegion',
+ 'errorMessage' => 'The node sales constraint verification failed, please re-select or contact the product.',
+ ],
+ [
+ 'errorCode' => 'SaleControlVerificationFailedCarrier',
+ 'errorMessage' => 'The isp failed to verify the sales restriction. Please re-select or contact the product.',
+ ],
+ [
+ 'errorCode' => 'EnsAreaCountIllegal',
+ 'errorMessage' => 'The number of instances in the region is all 0, please re-select or contact the product.',
+ ],
+ [
+ 'errorCode' => 'EnsAreaInsufficientInventory',
+ 'errorMessage' => 'Regional inventory is insufficient, please re-match, or contact the product.',
+ ],
+ [
+ 'errorCode' => 'EnsEnsRegionInsufficientInventory',
+ 'errorMessage' => 'The node inventory is insufficient, please re-select or contact the product.',
+ ],
+ [
+ 'errorCode' => 'EnsRegionCountExceeded',
+ 'errorMessage' => 'Purchase quantity exceeds the single default limit, please re-match, or contact the product.',
+ ],
+ [
+ 'errorCode' => 'EnsServiceArrearage',
+ 'errorMessage' => 'The user is in arrears or the status is abnormal, please contact the product.',
+ ],
+ [
+ 'errorCode' => 'EnsServiceConsumerNotExists',
+ 'errorMessage' => 'The user has not opened the edge service to pay by volume, please contact the product consultation.',
+ ],
+ [
+ 'errorCode' => 'GenerateDataKeyFailure',
+ 'errorMessage' => 'Failed to generate key information, please contact the product.',
+ ],
+ [
+ 'errorCode' => 'InvalidDataDiskCountValueNotSupported',
+ 'errorMessage' => 'The maximum number of dataDiskCount is exceeded,please re-match, or contact the product.',
+ ],
+ [
+ 'errorCode' => 'SystemError',
+ 'errorMessage' => 'Interface call error, please re-match, or contact the product.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameterCategoryNotSupported',
+ 'errorMessage' => 'This disk category is not support kms,please re-select, or contact the product.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameterKMSKeyIdCMKNotEnabled',
+ 'errorMessage' => 'The CMK needs to be enabled, please re-select, or contact the product.',
+ ],
+ [
+ 'errorCode' => 'InvalidImageIdSpec',
+ 'errorMessage' => 'The image does not match the specification cluster information, please re-match.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameterInstanceType',
+ 'errorMessage' => 'Failed to obtain specification information, please try to place the order again.',
+ ],
+ [
+ 'errorCode' => 'InvalidSpecPostPaid',
+ 'errorMessage' => 'This specification is not supported for a Pay-As-You-Go instance.',
+ ],
+ [
+ 'errorCode' => 'InvalidSpecNetlevel',
+ 'errorMessage' => 'The current network level does not support configuring this specification.',
+ ],
+ [
+ 'errorCode' => 'SuperfluousDataDiskInstanceSpec',
+ 'errorMessage' => 'Data disk properties cannot be configured for the current specification.',
+ ],
+ [
+ 'errorCode' => 'SuperfluousImageIdInstanceSpec',
+ 'errorMessage' => 'Image properties cannot be configured for the current specification.',
+ ],
+ [
+ 'errorCode' => 'SuperfluousPublicIpIdentificationInstanceSpec',
+ 'errorMessage' => 'The current specification cannot create a public network card.',
+ ],
+ [
+ 'errorCode' => 'SuperfluousSystemDiskInstanceSpec',
+ 'errorMessage' => 'System disk properties cannot be configured for the current specification.',
+ ],
+ [
+ 'errorCode' => 'LackImageIdInstanceSpec',
+ 'errorMessage' => 'Image properties must be configured for the current specification.',
+ ],
+ [
+ 'errorCode' => 'LackSystemDiskInstanceSpec',
+ 'errorMessage' => 'System disk properties must be configured for the current specification.',
+ ],
+ [
+ 'errorCode' => 'LackPublicIpIdentificationInstanceSpec',
+ 'errorMessage' => 'The current specification must create a public network card.',
+ ],
+ [
+ 'errorCode' => 'LackLabelImageIdEnsRegionId',
+ 'errorMessage' => 'The instance created by using this image on this node lacks the necessary label, please contact the product or operation classmate.',
+ ],
+ [
+ 'errorCode' => 'InvalidImageIdSystemDisk',
+ 'errorMessage' => 'The system disk size does not match the image size, please re-select.',
+ ],
+ [
+ 'errorCode' => 'SaleNetIpType',
+ 'errorMessage' => 'There is a conflict between the input parameters related to the double stack.',
+ ],
+ [
+ 'errorCode' => 'InvalidSKUStatus',
+ 'errorMessage' => 'Inventory storage unit(SKU) background status is illegal, please submit work order in time.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'EnsPostOpenError',
+ 'errorMessage' => 'Commodity opening failed.',
+ ],
+ [
+ 'errorCode' => 'VswitchNotMatchIpv6',
+ 'errorMessage' => 'The specified switch does not support ipv6.',
+ ],
+ [
+ 'errorCode' => 'SwitchNotSupportIpv6',
+ 'errorMessage' => 'The specified switch does not support ipv6.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"91E4AFBE-4E35-5D2A-A886-BB477C9953D2\\",\\n \\"InstanceIds\\": [\\n \\"[\'i-5xxxx26dix05koz15l5413j25o\', \'i-5sdmxxxx\']\\"\\n ],\\n \\"OrderId\\": \\"213177957850399\\"\\n}","errorExample":""},{"type":"xml","example":"<RunInstancesResponse>\\n <RequestId>91E4AFBE-4E35-5D2A-A886-BB477C9953D2</RequestId>\\n <InstanceIds>[\'i-5xxxx26dix05koz15l5413j25o\', \'i-5sdmxxxx\']</InstanceIds>\\n <OrderId>213177957850399</OrderId>\\n</RunInstancesResponse>","errorExample":""}]',
+ 'title' => 'RunInstances',
+ ],
+ 'CreateInstance' => [
+ 'summary' => 'Creates an instance.',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'systemTags' => [
+ 'operationType' => 'create',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'InstanceType',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The type of the instance.'."\n"
+ ."\n"
+ .'For more information, see [](~~66124~~).'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'ens.se1.tiny',
+ ],
+ ],
+ [
+ 'name' => 'EnsRegionId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The region ID.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'cn-hangzhou',
+ ],
+ ],
+ [
+ 'name' => 'Password',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The password of the instance.'."\n"
+ ."\n"
+ .'The password must be 8 to 30 characters in length and contain at least three of the following character types: uppercase letters, lowercase letters, digits, and special characters. Special characters include: ``()`~!@#$%^&*-_+=|{}[]:;\'<>,.?/``'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'yourPassword:1',
+ ],
+ ],
+ [
+ 'name' => 'Period',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The subscription period of the instance. Valid values: **1** to **9** and **12**. Unit: months.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => '12',
+ ],
+ ],
+ [
+ 'name' => 'ImageId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the image file that you select when creating the instance.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'yourImage ID',
+ ],
+ ],
+ [
+ 'name' => 'SystemDisk.Size',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The size of the system disk. Unit: GiB. Valid values: **20** and **40**. The value cannot be smaller than the size of the image and must be a multiple of 10 GiB.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '40',
+ ],
+ ],
+ [
+ 'name' => 'Quantity',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The number of instances.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => '1',
+ ],
+ ],
+ [
+ 'name' => 'DataDisk.1.Size',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The capacity of the first data disk. Unit: GiB. The capacity is at least 20 GiB and is a multiple of 10 GiB.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '50',
+ ],
+ ],
+ [
+ 'name' => 'InternetChargeType',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'This parameter is required if you create the instance for the first time. The existing billing method is used by default if you have created an instance. Valid values:'."\n"
+ ."\n"
+ .'* **BandwidthByDay**: Pay by daily peak bandwidth.'."\n"
+ .'* **95BandwidthByMonth**: Pay by monthly 95th percentile bandwidth.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '95BandwidthByMonth',
+ ],
+ ],
+ [
+ 'name' => 'AutoRenewPeriod',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The auto-renewal period for the instance. This parameter is required when the **AutoRenew** parameter is set to **True**. Valid values: **1** to **12**. Unit: months.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '12',
+ ],
+ ],
+ [
+ 'name' => 'AutoRenew',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'Specifies whether to enable the auto-renewal feature. Valid values: **True** and **False**. Default value: False.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'True',
+ ],
+ ],
+ [
+ 'name' => 'IpType',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The type of the IP address. Valid values:'."\n"
+ ."\n"
+ .'* **ipv4** (default)'."\n"
+ .'* **ipv6**'."\n"
+ .'* **ipv4Andipv6**'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'ipv4',
+ 'default' => 'ipv4',
+ 'enum' => [
+ 'ipv4Andipv6',
+ 'ipv4',
+ 'ipv6',
+ ],
+ ],
+ ],
+ [
+ 'name' => 'KeyPairName',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The name of the key pair. You can specify only one name.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'TestKeyPairName',
+ ],
+ ],
+ [
+ 'name' => 'UserData',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'Custom data. The data starts with `#!`. The data can be at most 256 characters in length and 16 KB in size. Only custom scripts are supported and cannot be rendered by InstanceMetaData.'."\n"
+ ."\n"
+ .'You can specify custom data. The data is encoded in Base64. The system does not encrypt your custom data when API requests are initiated. We recommend that you do not pass in confidential information such as passwords and private keys in plaintext. If you want to provide sensitive data such as passwords and private keys, encrypt the data and then encode it in Base64. The data is decrypted on the instance in the way it is encrypted.'."\n"
+ ."\n"
+ .'For more information, see [User data formats](https://cloudinit.readthedocs.io/en/latest/topics/format.html).'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '#!/bin/sh echo "Hello World. The time is now $(date -R)!" | tee /home/output.txt',
+ ],
+ ],
+ [
+ 'name' => 'VSwitchId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the vSwitch.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'YourVSwitchId',
+ ],
+ ],
+ [
+ 'name' => 'PrivateIpAddress',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The internal IP address. If this parameter is specified, you must specify the vSwitch ID. The vSwitch must be created first. Otherwise, an error is returned.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '10.10.10.10',
+ ],
+ ],
+ [
+ 'name' => 'PaymentType',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The billing method of the instance. Set the value to Subscription.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'Subscription',
+ 'default' => 'Subscription',
+ 'enum' => [
+ 'Subscription',
+ ],
+ ],
+ ],
+ [
+ 'name' => 'InstanceName',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The name of the instance. The name must conform to the following naming conventions:'."\n"
+ ."\n"
+ .'* The name must be **2** to **128** characters in length.'."\n"
+ .'* It must start with a letter but cannot start with http:// or https://.'."\n"
+ .'* The name can contain letters, digits, colons (:), underscores (\\_), periods (.), and hyphens (-).'."\n"
+ ."\n"
+ .'If you do not specify this parameter, the instance ID is used as the instance name by default.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'test:Instance_Name.1-2',
+ ],
+ ],
+ [
+ 'name' => 'HostName',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The hostname of the Elastic Compute Service (ECS) instance. General naming rules: The hostname cannot start or end with a period (.) or hyphen (-). It cannot contain consecutive periods (.) or hyphens (-).'."\n"
+ ."\n"
+ .'Naming rules for specific instances:'."\n"
+ ."\n"
+ .'* For Windows instances, the hostname must be **2** to **15** characters in length and cannot contain periods (.) or contain only digits. The hostname cannot contain periods (.) or contain only digits.'."\n"
+ .'* For instances that run one of other operating systems such as Linux, the hostname must be **2** to **64** characters in length. You can use periods (.) to separate the hostname into multiple segments. Each segment can contain letters, digits, and hyphens (-).'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'test-HostName',
+ ],
+ ],
+ [
+ 'name' => 'UniqueSuffix',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'Specifies whether to automatically append sequential suffixes to the hostnames specified by the **HostName** parameter and instance names specified by the **InstanceName** parameter. The sequential suffixes range from **001** to **999**.'."\n"
+ ."\n"
+ .'Examples: **LocalHost001** and **LocalHost002**, and **MyInstance001** and **MyInstance002**.'."\n"
+ ."\n"
+ .'Default value: **false**.'."\n",
+ 'type' => 'boolean',
+ 'required' => false,
+ 'example' => 'false',
+ 'default' => 'false',
+ ],
+ ],
+ [
+ 'name' => 'PublicIpIdentification',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'Specifies whether a public IP address can be assigned to the specified instance. Valid values:'."\n"
+ ."\n"
+ .'* **true**'."\n"
+ .'* **false**'."\n",
+ 'type' => 'boolean',
+ 'required' => false,
+ 'example' => 'true',
+ ],
+ ],
+ [
+ 'name' => 'PasswordInherit',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '是否使用镜像预设的密码。使用该参数时,Password参数必须为空,同时您需要确保使用的镜像已经设置了密码。',
+ 'description' => 'Specifies whether to use the preset password of the image. Valid values:'."\n"
+ ."\n"
+ .'- **true**: The password preset in the image is used, and the **Password** parameter must be null. For secure access, make sure that the selected image has a password configured.'."\n"
+ ."\n"
+ .'- **false**: does not use the password preset in the image.',
+ 'type' => 'boolean',
+ 'required' => false,
+ 'example' => 'false',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '4A431388-2D4B-46F4-A96B-D4E6BD0688C1',
+ ],
+ 'InstanceIds' => [
+ 'type' => 'object',
+ 'itemNode' => true,
+ 'properties' => [
+ 'InstanceId' => [
+ 'description' => 'The IDs of instances.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The list of instance IDs.'."\n",
+ 'type' => 'string',
+ 'example' => '[i-7ecpqvkicnchxccozrp****,i-6ecpqvkicnchxccozrp****]',
+ ],
+ ],
+ ],
+ ],
+ 'Code' => [
+ 'description' => 'The return code. A value of 0 indicates that the request is successful.'."\n"
+ ."\n"
+ .'> If you call this operation by using SDKs, the return value is of the integer type. If you call this operation by using common methods or HTTP requests, the return value is of the string type.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '0',
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'StockNotEnough',
+ 'errorMessage' => 'The specified instance type has insufficient resource.',
+ ],
+ [
+ 'errorCode' => 'InvalidUserData.NotInWhiteList',
+ 'errorMessage' => 'The specified user is not authroized to perform this operation.',
+ ],
+ [
+ 'errorCode' => 'MissingParameter',
+ 'errorMessage' => 'The input parameter that is mandatory for processing this request is not supplied.',
+ ],
+ [
+ 'errorCode' => 'InstanceIdNotFound',
+ 'errorMessage' => 'The input parameter instancdId that is not found.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'CallInterface',
+ 'errorMessage' => 'Call Interface Happen Error.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter',
+ 'errorMessage' => 'The input parameter is Invalid.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ [
+ 'errorCode' => 'InvalidDiskSize.ValueNotSupported',
+ 'errorMessage' => 'The specified disk capacity is invalid. Specify another capacity and try again.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.Bandwidth',
+ 'errorMessage' => 'The specified parameter InternetChargeType is not valid.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.Image',
+ 'errorMessage' => 'The specified image does not support.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.InstanceType',
+ 'errorMessage' => 'The specified parameter InstanceType is not valid.',
+ ],
+ [
+ 'errorCode' => 'InvalidAccountStatus.NotEnoughBalance',
+ 'errorMessage' => 'Your account does not have enough balance.',
+ ],
+ [
+ 'errorCode' => 'unsupported_Ipv6Feature',
+ 'errorMessage' => 'This ensregion does not support creating instance of the IPv6 type. Select another type.',
+ ],
+ [
+ 'errorCode' => 'Forbidden.CreateInstance',
+ 'errorMessage' => 'The user is not in the Goods whitelist of creating instance interface.',
+ ],
+ [
+ 'errorCode' => 'ENS_OperationUnsupported_KeyPairName',
+ 'errorMessage' => 'The KeyPairNameis not available or image not support ssh key.',
+ ],
+ [
+ 'errorCode' => 'ENS_DependencyViolation_WindowsInstance',
+ 'errorMessage' => 'The instance creating is window, only user password to login.',
+ ],
+ [
+ 'errorCode' => 'ENS_PASSWORDORKEYPAIRNAME_MODULE_NOT_CHOOSEN',
+ 'errorMessage' => 'The required module pwd or keyPairName is not inputed',
+ ],
+ [
+ 'errorCode' => 'InvalidPrivateIpAddress',
+ 'errorMessage' => 'Specified private IP address is not in the CIDR block of virtual switch.',
+ ],
+ [
+ 'errorCode' => 'InvalidVSwitchId.NotFound',
+ 'errorMessage' => 'Specified virtual switch does not exist.',
+ ],
+ [
+ 'errorCode' => 'InvalidPrivateIpAddress.Duplicated',
+ 'errorMessage' => 'Specified private IP address is duplicated.',
+ ],
+ [
+ 'errorCode' => 'InvalidPasswordParam.Mismatch',
+ 'errorMessage' => 'The input password should be null when passwordInherit is true.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"4A431388-2D4B-46F4-A96B-D4E6BD0688C1\\",\\n \\"InstanceIds\\": {\\n \\"InstanceId\\": [\\n \\"[i-7ecpqvkicnchxccozrp****,i-6ecpqvkicnchxccozrp****]\\"\\n ]\\n },\\n \\"Code\\": 0\\n}","errorExample":""},{"type":"xml","example":"<CreateInstanceResponse>\\n <RequestId>4A431388-2D4B-46F4-A96B-D4E6BD0688C1</RequestId>\\n <InstanceIds>[i-7ecpqvkicnchxccozrp****,i-6ecpqvkicnchxccozrp****]</InstanceIds>\\n <Code>0</Code>\\n</CreateInstanceResponse>","errorExample":""}]',
+ 'title' => 'CreateInstance',
+ 'description' => '* You can call this operation up to 10 times per second per account.'."\n"
+ .'* We recommend that you increase the request time because instance creation is an asynchronous operation. If the return code of the API operation is 0, it indicates that the request is successful, but does not indicate that the instance is created. If the request is successful, an instance ID is returned. You can check whether the instance is created based on the instance ID.'."\n"
+ .'* InvalidUserData.NotInWhiteList operation restriction: You can create an instance only if you are in the whitelist in which members have the purchase permissions. Otherwise, an error is returned.'."\n",
+ 'requestParamsDescription' => ' ',
+ 'responseParamsDescription' => ' ',
+ 'extraInfo' => ' ',
+ ],
+ 'ReleasePostPaidInstance' => [
+ 'summary' => 'Deletes a pay-as-you-go instance.',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'readAndWrite',
+ 'systemTags' => [
+ 'operationType' => 'delete',
+ 'abilityTreeCode' => '4383',
+ 'abilityTreeNodes' => [
+ 'FEATUREens43DFLD',
+ ],
+ 'tenantRelevance' => 'tenant',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'InstanceId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the instance to be deleted. You can specify only one instance ID.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'i-instance****',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => 'C0003E8B-B930-4F59-ADC0-0E209A9012A8',
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'InstanceIdNotFound',
+ 'errorMessage' => 'The input parameter instancdId that is not found.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'IncorrectInstanceStatus',
+ 'errorMessage' => 'The current status of the resource does not support this operation.',
+ ],
+ [
+ 'errorCode' => 'CallInterface',
+ 'errorMessage' => 'Call Interface Happen Error.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ [
+ 'errorCode' => 'DependencyViolation.Snapshot',
+ 'errorMessage' => 'This Instance has dependent Snapshot and cannot be deleted. Please Delete all Snapshot first.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"C0003E8B-B930-4F59-ADC0-0E209A9012A8\\"\\n}","errorExample":""},{"type":"xml","example":"<ReleasePostPaidInstanceResponse> \\r\\n <RequestId>C0003E8B-B930-4F59-ADC0-0E209A9012A8</RequestId>\\r\\n</ReleasePostPaidInstanceResponse> \\r\\n ","errorExample":""}]',
+ 'title' => 'ReleasePostPaidInstance',
+ 'requestParamsDescription' => ' ',
+ 'responseParamsDescription' => ' ',
+ 'extraInfo' => ' ',
+ ],
+ 'ReleasePrePaidInstance' => [
+ 'summary' => 'Call ReleasePrePaidInstance to delete a subscription instance.',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'readAndWrite',
+ 'systemTags' => [
+ 'operationType' => 'delete',
+ 'riskType' => 'high',
+ 'chargeType' => 'paid',
+ 'abilityTreeCode' => '4387',
+ 'abilityTreeNodes' => [
+ 'FEATUREensH8K8NI',
+ ],
+ 'tenantRelevance' => 'tenant',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'InstanceId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the instance to be deleted. You can specify only one instance ID.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'i-instance****',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => 'C0003E8B-B930-4F59-ADC0-0E209A9012A8',
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'InstanceIdNotFound',
+ 'errorMessage' => 'The input parameter instancdId that is not found.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'CallInterface',
+ 'errorMessage' => 'Call Interface Happen Error.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ [
+ 'errorCode' => 'SystemUseCouponFailed',
+ 'errorMessage' => 'Failed to use coupon.',
+ ],
+ [
+ 'errorCode' => 'SystemUseStoredCardFailed',
+ 'errorMessage' => 'Failed to use stored value card.',
+ ],
+ [
+ 'errorCode' => 'System.SystemError',
+ 'errorMessage' => 'system error.',
+ ],
+ [
+ 'errorCode' => 'SystemCanRefundCheckFailed',
+ 'errorMessage' => 'The business rule check of the cloud product fails, and this order cannot be refunded.',
+ ],
+ [
+ 'errorCode' => 'SystemOtsSystem',
+ 'errorMessage' => 'ots storage error.',
+ ],
+ [
+ 'errorCode' => 'SystemQueryImmortalError',
+ 'errorMessage' => 'Failed to call Juxiange.',
+ ],
+ [
+ 'errorCode' => 'SystemQueryInstanceInfoFailed',
+ 'errorMessage' => 'Failed to find instance information.',
+ ],
+ [
+ 'errorCode' => 'SystemResellerPayCalRefundUnitError',
+ 'errorMessage' => 'Ecological payment channel calculation unsubscribe information error.',
+ ],
+ [
+ 'errorCode' => 'SystemSaleValidateFailed',
+ 'errorMessage' => 'Sales Expression Validation System Error.',
+ ],
+ [
+ 'errorCode' => 'SystemTransferDeleteOldResourceFailed',
+ 'errorMessage' => 'Failed to delete the transferred instance in the transfer order.',
+ ],
+ [
+ 'errorCode' => 'SystemUnSupportOperationType',
+ 'errorMessage' => 'Unsupported operation type.',
+ ],
+ [
+ 'errorCode' => 'RiskRiskControlRejection',
+ 'errorMessage' => 'Risk Control Rejection.',
+ ],
+ [
+ 'errorCode' => 'AuthRamAuthFailed',
+ 'errorMessage' => 'ram sub-account authentication failed.',
+ ],
+ [
+ 'errorCode' => 'CommodityInvalidComponent',
+ 'errorMessage' => 'The module you purchased is illegal, please re-select.',
+ ],
+ [
+ 'errorCode' => 'CommodityInvalidItemCode',
+ 'errorMessage' => 'Specification code illegal.',
+ ],
+ [
+ 'errorCode' => 'PriceHsfTimeoutError',
+ 'errorMessage' => 'Time out when calling the request for quotation interface.',
+ ],
+ [
+ 'errorCode' => 'PricePatingConfigError',
+ 'errorMessage' => 'Inquiry related goods configuration error.',
+ ],
+ [
+ 'errorCode' => 'PricePricingPlanResultNotFound',
+ 'errorMessage' => 'Pricing plan price result not found.',
+ ],
+ [
+ 'errorCode' => 'PriceRatingGetRatingpricingPlan',
+ 'errorMessage' => 'Obtain a valid pricing plan exception.',
+ ],
+ [
+ 'errorCode' => 'OrderAbnormalResourceStatusForRenew',
+ 'errorMessage' => 'Invalid resource status for renewal.',
+ ],
+ [
+ 'errorCode' => 'OrderAccountStatusIllegal',
+ 'errorMessage' => 'Illegal account status.',
+ ],
+ [
+ 'errorCode' => 'OrderArrearage',
+ 'errorMessage' => 'User Arrears.',
+ ],
+ [
+ 'errorCode' => 'OrderBidUserOrderForbidden',
+ 'errorMessage' => 'Bid users cannot buy on the official website.',
+ ],
+ [
+ 'errorCode' => 'OrderCaptureFailed',
+ 'errorMessage' => 'The paid order of the instance has not been deducted successfully.',
+ ],
+ [
+ 'errorCode' => 'OrderExistsReleasedInstances',
+ 'errorMessage' => 'There are already released instances.',
+ ],
+ [
+ 'errorCode' => 'OrderGroupOrderSizeOverflow',
+ 'errorMessage' => 'The quantity of bound combined payment order exceeds the limit.',
+ ],
+ [
+ 'errorCode' => 'OrderHomeCurrencyCanNotDowngrade',
+ 'errorMessage' => 'Users in current currency cannot downgrade.',
+ ],
+ [
+ 'errorCode' => 'OrderHomeCurrencyCanNotUpgradeByValueTransfer',
+ 'errorMessage' => 'Users of current currency cannot upgrade through residual value transfer.',
+ ],
+ [
+ 'errorCode' => 'OrderInstanceHasInactiveChange',
+ 'errorMessage' => 'Instances exist temporary upgrade.',
+ ],
+ [
+ 'errorCode' => 'OrderInstHasUnpaidOrder',
+ 'errorMessage' => 'The instance has an unpaid order.',
+ ],
+ [
+ 'errorCode' => 'OrderInstHasUnsettledBills',
+ 'errorMessage' => 'The instance has an unsettled bill.',
+ ],
+ [
+ 'errorCode' => 'OrderLatestOrderIsHandling',
+ 'errorMessage' => 'Recent order is being processed, please try again later.',
+ ],
+ [
+ 'errorCode' => 'OrderMainOrderSizeOverflow',
+ 'errorMessage' => 'The quantity of the main order exceeds the limit.',
+ ],
+ [
+ 'errorCode' => 'OrderMissingModuleInfoError',
+ 'errorMessage' => 'Module parameter not specified.',
+ ],
+ [
+ 'errorCode' => 'OrderNoRealNameAuthentication',
+ 'errorMessage' => 'No real-name authentication.',
+ ],
+ [
+ 'errorCode' => 'OrderNotFound',
+ 'errorMessage' => 'The specified order information is not found.',
+ ],
+ [
+ 'errorCode' => 'OrderOpend',
+ 'errorMessage' => 'You have activated this product.',
+ ],
+ [
+ 'errorCode' => 'OrderPeriodInvalid',
+ 'errorMessage' => 'Illegal order cycle.',
+ ],
+ [
+ 'errorCode' => 'OrderQuantityInvalid',
+ 'errorMessage' => 'Illegal quantity ordered.',
+ ],
+ [
+ 'errorCode' => 'OrderQueryInstanceError',
+ 'errorMessage' => 'Query instance error.',
+ ],
+ [
+ 'errorCode' => 'OrderQueryInstanceNotExists',
+ 'errorMessage' => 'Instance data does not exist.',
+ ],
+ [
+ 'errorCode' => 'OrderQueryOrderExchangeRateFail',
+ 'errorMessage' => 'Failed to query order exchange rate information.',
+ ],
+ [
+ 'errorCode' => 'OrderQueryUserSettleInfoFail',
+ 'errorMessage' => 'Failed to query user settlement information.',
+ ],
+ [
+ 'errorCode' => 'OrderQuotaExceeded',
+ 'errorMessage' => 'Quantity exceeds limit.',
+ ],
+ [
+ 'errorCode' => 'OrderSysConstraintInvalid',
+ 'errorMessage' => 'System constraint check failed.',
+ ],
+ [
+ 'errorCode' => 'OrderTradeCompleteSettleInfoFail',
+ 'errorMessage' => 'Failed to complete the order settlement currency amount information.',
+ ],
+ [
+ 'errorCode' => 'TradeTradeOrderAfterPayCheckError',
+ 'errorMessage' => 'You have already paid for the subsequent orders of this instance. The current order has been automatically voided and you cannot pay any more.',
+ ],
+ [
+ 'errorCode' => 'PurchaseExistRenewchangeProd',
+ 'errorMessage' => 'There is a renewal change subscription that has not yet taken effect.',
+ ],
+ [
+ 'errorCode' => 'PurchaseExistToBeValidProdRuleError',
+ 'errorMessage' => 'Currently, there are temporary orders that are not in effect, and the upgrade operation cannot be performed.',
+ ],
+ [
+ 'errorCode' => 'PurchaseExistToBeValidRenewChangeProdRuleError',
+ 'errorMessage' => 'Currently, there is an uneffective renewal change subscription, and temporary upgrade operation cannot be performed.',
+ ],
+ [
+ 'errorCode' => 'PurchaseExistValidProdRuleError',
+ 'errorMessage' => 'Currently, there is a temporary order in effect, and operations such as upgrade/downgrade/expansion/pre-transfer cannot be performed.',
+ ],
+ [
+ 'errorCode' => 'ProductInstanceReleased',
+ 'errorMessage' => 'Instance released.',
+ ],
+ [
+ 'errorCode' => 'ProductInstanceTypeNotSupported',
+ 'errorMessage' => 'The instance type is not supported.',
+ ],
+ [
+ 'errorCode' => 'PatRiskRejectForTradeData',
+ 'errorMessage' => 'Payment order problem leads to risk control rejection.',
+ ],
+ [
+ 'errorCode' => 'PayAccountBookNotExist',
+ 'errorMessage' => 'There is no insufficient account balance in the account book, please retry after recharging.',
+ ],
+ [
+ 'errorCode' => 'PayAmountLimitExceeded',
+ 'errorMessage' => 'Payment limit exceeded, please resubmit.',
+ ],
+ [
+ 'errorCode' => 'PayBeforePayRiskRuleValidateFailed',
+ 'errorMessage' => 'The payment was blocked by risk control, and the payment failed.',
+ ],
+ [
+ 'errorCode' => 'PayCounponNotExist',
+ 'errorMessage' => 'Counpon does not exist.',
+ ],
+ [
+ 'errorCode' => 'PayCouponAmountNotEnough',
+ 'errorMessage' => 'Insufficient voucher balance or expired.',
+ ],
+ [
+ 'errorCode' => 'PayCouponNotMeetConsumptionRule',
+ 'errorMessage' => 'The coupon does not meet the conditions for use.',
+ ],
+ [
+ 'errorCode' => 'PayCurrencyInconsistency',
+ 'errorMessage' => 'Currency mismatch.',
+ ],
+ [
+ 'errorCode' => 'PayCurrencyNotSupported',
+ 'errorMessage' => 'Currency not supported.',
+ ],
+ [
+ 'errorCode' => 'PayForbiddenNoReasonFefund',
+ 'errorMessage' => 'Banned five days no reason refund.',
+ ],
+ [
+ 'errorCode' => 'PayHsfTimeoutError',
+ 'errorMessage' => 'Call payment system timeout.',
+ ],
+ [
+ 'errorCode' => 'PayInsufficientBalance',
+ 'errorMessage' => 'Account balance is insufficient, please recharge and try again.',
+ ],
+ [
+ 'errorCode' => 'PayInvalidCreditCard',
+ 'errorMessage' => 'Invalid credit card.',
+ ],
+ [
+ 'errorCode' => 'PayInvalidPayMethod',
+ 'errorMessage' => 'Illegal payment method.',
+ ],
+ [
+ 'errorCode' => 'PayMegrePayOrderHasThanOneChagreChannel',
+ 'errorMessage' => 'Payment failed, please retry or submit work order feedback.',
+ ],
+ [
+ 'errorCode' => 'PayNoCreditCard',
+ 'errorMessage' => 'No valid payment method, please check the payment method and try again.',
+ ],
+ [
+ 'errorCode' => 'PayOrderPayTimeInvalid',
+ 'errorMessage' => 'Order effective time is invalid.',
+ ],
+ [
+ 'errorCode' => 'PayPartRefundNotSupport',
+ 'errorMessage' => 'Not Capture, no partial refund.',
+ ],
+ [
+ 'errorCode' => 'PayPayChannelPayOrderInvalidStatus',
+ 'errorMessage' => 'Illegal status of payment order in payment channel.',
+ ],
+ [
+ 'errorCode' => 'PayPayChannelPayOrderNotExist',
+ 'errorMessage' => 'Payment channel payment order does not exist.',
+ ],
+ [
+ 'errorCode' => 'PayPayerAccountIllegal',
+ 'errorMessage' => 'Illegal payment account.',
+ ],
+ [
+ 'errorCode' => 'PayPayFailedParentRelationchanged',
+ 'errorMessage' => 'If the financial custody relationship changes, please void the order and place a new order for payment.',
+ ],
+ [
+ 'errorCode' => 'PayPayForbidUserCoupon',
+ 'errorMessage' => 'Coupon prohibited for orders.',
+ ],
+ [
+ 'errorCode' => 'PayQueryAvailableAmountFailed',
+ 'errorMessage' => 'Failed to query user availability, please try again later.',
+ ],
+ [
+ 'errorCode' => 'PayQueryAvailableEnduserAmountFailed',
+ 'errorMessage' => 'Failed to query the availability of quota direct customer main user, please try again later.',
+ ],
+ [
+ 'errorCode' => 'PayQueryParentRelationshipFailed',
+ 'errorMessage' => 'Failed to query current user hosting relationship, please try again later.',
+ ],
+ [
+ 'errorCode' => 'PayQueryPayChangeChannelNotEqual',
+ 'errorMessage' => 'Multi-order payment channels are inconsistent, please check whether the original order data payment channel is correct.',
+ ],
+ [
+ 'errorCode' => 'PayRefundFailed',
+ 'errorMessage' => 'Accumulated refund amount exceeds payment order amount.',
+ ],
+ [
+ 'errorCode' => 'PayResellerPayGetUrlError',
+ 'errorMessage' => 'Order payment failed, please try again later.',
+ ],
+ [
+ 'errorCode' => 'PayRiskRejectForPayerAccount',
+ 'errorMessage' => 'Payment account problem leads to risk control rejection.',
+ ],
+ [
+ 'errorCode' => 'PayStoredCardNotExist',
+ 'errorMessage' => 'Stored value card does not exist.',
+ ],
+ [
+ 'errorCode' => 'PaySystemError',
+ 'errorMessage' => 'Error calling payment system.',
+ ],
+ [
+ 'errorCode' => 'PayTaxCalcFailed',
+ 'errorMessage' => 'Failed to get user tax address.',
+ ],
+ [
+ 'errorCode' => 'PayWithholdingAgreementIllegal',
+ 'errorMessage' => 'Withholding Agreement Status Illegal.',
+ ],
+ [
+ 'errorCode' => 'AccountAliyunAccountFrozen',
+ 'errorMessage' => 'Alibaba Cloud account is frozen.',
+ ],
+ [
+ 'errorCode' => 'AccountAliyunAccountNotExist',
+ 'errorMessage' => 'Alibaba Cloud account does not exist.',
+ ],
+ [
+ 'errorCode' => 'RefundRefundInstanceNotFound',
+ 'errorMessage' => 'Unable to find instance information.',
+ ],
+ [
+ 'errorCode' => 'RefundRefundNoValidProd',
+ 'errorMessage' => 'Refund is not available to unsubscribe.',
+ ],
+ [
+ 'errorCode' => 'RefundRefundParamInvalid',
+ 'errorMessage' => 'Abnormal refund parameter.',
+ ],
+ [
+ 'errorCode' => 'RefundRefundQueryOrderFail',
+ 'errorMessage' => 'Failed to query order for refund field.',
+ ],
+ [
+ 'errorCode' => 'SystemConcurrentOperate',
+ 'errorMessage' => 'Concurrent operation causes failure.',
+ ],
+ [
+ 'errorCode' => 'PricePricingPlanNotFound',
+ 'errorMessage' => 'Pricing plan tree not found.',
+ ],
+ [
+ 'errorCode' => 'OrderInstanceHasTempUpgrade',
+ 'errorMessage' => 'Instances exist temporary upgrade.',
+ ],
+ [
+ 'errorCode' => 'PayQueryParentRelationchangedFailed',
+ 'errorMessage' => 'The financial custody relationship may change, please refresh and pay again.',
+ ],
+ [
+ 'errorCode' => 'PayforCreditPayInsufficientBalance',
+ 'errorMessage' => 'Insufficient quota, please contact your channel partner to increase the quota.',
+ ],
+ [
+ 'errorCode' => 'PayforAccountMoneyValidateError',
+ 'errorMessage' => 'The available amount of your channel partner\'s account is insufficient, please contact your channel partner to recharge in time.',
+ ],
+ [
+ 'errorCode' => 'BasicInfoUncompleted',
+ 'errorMessage' => 'You have not completed your basic personal information. Please complete the information and re-operate it.',
+ ],
+ [
+ 'errorCode' => 'IncorrectInstanceStatus',
+ 'errorMessage' => 'The current status of the instance does not support this operation.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"C0003E8B-B930-4F59-ADC0-0E209A9012A8\\"\\n}","errorExample":""},{"type":"xml","example":"<ReleasePrePaidInstanceReesponse>\\r\\n <RequestId>C0003E8B-B930-4F59-ADC0-0E209A9012A8</RequestId>\\r\\n</ReleasePrePaidInstanceReesponse>\\r\\n","errorExample":""}]',
+ 'title' => 'ReleasePrePaidInstance',
+ 'requestParamsDescription' => ' ',
+ 'responseParamsDescription' => ' ',
+ 'extraInfo' => ' ',
+ ],
+ 'RenewInstance' => [
+ 'summary' => 'Renews a subscription instance.',
+ 'methods' => [
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'none',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'InstanceId',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '需要续费的实例ID。',
+ 'description' => 'The ID of the instance.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'i-56789acfmxazb4p****',
+ ],
+ ],
+ [
+ 'name' => 'Period',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '包年包月续费时长。',
+ 'description' => 'The renewal duration of the subscription instance.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int64',
+ 'required' => true,
+ 'example' => '1',
+ 'enum' => [
+ '1',
+ '2',
+ '3',
+ '4',
+ '5',
+ '6',
+ '7',
+ '8',
+ '9',
+ '12',
+ ],
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'description' => 'The ID of the request. This parameter is a common parameter. Each request has a unique ID. You can use the ID to troubleshoot issues.'."\n",
+ 'type' => 'string',
+ 'example' => '86A6D421-A0C7-4C01-8648-47377CA6A2CE',
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'SystemError',
+ 'errorMessage' => 'Interface call error, please re-match, or contact the product.',
+ ],
+ [
+ 'errorCode' => 'OrderFailed',
+ 'errorMessage' => 'Order failed, please try again.',
+ ],
+ [
+ 'errorCode' => 'SystemUseCouponFailed',
+ 'errorMessage' => 'Failed to use coupon.',
+ ],
+ [
+ 'errorCode' => 'SystemUseStoredCardFailed',
+ 'errorMessage' => 'Failed to use stored value card.',
+ ],
+ [
+ 'errorCode' => 'System.SystemError',
+ 'errorMessage' => 'system error.',
+ ],
+ [
+ 'errorCode' => 'SystemCanRefundCheckFailed',
+ 'errorMessage' => 'The business rule check of the cloud product fails, and this order cannot be refunded.',
+ ],
+ [
+ 'errorCode' => 'SystemOtsSystem',
+ 'errorMessage' => 'ots storage error.',
+ ],
+ [
+ 'errorCode' => 'SystemQueryImmortalError',
+ 'errorMessage' => 'Failed to call Juxiange.',
+ ],
+ [
+ 'errorCode' => 'SystemQueryInstanceInfoFailed',
+ 'errorMessage' => 'Failed to find instance information.',
+ ],
+ [
+ 'errorCode' => 'SystemResellerPayCalRefundUnitError',
+ 'errorMessage' => 'Ecological payment channel calculation unsubscribe information error.',
+ ],
+ [
+ 'errorCode' => 'SystemSaleValidateFailed',
+ 'errorMessage' => 'Sales Expression Validation System Error.',
+ ],
+ [
+ 'errorCode' => 'SystemTransferDeleteOldResourceFailed',
+ 'errorMessage' => 'Failed to delete the transferred instance in the transfer order.',
+ ],
+ [
+ 'errorCode' => 'SystemUnSupportOperationType',
+ 'errorMessage' => 'Unsupported operation type.',
+ ],
+ [
+ 'errorCode' => 'RiskRiskControlRejection',
+ 'errorMessage' => 'Risk Control Rejection.',
+ ],
+ [
+ 'errorCode' => 'AuthRamAuthFailed',
+ 'errorMessage' => 'ram sub-account authentication failed.',
+ ],
+ [
+ 'errorCode' => 'CommodityInvalidComponent',
+ 'errorMessage' => 'The module you purchased is illegal, please re-select.',
+ ],
+ [
+ 'errorCode' => 'CommodityInvalidItemCode',
+ 'errorMessage' => 'Specification code illegal.',
+ ],
+ [
+ 'errorCode' => 'PriceHsfTimeoutError',
+ 'errorMessage' => 'Time out when calling the request for quotation interface.',
+ ],
+ [
+ 'errorCode' => 'PricePatingConfigError',
+ 'errorMessage' => 'Inquiry related goods configuration error.',
+ ],
+ [
+ 'errorCode' => 'PricePricingPlanResultNotFound',
+ 'errorMessage' => 'Pricing plan price result not found.',
+ ],
+ [
+ 'errorCode' => 'PriceRatingGetRatingpricingPlan',
+ 'errorMessage' => 'Obtain a valid pricing plan exception.',
+ ],
+ [
+ 'errorCode' => 'OrderAbnormalResourceStatusForRenew',
+ 'errorMessage' => 'Invalid resource status for renewal.',
+ ],
+ [
+ 'errorCode' => 'OrderAccountStatusIllegal',
+ 'errorMessage' => 'Illegal account status.',
+ ],
+ [
+ 'errorCode' => 'OrderArrearage',
+ 'errorMessage' => 'User Arrears.',
+ ],
+ [
+ 'errorCode' => 'OrderBidUserOrderForbidden',
+ 'errorMessage' => 'Bid users cannot buy on the official website.',
+ ],
+ [
+ 'errorCode' => 'OrderCaptureFailed',
+ 'errorMessage' => 'The paid order of the instance has not been deducted successfully.',
+ ],
+ [
+ 'errorCode' => 'OrderExistsReleasedInstances',
+ 'errorMessage' => 'There are already released instances.',
+ ],
+ [
+ 'errorCode' => 'OrderGroupOrderSizeOverflow',
+ 'errorMessage' => 'The quantity of bound combined payment order exceeds the limit.',
+ ],
+ [
+ 'errorCode' => 'OrderHomeCurrencyCanNotDowngrade',
+ 'errorMessage' => 'Users in current currency cannot downgrade.',
+ ],
+ [
+ 'errorCode' => 'OrderHomeCurrencyCanNotUpgradeByValueTransfer',
+ 'errorMessage' => 'Users of current currency cannot upgrade through residual value transfer.',
+ ],
+ [
+ 'errorCode' => 'OrderInstanceHasInactiveChange',
+ 'errorMessage' => 'Instances exist temporary upgrade.',
+ ],
+ [
+ 'errorCode' => 'OrderInstHasUnpaidOrder',
+ 'errorMessage' => 'The instance has an unpaid order.',
+ ],
+ [
+ 'errorCode' => 'OrderInstHasUnsettledBills',
+ 'errorMessage' => 'The instance has an unsettled bill.',
+ ],
+ [
+ 'errorCode' => 'OrderLatestOrderIsHandling',
+ 'errorMessage' => 'Recent order is being processed, please try again later.',
+ ],
+ [
+ 'errorCode' => 'OrderMainOrderSizeOverflow',
+ 'errorMessage' => 'The quantity of the main order exceeds the limit.',
+ ],
+ [
+ 'errorCode' => 'OrderMissingModuleInfoError',
+ 'errorMessage' => 'Module parameter not specified.',
+ ],
+ [
+ 'errorCode' => 'OrderNoRealNameAuthentication',
+ 'errorMessage' => 'No real-name authentication.',
+ ],
+ [
+ 'errorCode' => 'OrderNotFound',
+ 'errorMessage' => 'The specified order information is not found.',
+ ],
+ [
+ 'errorCode' => 'OrderOpend',
+ 'errorMessage' => 'You have activated this product.',
+ ],
+ [
+ 'errorCode' => 'OrderPeriodInvalid',
+ 'errorMessage' => 'Illegal order cycle.',
+ ],
+ [
+ 'errorCode' => 'OrderQuantityInvalid',
+ 'errorMessage' => 'Illegal quantity ordered.',
+ ],
+ [
+ 'errorCode' => 'OrderQueryInstanceError',
+ 'errorMessage' => 'Query instance error.',
+ ],
+ [
+ 'errorCode' => 'OrderQueryInstanceNotExists',
+ 'errorMessage' => 'Instance data does not exist.',
+ ],
+ [
+ 'errorCode' => 'OrderQueryOrderExchangeRateFail',
+ 'errorMessage' => 'Failed to query order exchange rate information.',
+ ],
+ [
+ 'errorCode' => 'OrderQueryUserSettleInfoFail',
+ 'errorMessage' => 'Failed to query user settlement information.',
+ ],
+ [
+ 'errorCode' => 'OrderQuotaExceeded',
+ 'errorMessage' => 'Quantity exceeds limit.',
+ ],
+ [
+ 'errorCode' => 'OrderSysConstraintInvalid',
+ 'errorMessage' => 'System constraint check failed.',
+ ],
+ [
+ 'errorCode' => 'OrderTradeCompleteSettleInfoFail',
+ 'errorMessage' => 'Failed to complete the order settlement currency amount information.',
+ ],
+ [
+ 'errorCode' => 'TradeTradeOrderAfterPayCheckError',
+ 'errorMessage' => 'You have already paid for the subsequent orders of this instance. The current order has been automatically voided and you cannot pay any more.',
+ ],
+ [
+ 'errorCode' => 'PurchaseExistRenewchangeProd',
+ 'errorMessage' => 'There is a renewal change subscription that has not yet taken effect.',
+ ],
+ [
+ 'errorCode' => 'PurchaseExistToBeValidProdRuleError',
+ 'errorMessage' => 'Currently, there are temporary orders that are not in effect, and the upgrade operation cannot be performed.',
+ ],
+ [
+ 'errorCode' => 'PurchaseExistToBeValidRenewChangeProdRuleError',
+ 'errorMessage' => 'Currently, there is an uneffective renewal change subscription, and temporary upgrade operation cannot be performed.',
+ ],
+ [
+ 'errorCode' => 'PurchaseExistValidProdRuleError',
+ 'errorMessage' => 'Currently, there is a temporary order in effect, and operations such as upgrade/downgrade/expansion/pre-transfer cannot be performed.',
+ ],
+ [
+ 'errorCode' => 'ProductInstanceReleased',
+ 'errorMessage' => 'Instance released.',
+ ],
+ [
+ 'errorCode' => 'ProductInstanceTypeNotSupported',
+ 'errorMessage' => 'The instance type is not supported.',
+ ],
+ [
+ 'errorCode' => 'PatRiskRejectForTradeData',
+ 'errorMessage' => 'Payment order problem leads to risk control rejection.',
+ ],
+ [
+ 'errorCode' => 'PayAccountBookNotExist',
+ 'errorMessage' => 'There is no insufficient account balance in the account book, please retry after recharging.',
+ ],
+ [
+ 'errorCode' => 'PayAmountLimitExceeded',
+ 'errorMessage' => 'Payment limit exceeded, please resubmit.',
+ ],
+ [
+ 'errorCode' => 'PayBeforePayRiskRuleValidateFailed',
+ 'errorMessage' => 'The payment was blocked by risk control, and the payment failed.',
+ ],
+ [
+ 'errorCode' => 'PayCounponNotExist',
+ 'errorMessage' => 'Counpon does not exist.',
+ ],
+ [
+ 'errorCode' => 'PayCouponAmountNotEnough',
+ 'errorMessage' => 'Insufficient voucher balance or expired.',
+ ],
+ [
+ 'errorCode' => 'PayCouponNotMeetConsumptionRule',
+ 'errorMessage' => 'The coupon does not meet the conditions for use.',
+ ],
+ [
+ 'errorCode' => 'PayCurrencyInconsistency',
+ 'errorMessage' => 'Currency mismatch.',
+ ],
+ [
+ 'errorCode' => 'PayCurrencyNotSupported',
+ 'errorMessage' => 'Currency not supported.',
+ ],
+ [
+ 'errorCode' => 'PayForbiddenNoReasonFefund',
+ 'errorMessage' => 'Banned five days no reason refund.',
+ ],
+ [
+ 'errorCode' => 'PayHsfTimeoutError',
+ 'errorMessage' => 'Call payment system timeout.',
+ ],
+ [
+ 'errorCode' => 'PayInsufficientBalance',
+ 'errorMessage' => 'Account balance is insufficient, please recharge and try again.',
+ ],
+ [
+ 'errorCode' => 'PayInvalidCreditCard',
+ 'errorMessage' => 'Invalid credit card.',
+ ],
+ [
+ 'errorCode' => 'PayInvalidPayMethod',
+ 'errorMessage' => 'Illegal payment method.',
+ ],
+ [
+ 'errorCode' => 'PayMegrePayOrderHasThanOneChagreChannel',
+ 'errorMessage' => 'Payment failed, please retry or submit work order feedback.',
+ ],
+ [
+ 'errorCode' => 'PayNoCreditCard',
+ 'errorMessage' => 'No valid payment method, please check the payment method and try again.',
+ ],
+ [
+ 'errorCode' => 'PayOrderPayTimeInvalid',
+ 'errorMessage' => 'Order effective time is invalid.',
+ ],
+ [
+ 'errorCode' => 'PayPartRefundNotSupport',
+ 'errorMessage' => 'Not Capture, no partial refund.',
+ ],
+ [
+ 'errorCode' => 'PayPayChannelPayOrderInvalidStatus',
+ 'errorMessage' => 'Illegal status of payment order in payment channel.',
+ ],
+ [
+ 'errorCode' => 'PayPayChannelPayOrderNotExist',
+ 'errorMessage' => 'Payment channel payment order does not exist.',
+ ],
+ [
+ 'errorCode' => 'PayPayerAccountIllegal',
+ 'errorMessage' => 'Illegal payment account.',
+ ],
+ [
+ 'errorCode' => 'PayPayFailedParentRelationchanged',
+ 'errorMessage' => 'If the financial custody relationship changes, please void the order and place a new order for payment.',
+ ],
+ [
+ 'errorCode' => 'PayPayForbidUserCoupon',
+ 'errorMessage' => 'Coupon prohibited for orders.',
+ ],
+ [
+ 'errorCode' => 'PayQueryAvailableAmountFailed',
+ 'errorMessage' => 'Failed to query user availability, please try again later.',
+ ],
+ [
+ 'errorCode' => 'PayQueryAvailableEnduserAmountFailed',
+ 'errorMessage' => 'Failed to query the availability of quota direct customer main user, please try again later.',
+ ],
+ [
+ 'errorCode' => 'PayQueryParentRelationshipFailed',
+ 'errorMessage' => 'Failed to query current user hosting relationship, please try again later.',
+ ],
+ [
+ 'errorCode' => 'PayQueryPayChangeChannelNotEqual',
+ 'errorMessage' => 'Multi-order payment channels are inconsistent, please check whether the original order data payment channel is correct.',
+ ],
+ [
+ 'errorCode' => 'PayRefundFailed',
+ 'errorMessage' => 'Accumulated refund amount exceeds payment order amount.',
+ ],
+ [
+ 'errorCode' => 'PayResellerPayGetUrlError',
+ 'errorMessage' => 'Order payment failed, please try again later.',
+ ],
+ [
+ 'errorCode' => 'PayRiskRejectForPayerAccount',
+ 'errorMessage' => 'Payment account problem leads to risk control rejection.',
+ ],
+ [
+ 'errorCode' => 'PayStoredCardNotExist',
+ 'errorMessage' => 'Stored value card does not exist.',
+ ],
+ [
+ 'errorCode' => 'PaySystemError',
+ 'errorMessage' => 'Error calling payment system.',
+ ],
+ [
+ 'errorCode' => 'PayTaxCalcFailed',
+ 'errorMessage' => 'Failed to get user tax address.',
+ ],
+ [
+ 'errorCode' => 'PayWithholdingAgreementIllegal',
+ 'errorMessage' => 'Withholding Agreement Status Illegal.',
+ ],
+ [
+ 'errorCode' => 'AccountAliyunAccountFrozen',
+ 'errorMessage' => 'Alibaba Cloud account is frozen.',
+ ],
+ [
+ 'errorCode' => 'AccountAliyunAccountNotExist',
+ 'errorMessage' => 'Alibaba Cloud account does not exist.',
+ ],
+ [
+ 'errorCode' => 'RefundRefundInstanceNotFound',
+ 'errorMessage' => 'Unable to find instance information.',
+ ],
+ [
+ 'errorCode' => 'RefundRefundNoValidProd',
+ 'errorMessage' => 'Refund is not available to unsubscribe.',
+ ],
+ [
+ 'errorCode' => 'RefundRefundParamInvalid',
+ 'errorMessage' => 'Abnormal refund parameter.',
+ ],
+ [
+ 'errorCode' => 'RefundRefundQueryOrderFail',
+ 'errorMessage' => 'Failed to query order for refund field.',
+ ],
+ [
+ 'errorCode' => 'SystemConcurrentOperate',
+ 'errorMessage' => 'Concurrent operation causes failure.',
+ ],
+ [
+ 'errorCode' => 'PricePricingPlanNotFound',
+ 'errorMessage' => 'Pricing plan tree not found.',
+ ],
+ [
+ 'errorCode' => 'OrderInstanceHasTempUpgrade',
+ 'errorMessage' => 'Instances exist temporary upgrade.',
+ ],
+ [
+ 'errorCode' => 'PayQueryParentRelationchangedFailed',
+ 'errorMessage' => 'The financial custody relationship may change, please refresh and pay again.',
+ ],
+ [
+ 'errorCode' => 'PayforCreditPayInsufficientBalance',
+ 'errorMessage' => 'Insufficient quota, please contact your channel partner to increase the quota.',
+ ],
+ [
+ 'errorCode' => 'PayforAccountMoneyValidateError',
+ 'errorMessage' => 'The available amount of your channel partner\'s account is insufficient, please contact your channel partner to recharge in time.',
+ ],
+ [
+ 'errorCode' => 'BasicInfoUncompleted',
+ 'errorMessage' => 'You have not completed your basic personal information. Please complete the information and re-operate it.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"86A6D421-A0C7-4C01-8648-47377CA6A2CE\\"\\n}","type":"json"}]',
+ 'title' => 'RenewInstance',
+ ],
+ 'ReinitInstance' => [
+ 'summary' => 'Resets an instance based on specific parameters.',
+ 'methods' => [
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'readAndWrite',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'update',
+ 'riskType' => 'high',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '141090',
+ 'abilityTreeNodes' => [
+ 'FEATUREensD5O7XG',
+ 'FEATUREens3ELWPT',
+ ],
+ 'tenantRelevance' => 'tenant',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'InstanceId',
+ 'in' => 'formData',
+ 'schema' => [
+ 'description' => 'The ID of the instance.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'i-5vn4n3y4laeb2ii9zxxltlvzi',
+ ],
+ ],
+ [
+ 'name' => 'ImageId',
+ 'in' => 'formData',
+ 'schema' => [
+ 'description' => 'The ID of the image file that is used to reset the instance.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'm-5wn1dhz5syoo9b48f440ntvad',
+ ],
+ ],
+ [
+ 'name' => 'Password',
+ 'in' => 'formData',
+ 'schema' => [
+ 'description' => 'The password of the instance.'."\n"
+ ."\n"
+ .'It must be 8 to 30 characters in length. It must include at least three of the following characters types: uppercase letters, lowercase letters, digits, and special characters. The following special character are supported: `()\'~! @#$%^&*-_+={}[]:;\'<>,.?/`'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '***',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => 'C46C79B7-0C31-5947-9D86-82207661EADA',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'IncorrectInstanceStatus',
+ 'errorMessage' => 'The current status of the instance does not support this operation.',
+ ],
+ [
+ 'errorCode' => 'ens.interface.error',
+ 'errorMessage' => 'Failed to call API.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"C46C79B7-0C31-5947-9D86-82207661EADA\\"\\n}","type":"json"}]',
+ 'title' => 'ReinitInstance',
+ ],
+ 'ModifyInstanceAttribute' => [
+ 'summary' => 'Changes the attributes of an instance, such as the name and the password.',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'systemTags' => [
+ 'operationType' => 'update',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '4384',
+ 'abilityTreeNodes' => [
+ 'FEATUREensQTKG0K',
+ ],
+ 'tenantRelevance' => 'tenant',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'InstanceId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the instance for which you want to modify attributes. You can specify only one ID.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'i-instanc****',
+ ],
+ ],
+ [
+ 'name' => 'Password',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The password of the instance.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'yourPassword',
+ ],
+ ],
+ [
+ 'name' => 'InstanceName',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The name of the instance.'."\n"
+ ."\n"
+ .'The name must be 2 to 128 characters in length. It must start with a letter but cannot start with `http://` or `https://`. The name can contain letters, digits, colons (:), underscores (\\_), and hyphens (-).'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'i-instanceidname',
+ ],
+ ],
+ [
+ 'name' => 'HostName',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The hostname of the Elastic Compute Service (ECS) instance. The value can be 2 to 64 characters in length. You can use periods (.) to separate the value into multiple segments. Each segment can contain letters, digits, hyphens (-), and periods. Consecutive periods or hyphens are not allowed. The name cannot start or end with a period (.) or a hyphen (-).'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'testHostName',
+ ],
+ ],
+ [
+ 'name' => 'UserData',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The user data of the instance. User data must be encoded in Base64.'."\n"
+ ."\n"
+ .'The size of your UserData cannot exceed 16 KB. We recommend that you do not pass in confidential information such as passwords and private keys in the plaintext format. If you must pass in confidential information, we recommend that you encrypt and Base64-encode the information before you pass it in. Then you can decode and decrypt the information in the same way within the instance.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgK****',
+ ],
+ ],
+ [
+ 'name' => 'DeletionProtection',
+ 'in' => 'query',
+ 'schema' => [
+ 'type' => 'boolean',
+ 'required' => false,
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'Code' => [
+ 'description' => 'The returned service code. 0 indicates that the request was successful.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '200',
+ ],
+ 'RequestId' => [
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E',
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'MissingParameter',
+ 'errorMessage' => 'The input parameter that is mandatory for processing this request is not supplied.',
+ ],
+ [
+ 'errorCode' => 'InstanceIdNotFound',
+ 'errorMessage' => 'The input parameter InstanceId that is not found.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidDeletionAppointmentNotSupported',
+ 'errorMessage' => 'The scheduled release time of the current instance is set to prohibit this operation.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": 200,\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E\\"\\n}","errorExample":""},{"type":"xml","example":"<ModifyInstanceAttributeResponse>\\r\\n <RequestId>473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E</RequestId>\\r\\n</ModifyInstanceAttributeResponse>","errorExample":""}]',
+ 'title' => 'ModifyInstanceAttribute',
+ 'description' => '* If an instance is in the Starting state, you cannot reset the password of the instance.'."\n"
+ .'* When the instance is in the Running state, you cannot change the password of the instance.'."\n"
+ .'* After resetting the password, you must Restart the instance in the ECS console or call the RebootInstance operation to validate the modifications. The restart operation within the instance does not validate the modifications.'."\n",
+ 'requestParamsDescription' => ' ',
+ 'responseParamsDescription' => ' ',
+ 'extraInfo' => ' ',
+ ],
+ 'ModifyPrepayInstanceSpec' => [
+ 'summary' => 'Upgrades or downgrades the instance type of a subscription Edge Node Service (ENS) instance. The new instance type takes effect for the remaining lifecycle of the instance.',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'update',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'InstanceId',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '变配实例id',
+ 'description' => 'The ID of the instance that you want to upgrade or downgrade.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'i-bp67acfmxazb4p****',
+ ],
+ ],
+ [
+ 'name' => 'InstanceType',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '更新的配置',
+ 'description' => 'The updated configuration.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'ens.sn1.tiny',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => 'FD94C8E8-128E-525C-A0C3-60E063B70330',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'Missing%s',
+ 'errorMessage' => 'You must specify the parameter %s.',
+ ],
+ [
+ 'errorCode' => 'OrderFailed',
+ 'errorMessage' => 'Order failed, please try again.',
+ ],
+ [
+ 'errorCode' => 'SystemUseCouponFailed',
+ 'errorMessage' => 'Failed to use coupon.',
+ ],
+ [
+ 'errorCode' => 'SystemUseStoredCardFailed',
+ 'errorMessage' => 'Failed to use stored value card.',
+ ],
+ [
+ 'errorCode' => 'System.SystemError',
+ 'errorMessage' => 'system error.',
+ ],
+ [
+ 'errorCode' => 'SystemCanRefundCheckFailed',
+ 'errorMessage' => 'The business rule check of the cloud product fails, and this order cannot be refunded.',
+ ],
+ [
+ 'errorCode' => 'SystemOtsSystem',
+ 'errorMessage' => 'ots storage error.',
+ ],
+ [
+ 'errorCode' => 'SystemQueryImmortalError',
+ 'errorMessage' => 'Failed to call Juxiange.',
+ ],
+ [
+ 'errorCode' => 'SystemQueryInstanceInfoFailed',
+ 'errorMessage' => 'Failed to find instance information.',
+ ],
+ [
+ 'errorCode' => 'SystemResellerPayCalRefundUnitError',
+ 'errorMessage' => 'Ecological payment channel calculation unsubscribe information error.',
+ ],
+ [
+ 'errorCode' => 'SystemSaleValidateFailed',
+ 'errorMessage' => 'Sales Expression Validation System Error.',
+ ],
+ [
+ 'errorCode' => 'SystemTransferDeleteOldResourceFailed',
+ 'errorMessage' => 'Failed to delete the transferred instance in the transfer order.',
+ ],
+ [
+ 'errorCode' => 'SystemUnSupportOperationType',
+ 'errorMessage' => 'Unsupported operation type.',
+ ],
+ [
+ 'errorCode' => 'RiskRiskControlRejection',
+ 'errorMessage' => 'Risk Control Rejection.',
+ ],
+ [
+ 'errorCode' => 'AuthRamAuthFailed',
+ 'errorMessage' => 'ram sub-account authentication failed.',
+ ],
+ [
+ 'errorCode' => 'CommodityInvalidComponent',
+ 'errorMessage' => 'The module you purchased is illegal, please re-select.',
+ ],
+ [
+ 'errorCode' => 'CommodityInvalidItemCode',
+ 'errorMessage' => 'Specification code illegal.',
+ ],
+ [
+ 'errorCode' => 'PriceHsfTimeoutError',
+ 'errorMessage' => 'Time out when calling the request for quotation interface.',
+ ],
+ [
+ 'errorCode' => 'PricePatingConfigError',
+ 'errorMessage' => 'Inquiry related goods configuration error.',
+ ],
+ [
+ 'errorCode' => 'PricePricingPlanResultNotFound',
+ 'errorMessage' => 'Pricing plan price result not found.',
+ ],
+ [
+ 'errorCode' => 'PriceRatingGetRatingpricingPlan',
+ 'errorMessage' => 'Obtain a valid pricing plan exception.',
+ ],
+ [
+ 'errorCode' => 'OrderAbnormalResourceStatusForRenew',
+ 'errorMessage' => 'Invalid resource status for renewal.',
+ ],
+ [
+ 'errorCode' => 'OrderAccountStatusIllegal',
+ 'errorMessage' => 'Illegal account status.',
+ ],
+ [
+ 'errorCode' => 'OrderArrearage',
+ 'errorMessage' => 'User Arrears.',
+ ],
+ [
+ 'errorCode' => 'OrderBidUserOrderForbidden',
+ 'errorMessage' => 'Bid users cannot buy on the official website.',
+ ],
+ [
+ 'errorCode' => 'OrderCaptureFailed',
+ 'errorMessage' => 'The paid order of the instance has not been deducted successfully.',
+ ],
+ [
+ 'errorCode' => 'OrderExistsReleasedInstances',
+ 'errorMessage' => 'There are already released instances.',
+ ],
+ [
+ 'errorCode' => 'OrderGroupOrderSizeOverflow',
+ 'errorMessage' => 'The quantity of bound combined payment order exceeds the limit.',
+ ],
+ [
+ 'errorCode' => 'OrderHomeCurrencyCanNotDowngrade',
+ 'errorMessage' => 'Users in current currency cannot downgrade.',
+ ],
+ [
+ 'errorCode' => 'OrderHomeCurrencyCanNotUpgradeByValueTransfer',
+ 'errorMessage' => 'Users of current currency cannot upgrade through residual value transfer.',
+ ],
+ [
+ 'errorCode' => 'OrderInstanceHasInactiveChange',
+ 'errorMessage' => 'Instances exist temporary upgrade.',
+ ],
+ [
+ 'errorCode' => 'OrderInstHasUnpaidOrder',
+ 'errorMessage' => 'The instance has an unpaid order.',
+ ],
+ [
+ 'errorCode' => 'OrderInstHasUnsettledBills',
+ 'errorMessage' => 'The instance has an unsettled bill.',
+ ],
+ [
+ 'errorCode' => 'OrderLatestOrderIsHandling',
+ 'errorMessage' => 'Recent order is being processed, please try again later.',
+ ],
+ [
+ 'errorCode' => 'OrderMainOrderSizeOverflow',
+ 'errorMessage' => 'The quantity of the main order exceeds the limit.',
+ ],
+ [
+ 'errorCode' => 'OrderMissingModuleInfoError',
+ 'errorMessage' => 'Module parameter not specified.',
+ ],
+ [
+ 'errorCode' => 'OrderNoRealNameAuthentication',
+ 'errorMessage' => 'No real-name authentication.',
+ ],
+ [
+ 'errorCode' => 'OrderNotFound',
+ 'errorMessage' => 'The specified order information is not found.',
+ ],
+ [
+ 'errorCode' => 'OrderOpend',
+ 'errorMessage' => 'You have activated this product.',
+ ],
+ [
+ 'errorCode' => 'OrderPeriodInvalid',
+ 'errorMessage' => 'Illegal order cycle.',
+ ],
+ [
+ 'errorCode' => 'OrderQuantityInvalid',
+ 'errorMessage' => 'Illegal quantity ordered.',
+ ],
+ [
+ 'errorCode' => 'OrderQueryInstanceError',
+ 'errorMessage' => 'Query instance error.',
+ ],
+ [
+ 'errorCode' => 'OrderQueryInstanceNotExists',
+ 'errorMessage' => 'Instance data does not exist.',
+ ],
+ [
+ 'errorCode' => 'OrderQueryOrderExchangeRateFail',
+ 'errorMessage' => 'Failed to query order exchange rate information.',
+ ],
+ [
+ 'errorCode' => 'OrderQueryUserSettleInfoFail',
+ 'errorMessage' => 'Failed to query user settlement information.',
+ ],
+ [
+ 'errorCode' => 'OrderQuotaExceeded',
+ 'errorMessage' => 'Quantity exceeds limit.',
+ ],
+ [
+ 'errorCode' => 'OrderSysConstraintInvalid',
+ 'errorMessage' => 'System constraint check failed.',
+ ],
+ [
+ 'errorCode' => 'OrderTradeCompleteSettleInfoFail',
+ 'errorMessage' => 'Failed to complete the order settlement currency amount information.',
+ ],
+ [
+ 'errorCode' => 'TradeTradeOrderAfterPayCheckError',
+ 'errorMessage' => 'You have already paid for the subsequent orders of this instance. The current order has been automatically voided and you cannot pay any more.',
+ ],
+ [
+ 'errorCode' => 'PurchaseExistRenewchangeProd',
+ 'errorMessage' => 'There is a renewal change subscription that has not yet taken effect.',
+ ],
+ [
+ 'errorCode' => 'PurchaseExistToBeValidProdRuleError',
+ 'errorMessage' => 'Currently, there are temporary orders that are not in effect, and the upgrade operation cannot be performed.',
+ ],
+ [
+ 'errorCode' => 'PurchaseExistToBeValidRenewChangeProdRuleError',
+ 'errorMessage' => 'Currently, there is an uneffective renewal change subscription, and temporary upgrade operation cannot be performed.',
+ ],
+ [
+ 'errorCode' => 'PurchaseExistValidProdRuleError',
+ 'errorMessage' => 'Currently, there is a temporary order in effect, and operations such as upgrade/downgrade/expansion/pre-transfer cannot be performed.',
+ ],
+ [
+ 'errorCode' => 'ProductInstanceReleased',
+ 'errorMessage' => 'Instance released.',
+ ],
+ [
+ 'errorCode' => 'ProductInstanceTypeNotSupported',
+ 'errorMessage' => 'The instance type is not supported.',
+ ],
+ [
+ 'errorCode' => 'PatRiskRejectForTradeData',
+ 'errorMessage' => 'Payment order problem leads to risk control rejection.',
+ ],
+ [
+ 'errorCode' => 'PayAccountBookNotExist',
+ 'errorMessage' => 'There is no insufficient account balance in the account book, please retry after recharging.',
+ ],
+ [
+ 'errorCode' => 'PayAmountLimitExceeded',
+ 'errorMessage' => 'Payment limit exceeded, please resubmit.',
+ ],
+ [
+ 'errorCode' => 'PayBeforePayRiskRuleValidateFailed',
+ 'errorMessage' => 'The payment was blocked by risk control, and the payment failed.',
+ ],
+ [
+ 'errorCode' => 'PayCounponNotExist',
+ 'errorMessage' => 'Counpon does not exist.',
+ ],
+ [
+ 'errorCode' => 'PayCouponAmountNotEnough',
+ 'errorMessage' => 'Insufficient voucher balance or expired.',
+ ],
+ [
+ 'errorCode' => 'PayCouponNotMeetConsumptionRule',
+ 'errorMessage' => 'The coupon does not meet the conditions for use.',
+ ],
+ [
+ 'errorCode' => 'PayCurrencyInconsistency',
+ 'errorMessage' => 'Currency mismatch.',
+ ],
+ [
+ 'errorCode' => 'PayCurrencyNotSupported',
+ 'errorMessage' => 'Currency not supported.',
+ ],
+ [
+ 'errorCode' => 'PayForbiddenNoReasonFefund',
+ 'errorMessage' => 'Banned five days no reason refund.',
+ ],
+ [
+ 'errorCode' => 'PayHsfTimeoutError',
+ 'errorMessage' => 'Call payment system timeout.',
+ ],
+ [
+ 'errorCode' => 'PayInsufficientBalance',
+ 'errorMessage' => 'Account balance is insufficient, please recharge and try again.',
+ ],
+ [
+ 'errorCode' => 'PayInvalidCreditCard',
+ 'errorMessage' => 'Invalid credit card.',
+ ],
+ [
+ 'errorCode' => 'PayInvalidPayMethod',
+ 'errorMessage' => 'Illegal payment method.',
+ ],
+ [
+ 'errorCode' => 'PayMegrePayOrderHasThanOneChagreChannel',
+ 'errorMessage' => 'Payment failed, please retry or submit work order feedback.',
+ ],
+ [
+ 'errorCode' => 'PayNoCreditCard',
+ 'errorMessage' => 'No valid payment method, please check the payment method and try again.',
+ ],
+ [
+ 'errorCode' => 'PayOrderPayTimeInvalid',
+ 'errorMessage' => 'Order effective time is invalid.',
+ ],
+ [
+ 'errorCode' => 'PayPartRefundNotSupport',
+ 'errorMessage' => 'Not Capture, no partial refund.',
+ ],
+ [
+ 'errorCode' => 'PayPayChannelPayOrderInvalidStatus',
+ 'errorMessage' => 'Illegal status of payment order in payment channel.',
+ ],
+ [
+ 'errorCode' => 'PayPayChannelPayOrderNotExist',
+ 'errorMessage' => 'Payment channel payment order does not exist.',
+ ],
+ [
+ 'errorCode' => 'PayPayerAccountIllegal',
+ 'errorMessage' => 'Illegal payment account.',
+ ],
+ [
+ 'errorCode' => 'PayPayFailedParentRelationchanged',
+ 'errorMessage' => 'If the financial custody relationship changes, please void the order and place a new order for payment.',
+ ],
+ [
+ 'errorCode' => 'PayPayForbidUserCoupon',
+ 'errorMessage' => 'Coupon prohibited for orders.',
+ ],
+ [
+ 'errorCode' => 'PayQueryAvailableAmountFailed',
+ 'errorMessage' => 'Failed to query user availability, please try again later.',
+ ],
+ [
+ 'errorCode' => 'PayQueryAvailableEnduserAmountFailed',
+ 'errorMessage' => 'Failed to query the availability of quota direct customer main user, please try again later.',
+ ],
+ [
+ 'errorCode' => 'PayQueryParentRelationshipFailed',
+ 'errorMessage' => 'Failed to query current user hosting relationship, please try again later.',
+ ],
+ [
+ 'errorCode' => 'PayQueryPayChangeChannelNotEqual',
+ 'errorMessage' => 'Multi-order payment channels are inconsistent, please check whether the original order data payment channel is correct.',
+ ],
+ [
+ 'errorCode' => 'PayRefundFailed',
+ 'errorMessage' => 'Accumulated refund amount exceeds payment order amount.',
+ ],
+ [
+ 'errorCode' => 'PayResellerPayGetUrlError',
+ 'errorMessage' => 'Order payment failed, please try again later.',
+ ],
+ [
+ 'errorCode' => 'PayRiskRejectForPayerAccount',
+ 'errorMessage' => 'Payment account problem leads to risk control rejection.',
+ ],
+ [
+ 'errorCode' => 'PayStoredCardNotExist',
+ 'errorMessage' => 'Stored value card does not exist.',
+ ],
+ [
+ 'errorCode' => 'PaySystemError',
+ 'errorMessage' => 'Error calling payment system.',
+ ],
+ [
+ 'errorCode' => 'PayTaxCalcFailed',
+ 'errorMessage' => 'Failed to get user tax address.',
+ ],
+ [
+ 'errorCode' => 'PayWithholdingAgreementIllegal',
+ 'errorMessage' => 'Withholding Agreement Status Illegal.',
+ ],
+ [
+ 'errorCode' => 'AccountAliyunAccountFrozen',
+ 'errorMessage' => 'Alibaba Cloud account is frozen.',
+ ],
+ [
+ 'errorCode' => 'AccountAliyunAccountNotExist',
+ 'errorMessage' => 'Alibaba Cloud account does not exist.',
+ ],
+ [
+ 'errorCode' => 'RefundRefundInstanceNotFound',
+ 'errorMessage' => 'Unable to find instance information.',
+ ],
+ [
+ 'errorCode' => 'RefundRefundNoValidProd',
+ 'errorMessage' => 'Refund is not available to unsubscribe.',
+ ],
+ [
+ 'errorCode' => 'RefundRefundParamInvalid',
+ 'errorMessage' => 'Abnormal refund parameter.',
+ ],
+ [
+ 'errorCode' => 'RefundRefundQueryOrderFail',
+ 'errorMessage' => 'Failed to query order for refund field.',
+ ],
+ [
+ 'errorCode' => 'SystemConcurrentOperate',
+ 'errorMessage' => 'Concurrent operation causes failure.',
+ ],
+ [
+ 'errorCode' => 'PricePricingPlanNotFound',
+ 'errorMessage' => 'Pricing plan tree not found.',
+ ],
+ [
+ 'errorCode' => 'OrderInstanceHasTempUpgrade',
+ 'errorMessage' => 'Instances exist temporary upgrade.',
+ ],
+ [
+ 'errorCode' => 'PayQueryParentRelationchangedFailed',
+ 'errorMessage' => 'The financial custody relationship may change, please refresh and pay again.',
+ ],
+ [
+ 'errorCode' => 'PayforCreditPayInsufficientBalance',
+ 'errorMessage' => 'Insufficient quota, please contact your channel partner to increase the quota.',
+ ],
+ [
+ 'errorCode' => 'PayforAccountMoneyValidateError',
+ 'errorMessage' => 'The available amount of your channel partner\'s account is insufficient, please contact your channel partner to recharge in time.',
+ ],
+ [
+ 'errorCode' => 'BasicInfoUncompleted',
+ 'errorMessage' => 'You have not completed your basic personal information. Please complete the information and re-operate it.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"FD94C8E8-128E-525C-A0C3-60E063B70330\\"\\n}","type":"json"}]',
+ 'title' => 'ModifyPrepayInstanceSpec',
+ ],
+ 'ModifyInstanceAutoRenewAttribute' => [
+ 'summary' => 'Configures auto-renewal for instances.',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'systemTags' => [
+ 'operationType' => 'update',
+ 'abilityTreeCode' => '1469',
+ 'abilityTreeNodes' => [
+ 'FEATUREensVJ32Z2',
+ ],
+ 'tenantRelevance' => 'tenant',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'InstanceIds',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The IDs of the instances. Separate IDs with semicolons (;).'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'instance-test',
+ ],
+ ],
+ [
+ 'name' => 'AutoRenew',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'Specifies whether to enable the auto-renewal feature. Valid values: **True and False**. Default value: False.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'false',
+ ],
+ ],
+ [
+ 'name' => 'Duration',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The auto-renewal period of the instance. Unit: months. Valid values: 1 to 9 and 12. This parameter is required if the AutoRenew parameter is set to true.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '12',
+ ],
+ ],
+ [
+ 'name' => 'RenewalStatus',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'Specifies whether to renew the instance. The **RenewalStatus** parameter has a higher priority than the **AutoRenew** parameter. If you do not specify **RenewalStatus**, the **AutoRenew** parameter is used by default.'."\n"
+ ."\n"
+ .'* AutoRenewal: Auto-renewal is enabled for the instance.'."\n"
+ .'* Normal: Auto-renewal is disabled for the instance.'."\n"
+ .'* NotRenewal: The instance is not renewed.'."\n"
+ ."\n"
+ .'The system no longer sends an expiration notification but sends only a renewal notification three days before the instance expires. To renew the instance, you can change the value of this parameter from NotRenewal to Normal and then manually renew the instance, or change the value of this parameter from NotRenewal to AutoRenewal.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'Normal',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'Code' => [
+ 'description' => 'The returned service code. 0 indicates that the request was successful.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '0',
+ ],
+ 'RequestId' => [
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => '4DD66F05-3116-4BAA-B588-52EB2E7F431D',
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'MissingParameter',
+ 'errorMessage' => 'The input parameters that is mandatory for processing this request is not supplied.',
+ ],
+ [
+ 'errorCode' => 'InstanceNotExists',
+ 'errorMessage' => 'The user have no instances.',
+ ],
+ [
+ 'errorCode' => 'CallInterface',
+ 'errorMessage' => 'Call Interface Happen Error.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Code\\": 0,\\n \\"RequestId\\": \\"EA3758E0-8899-17D3-9526-5F62CF33A586\\"\\n}","type":"json"}]',
+ 'title' => 'ModifyInstanceAutoRenewAttribute',
+ ],
+ 'AttachEnsInstances' => [
+ 'summary' => 'Adds an Edge Node Service (ENS) instance to Container Service for Kubernetes (ACK).',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'systemTags' => [
+ 'operationType' => 'update',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'InstanceId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the instance. You can specify only one instance ID.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'testInstacneId',
+ ],
+ ],
+ [
+ 'name' => 'Scripts',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The command that you want to execute on the instance. The command must be encoded in Base64 or UTF-8.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'wget d2dldCBodHRwOi8vYWxpYWNzLWs4cy1jbxxxx',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => 'C0003E8B-B930-4F59-ADC0-0E209A9012A8',
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'MissingParameter',
+ 'errorMessage' => 'The input parameter domainName that is mandatory for processing this request is not supplied.',
+ ],
+ [
+ 'errorCode' => 'InstanceIdNotFound',
+ 'errorMessage' => 'The input parameter instancdId that is not found.',
+ ],
+ [
+ 'errorCode' => 'ServiceConfigInvalid',
+ 'errorMessage' => 'The specified InstanceType is not support.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'CallInterface',
+ 'errorMessage' => 'Call Interface Happen Error.',
+ ],
+ [
+ 'errorCode' => 'StockNotEnough',
+ 'errorMessage' => 'The specified configuration is unavailable. Reconfigure and try again.',
+ ],
+ [
+ 'errorCode' => 'IllegalInsatanceSpec',
+ 'errorMessage' => 'The specified Instance Spec is illegal.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"C0003E8B-B930-4F59-ADC0-0E209A9012A8\\"\\n}","errorExample":""},{"type":"xml","example":"<AttachEnsInstancesResponse>\\r\\n <RequestId>C0003E8B-B930-4F59-ADC0-0E209A9012A8</RequestId>\\r\\n</AttachEnsInstancesResponse>\\r\\n","errorExample":""}]',
+ 'title' => 'AttachEnsInstances',
+ 'description' => '# [](#)Usage notes'."\n"
+ ."\n"
+ .'* You can call this operation up to 10 times per second per account.'."\n"
+ .'* After you execute the command, the instance restarts loading.'."\n"
+ .'* Limits: The instance has at least two vCPUs and 4 GB memory. An image of CentOS 7.4 or later is required.'."\n",
+ 'requestParamsDescription' => ' ',
+ 'responseParamsDescription' => ' ',
+ 'extraInfo' => ' ',
+ ],
+ 'RebootInstance' => [
+ 'summary' => 'Reboots an instance.',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'systemTags' => [
+ 'operationType' => 'update',
+ 'abilityTreeCode' => '1220',
+ 'abilityTreeNodes' => [
+ 'FEATUREensI1ZRKE',
+ ],
+ 'tenantRelevance' => 'tenant',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'InstanceId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the instance that you want to reboot. You can specify only one instance ID.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'i-instanceid****',
+ ],
+ ],
+ [
+ 'name' => 'ForceStop',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'Specifies whether to forcefully stop the instance before you restart it.'."\n"
+ ."\n"
+ .'* **true**'."\n"
+ .'* **false** (default)'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'true',
+ 'enum' => [
+ 'true',
+ 'false',
+ ],
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'Code' => [
+ 'description' => 'The returned service code. 0 indicates that the request was successful.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '0',
+ ],
+ 'RequestId' => [
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E',
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'MissingParameter',
+ 'errorMessage' => 'The input parameters that is mandatory for processing this request is not supplied.',
+ ],
+ [
+ 'errorCode' => 'InstanceIdNotFound',
+ 'errorMessage' => 'The input parameter instancdId that is not found.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'ens.interface.error',
+ 'errorMessage' => 'Failed to call API.',
+ ],
+ [
+ 'errorCode' => 'IncorrectInstanceStatus',
+ 'errorMessage' => 'The current status of the instance does not support this operation.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": 0,\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E\\"\\n}","errorExample":""},{"type":"xml","example":"<RebootInstanceResponse>\\n <Code>0</Code>\\n <RequestId>473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E</RequestId>\\n</RebootInstanceResponse>","errorExample":""}]',
+ 'title' => 'RebootInstance',
+ 'description' => '* Only instances that are in the Running state can be restarted.'."\n"
+ .'* If the operation is successful, the status of the instance becomes Starting.'."\n",
+ 'requestParamsDescription' => ' ',
+ 'responseParamsDescription' => ' ',
+ 'extraInfo' => ' ',
+ ],
+ 'StartInstance' => [
+ 'summary' => 'Starts an instance.',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'systemTags' => [
+ 'operationType' => 'update',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'InstanceId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the instance. You can start only one instance.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'i-instance****',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'Code' => [
+ 'description' => 'The returned service code. 0 indicates that the request was successful.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '0',
+ ],
+ 'RequestId' => [
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E',
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'MissingParameter',
+ 'errorMessage' => 'The input parameters that is mandatory for processing this request is not supplied.',
+ ],
+ [
+ 'errorCode' => 'InstanceNotFound',
+ 'errorMessage' => 'The input parameter instancdId that is not found.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'CallInterface',
+ 'errorMessage' => 'Call Interface Happen Error.',
+ ],
+ [
+ 'errorCode' => 'IncorrectInstanceStatus',
+ 'errorMessage' => 'The current status of the instance does not support this operation.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": 0,\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E\\"\\n}","errorExample":""},{"type":"xml","example":"<StartInstanceResponse>\\n <Code>0</Code>\\n <RequestId>473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E</RequestId>\\n</StartInstanceResponse>","errorExample":""}]',
+ 'title' => 'StartInstance',
+ 'description' => '* You can call the operation only when the instance is in the Stopped state.'."\n"
+ .'* If the operation is successful, the status of the instance becomes Starting.'."\n",
+ 'requestParamsDescription' => ' ',
+ 'responseParamsDescription' => ' ',
+ 'extraInfo' => ' ',
+ ],
+ 'StopInstance' => [
+ 'summary' => 'Stops an instance.',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'systemTags' => [
+ 'operationType' => 'update',
+ 'abilityTreeCode' => '2289',
+ 'abilityTreeNodes' => [
+ 'FEATUREensI1ZRKE',
+ ],
+ 'tenantRelevance' => 'tenant',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'InstanceId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the instance that you want to stop. You can specify only one instance ID.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'i-instanceid****',
+ ],
+ ],
+ [
+ 'name' => 'ForceStop',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'Specifies whether to forcibly stop the instance.'."\n"
+ ."\n"
+ .'* **true**'."\n"
+ .'* **false** (default)'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'true',
+ 'enum' => [
+ 'true',
+ 'false',
+ ],
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'Code' => [
+ 'description' => 'The returned service code. 0 indicates that the request was successful.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '0',
+ ],
+ 'RequestId' => [
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E',
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'MissingParameter',
+ 'errorMessage' => 'The input parameters that is mandatory for processing this request is not supplied.',
+ ],
+ [
+ 'errorCode' => 'InstanceIdNotFound',
+ 'errorMessage' => 'The input parameter instancdId that is not found.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'CallInterface',
+ 'errorMessage' => 'Call Interface Happen Error.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": 0,\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E\\"\\n}","errorExample":""},{"type":"xml","example":"<StopInstanceResponse>\\n <Code>0</Code>\\n <RequestId>473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E</RequestId>\\n</StopInstanceResponse>","errorExample":""}]',
+ 'title' => 'StopInstance',
+ 'description' => '* You can call this operation to stop instances that are only in the Running state.'."\n"
+ .'* If the call is successful, the state of the instance becomes Stopping.'."\n"
+ .'* Once the instance is stopped, the state of the instance becomes Stopped.'."\n"
+ .'* Force stop is supported, which is equivalent to power-off. Data that is not written to disks on the instance may be lost.'."\n",
+ 'requestParamsDescription' => ' ',
+ 'responseParamsDescription' => ' ',
+ 'extraInfo' => ' ',
+ ],
+ 'AddNetworkInterfaceToInstance' => [
+ 'summary' => 'Adds an IPv6 network interface controller (NIC). A public IP address is automatically assigned at the same time.',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'systemTags' => [
+ 'operationType' => 'create',
+ 'abilityTreeCode' => '907',
+ 'abilityTreeNodes' => [
+ 'FEATUREensVJ32Z2',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'InstanceId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the instance.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'yourInstance ID',
+ ],
+ ],
+ [
+ 'name' => 'Networks',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The network. The value is a JSON string. Only IPv6 is supported. Sample code of an IPv6 network: \\[{ "ipType": "public", "ipAddressType": "ipv6" }]'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => '[{"ipType": "public", "ipAddressType": "ipv6" }]',
+ ],
+ ],
+ [
+ 'name' => 'AutoStart',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'Specifies whether to automatically restart the instance.'."\n",
+ 'type' => 'boolean',
+ 'required' => false,
+ 'example' => 'true',
+ 'default' => 'false',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E',
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'MissingParameter',
+ 'errorMessage' => 'The input parameter that is mandatory for processing this request is not supplied.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'CallInterface',
+ 'errorMessage' => 'Call Interface Happen Error.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter',
+ 'errorMessage' => 'The errorMessage is %s. Please check it again.',
+ ],
+ [
+ 'errorCode' => 'ens.interface.error',
+ 'errorMessage' => 'An error occurred while calling the API.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E\\"\\n}","errorExample":""},{"type":"xml","example":"<AddNetworkInterfaceToInstanceResponse>\\r\\n<RequestId>CEF72CEB-54B6-4AE8-B225-F876FF7BA984</RequestId>\\r\\n</AddNetworkInterfaceToInstanceResponse>","errorExample":""}]',
+ 'title' => 'AddNetworkInterfaceToInstance',
+ 'description' => '* You can call this operation up to 100 times per second per account.'."\n"
+ .'* You can call this operation up to 5 times per second per user.'."\n"
+ .'* Internal networks and IPv4 addresses are not supported.'."\n",
+ 'requestParamsDescription' => ' ',
+ 'responseParamsDescription' => ' ',
+ 'extraInfo' => ' ',
+ ],
+ 'DescribeAvailableResource' => [
+ 'summary' => 'Queries the resources that can be created.',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'abilityTreeCode' => '1519',
+ 'abilityTreeNodes' => [
+ 'FEATUREensRIM251',
+ ],
+ 'tenantRelevance' => 'publicInformation',
+ ],
+ 'parameters' => [],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'Code' => [
+ 'description' => 'The returned service code. 0 indicates that the request was successful.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '0',
+ ],
+ 'Images' => [
+ 'type' => 'object',
+ 'itemNode' => true,
+ 'properties' => [
+ 'Image' => [
+ 'description' => 'The details of the images.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => '',
+ 'type' => 'object',
+ 'properties' => [
+ 'ImageId' => [
+ 'description' => 'The ID of the image.'."\n",
+ 'type' => 'string',
+ 'example' => 'centos_6_08_64_20G_alibase_20171208',
+ ],
+ 'ImageName' => [
+ 'description' => 'The name of the image.'."\n",
+ 'type' => 'string',
+ 'example' => 'centos_6_08_64_20G_alibase_****',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'RequestId' => [
+ 'description' => 'The ID of the request. This is a common parameter. Each request has a unique ID. You can use this ID to troubleshoot issues.'."\n",
+ 'type' => 'string',
+ 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E',
+ ],
+ 'SupportResources' => [
+ 'type' => 'object',
+ 'itemNode' => true,
+ 'properties' => [
+ 'SupportResource' => [
+ 'description' => 'The specifications of resources that you can purchase.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => '',
+ 'type' => 'object',
+ 'properties' => [
+ 'DataDiskSize' => [
+ 'description' => 'The size of the data disk. Unit: GB.'."\n",
+ 'type' => 'string',
+ 'example' => '500',
+ ],
+ 'EnsRegionId' => [
+ 'description' => 'The ID of the edge node.'."\n",
+ 'type' => 'string',
+ 'example' => 'cn-beijing-cmcc',
+ ],
+ 'InstanceSpec' => [
+ 'description' => 'The specifications of the resource plan.'."\n",
+ 'type' => 'string',
+ 'example' => 'ens.sn1.stiny',
+ ],
+ 'SupportResourcesCount' => [
+ 'description' => 'The number of resources that you can purchase.'."\n",
+ 'type' => 'string',
+ 'example' => '9',
+ ],
+ 'SystemDiskSize' => [
+ 'description' => 'The size of the system disk. Unit: GiB.'."\n",
+ 'type' => 'string',
+ 'example' => '20',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'MissingParameter',
+ 'errorMessage' => 'The input parameters that is mandatory for processing this request is not supplied.',
+ ],
+ [
+ 'errorCode' => 'InstanceNotExists',
+ 'errorMessage' => 'The user have no instances.',
+ ],
+ [
+ 'errorCode' => 'CallInterface',
+ 'errorMessage' => 'Call Interface Happen Error.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Code\\": 0,\\n \\"Images\\": {\\n \\"Image\\": [\\n {\\n \\"ImageId\\": \\"centos_6_08_64_20G_alibase_20171208\\",\\n \\"ImageName\\": \\"centos_6_08_64_20G_alibase_****\\"\\n }\\n ]\\n },\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E\\",\\n \\"SupportResources\\": {\\n \\"SupportResource\\": [\\n {\\n \\"DataDiskSize\\": \\"500\\",\\n \\"EnsRegionId\\": \\"cn-beijing-cmcc\\",\\n \\"InstanceSpec\\": \\"ens.sn1.stiny\\",\\n \\"SupportResourcesCount\\": \\"9\\",\\n \\"SystemDiskSize\\": \\"20\\"\\n }\\n ]\\n }\\n}","type":"json"}]',
+ 'title' => 'DescribeAvailableResource',
+ ],
+ 'DescribeInstances' => [
+ 'summary' => 'You can call this operation to view the details of one or more instances.',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'systemTags' => [
+ 'operationType' => 'list',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeNodes' => [
+ 'FEATUREensZ9TTQL',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'EnsRegionId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The region ID.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'cn-beijing-cmcc',
+ ],
+ ],
+ [
+ 'name' => 'InstanceId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the instance.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'i-5iqczfxps7csjrxeca****',
+ ],
+ ],
+ [
+ 'name' => 'EnsRegionIds',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The IDs of the regions. The value is a JSON array that consists of up to 100 IDs. Separate multiple IDs with commas (,).'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '["cn-suzhou-telecom","cn-chengdu-telecom"]',
+ ],
+ ],
+ [
+ 'name' => 'InstanceIds',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The IDs of the instances. The value is a JSON array that consists of up to 100 IDs. Separate IDs with commas (,).'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '["i-5iqczfxps7csjrxeca07****", "i-5iqczfxps7csjrxeca07****"]]',
+ ],
+ ],
+ [
+ 'name' => 'InstanceName',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The name of the instance.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'TestName',
+ ],
+ ],
+ [
+ 'name' => 'ImageId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the image.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'centos_6_08_64_20G_alibase_****',
+ ],
+ ],
+ [
+ 'name' => 'PageNumber',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The page number. Pages start from page **1**.'."\n"
+ ."\n"
+ .'Default value: **1**.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'minimum' => '1',
+ 'example' => '1',
+ 'default' => '1',
+ ],
+ ],
+ [
+ 'name' => 'PageSize',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The number of entries to return on each page. The maximum value is **100**.'."\n"
+ ."\n"
+ .'Default value: **10**.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '10',
+ ],
+ ],
+ [
+ 'name' => 'Status',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The status of the instance. Valid values:'."\n"
+ ."\n"
+ .'* Running'."\n"
+ .'* Stopped'."\n"
+ .'* Expired'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'Running',
+ ],
+ ],
+ [
+ 'name' => 'OrderByParams',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The method that you want to use to sort instances. The value of this parameter is in the JSON format.'."\n"
+ ."\n"
+ .'You can sort instances by name, expiration time, node ID, or creation time. You can specify one or more methods.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '{"InstanceNameSort":"asc","ExpireTimeSort":"asc","CreationTimeSort":"desc"}}',
+ ],
+ ],
+ [
+ 'name' => 'EnsServiceId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the edge service. You can use the ID to query information about the instances that are created in the edge service.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'ens-20190730202316s****',
+ ],
+ ],
+ [
+ 'name' => 'InstanceResourceType',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The condition that you want to use to filter instances by category. Valid values:'."\n"
+ ."\n"
+ .'* EnsInstance: ENS instances that you purchase.'."\n"
+ .'* EnsService: ENS instances that belong to edge services.'."\n"
+ .'* BuildMachine: ENS instances that are configured with image builders.'."\n"
+ .'* EnsPostPaidInstance: Pay-as-you-go ENS instances that you purchase.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'EnsService',
+ ],
+ ],
+ [
+ 'name' => 'SearchKey',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The keyword that you use to query the logs of the service. You can specify the values of parameters such as **ip**, **InstanceName**, and **InstanceId** as the keyword.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'Joshua',
+ ],
+ ],
+ [
+ 'name' => 'NetworkId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the network.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'n-2zeuphj08tt7q3brd****',
+ ],
+ ],
+ [
+ 'name' => 'VSwitchId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the vSwitch.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'vsw-2zeh0r1pabwtg6wcs****',
+ ],
+ ],
+ [
+ 'name' => 'SecurityGroupId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the security group.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'sg-5kyicq2kfcapxrdds6tar7jqb',
+ ],
+ ],
+ [
+ 'name' => 'IntranetIp',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The internal IP address of the instance.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '47.100.XX.XX',
+ ],
+ ],
+ [
+ 'name' => 'Tags',
+ 'in' => 'query',
+ 'style' => 'json',
+ 'schema' => [
+ 'description' => 'The tags that are added to the resource. This operation does not return tag information. You can call this operation in combination with the tag-related operations.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The tags of the instance. This operation does not return tag information. You can call this operation in combination with the tag-related operations.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'Key' => [
+ 'title' => '实例的标签键。N的取值范围为1~20。',
+ 'description' => 'The key of the tag that are to add to the instance. Valid values: 1 to 20.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'tag',
+ ],
+ 'Value' => [
+ 'title' => '实例的标签值。N的取值范围:1~20。',
+ 'description' => 'The tag value of the instance. Valid values: 1 to 20.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '2',
+ ],
+ ],
+ 'required' => false,
+ ],
+ 'required' => false,
+ 'maxItems' => 20,
+ ],
+ ],
+ [
+ 'name' => 'InstanceType',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The instance type.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'ens.se1.tiny',
+ ],
+ ],
+ [
+ 'name' => 'ServiceStatus',
+ 'in' => 'query',
+ 'style' => 'json',
+ 'schema' => [
+ 'description' => 'The status of the service. Valid values.',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The status of the service. Valid values:'."\n"
+ ."\n"
+ .'* Enabled: The service is activated.'."\n"
+ .'* Disabled: The service is deactivated.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'Enabled',
+ ],
+ 'required' => false,
+ ],
+ ],
+ [
+ 'name' => 'EipAddresses',
+ 'in' => 'query',
+ 'style' => 'json',
+ 'schema' => [
+ 'type' => 'array',
+ 'items' => [
+ 'type' => 'string',
+ ],
+ 'maxItems' => 20,
+ 'minItems' => 1,
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'Code' => [
+ 'description' => 'The returned service code. 0 indicates that the request was successful.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '0',
+ ],
+ 'PageSize' => [
+ 'description' => 'The number of entries per page.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '60',
+ ],
+ 'PageNumber' => [
+ 'description' => 'The page number.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '1',
+ ],
+ 'RequestId' => [
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E',
+ ],
+ 'TotalCount' => [
+ 'description' => 'The total number of entries returned.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '2',
+ ],
+ 'Instances' => [
+ 'type' => 'object',
+ 'itemNode' => true,
+ 'properties' => [
+ 'Instance' => [
+ 'description' => 'The information about the instance is returned in an array of InstanceAttributesType.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'Schema of Response'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'CreationTime' => [
+ 'description' => 'The time when the instance was created. The time follows the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time is displayed in UTC.'."\n",
+ 'type' => 'string',
+ 'example' => '2019-07-26T06:40:43Z',
+ ],
+ 'Status' => [
+ 'description' => 'The status of the instance. Valid values:'."\n"
+ ."\n"
+ .'* Running'."\n"
+ .'* Expired'."\n"
+ .'* Stopped'."\n",
+ 'type' => 'string',
+ 'example' => 'Running',
+ ],
+ 'SpecName' => [
+ 'description' => 'The instance type.'."\n",
+ 'type' => 'string',
+ 'example' => 'ens.sn1.stiny',
+ ],
+ 'InstanceTypeFamily' => [
+ 'description' => 'The instance family. Valid values:'."\n"
+ ."\n"
+ .'* x86\\_vm: x86-based computing instance.'."\n"
+ .'* x86\\_pm: x86-based physical machine.'."\n"
+ .'* x86\\_bmi: x86-based bare metal instance.'."\n"
+ .'* x86\\_bm: bare metal instance with the SmartNIC.'."\n"
+ .'* pc_bmi: heterogeneous bare metal instance.'."\n"
+ .'* pc_vm: heterogeneous virtual machine.'."\n"
+ .'* arm_bmi: Arm-based computing instance.'."\n",
+ 'type' => 'string',
+ 'example' => 'x86_vm',
+ ],
+ 'InstanceResourceType' => [
+ 'description' => 'The category of the instance. Valid values:'."\n"
+ ."\n"
+ .'* EnsInstance: ENS instances that you purchase.'."\n"
+ .'* EnsService: ENS instances that belong to edge services.'."\n"
+ .'* BuildMachine: ENS instances that are configured with image builders.'."\n"
+ .'* EnsPostPaidInstance: pay-as-you-go ENS instances that you purchase.'."\n",
+ 'type' => 'string',
+ 'example' => 'EnsService',
+ ],
+ 'HostName' => [
+ 'description' => 'The hostname of the instance.'."\n"
+ ."\n"
+ .'* The hostname cannot start or end with a period (.) or hyphen (-). It cannot contain consecutive periods (.) or hyphens (-).'."\n"
+ .'* For a Windows instance, the hostname must be 2 to 15 characters in length and can contain letters, digits, and hyphens (-). The hostname cannot contain periods (.) or contain only digits.'."\n"
+ .'* For an instance that runs another operating system such as Linux, the hostname must be 2 to 64 characters in length. You can use periods (.) to separate the hostname into multiple segments. Each segment can contain letters, digits, and hyphens (-).'."\n",
+ 'type' => 'string',
+ 'example' => 'testHostName',
+ ],
+ 'InstanceId' => [
+ 'description' => 'The ID of the instance.'."\n",
+ 'type' => 'string',
+ 'example' => 'i-instanc****',
+ ],
+ 'InternetMaxBandwidthIn' => [
+ 'description' => 'The maximum outbound bandwidth. Unit: Mbit/s.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '40',
+ ],
+ 'InternetMaxBandwidthOut' => [
+ 'description' => 'The minimum inbound bandwidth. Unit: Mbit/s.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '100',
+ ],
+ 'EnsRegionId' => [
+ 'description' => 'The region ID of the instance.'."\n",
+ 'type' => 'string',
+ 'example' => 'cn-hangzhou-telecom',
+ ],
+ 'Cpu' => [
+ 'description' => 'The number of vCPUs.'."\n",
+ 'type' => 'string',
+ 'example' => '2',
+ ],
+ 'ExpiredTime' => [
+ 'description' => 'The expiration time. The time follows the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time is displayed in UTC.'."\n",
+ 'type' => 'string',
+ 'example' => '2119-07-13T02:38:57Z',
+ ],
+ 'InstanceName' => [
+ 'description' => 'The name of the instance.'."\n",
+ 'type' => 'string',
+ 'example' => 'i-5itef0f28t17bcdw9deu6meub',
+ ],
+ 'Disk' => [
+ 'description' => 'The total size of the disk. Unit: MiB.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '71680',
+ ],
+ 'OSName' => [
+ 'description' => 'The name of the image.'."\n",
+ 'type' => 'string',
+ 'example' => 'centos 6.8 x86_64',
+ ],
+ 'Memory' => [
+ 'description' => 'The memory size. Unit: MB.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '2048',
+ ],
+ 'ImageId' => [
+ 'description' => 'The ID of the image.'."\n",
+ 'type' => 'string',
+ 'example' => 'm-****',
+ ],
+ 'DataDisk' => [
+ 'type' => 'object',
+ 'itemNode' => true,
+ 'properties' => [
+ 'DataDisk' => [
+ 'description' => 'Details of the data disk.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'Schema of Response'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'device_type' => [
+ 'description' => 'The extended field of the disk category. Valid values:'."\n"
+ ."\n"
+ .'* **file**: local disk.'."\n"
+ .'* **pangu**: ultra disk.'."\n"
+ .'* **local_hdd**: local HDD.'."\n",
+ 'type' => 'string',
+ 'example' => 'pangu',
+ ],
+ 'disk_type' => [
+ 'description' => 'The type of the cloud disk or local disk. Valid values:'."\n"
+ ."\n"
+ .'**system**: system disk. **data**: data disk.'."\n",
+ 'type' => 'string',
+ 'example' => 'system',
+ ],
+ 'Size' => [
+ 'description' => 'The size of the disk. Unit: MiB.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '51200',
+ ],
+ 'DiskName' => [
+ 'description' => 'The name of the disk.'."\n",
+ 'type' => 'string',
+ 'example' => 'DiskName',
+ ],
+ 'uuid' => [
+ 'description' => 'The UUID of the disk.'."\n",
+ 'type' => 'string',
+ 'example' => 'd-5itef1wtxj961mbff8xe9****',
+ ],
+ 'storage' => [
+ 'description' => 'The size of the disk. Unit: MiB.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '20480',
+ ],
+ 'DiskId' => [
+ 'description' => 'The ID of the disk.'."\n",
+ 'type' => 'string',
+ 'example' => 'd-5ip4c2dhmas0vjd5u1r****',
+ ],
+ 'Category' => [
+ 'description' => 'The category of the cloud disk or local disk. Valid values:'."\n"
+ ."\n"
+ .'* **file**: local disk.'."\n"
+ .'* **pangu**: ultra disk.'."\n"
+ .'* **local_hdd**: local HDD.'."\n",
+ 'type' => 'string',
+ 'example' => 'file',
+ ],
+ 'name' => [
+ 'description' => 'The name of the disk.'."\n",
+ 'type' => 'string',
+ 'example' => 'name',
+ ],
+ 'DiskSize' => [
+ 'description' => 'The size of the disk. Unit: GiB.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '100',
+ ],
+ 'EncryptKeyId' => [
+ 'description' => 'The KMS key ID used by the cloud drive.',
+ 'type' => 'string',
+ 'example' => '0e478b7a-4262-4802-b8cb-00d3fxxxxx'."\n",
+ ],
+ 'Encrypted' => [
+ 'description' => 'Specifies whether to encrypt the disk.'."\n",
+ 'type' => 'boolean',
+ 'example' => 'true',
+ 'default' => 'false',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'PublicIpAddresses' => [
+ 'type' => 'object',
+ 'itemNode' => true,
+ 'properties' => [
+ 'PublicIpAddress' => [
+ 'description' => 'Details of the public IP addresses.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'Schema of Response',
+ 'type' => 'object',
+ 'properties' => [
+ 'Ip' => [
+ 'description' => 'The IP address.'."\n",
+ 'type' => 'string',
+ 'example' => '119.147.xx.xx',
+ ],
+ 'GateWay' => [
+ 'description' => 'The gateway.'."\n",
+ 'type' => 'string',
+ 'example' => '119.147.xx.xx',
+ ],
+ 'Isp' => [
+ 'description' => 'The Internet service provider (ISP).'."\n",
+ 'type' => 'string',
+ 'example' => 'unicom',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'PrivateIpAddresses' => [
+ 'type' => 'object',
+ 'itemNode' => true,
+ 'properties' => [
+ 'PrivateIpAddress' => [
+ 'description' => 'Details of the private IP addresses.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'Ip' => [
+ 'description' => 'The IP address.'."\n",
+ 'type' => 'string',
+ 'example' => '119.147.xx.xx',
+ ],
+ 'GateWay' => [
+ 'description' => 'The gateway.'."\n",
+ 'type' => 'string',
+ 'example' => '119.147.xx.xx',
+ ],
+ 'Isp' => [
+ 'description' => 'The ISP.'."\n",
+ 'type' => 'string',
+ 'example' => 'cmcc',
+ ],
+ ],
+ 'description' => 'Schema of Response',
+ ],
+ ],
+ ],
+ ],
+ 'SecurityGroupIds' => [
+ 'type' => 'object',
+ 'itemNode' => true,
+ 'properties' => [
+ 'SecurityGroupId' => [
+ 'description' => 'The IDs of the security groups.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The ID of the security group.'."\n",
+ 'type' => 'string',
+ 'example' => 'sg-5kyicq2kfcapxrdds6ta****',
+ ],
+ ],
+ ],
+ ],
+ 'InnerIpAddress' => [
+ 'type' => 'object',
+ 'itemNode' => true,
+ 'properties' => [
+ 'IpAddress' => [
+ 'description' => 'The private IP addresses of the instances.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The private IP address of the instance.'."\n",
+ 'type' => 'string',
+ 'example' => '10.170.xx.xx',
+ ],
+ ],
+ ],
+ ],
+ 'PublicIpAddress' => [
+ 'type' => 'object',
+ 'itemNode' => true,
+ 'properties' => [
+ 'IpAddress' => [
+ 'description' => 'The public IP addresses of the instances.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The public IP address of the instance.'."\n",
+ 'type' => 'string',
+ 'example' => '119.147.xx.xx',
+ ],
+ ],
+ ],
+ ],
+ 'SystemDisk' => [
+ 'description' => 'Details of the system disk.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'device_type' => [
+ 'description' => 'The extended field of the disk category. Valid values:'."\n"
+ ."\n"
+ .'* **file**: local disk.'."\n"
+ .'* **pangu**: ultra disk.'."\n"
+ .'* **local_hdd**: local HDD.'."\n",
+ 'type' => 'string',
+ 'example' => 'pangu',
+ ],
+ 'disk_type' => [
+ 'description' => 'The type of the cloud disk or local disk. Valid values:'."\n"
+ ."\n"
+ .'* **system**: system disk.'."\n"
+ .'* **data**: data disk.'."\n",
+ 'type' => 'string',
+ 'example' => 'system',
+ ],
+ 'Size' => [
+ 'description' => 'The size of the disk. Unit: MiB.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '51200',
+ ],
+ 'DiskName' => [
+ 'description' => 'The name of the disk.'."\n",
+ 'type' => 'string',
+ 'example' => 'DiskName',
+ ],
+ 'uuid' => [
+ 'description' => 'The UUID of the disk.'."\n",
+ 'type' => 'string',
+ 'example' => 'd-5ip4c2dhmas0rn7rt0p96****',
+ ],
+ 'storage' => [
+ 'description' => 'The size of the disk. Unit: MiB.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '20480',
+ ],
+ 'DiskId' => [
+ 'description' => 'The ID of the disk.'."\n",
+ 'type' => 'string',
+ 'example' => 'd-5ip4c2dhmas0rn7rt0p9****',
+ ],
+ 'Category' => [
+ 'description' => 'The category of the cloud disk or local disk. Valid values:'."\n"
+ ."\n"
+ .'* **file**: local disk.'."\n"
+ .'* **pangu**: ultra disk.'."\n"
+ .'* **local_hdd**: local HDD.'."\n",
+ 'type' => 'string',
+ 'example' => 'file',
+ ],
+ 'name' => [
+ 'description' => 'The name of the disk.'."\n",
+ 'type' => 'string',
+ 'example' => 'DiskName',
+ ],
+ ],
+ ],
+ 'NetworkAttributes' => [
+ 'description' => 'Details of the network.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'NetworkId' => [
+ 'description' => 'The ID of the network.'."\n",
+ 'type' => 'string',
+ 'example' => 'n-2zeuphj08tt7q3brd****',
+ ],
+ 'VSwitchId' => [
+ 'description' => 'The vSwitch ID.'."\n",
+ 'type' => 'string',
+ 'example' => 'vsw-2zeh0r1pabwtg6wcs****',
+ ],
+ 'PrivateIpAddress' => [
+ 'type' => 'object',
+ 'itemNode' => true,
+ 'properties' => [
+ 'IpAddress' => [
+ 'description' => 'Details of the private IP addresses.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The private IP address of the instance. If a private IP address is specified, the number of private IP addresses must be 1. The private IP address must be an available IP address in the CIDR block of the vSwitch.'."\n",
+ 'type' => 'string',
+ 'example' => '172.17.**.**',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'Tags' => [
+ 'type' => 'object',
+ 'itemNode' => true,
+ 'properties' => [
+ 'Tags' => [
+ 'description' => 'The tags of the instance.'."\n"
+ ."\n"
+ .'> This operation does not return tag information. You can call this operation in combination with the tag-related operations.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The tag.'."\n"
+ ."\n"
+ .'> This operation does not return tag information. You can call this operation in combination with the tag-related operations.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'TagValue' => [
+ 'description' => 'The tag value.'."\n",
+ 'type' => 'string',
+ 'example' => 'value1',
+ ],
+ 'TagKey' => [
+ 'description' => 'The tag key.'."\n",
+ 'type' => 'string',
+ 'example' => 'key1',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'AutoReleaseTime' => [
+ 'title' => '自动释放时间。',
+ 'description' => 'The automatic release time of the instance.'."\n",
+ 'type' => 'string',
+ 'example' => '2023-06-28T14:38:52Z',
+ ],
+ 'SpotStrategy' => [
+ 'title' => '抢占式实例策略。',
+ 'description' => 'The bidding policy of the preemptible instance.'."\n",
+ 'type' => 'string',
+ 'example' => 'NoSpot',
+ ],
+ 'KeyPairName' => [
+ 'description' => 'The name of the SSH key pair.'."\n",
+ 'type' => 'string',
+ 'example' => 'terraform-example',
+ ],
+ 'NetworkInterfaces' => [
+ 'type' => 'object',
+ 'itemNode' => true,
+ 'properties' => [
+ 'NetworkInterfaces' => [
+ 'description' => 'The ENI attached to the instance.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The ENI attached to the instance.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'Type' => [
+ 'description' => 'The type of the disk. Valid values:'."\n"
+ ."\n"
+ .'* system: system disk.'."\n"
+ .'* data: data disk.'."\n",
+ 'type' => 'string',
+ 'example' => 'Secondary',
+ ],
+ 'MacAddress' => [
+ 'description' => 'The MAC address of the ENI.'."\n",
+ 'type' => 'string',
+ 'example' => '00:16:3e:4f:5f:ca',
+ ],
+ 'PrimaryIpAddress' => [
+ 'description' => 'The primary IP address of the ENI.'."\n",
+ 'type' => 'string',
+ 'example' => '***************',
+ ],
+ 'NetworkInterfaceId' => [
+ 'description' => 'The ID of the ENI.'."\n",
+ 'type' => 'string',
+ 'example' => 'eni-0wlonoy6jo8532gfzuama****',
+ ],
+ 'PrivateIpSets' => [
+ 'type' => 'object',
+ 'itemNode' => true,
+ 'properties' => [
+ 'PrivateIpSet' => [
+ 'description' => 'The private IP addresses of the ENI.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The private IP addresses of the ENI.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'PrivateIpAddress' => [
+ 'description' => 'The private IP address.'."\n"
+ ."\n"
+ .'> This parameter is available only if ScheduleAreaLevel is set to Region and cannot be configured if ScheduleAreaLevel is set to other values. Otherwise, an error occurs. If you specify a private IP address, the number of instances must be 1. The private IP address takes effect only when the private IP address and the vSwitch ID are not empty.'."\n",
+ 'type' => 'string',
+ 'example' => '10.75.66.***',
+ ],
+ 'Primary' => [
+ 'description' => 'Indicates whether the IP address is the primary private IP address. Valid values:'."\n"
+ ."\n"
+ .'* true'."\n"
+ .'* false'."\n",
+ 'type' => 'boolean',
+ 'example' => 'true',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'Ipv6Sets' => [
+ 'type' => 'object',
+ 'itemNode' => true,
+ 'properties' => [
+ 'Ipv6Set' => [
+ 'description' => 'The IPv6 addresses of the ENI. This parameter has a value only when `AdditionalAttributes.N` is set to `NETWORK_PRIMARY_ENI_IP`.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The IPv6 addresses of the ENI. This parameter has a value only when `AdditionalAttributes.N` is set to `NETWORK_PRIMARY_ENI_IP`.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'Ipv6Address' => [
+ 'description' => 'IPv6 addresses N of the ENI. You can specify multiple IPv6 addresses. Valid values of N: 1 to 100.'."\n",
+ 'type' => 'string',
+ 'example' => '2408:4005:396:3200:****:6609:821e:df7a',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'ServiceStatus' => [
+ 'description' => 'The ID of your Alibaba Cloud account.'."\n",
+ 'type' => 'string',
+ 'example' => 'Deleting',
+ ],
+ 'DeletionProtection' => [
+ 'type' => 'boolean',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'MissingParameter',
+ 'errorMessage' => 'The input parameter domainName that is mandatory for processing this request is not supplied.',
+ ],
+ [
+ 'errorCode' => 'InstanceIdNotFound',
+ 'errorMessage' => 'The input parameter instancdId that is not found.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'CallInterface',
+ 'errorMessage' => 'Call Interface Happen Error.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": 0,\\n \\"PageSize\\": 60,\\n \\"PageNumber\\": 1,\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E\\",\\n \\"TotalCount\\": 2,\\n \\"Instances\\": {\\n \\"Instance\\": [\\n {\\n \\"CreationTime\\": \\"2019-07-26T06:40:43Z\\",\\n \\"Status\\": \\"Running\\",\\n \\"SpecName\\": \\"ens.sn1.stiny\\",\\n \\"InstanceTypeFamily\\": \\"x86_vm\\",\\n \\"InstanceResourceType\\": \\"EnsService\\",\\n \\"HostName\\": \\"testHostName\\",\\n \\"InstanceId\\": \\"i-instanc****\\",\\n \\"InternetMaxBandwidthIn\\": 40,\\n \\"InternetMaxBandwidthOut\\": 100,\\n \\"EnsRegionId\\": \\"cn-hangzhou-telecom\\",\\n \\"Cpu\\": \\"2\\",\\n \\"ExpiredTime\\": \\"2119-07-13T02:38:57Z\\",\\n \\"InstanceName\\": \\"i-5itef0f28t17bcdw9deu6meub\\",\\n \\"Disk\\": 71680,\\n \\"OSName\\": \\"centos 6.8 x86_64\\",\\n \\"Memory\\": 2048,\\n \\"ImageId\\": \\"m-****\\",\\n \\"DataDisk\\": {\\n \\"DataDisk\\": [\\n {\\n \\"device_type\\": \\"pangu\\",\\n \\"disk_type\\": \\"system\\",\\n \\"Size\\": 51200,\\n \\"DiskName\\": \\"DiskName\\",\\n \\"uuid\\": \\"5431f898-1323-4e64-8ce1-6cad50ed****\\",\\n \\"storage\\": 20480,\\n \\"DiskId\\": \\"d-5ip4c2dhmas0vjd5u1r****\\",\\n \\"Category\\": \\"file\\",\\n \\"name\\": \\"name\\",\\n \\"DiskSize\\": 100,\\n \\"EncryptKeyId\\": \\"0e478b7a-4262-4802-b8cb-00d3fxxxxx\\",\\n \\"Encrypted\\": true\\n }\\n ]\\n },\\n \\"PublicIpAddresses\\": {\\n \\"PublicIpAddress\\": [\\n {\\n \\"Ip\\": \\"119.147.xx.xx\\",\\n \\"GateWay\\": \\"119.147.xx.xx\\",\\n \\"Isp\\": \\"unicom\\"\\n }\\n ]\\n },\\n \\"PrivateIpAddresses\\": {\\n \\"PrivateIpAddress\\": [\\n {\\n \\"Ip\\": \\"119.147.xx.xx\\",\\n \\"GateWay\\": \\"119.147.xx.xx\\",\\n \\"Isp\\": \\"cmcc\\"\\n }\\n ]\\n },\\n \\"SecurityGroupIds\\": {\\n \\"SecurityGroupId\\": [\\n \\"sg-5kyicq2kfcapxrdds6ta****\\"\\n ]\\n },\\n \\"InnerIpAddress\\": {\\n \\"IpAddress\\": [\\n \\"10.170.xx.xx\\"\\n ]\\n },\\n \\"PublicIpAddress\\": {\\n \\"IpAddress\\": [\\n \\"119.147.xx.xx\\"\\n ]\\n },\\n \\"SystemDisk\\": {\\n \\"device_type\\": \\"pangu\\",\\n \\"disk_type\\": \\"system\\",\\n \\"Size\\": 51200,\\n \\"DiskName\\": \\"DiskName\\",\\n \\"uuid\\": \\"5431f898-1323-4e64-8ce1-6cad50ed****\\",\\n \\"storage\\": 20480,\\n \\"DiskId\\": \\"d-5ip4c2dhmas0rn7rt0p9****\\",\\n \\"Category\\": \\"file\\",\\n \\"name\\": \\"DiskName\\"\\n },\\n \\"NetworkAttributes\\": {\\n \\"NetworkId\\": \\"n-2zeuphj08tt7q3brd****\\",\\n \\"VSwitchId\\": \\"vsw-2zeh0r1pabwtg6wcs****\\",\\n \\"PrivateIpAddress\\": {\\n \\"IpAddress\\": [\\n \\"172.17.**.**\\"\\n ]\\n }\\n },\\n \\"Tags\\": {\\n \\"Tags\\": [\\n {\\n \\"TagValue\\": \\"value1\\",\\n \\"TagKey\\": \\"key1\\"\\n }\\n ]\\n },\\n \\"AutoReleaseTime\\": \\"2023-06-28T14:38:52Z\\",\\n \\"SpotStrategy\\": \\"NoSpot\\",\\n \\"KeyPairName\\": \\"TestKeyPairName\\",\\n \\"NetworkInterfaces\\": {\\n \\"NetworkInterfaces\\": [\\n {\\n \\"Type\\": \\"Primary\\",\\n \\"MacAddress\\": \\"00:16:XXX:XXX:60:0a\\",\\n \\"PrimaryIpAddress\\": \\"10.XXX.XXX.25\\",\\n \\"NetworkInterfaceId\\": \\"eni-53afk8a0t5lklbi8m7j8iczdg\\",\\n \\"PrivateIpSets\\": {\\n \\"PrivateIpSet\\": [\\n {\\n \\"PrivateIpAddress\\": \\"192.XXX.XXX.130\\",\\n \\"Primary\\": true\\n }\\n ]\\n },\\n \\"Ipv6Sets\\": {\\n \\"Ipv6Set\\": [\\n {\\n \\"Ipv6Address\\": \\"2605:340:cdb1:XXXX:XXXX:XXXX:XXXX:e2d6\\"\\n }\\n ]\\n }\\n }\\n ]\\n },\\n \\"ServiceStatus\\": \\"Expired\\",\\n \\"DeletionProtection\\": true\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<DescribeInstancesResponse>\\n <Code>0</Code>\\n <PageSize>60</PageSize>\\n <PageNumber>1</PageNumber>\\n <RequestId>473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E</RequestId>\\n <TotalCount>2</TotalCount>\\n <Instances>\\n <CreationTime>2019-07-26T06:40:43Z</CreationTime>\\n <Status>Running</Status>\\n <SpecName>ens.sn1.stiny</SpecName>\\n <InstanceTypeFamily>x86_vm</InstanceTypeFamily>\\n <InstanceResourceType>EnsService</InstanceResourceType>\\n <HostName>testHostName</HostName>\\n <InstanceId>i-instanc****</InstanceId>\\n <InternetMaxBandwidthIn>40</InternetMaxBandwidthIn>\\n <InternetMaxBandwidthOut>100</InternetMaxBandwidthOut>\\n <EnsRegionId>cn-hangzhou-telecom</EnsRegionId>\\n <Cpu>2</Cpu>\\n <ExpiredTime>2119-07-13T02:38:57Z</ExpiredTime>\\n <InstanceName>i-5itef0f28t17bcdw9deu6meub</InstanceName>\\n <Disk>71680</Disk>\\n <OSName>centos 6.8 x86_64</OSName>\\n <Memory>2048</Memory>\\n <ImageId>m-****</ImageId>\\n <DataDisk>\\n <device_type>pangu</device_type>\\n <disk_type>system</disk_type>\\n <Size>51200</Size>\\n <DiskName>DiskName</DiskName>\\n <uuid>d-5itef1wtxj961mbff8xe9****</uuid>\\n <storage>20480</storage>\\n <DiskId>d-5ip4c2dhmas0vjd5u1r****</DiskId>\\n <Category>file</Category>\\n <name>name</name>\\n </DataDisk>\\n <PublicIpAddresses>\\n <Ip>119.147.xx.xx</Ip>\\n <GateWay>119.147.xx.xx</GateWay>\\n <Isp>unicom</Isp>\\n </PublicIpAddresses>\\n <PrivateIpAddresses>\\n <Ip>119.147.xx.xx</Ip>\\n <GateWay>119.147.xx.xx</GateWay>\\n <Isp>cmcc</Isp>\\n </PrivateIpAddresses>\\n <SecurityGroupIds>sg-5kyicq2kfcapxrdds6ta****</SecurityGroupIds>\\n <InnerIpAddress>10.170.xx.xx</InnerIpAddress>\\n <PublicIpAddress>119.147.xx.xx</PublicIpAddress>\\n <SystemDisk>\\n <device_type>pangu</device_type>\\n <disk_type>system</disk_type>\\n <Size>51200</Size>\\n <DiskName>DiskName</DiskName>\\n <uuid>d-5ip4c2dhmas0rn7rt0p96****</uuid>\\n <storage>20480</storage>\\n <DiskId>d-5ip4c2dhmas0rn7rt0p9****</DiskId>\\n <Category>file</Category>\\n <name>DiskName</name>\\n </SystemDisk>\\n <NetworkAttributes>\\n <NetworkId>n-2zeuphj08tt7q3brd****</NetworkId>\\n <VSwitchId>vsw-2zeh0r1pabwtg6wcs****</VSwitchId>\\n <PrivateIpAddress>172.17.**.**</PrivateIpAddress>\\n </NetworkAttributes>\\n </Instances>\\n</DescribeInstancesResponse>","errorExample":""}]',
+ 'title' => 'DescribeInstances',
+ 'description' => '* You can call this operation up to 800 times per second per account.'."\n"
+ .'* You can call this operation up to 100 times per second per user.'."\n"
+ .'* You can specify multiple request parameters to be queried. Specified parameters are evaluated by using the AND operator. Only the specified parameters are included in the filter conditions. However, if InstanceIds is set to an empty JSON array, it is regarded as a valid filter condition and an empty result is returned.'."\n",
+ ],
+ 'DescribeAvailableResourceInfo' => [
+ 'summary' => 'Queries the specifications of resources that you can purchase when you create an instance.',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'abilityTreeCode' => '18008',
+ 'abilityTreeNodes' => [
+ 'FEATUREensRIM251',
+ ],
+ 'tenantRelevance' => 'publicInformation',
+ ],
+ 'parameters' => [],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '8629F679-B51D-4194-A1CC-5D8F504C362B',
+ ],
+ 'Images' => [
+ 'type' => 'object',
+ 'itemNode' => true,
+ 'properties' => [
+ 'Image' => [
+ 'description' => 'The information about the image.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'ImageSize' => [
+ 'description' => 'The size of the image. Unit: GB.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '20',
+ ],
+ 'ImageName' => [
+ 'description' => 'The name of the image.'."\n",
+ 'type' => 'string',
+ 'example' => 'centos_6_08_64_20G_a****',
+ ],
+ 'ImageId' => [
+ 'description' => 'The ID of the image.'."\n",
+ 'type' => 'string',
+ 'example' => 'centos_6_08_64_20G_a****',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'SupportResources' => [
+ 'type' => 'object',
+ 'itemNode' => true,
+ 'properties' => [
+ 'SupportResource' => [
+ 'description' => 'The specifications of resources that you can purchase.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'DataDiskMaxSize' => [
+ 'description' => 'The maximum capacity of a data disk. Unit: GB.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '200',
+ ],
+ 'BandwidthTypes' => [
+ 'type' => 'object',
+ 'itemNode' => true,
+ 'properties' => [
+ 'BandwidthType' => [
+ 'description' => 'Bandwidth billing method.',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The metering method.'."\n"
+ ."\n"
+ .'* **BandwidthByDay**: Pay by daily peak bandwidth.'."\n"
+ .'* **95BandwidthByMonth**: Pay by monthly 95th percentile bandwidth.'."\n",
+ 'type' => 'string',
+ 'example' => '95BandwidthByMonth',
+ ],
+ ],
+ ],
+ ],
+ 'SystemDiskMinSize' => [
+ 'description' => 'The minimum capacity of a system disk. Unit: GB.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '20',
+ ],
+ 'EnsRegionIds' => [
+ 'type' => 'object',
+ 'itemNode' => true,
+ 'properties' => [
+ 'EnsRegionId' => [
+ 'description' => 'node ID',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The edge nodes.'."\n",
+ 'type' => 'string',
+ 'example' => 'cn-chengdu-telecom-4',
+ ],
+ ],
+ ],
+ ],
+ 'EnsRegionIdsExtends' => [
+ 'type' => 'object',
+ 'itemNode' => true,
+ 'properties' => [
+ 'EnsRegionId' => [
+ 'description' => 'The supplementary information about the edge nodes.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'EnsRegionId' => [
+ 'description' => 'The ID of the edge node.'."\n",
+ 'type' => 'string',
+ 'example' => 'cn-chengdu-telecom-4',
+ ],
+ 'EnName' => [
+ 'description' => 'The name. This parameter is empty by default.'."\n",
+ 'type' => 'string',
+ 'example' => 'EnName',
+ ],
+ 'Area' => [
+ 'description' => 'The region.'."\n",
+ 'type' => 'string',
+ 'example' => 'EastChina',
+ ],
+ 'Name' => [
+ 'description' => 'The name of the edge node.'."\n",
+ 'type' => 'string',
+ 'example' => 'Taizhou Telecom, China Unicom, and China Mobile'."\n",
+ ],
+ 'Province' => [
+ 'description' => 'The province.'."\n",
+ 'type' => 'string',
+ 'example' => 'Zhejiang Province'."\n",
+ ],
+ 'Isp' => [
+ 'description' => 'The information about the Internet service provider (ISP).'."\n",
+ 'type' => 'string',
+ 'example' => 'unicom',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'InstanceSpeces' => [
+ 'type' => 'object',
+ 'itemNode' => true,
+ 'properties' => [
+ 'InstanceSpec' => [
+ 'description' => '',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The specifications of instances.'."\n",
+ 'type' => 'string',
+ 'example' => 'ens.se1.tiny',
+ ],
+ ],
+ ],
+ ],
+ 'SystemDiskMaxSize' => [
+ 'description' => 'The maximum size of the system disk. Unit: GiB.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '100',
+ ],
+ 'DataDiskMinSize' => [
+ 'description' => 'The minimum data disk size. Unit: GiB.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '100',
+ ],
+ 'Isp' => [
+ 'type' => 'object',
+ 'itemNode' => true,
+ 'properties' => [
+ 'Isp' => [
+ 'description' => 'Operator',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The Internet service provider (ISP). Valid values:'."\n"
+ ."\n"
+ .'* cmcc: China Mobile'."\n"
+ .'* telecom: China Telecom'."\n"
+ .'* unicom: China Unicom'."\n"
+ .'* multiCarrier: multi-line ISP',
+ 'type' => 'string',
+ 'example' => 'unicom',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'MissingParameter',
+ 'errorMessage' => 'The input parameters that is mandatory for processing this request is not supplied.',
+ ],
+ [
+ 'errorCode' => 'InstanceNotExists',
+ 'errorMessage' => 'The user have no instances.',
+ ],
+ [
+ 'errorCode' => 'CallInterface',
+ 'errorMessage' => 'Call Interface Happen Error.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"8629F679-B51D-4194-A1CC-5D8F504C362B\\",\\n \\"Images\\": {\\n \\"Image\\": [\\n {\\n \\"ImageSize\\": 20,\\n \\"ImageName\\": \\"centos_6_08_64_20G_a****\\",\\n \\"ImageId\\": \\"centos_6_08_64_20G_a****\\"\\n }\\n ]\\n },\\n \\"SupportResources\\": {\\n \\"SupportResource\\": [\\n {\\n \\"DataDiskMaxSize\\": 200,\\n \\"BandwidthTypes\\": {\\n \\"BandwidthType\\": [\\n \\"95BandwidthByMonth\\"\\n ]\\n },\\n \\"SystemDiskMinSize\\": 20,\\n \\"EnsRegionIds\\": {\\n \\"EnsRegionId\\": [\\n \\"cn-chengdu-telecom-4\\"\\n ]\\n },\\n \\"EnsRegionIdsExtends\\": {\\n \\"EnsRegionId\\": [\\n {\\n \\"EnsRegionId\\": \\"cn-chengdu-telecom-4\\",\\n \\"EnName\\": \\"EnName\\",\\n \\"Area\\": \\"EastChina\\",\\n \\"Name\\": \\"台州电信联通移动\\",\\n \\"Province\\": \\"浙江省\\",\\n \\"Isp\\": \\"unicom\\"\\n }\\n ]\\n },\\n \\"InstanceSpeces\\": {\\n \\"InstanceSpec\\": [\\n \\"ens.se1.tiny\\"\\n ]\\n },\\n \\"SystemDiskMaxSize\\": 100,\\n \\"DataDiskMinSize\\": 100,\\n \\"Isp\\": {\\n \\"Isp\\": [\\n \\"{\\\\n \\\\\\"Isp\\\\\\": [\\\\n \\\\\\"telecom\\\\\\"\\\\n ]\\\\n}\\"\\n ]\\n }\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<DescribeAvailableResourceInfoResponse>\\n<RequestId>A331CA96-3948-4BD2-B067-F6174F5C17EA</RequestId>\\n<SupportResources>\\n <SupportResource>\\n <DataDiskMinSize>20</DataDiskMinSize>\\n <SystemDiskMinSize>30</SystemDiskMinSize>\\n <InstanceSpeces>\\n <InstanceSpec>ens.sn1.large</InstanceSpec>\\n <InstanceSpec>ens.sn1.small</InstanceSpec>\\n <InstanceSpec>ens.se1.tiny</InstanceSpec>\\n </InstanceSpeces>\\n <BandwidthTypes>\\n <BandwidthType>95BandwidthByMonth</BandwidthType>\\n </BandwidthTypes>\\n <SystemDiskMaxSize>200</SystemDiskMaxSize>\\n <DataDiskMaxSize>300</DataDiskMaxSize>\\n <EnsRegionIdsExtends>\\n <EnsRegionId>\\n <Area>SouthWestChina</Area>\\n <EnName/>\\n <EnsRegionId>cn-chengdu-telecom-4</EnsRegionId>\\n <Province>四川省</Province>\\n <Name>成都电信POC</Name>\\n </EnsRegionId>\\n <EnsRegionId>\\n <Area>EastChina</Area>\\n <EnName/>\\n <EnsRegionId>cn-taizhou-telecom_unicom_cmcc</EnsRegionId>\\n <Province>浙江省</Province>\\n <Name>台州电信联通移动</Name>\\n </EnsRegionId>\\n </EnsRegionIdsExtends>\\n <EnsRegionIds>\\n <EnsRegionId>cn-chengdu-telecom-4</EnsRegionId>\\n <EnsRegionId>cn-suzhou-cmcc</EnsRegionId>\\n <EnsRegionId>cn-taizhou-telecom_unicom_cmcc</EnsRegionId>\\n </EnsRegionIds>\\n </SupportResource>\\n</SupportResources>\\n<Images>\\n <Image>\\n <ImageName>centos_6_08_64_20G_alibase****</ImageName>\\n <ImageSize>20</ImageSize>\\n <ImageId>centos_6_08_64_20G_alibase****</ImageId>\\n </Image>\\n</Images>\\n</DescribeAvailableResourceInfoResponse>\\n","errorExample":""}]',
+ 'title' => 'DescribeAvailableResourceInfo',
+ 'requestParamsDescription' => ' ',
+ 'responseParamsDescription' => ' ',
+ 'extraInfo' => ' ',
+ ],
+ 'DescribeEnsNetSaleDistrict' => [
+ 'summary' => 'Queries the information about ISPs and number of ISPs in an area.',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'systemTags' => [],
+ 'parameters' => [
+ [
+ 'name' => 'NetLevelCode',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The network level. Valid values:'."\n"
+ ."\n"
+ .'* **Big**: area'."\n"
+ .'* **Middle**: province'."\n"
+ .'* **Small**: city'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'Big',
+ ],
+ ],
+ [
+ 'name' => 'NetDistrictCode',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The region code.'."\n"
+ ."\n"
+ .'* If you do not specify this parameter, only nodes under the area level that is specified by NetLevelCode are queried.'."\n"
+ .'* If you specify this parameter, only child nodes in the area that is specified by NetDistrictCode are queried.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '100105',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'Code' => [
+ 'description' => 'The returned service code. A value of 0 indicates that the operation was successful.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '0',
+ ],
+ 'EnsNetDistricts' => [
+ 'type' => 'object',
+ 'itemNode' => true,
+ 'properties' => [
+ 'EnsNetDistrict' => [
+ 'description' => 'The information about the ISPs in the area.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'EnsRegionIdCount' => [
+ 'description' => 'The information about the ISP.'."\n",
+ 'type' => 'string',
+ 'example' => '{ "count":2, "name":"telecommunication", "code":"telecom", "country":"cn" }'."\n",
+ ],
+ 'InstanceCount' => [
+ 'description' => 'The information about the instance.'."\n",
+ 'type' => 'string',
+ 'example' => '{ "count":2, "code":"multiCarrier" }',
+ ],
+ 'NetDistrictCode' => [
+ 'description' => 'The region code.'."\n",
+ 'type' => 'string',
+ 'example' => '100101',
+ ],
+ 'NetDistrictEnName' => [
+ 'description' => 'The name of the region.'."\n",
+ 'type' => 'string',
+ 'example' => 'northEast',
+ ],
+ 'NetDistrictFatherCode' => [
+ 'description' => 'The parent code of the region.'."\n",
+ 'type' => 'string',
+ 'example' => '100000',
+ ],
+ 'NetDistrictLevel' => [
+ 'description' => 'The region level. Valid values:'."\n"
+ ."\n"
+ .'* **Big**: area'."\n"
+ .'* **Middle**: province'."\n"
+ .'* **Small**: city'."\n",
+ 'type' => 'string',
+ 'example' => 'Big',
+ ],
+ 'NetDistrictName' => [
+ 'description' => 'The Chinese name of the region.'."\n",
+ 'type' => 'string',
+ 'example' => 'Northeast China'."\n",
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'RequestId' => [
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '1707B55C-A12F-43EF-BC66-14FFDB9253C3',
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'MissingParameter',
+ 'errorMessage' => 'The input parameter domainName that is mandatory for processing this request is not supplied.',
+ ],
+ [
+ 'errorCode' => 'InstanceIdNotFound',
+ 'errorMessage' => 'The input parameter instancdId that is not found.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'CallInterface',
+ 'errorMessage' => 'Call Interface Happen Error.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": 0,\\n \\"EnsNetDistricts\\": {\\n \\"EnsNetDistrict\\": [\\n {\\n \\"EnsRegionIdCount\\": \\"{ \\\\\\"count\\\\\\":2, \\\\\\"name\\\\\\":\\\\\\"电信\\\\\\", \\\\\\"code\\\\\\":\\\\\\"telecom\\\\\\", \\\\\\"country\\\\\\":\\\\\\"cn\\\\\\" }\\",\\n \\"InstanceCount\\": \\"{ \\\\\\"count\\\\\\":2, \\\\\\"code\\\\\\":\\\\\\"multiCarrier\\\\\\" }\\",\\n \\"NetDistrictCode\\": \\"100101\\",\\n \\"NetDistrictEnName\\": \\"northEast\\",\\n \\"NetDistrictFatherCode\\": \\"100000\\",\\n \\"NetDistrictLevel\\": \\"Big\\",\\n \\"NetDistrictName\\": \\"东北\\"\\n }\\n ]\\n },\\n \\"RequestId\\": \\"1707B55C-A12F-43EF-BC66-14FFDB9253C3\\"\\n}","errorExample":""},{"type":"xml","example":"<DescribeEnsNetDistrictResponse>\\n<EnsNetDistricts>\\n <EnsNetDistrict>\\n <InstanceCount>\\n <count>1</count>\\n <code>cmcc</code>\\n </InstanceCount>\\n <InstanceCount>\\n <count>3</count>\\n <code>telecom</code>\\n </InstanceCount>\\n <InstanceCount>\\n <count>2</count>\\n <code>unicom</code>\\n </InstanceCount>\\n <InstanceCount>\\n <count>2</count>\\n <code>multiCarrier</code>\\n </InstanceCount>\\n <NetDistrictCode>100101</NetDistrictCode>\\n <NetDistrictFatherCode>100000</NetDistrictFatherCode>\\n <NetDistrictLevel>Big</NetDistrictLevel>\\n <NetDistrictEnName>northEast</NetDistrictEnName>\\n <EnsRegionIdCount>\\n <count>2</count>\\n <name>电信</name>\\n <code>telecom</code>\\n <country>cn</country>\\n </EnsRegionIdCount>\\n <EnsRegionIdCount>\\n <count>3</count>\\n <name>联通</name>\\n <code>unicom</code>\\n <country>cn</country>\\n </EnsRegionIdCount>\\n <EnsRegionIdCount>\\n <count>1</count>\\n <name>移动</name>\\n <code>cmcc</code>\\n <country>cn</country>\\n </EnsRegionIdCount>\\n <NetDistrictName>东北</NetDistrictName>\\n </EnsNetDistrict>\\n <EnsNetDistrict>\\n <InstanceCount>\\n <count>1</count>\\n <code>cmcc</code>\\n </InstanceCount>\\n <InstanceCount>\\n <count>1</count>\\n <code>telecom</code>\\n </InstanceCount>\\n <InstanceCount>\\n <count>2</count>\\n <code>unicom</code>\\n </InstanceCount>\\n <NetDistrictCode>100107</NetDistrictCode>\\n <NetDistrictFatherCode>100000</NetDistrictFatherCode>\\n <NetDistrictLevel>Big</NetDistrictLevel>\\n <NetDistrictEnName>northWest</NetDistrictEnName>\\n <EnsRegionIdCount>\\n <count>2</count>\\n <name>电信</name>\\n <code>telecom</code>\\n <country>cn</country>\\n </EnsRegionIdCount>\\n <EnsRegionIdCount>\\n <count>2</count>\\n <name>联通</name>\\n <code>unicom</code>\\n <country>cn</country>\\n </EnsRegionIdCount>\\n <EnsRegionIdCount>\\n <count>1</count>\\n <name>移动</name>\\n <code>cmcc</code>\\n <country>cn</country>\\n </EnsRegionIdCount>\\n <NetDistrictName>西北</NetDistrictName>\\n </EnsNetDistrict>\\n</EnsNetDistricts>\\n<RequestId>1707B55C-A12F-43EF-BC66-14FFDB9253C3</RequestId>\\n<Code>0</Code>\\n</DescribeEnsNetDistrictResponse>\\n","errorExample":""}]',
+ 'title' => 'DescribeEnsNetSaleDistrict',
+ 'requestParamsDescription' => ' ',
+ 'responseParamsDescription' => ' ',
+ 'extraInfo' => ' ',
+ ],
+ 'DescribeEnsNetLevel' => [
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'systemTags' => [],
+ 'parameters' => [],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'Code' => [
+ 'description' => 'The returned service code. A value of 0 indicates that the operation was successful.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '0',
+ ],
+ 'EnsNetLevels' => [
+ 'type' => 'object',
+ 'itemNode' => true,
+ 'properties' => [
+ 'EnsNetLevel' => [
+ 'description' => 'The network levels.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'EnsNetLevelCode' => [
+ 'description' => 'The network level. Valid values:'."\n"
+ ."\n"
+ .'* Big: greater area.'."\n"
+ .'* Middle: province.'."\n"
+ .'* Small: city.'."\n",
+ 'type' => 'string',
+ 'example' => 'Big',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'RequestId' => [
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '86A6D421-A0C7-4C01-8648-47377CA6A2CE',
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'MissingParameter',
+ 'errorMessage' => 'The input parameter domainName that is mandatory for processing this request is not supplied.',
+ ],
+ [
+ 'errorCode' => 'InstanceIdNotFound',
+ 'errorMessage' => 'The input parameter instancdId that is not found.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'CallInterface',
+ 'errorMessage' => 'Call Interface Happen Error.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": 0,\\n \\"EnsNetLevels\\": {\\n \\"EnsNetLevel\\": [\\n {\\n \\"EnsNetLevelCode\\": \\"Big\\"\\n }\\n ]\\n },\\n \\"RequestId\\": \\"86A6D421-A0C7-4C01-8648-47377CA6A2CE\\"\\n}","errorExample":""},{"type":"xml","example":"<DescribeEnsNetLevelResponse>\\n<RequestId>86A6D421-A0C7-4C01-8648-47377CA6A2CE</RequestId>\\n<EnsNetLevels>\\n <EnsNetLevel>\\n <EnsNetLevelCode>Big</EnsNetLevelCode>\\n </EnsNetLevel>\\n <EnsNetLevel>\\n <EnsNetLevelCode>Small</EnsNetLevelCode>\\n </EnsNetLevel>\\n <EnsNetLevel>\\n <EnsNetLevelCode>Middle</EnsNetLevelCode>\\n </EnsNetLevel>\\n</EnsNetLevels>\\n<Code>0</Code>\\n</DescribeEnsNetLevelResponse>\\n","errorExample":""}]',
+ 'title' => 'DescribeEnsNetLevel',
+ 'summary' => 'Queries the supported network levels.',
+ 'requestParamsDescription' => ' ',
+ 'responseParamsDescription' => ' ',
+ 'extraInfo' => ' ',
+ ],
+ 'DescribeBandWithdChargeType' => [
+ 'summary' => 'Queries available bandwidth metering methods.',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'abilityTreeCode' => '1411',
+ 'abilityTreeNodes' => [
+ 'FEATUREensRIM251',
+ ],
+ 'tenantRelevance' => 'publicInformation',
+ ],
+ 'parameters' => [],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'BandWithTypeInfo' => [
+ 'description' => 'The information about the metering method.'."\n",
+ 'type' => 'string',
+ 'example' => '{ "BandWidthName": "Monthly peak bandwidth of 95", "BandWidthType": "95BandwidthByMonth" }',
+ ],
+ 'ChargeContractType' => [
+ 'description' => 'The metering type.'."\n"
+ ."\n"
+ .'* ChargeByUnified: unified metering.'."\n"
+ .'* ChargeByGrade: differential metering.'."\n",
+ 'type' => 'string',
+ 'example' => 'ChargeByGrade',
+ ],
+ 'ChargeCycleInfo' => [
+ 'description' => 'The metering cycle. Currently, this parameter is empty in the response.'."\n",
+ 'type' => 'string',
+ 'example' => '{null}',
+ ],
+ 'Code' => [
+ 'description' => 'The returned service code. A value of 0 indicates that the operation was successful.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '0',
+ ],
+ 'RequestId' => [
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '791049FD-49CE-4667-BD6C-F23094DEDA7A',
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'MissingParameter',
+ 'errorMessage' => 'The input parameter domainName that is mandatory for processing this request is not supplied.',
+ ],
+ [
+ 'errorCode' => 'InstanceIdNotFound',
+ 'errorMessage' => 'The input parameter instancdId that is not found.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'CallInterface',
+ 'errorMessage' => 'Call Interface Happen Error.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"BandWithTypeInfo\\": \\"{ \\\\\\"BandWidthName\\\\\\": \\\\\\"月95峰值带宽\\\\\\", \\\\t\\\\t\\\\t\\\\\\"BandWidthType\\\\\\": \\\\\\"95BandwidthByMonth\\\\\\" \\\\t\\\\t}\\",\\n \\"ChargeContractType\\": \\"ChargeByGrade\\",\\n \\"ChargeCycleInfo\\": \\"{null}\\",\\n \\"Code\\": 0,\\n \\"RequestId\\": \\"791049FD-49CE-4667-BD6C-F23094DEDA7A\\"\\n}","errorExample":""},{"type":"xml","example":"<DescribeBandWithdChargeTypeResponse>\\n <BandWithTypeInfo>{ \\"BandWidthName\\": \\"月95峰值带宽\\", \\t\\t\\t\\"BandWidthType\\": \\"95BandwidthByMonth\\" \\t\\t}</BandWithTypeInfo>\\n <ChargeContractType>ChargeByGrade</ChargeContractType>\\n <ChargeCycleInfo>{null}</ChargeCycleInfo>\\n <Code>0</Code>\\n <RequestId>791049FD-49CE-4667-BD6C-F23094DEDA7A</RequestId>\\n</DescribeBandWithdChargeTypeResponse>","errorExample":""}]',
+ 'title' => 'DescribeBandWithdChargeType',
+ 'requestParamsDescription' => ' ',
+ 'responseParamsDescription' => ' ',
+ 'extraInfo' => ' ',
+ ],
+ 'DescribeInstanceSpec' => [
+ 'summary' => 'Queries the instance specifications that you can purchase.',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'systemTags' => [
+ 'operationType' => 'get',
+ ],
+ 'parameters' => [],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'BandwidthLimit' => [
+ 'description' => 'The bandwidth limit for a single instance. Unit: Mbit/s.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '0',
+ ],
+ 'Code' => [
+ 'description' => 'The returned service code. A value of 0 indicates that the operation was successful.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '0',
+ ],
+ 'DataDiskMaxSize' => [
+ 'description' => 'The maximum capacity of a data disk. Unit: GB.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '20015',
+ ],
+ 'DataDiskMinSize' => [
+ 'description' => 'The minimum capacity of a data disk. Unit: GB.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '0',
+ ],
+ 'InstanceSpecs' => [
+ 'type' => 'object',
+ 'itemNode' => true,
+ 'properties' => [
+ 'InstanceSpec' => [
+ 'description' => 'The information about instance specifications.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'Core' => [
+ 'description' => 'The number of CPU cores.'."\n",
+ 'type' => 'string',
+ 'example' => '1',
+ ],
+ 'DisplayName' => [
+ 'description' => 'The display name of the instance type.'."\n",
+ 'type' => 'string',
+ 'example' => 'Computational 1C2G'."\n",
+ ],
+ 'InstanceType' => [
+ 'description' => 'The type of the instance.'."\n",
+ 'type' => 'string',
+ 'example' => 'ens.sn1.stiny',
+ ],
+ 'Memory' => [
+ 'description' => 'The memory size. Unit: MB.'."\n",
+ 'type' => 'string',
+ 'example' => '2048',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'RequestId' => [
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '1ECC937A-AE0E-4626-BE51-DED1D6D1C888',
+ ],
+ 'SystemDiskMaxSize' => [
+ 'description' => 'The maximum capacity of the system disk. Unit: GiB.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '80',
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'MissingParameter',
+ 'errorMessage' => 'The input parameter domainName that is mandatory for processing this request is not supplied.',
+ ],
+ [
+ 'errorCode' => 'InstanceIdNotFound',
+ 'errorMessage' => 'The input parameter instancdId that is not found.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'CallInterface',
+ 'errorMessage' => 'Call Interface Happen Error.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"BandwidthLimit\\": 0,\\n \\"Code\\": 0,\\n \\"DataDiskMaxSize\\": 20015,\\n \\"DataDiskMinSize\\": 0,\\n \\"InstanceSpecs\\": {\\n \\"InstanceSpec\\": [\\n {\\n \\"Core\\": \\"1\\",\\n \\"DisplayName\\": \\"计算型1C2G\\",\\n \\"InstanceType\\": \\"ens.sn1.stiny\\",\\n \\"Memory\\": \\"2048\\"\\n }\\n ]\\n },\\n \\"RequestId\\": \\"1ECC937A-AE0E-4626-BE51-DED1D6D1C888\\",\\n \\"SystemDiskMaxSize\\": 80\\n}","errorExample":""},{"type":"xml","example":"<DescribeInstanceSpecResponse>\\n<DataDiskMinSize>0</DataDiskMinSize>\\n<RequestId>1ECC937A-AE0E-4626-BE51-DED1D6D1C888</RequestId>\\n<SystemDiskMaxSize>80</SystemDiskMaxSize>\\n<DataDiskMaxSize>20015</DataDiskMaxSize>\\n<Code>0</Code>\\n<InstanceSpecs>\\n <InstanceSpec>\\n <Memory>2048</Memory>\\n <DisplayName>计算型1C2G</DisplayName>\\n <InstanceType>ens.sn1.stiny</InstanceType>\\n <Core>1</Core>\\n </InstanceSpec>\\n <InstanceSpec>\\n <Memory>4096</Memory>\\n <DisplayName>计算型2C4G</DisplayName>\\n <InstanceType>ens.sn1.tiny</InstanceType>\\n <Core>2</Core>\\n </InstanceSpec>\\n</InstanceSpecs>\\n<BandwidthLimit>100</BandwidthLimit>\\n</DescribeInstanceSpecResponse>\\n","errorExample":""}]',
+ 'title' => 'DescribeInstanceSpec',
+ 'requestParamsDescription' => ' ',
+ 'responseParamsDescription' => ' ',
+ 'extraInfo' => ' ',
+ ],
+ 'DescribeEnsRegionIdIpv6Info' => [
+ 'summary' => 'Queries whether a node supports IPv6.',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'systemTags' => [],
+ 'parameters' => [
+ [
+ 'name' => 'EnsRegionId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the node. You can specify only one node ID in a call.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'cn-chengdu-xxxx-4',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '3703C4AC-9396-458C-8F25-1D701334D309',
+ ],
+ 'SupportIpv6Info' => [
+ 'description' => 'IPv6 support information.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'EnsRegionId' => [
+ 'description' => 'The ID of the node.'."\n",
+ 'type' => 'string',
+ 'example' => 'cn-chengdu-xxxx-4',
+ ],
+ 'SupportIpv6' => [
+ 'description' => 'Specifies whether IPv6 is supported. Valid values:'."\n"
+ ."\n"
+ .'* true'."\n"
+ .'* false'."\n",
+ 'type' => 'boolean',
+ 'example' => 'true',
+ ],
+ ],
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'MissingParameter',
+ 'errorMessage' => 'The input parameter that is mandatory for processing this request is not supplied.',
+ ],
+ [
+ 'errorCode' => 'InstanceIdNotFound',
+ 'errorMessage' => 'The input parameter instancdId that is not found.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter',
+ 'errorMessage' => 'The input parameter is Invalid.',
+ ],
+ [
+ 'errorCode' => 'StockNotEnough',
+ 'errorMessage' => 'The specified configuration is unavailable. Reconfigure and try again.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ [
+ 'errorCode' => 'CallInterface',
+ 'errorMessage' => 'Call Interface Happen Error.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"3703C4AC-9396-458C-8F25-1D701334D309\\",\\n \\"SupportIpv6Info\\": {\\n \\"EnsRegionId\\": \\"cn-chengdu-****-4\\",\\n \\"SupportIpv6\\": true\\n }\\n}","errorExample":""},{"type":"xml","example":"<DescribeEnsRegionIdIpv6InfoResponse>\\n <RequestId>3703C4AC-9396-458C-8F25-1D701334D309</RequestId>\\n <SupportIpv6Info>\\n <EnsRegionId>cn-chengdu-****-4</EnsRegionId>\\n <SupportIpv6>true</SupportIpv6>\\n </SupportIpv6Info>\\n</DescribeEnsRegionIdIpv6InfoResponse>","errorExample":""}]',
+ 'title' => 'DescribeEnsRegionIdIpv6Info',
+ ],
+ 'DescribeRegionIsps' => [
+ 'summary' => 'Queries information about the Internet service providers (ISPs) of edge nodes.',
+ 'methods' => [
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'list',
+ 'abilityTreeCode' => '104087',
+ 'abilityTreeNodes' => [
+ 'FEATUREensDHOSNR',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'EnsRegionId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the node. You can specify only one node ID in a call.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'cn-dalian-unicom',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => 'DC90CC7E-23B6-5A90-9097-A17CE4A161C4',
+ ],
+ 'Isps' => [
+ 'description' => 'The list of ISPs.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'List of operators.',
+ 'type' => 'object',
+ 'properties' => [
+ 'Code' => [
+ 'description' => 'The code of the ISP.'."\n",
+ 'type' => 'string',
+ 'example' => 'cmcc',
+ ],
+ 'Name' => [
+ 'description' => 'The name of the ISP.'."\n",
+ 'type' => 'string',
+ 'example' => 'move'."\n",
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'Invalid%s',
+ 'errorMessage' => 'The specified parameter %s is invalid.',
+ ],
+ [
+ 'errorCode' => 'Missing%s',
+ 'errorMessage' => 'You must specify the parameter %s.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"DC90CC7E-23B6-5A90-9097-A17CE4A161C4\\",\\n \\"Isps\\": [\\n {\\n \\"Code\\": \\"cmcc\\",\\n \\"Name\\": \\"移动\\"\\n }\\n ]\\n}","type":"json"}]',
+ 'title' => 'DescribeRegionIsps',
+ ],
+ 'DescribeInstanceAutoRenewAttribute' => [
+ 'summary' => 'You can call this operation to query whether auto-renewal is enabled for an instance.',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'systemTags' => [
+ 'operationType' => 'get',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'InstanceIds',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of an instance. Separate multiple IDs with semicolons (;).'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'i-5ci7l7k1m9m2zmhp4iw3o****',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'Code' => [
+ 'description' => 'The returned service code. A value of 0 indicates that the operation was successful.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '0',
+ ],
+ 'InstanceRenewAttributes' => [
+ 'type' => 'object',
+ 'itemNode' => true,
+ 'properties' => [
+ 'InstanceRenewAttribute' => [
+ 'description' => 'The renewal status of the instance.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'AutoRenewal' => [
+ 'description' => 'The renewal type of the instance.'."\n"
+ ."\n"
+ .'* **true**: enables auto-renewal.'."\n"
+ .'* **false**: disables auto-renewal.'."\n",
+ 'type' => 'boolean',
+ 'example' => 'false',
+ ],
+ 'Duration' => [
+ 'description' => 'The unit of the auto-renewal period.'."\n",
+ 'type' => 'string',
+ 'example' => '0',
+ ],
+ 'InstanceId' => [
+ 'description' => 'The ID of the instance.'."\n",
+ 'type' => 'string',
+ 'example' => 'i-5ci7l7k1m9m2zmhp4iw3o****',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'RequestId' => [
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '4DD66F05-3116-4BAA-B588-52EB2E7F431D',
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'MissingParameter',
+ 'errorMessage' => 'The input parameters that is mandatory for processing this request is not supplied.',
+ ],
+ [
+ 'errorCode' => 'InstanceNotExists',
+ 'errorMessage' => 'The user have no instances.',
+ ],
+ [
+ 'errorCode' => 'CallInterface',
+ 'errorMessage' => 'Call Interface Happen Error.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": 0,\\n \\"InstanceRenewAttributes\\": {\\n \\"InstanceRenewAttribute\\": [\\n {\\n \\"AutoRenewal\\": false,\\n \\"Duration\\": \\"0\\",\\n \\"InstanceId\\": \\"i-5ci7l7k1m9m2zmhp4iw3o****\\"\\n }\\n ]\\n },\\n \\"RequestId\\": \\"4DD66F05-3116-4BAA-B588-52EB2E7F431D\\"\\n}","errorExample":""},{"type":"xml","example":"<InstanceRenewAttributes>\\n <InstanceRenewAttribute>\\n <AutoRenewal>false</AutoRenewal>\\n <InstanceId>i-5ci7l7k1m9m2zmhp4iw3o****</InstanceId>\\n <Duration>0</Duration>\\n </InstanceRenewAttribute>\\n</InstanceRenewAttributes>\\n<RequestId>4DD66F05-3116-4BAA-B588-52EB2E7F431D</RequestId>\\n<Code>0</Code>","errorExample":""}]',
+ 'title' => 'DescribeInstanceAutoRenewAttribute',
+ 'requestParamsDescription' => ' ',
+ 'responseParamsDescription' => ' ',
+ 'extraInfo' => ' ',
+ ],
+ 'DescribeInstanceMonitorData' => [
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'systemTags' => [
+ 'operationType' => 'get',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'InstanceId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the instance. You can specify only one instance ID.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'yourInstance ID',
+ ],
+ ],
+ [
+ 'name' => 'StartTime',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The beginning of the time range to query.'."\n"
+ ."\n"
+ .'Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC. If the value of the seconds place is not 00, the start time is automatically set to the next minute.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '2019-10-29T23:00:00Z',
+ ],
+ ],
+ [
+ 'name' => 'EndTime',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The end of the time range to query.'."\n"
+ ."\n"
+ .'Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC. If the value of the seconds place is not 00, the start time is automatically set to the next minute.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '2019-10-30T08:00:00Z',
+ ],
+ ],
+ [
+ 'name' => 'Period',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The precision of the monitoring data that you want to obtain. Valid values: 60, 300, 1200, 3600, and 14400. Default value: 60. Unit: seconds.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '60',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'Code' => [
+ 'description' => 'The returned service code. A value of 0 indicates that the operation was successful.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '0',
+ ],
+ 'MonitorData' => [
+ 'type' => 'object',
+ 'itemNode' => true,
+ 'properties' => [
+ 'InstanceMonitorData' => [
+ 'description' => 'The set of InstanceMonitorDataType data.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'CPU' => [
+ 'description' => 'The vCPU usage of the instance, which is raw data. For example, a value of 0.02 indicates that the usage is 2%.'."\n",
+ 'type' => 'string',
+ 'example' => '0.02',
+ ],
+ 'InstanceId' => [
+ 'description' => 'The ID of the instance.'."\n",
+ 'type' => 'string',
+ 'example' => 'yourInstance ID',
+ ],
+ 'Memory' => [
+ 'description' => 'This parameter is not yet supported.'."\n",
+ 'type' => 'string',
+ 'example' => 'Not currently supported'."\n",
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'RequestId' => [
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => 'C8B26B44-0189-443E-9816-D951F59623A9',
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'MissingParameter',
+ 'errorMessage' => 'The input parameters that is mandatory for processing this request is not supplied.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": 0,\\n \\"MonitorData\\": {\\n \\"InstanceMonitorData\\": [\\n {\\n \\"CPU\\": \\"0.02\\",\\n \\"InstanceId\\": \\"yourInstance ID\\",\\n \\"Memory\\": \\"暂不支持\\"\\n }\\n ]\\n },\\n \\"RequestId\\": \\"C8B26B44-0189-443E-9816-D951F59623A9\\"\\n}","errorExample":""},{"type":"xml","example":"<RequestId>C8B26B44-0189-443E-9816-D951F59623A9</RequestId>\\n<MonitorData>\\n <InstanceMonitorData>\\n <InstanceId>yourInstance ID</InstanceId>\\n <Memory>暂不支持</Memory>\\n <CPU>0.02</CPU>\\n </InstanceMonitorData>\\n</MonitorData>\\n<Code>0</Code>","errorExample":""}]',
+ 'title' => 'DescribeInstanceMonitorData',
+ 'summary' => 'Queries the vCPU and memory usage of an instance.',
+ 'requestParamsDescription' => ' ',
+ 'responseParamsDescription' => ' ',
+ 'extraInfo' => ' ',
+ ],
+ 'DescribeInstanceTypes' => [
+ 'summary' => 'Queries the specifications of instance types.',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'systemTags' => [
+ 'operationType' => 'get',
+ ],
+ 'parameters' => [],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'Code' => [
+ 'description' => 'The status code. If the request is successful, 0 is returned. If the request fails, a non-zero error code is returned.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '0',
+ ],
+ 'InstanceTypes' => [
+ 'type' => 'object',
+ 'itemNode' => true,
+ 'properties' => [
+ 'InstanceType' => [
+ 'description' => 'Details about the instance types.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'Specification list information.',
+ 'type' => 'object',
+ 'properties' => [
+ 'CpuCoreCount' => [
+ 'description' => 'The number of vCPUs.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '2',
+ ],
+ 'InstanceTypeId' => [
+ 'description' => 'This parameter is unavailable.'."\n",
+ 'type' => 'string',
+ 'example' => 'This parameter is not needed temporarily.'."\n",
+ ],
+ 'InstanceTypeName' => [
+ 'description' => 'The name of the instance type.'."\n",
+ 'type' => 'string',
+ 'example' => 'ens.xxx.small',
+ ],
+ 'MemorySize' => [
+ 'description' => 'The memory size. Unit: MB.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '8192',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'RequestId' => [
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => 'D452D190-BADF-5D09-910D-599B96D42AAA',
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'MissingParameter',
+ 'errorMessage' => 'The input parameter domainName that is mandatory for processing this request is not supplied.',
+ ],
+ [
+ 'errorCode' => 'InstanceIdNotFound',
+ 'errorMessage' => 'The input parameter instancdId that is not found.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ [
+ 'errorCode' => 'CallInterface',
+ 'errorMessage' => 'Call Interface Happen Error.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Code\\": 0,\\n \\"InstanceTypes\\": {\\n \\"InstanceType\\": [\\n {\\n \\"CpuCoreCount\\": 2,\\n \\"InstanceTypeId\\": \\"此参数暂时不用。\\",\\n \\"InstanceTypeName\\": \\"ens.xxx.small\\",\\n \\"MemorySize\\": 8192\\n }\\n ]\\n },\\n \\"RequestId\\": \\"D452D190-BADF-5D09-910D-599B96D42AAA\\"\\n}","type":"json"}]',
+ 'title' => 'DescribeInstanceTypes',
+ ],
+ 'DescribeInstanceVncUrl' => [
+ 'summary' => 'Queries the Virtual Network Computing (VNC) URL of an Edge Node Service (ENS) instance.',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'get',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'InstanceId',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '实例ID。',
+ 'description' => 'The ID of the instance'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'i-5bp1hzoinajzkh91h****',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => '请求ID。',
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E',
+ ],
+ 'VncUrl' => [
+ 'title' => '管理终端Url。',
+ 'description' => 'The URL of the VNC management terminal.'."\n",
+ 'type' => 'string',
+ 'example' => 'wss%3A%2F%2Fhz01-vncproxy.aliyun.com%2Fwebsockify%2F%3Fs%3DDvh%252FIA%252BYc73gWO48cBx2gBxUDVzaAnSKr74pq30mzqUYgeUMcB%252FbkNixDxdEA996',
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'ens.interface.error',
+ 'errorMessage' => 'Failed to call API.',
+ ],
+ [
+ 'errorCode' => 'InvalidInstanceType.NotSupported',
+ 'errorMessage' => 'The specified InstanceType is not Supported.',
+ ],
+ [
+ 'errorCode' => 'IncorrectInstanceStatus',
+ 'errorMessage' => 'The current status of the instance does not support this operation.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E\\",\\n \\"VncUrl\\": \\"wss%3A%2F%2Fhz01-vncproxy.aliyun.com%2Fwebsockify%2F%3Fs%3DDvh%252FIA%252BYc73gWO48cBx2gBxUDVzaAnSKr74pq30mzqUYgeUMcB%252FbkNixDxdEA996\\"\\n}","type":"json"}]',
+ 'title' => 'DescribeInstanceVncUrl',
+ ],
+ 'DescribeCreatePrePaidInstanceResult' => [
+ 'summary' => 'Queries the results of creating an instance.',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'systemTags' => [
+ 'operationType' => 'get',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'InstanceId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the instance. You can call the CreateIntance operation to create an instance.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'i-6ecpqvkicnchxccozrp****',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'InstanceCreateResult' => [
+ 'description' => 'Returned results of creating an instance.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'InstanceCreateStatus' => [
+ 'description' => 'The status of the instance creation.'."\n"
+ ."\n"
+ .'* Accepted'."\n"
+ .'* Creating'."\n"
+ .'* Failed'."\n"
+ .'* Successed'."\n",
+ 'type' => 'string',
+ 'example' => 'Successed',
+ ],
+ 'InstanceId' => [
+ 'description' => 'The ID of the instance.'."\n",
+ 'type' => 'string',
+ 'example' => 'i-6ecpqvkicnchxccozrpxxxx',
+ ],
+ ],
+ ],
+ 'RequestId' => [
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => 'AAE90880-4970-4D81-A534-A6C0F3631F74',
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'MissingParameter',
+ 'errorMessage' => 'The input parameter that is mandatory for processing this request is not supplied.',
+ ],
+ [
+ 'errorCode' => 'InstanceIdNotFound',
+ 'errorMessage' => 'The input parameter instancdId that is not found.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter',
+ 'errorMessage' => 'The input parameter is Invalid.',
+ ],
+ [
+ 'errorCode' => 'StockNotEnough',
+ 'errorMessage' => 'The specified configuration is unavailable. Reconfigure and try again.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ [
+ 'errorCode' => 'CallInterface',
+ 'errorMessage' => 'Call Interface Happen Error.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"InstanceCreateResult\\": {\\n \\"InstanceCreateStatus\\": \\"Successed\\",\\n \\"InstanceId\\": \\"i-6ecpqvkicnchxccozrpxxxx\\"\\n },\\n \\"RequestId\\": \\"AAE90880-4970-4D81-A534-A6C0F3631F74\\"\\n}","errorExample":""},{"type":"xml","example":"<DescribeCreatePrePaidInstanceResultResponse>\\n<InstanceCreateResult>\\n <InstanceId>i-6ecpqvkicnchxccozrpxxxx</InstanceId>\\n <InstanceCreateStatus>Successed</InstanceCreateStatus>\\n</InstanceCreateResult>\\n<RequestId>AAE90880-4970-4D81-A534-A6C0F3631F74</RequestId>\\n</DescribeCreatePrePaidInstanceResultResponse>\\n","errorExample":""}]',
+ 'title' => 'DescribeCreatePrePaidInstanceResult',
+ 'requestParamsDescription' => ' ',
+ 'responseParamsDescription' => ' ',
+ 'extraInfo' => ' ',
+ ],
+ 'CreateImage' => [
+ 'summary' => 'Creates an image from an instance.',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'readAndWrite',
+ 'systemTags' => [
+ 'operationType' => 'create',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '921',
+ 'abilityTreeNodes' => [
+ 'FEATUREens10C7IY',
+ ],
+ 'tenantRelevance' => 'tenant',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'InstanceId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the instance.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'i-5rr1bnyrc4tswr8cq3w6y****',
+ ],
+ ],
+ [
+ 'name' => 'ImageName',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The name of the image. The name must be 2 to 128 characters in length. The name can contain letters, digits, colons (:), underscores (\\_), and hyphens (-). It must start with a letter but cannot start with `http://` or `https://`. The name can contain letters, digits, colons (:), underscores (\\_), and hyphens (-).'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'ImageName',
+ ],
+ ],
+ [
+ 'name' => 'DeleteAfterImageUpload',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'Specifies whether to automatically release the instance after the image is packaged and uploaded. Only image builders are supported. Default value: false. Valid values:'."\n"
+ ."\n"
+ .'* true: The image is released when the instance is released.'."\n"
+ .'* false: The image is retained when the instance is released.'."\n"
+ .'* If you leave this property empty, false is used by default.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'false',
+ 'default' => 'true',
+ 'enum' => [
+ 'true',
+ 'false',
+ ],
+ ],
+ ],
+ [
+ 'name' => 'SnapshotId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the snapshot.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 's-bp67acfmxazb4p****',
+ ],
+ ],
+ [
+ 'name' => 'TargetOSSRegionId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The region of the destination OSS bucket where the image is to be stored.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'cn-beijing',
+ 'enum' => [
+ 'cn-beijing',
+ 'ap-southeast-1',
+ 'vietnam',
+ 'thailand',
+ ],
+ ],
+ ],
+ [
+ 'name' => 'WithDataDisks',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'Specifies whether to include data disk snapshots in the custom image.'."\n",
+ 'type' => 'boolean',
+ 'required' => false,
+ 'example' => 'Value true false (default)'."\n",
+ 'default' => 'false',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '8BEF0D72-9901-5D43-B7D3-8B42AC26C516',
+ ],
+ 'Code' => [
+ 'description' => 'The returned service code. 0 indicates that the request was successful.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '0',
+ ],
+ 'ImageId' => [
+ 'title' => '镜像ID',
+ 'description' => 'The ID of the image.'."\n",
+ 'type' => 'string',
+ 'example' => 'm-5xxgg',
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'MissingParameter',
+ 'errorMessage' => 'The input parameters that is mandatory for processing this request is not supplied.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'CallInterface',
+ 'errorMessage' => 'Call Interface Happen Error.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ [
+ 'errorCode' => 'QuotaExceed',
+ 'errorMessage' => 'The custom image quota has been used up.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"8BEF0D72-9901-5D43-B7D3-8B42AC26C516\\",\\n \\"Code\\": 0,\\n \\"ImageId\\": \\"m-5xxgg\\"\\n}","errorExample":""},{"type":"xml","example":"<CreateImageResponse>\\n <RequestId>8BEF0D72-9901-5D43-B7D3-8B42AC26C516</RequestId>\\n <Code>0</Code>\\n <ImageId>m-5xxgg</ImageId>\\n</CreateImageResponse>","errorExample":""}]',
+ 'title' => 'CreateImage',
+ ],
+ 'ExportImage' => [
+ 'summary' => 'Exports a custom image to an Object Storage Service (OSS) bucket in the same region.',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'abilityTreeCode' => '3679',
+ 'abilityTreeNodes' => [
+ 'FEATUREensU96TR9',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'ImageId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the image.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'm-5ragaz3s74b7go8ks7jp9****',
+ ],
+ ],
+ [
+ 'name' => 'OSSBucket',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The OSS bucket to which you want to export the image.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'whxyl****',
+ ],
+ ],
+ [
+ 'name' => 'OSSRegionId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The region ID.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'cn-beijing',
+ 'enum' => [
+ 'cn-beijing',
+ ],
+ ],
+ ],
+ [
+ 'name' => 'OSSPrefix',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The prefix of the object as which you want to store the image in the OSS bucket. The prefix must be 1 to 30 characters in length and can contain digits and letters.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'dataCenter/972****/',
+ 'maxLength' => 30,
+ ],
+ ],
+ [
+ 'name' => 'RoleName',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The name of the Resource Access Management (RAM) role.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'AliyunMNSLoggingRole',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'ExportedImageURL' => [
+ 'description' => 'The URL that points to the exported image.'."\n",
+ 'type' => 'string',
+ 'example' => 'http://oss.url',
+ ],
+ 'RequestId' => [
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => '43A426AD-3F2E-5DD9-9C08-D4DBDCA48D85',
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'MissingParameter',
+ 'errorMessage' => 'The input parameter that is mandatory for processing this request is not supplied.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter',
+ 'errorMessage' => 'The errorMessage is %s. Please check it again.',
+ ],
+ [
+ 'errorCode' => 'InvalidSecurityGroupId.NotFound',
+ 'errorMessage' => 'The specified SecurityGroupId does not exist.',
+ ],
+ [
+ 'errorCode' => 'SecurityGroupRuleConflict.Duplicated',
+ 'errorMessage' => 'The SecurityGroup rule already exists.',
+ ],
+ [
+ 'errorCode' => 'AuthorizationLimitExceed',
+ 'errorMessage' => 'The limit of authorization records in the security group reaches.',
+ ],
+ [
+ 'errorCode' => 'ens.interface.error',
+ 'errorMessage' => 'An error occurred while calling the API.',
+ ],
+ [
+ 'errorCode' => 'CallInterface',
+ 'errorMessage' => 'Call Interface Happen Error.',
+ ],
+ [
+ 'errorCode' => 'InvalidImageType.NotSupported',
+ 'errorMessage' => 'The specified image type is not supported.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"ExportedImageURL\\": \\"http://oss.url\\",\\n \\"RequestId\\": \\"43A426AD-3F2E-5DD9-9C08-D4DBDCA48D85\\"\\n}","errorExample":""},{"type":"xml","example":"<ExportImageResponse>\\n <ExportedImageURL>http://oss.url</ExportedImageURL>\\n <RequestId>43A426AD-3F2E-5DD9-9C08-D4DBDCA48D85</RequestId>\\n</ExportImageResponse>","errorExample":""}]',
+ 'title' => 'ExportImage',
+ ],
+ 'DescribeSelfImages' => [
+ 'summary' => 'Queries custom images.',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'systemTags' => [
+ 'operationType' => 'list',
+ 'abilityTreeCode' => '2061',
+ 'abilityTreeNodes' => [
+ 'FEATUREens10C7IY',
+ ],
+ 'tenantRelevance' => 'tenant',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'PageNumber',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The page number to return. Pages start from page **1**. Default value: **1**.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'example' => '1',
+ ],
+ ],
+ [
+ 'name' => 'PageSize',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The number of entries per page.'."\n"
+ ."\n"
+ .'Default value: 10.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'example' => '10',
+ ],
+ ],
+ [
+ 'name' => 'ImageId',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '镜像ID,支持模糊查询。',
+ 'description' => 'The ID of the image. Fuzzy search is supported.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'centos_6_08_64_20G_a****',
+ ],
+ ],
+ [
+ 'name' => 'ImageName',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '镜像名称,支持模糊查询。',
+ 'description' => 'The name of the image. Fuzzy search is supported.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'centos_6_08_64_20G_a****',
+ ],
+ ],
+ [
+ 'name' => 'SnapshotId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the snapshot.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'sp-5xg63dmojc1oaa3pk****',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'Code' => [
+ 'description' => 'The HTTP status code that is returned.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '0',
+ ],
+ 'Images' => [
+ 'type' => 'object',
+ 'itemNode' => true,
+ 'properties' => [
+ 'Image' => [
+ 'description' => 'The image information.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'Architecture' => [
+ 'description' => 'The image architecture. Valid values:'."\n"
+ ."\n"
+ .'* i386'."\n"
+ .'* x86\\_64'."\n",
+ 'type' => 'string',
+ 'example' => 'x86_64',
+ ],
+ 'CreationTime' => [
+ 'description' => 'The image creation time. The time follows the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time is displayed in UTC.'."\n",
+ 'type' => 'string',
+ 'example' => '2017-12-08T12:10:03Z',
+ ],
+ 'ImageId' => [
+ 'description' => 'The ID of the image.'."\n",
+ 'type' => 'string',
+ 'example' => 'centos_6_08_64_20G_a****',
+ ],
+ 'ImageName' => [
+ 'description' => 'The name of the image.'."\n",
+ 'type' => 'string',
+ 'example' => 'centos_6_08_64_20G_a****',
+ ],
+ 'ImageOwnerAlias' => [
+ 'description' => 'The source of the image. Valid values:'."\n"
+ ."\n"
+ .'* **others**: a custom image that is shared by other Alibaba Cloud accounts.'."\n"
+ .'* **self**: your own custom image.'."\n",
+ 'type' => 'string',
+ 'example' => 'system',
+ ],
+ 'ImageSize' => [
+ 'description' => 'The size of the image. Unit: GiB.'."\n",
+ 'type' => 'string',
+ 'example' => '20',
+ ],
+ 'InstanceId' => [
+ 'description' => 'The ID of the instance.'."\n",
+ 'type' => 'string',
+ 'example' => 'i-5iqczfxps7csjrxeca****',
+ ],
+ 'OsVersion' => [
+ 'description' => 'The operating system version.'."\n",
+ 'type' => 'string',
+ 'example' => '7.2',
+ ],
+ 'Platform' => [
+ 'description' => 'The platform.'."\n"
+ ."\n"
+ .'* centos'."\n"
+ .'* ubuntu'."\n"
+ .'* alios'."\n"
+ .'* debian'."\n"
+ .'* rhel'."\n"
+ .'* windows'."\n",
+ 'type' => 'string',
+ 'example' => 'centos',
+ ],
+ 'Status' => [
+ 'description' => 'The state of the image.'."\n"
+ ."\n"
+ .'* Creating.'."\n"
+ .'* Packing.'."\n"
+ .'* Uploading.'."\n"
+ .'* Pack_failed.'."\n"
+ .'* Upload_failed.'."\n"
+ .'* Available: Only images in the Available state can be used and operated.'."\n"
+ .'* Unavailable.'."\n"
+ .'* Copying.'."\n",
+ 'type' => 'string',
+ 'example' => 'Creating',
+ ],
+ 'ComputeType' => [
+ 'description' => 'Computing type. ens_vm/ens: x86 computing. bare_metal: x86 bare machine or x86 bare metal. arm_vm: ARM computing. arm_bare_metal: ARM bare machine or ARM bare metal. pcfarm: heterogeneous computing.'."\n",
+ 'type' => 'string',
+ 'example' => 'ens_vm',
+ ],
+ 'SnapshotId' => [
+ 'description' => 'The snapshot ID.'."\n",
+ 'type' => 'string',
+ 'example' => 'sp-5yt3bdedxzdz6t6uuw****',
+ ],
+ 'DiskDeviceMappings' => [
+ 'type' => 'object',
+ 'itemNode' => true,
+ 'properties' => [
+ 'DiskDeviceMapping' => [
+ 'description' => 'The mappings between the disk and the snapshot in the image.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The mappings between the disk and the snapshot in the image.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'Type' => [
+ 'description' => 'The type of the disk. Valid values:'."\n"
+ ."\n"
+ .'* system: system disk.'."\n"
+ .'* data: data disk.'."\n",
+ 'type' => 'string',
+ 'example' => 'Data',
+ ],
+ 'Size' => [
+ 'description' => 'The size of the disk. Unit: GiB.'."\n",
+ 'type' => 'string',
+ 'example' => '100',
+ ],
+ 'Format' => [
+ 'description' => 'The format of the image.'."\n",
+ 'type' => 'string',
+ 'example' => 'The format of the image.'."\n"
+ .'raw'."\n"
+ .'qcow2',
+ ],
+ 'imageId' => [
+ 'description' => 'The ID of image.',
+ 'type' => 'string',
+ 'example' => 'i-test',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'ImageStorageSize' => [
+ 'description' => 'The size of the image storage.'."\n",
+ 'type' => 'string',
+ 'example' => '400',
+ ],
+ 'RegionId' => [
+ 'description' => 'The ID of the region.'."\n",
+ 'type' => 'string',
+ 'example' => 'cn-shenzhen',
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ ],
+ 'RequestId' => [
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => 'A8B8EB73-B4FD-4262-8EF6-680DF39C9BA0',
+ ],
+ 'PageSize' => [
+ 'description' => 'The number of entries per page. Maximum value: 50. Default value: 10.'."\n",
+ 'type' => 'string',
+ 'example' => '10',
+ ],
+ 'PageNumber' => [
+ 'description' => 'The page number.'."\n",
+ 'type' => 'string',
+ 'example' => '1',
+ ],
+ 'TotalCount' => [
+ 'description' => 'The total number of entries returned.'."\n",
+ 'type' => 'string',
+ 'example' => '1',
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'MissingParameter',
+ 'errorMessage' => 'The input parameters that is mandatory for processing this request is not supplied.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": 0,\\n \\"Images\\": {\\n \\"Image\\": [\\n {\\n \\"Architecture\\": \\"x86_64\\",\\n \\"CreationTime\\": \\"2017-12-08T12:10:03Z\\",\\n \\"ImageId\\": \\"centos_6_08_64_20G_a****\\",\\n \\"ImageName\\": \\"centos_6_08_64_20G_a****\\",\\n \\"ImageOwnerAlias\\": \\"self\\",\\n \\"ImageSize\\": \\"20\\",\\n \\"InstanceId\\": \\"i-5iqczfxps7csjrxeca****\\",\\n \\"OsVersion\\": \\"7.2\\",\\n \\"Platform\\": \\"centos\\",\\n \\"Status\\": \\"Creating\\",\\n \\"ComputeType\\": \\"ens_vm\\",\\n \\"SnapshotId\\": \\"sp-5yt3bdedxzdz6t6uuw****\\",\\n \\"DiskDeviceMappings\\": {\\n \\"DiskDeviceMapping\\": [\\n {\\n \\"Type\\": \\"Data\\",\\n \\"Size\\": \\"100\\",\\n \\"Format\\": \\"镜像格式。\\\\nraw\\\\nqcow2\\",\\n \\"imageId\\": \\"i-test\\"\\n }\\n ]\\n },\\n \\"ImageStorageSize\\": \\"400\\",\\n \\"RegionId\\": \\"cn-wulanchabu\\"\\n }\\n ]\\n },\\n \\"RequestId\\": \\"A8B8EB73-B4FD-4262-8EF6-680DF39C9BA0\\",\\n \\"PageSize\\": \\"10\\",\\n \\"PageNumber\\": \\"1\\",\\n \\"TotalCount\\": \\"1\\"\\n}","errorExample":""},{"type":"xml","example":"<DescribeSelfImagesResponse>\\n <Code>0</Code>\\n <Images>\\n <Architecture>x86_64</Architecture>\\n <CreationTime>2017-12-08T12:10:03Z</CreationTime>\\n <ImageId>centos_6_08_64_20G_a****</ImageId>\\n <ImageName>centos_6_08_64_20G_a****</ImageName>\\n <ImageOwnerAlias>system</ImageOwnerAlias>\\n <ImageSize>20</ImageSize>\\n <InstanceId>i-5iqczfxps7csjrxeca****</InstanceId>\\n <OsVersion>7.2</OsVersion>\\n <Platform>centos</Platform>\\n <Status>Creating</Status>\\n </Images>\\n <RequestId>A8B8EB73-B4FD-4262-8EF6-680DF39C9BA0</RequestId>\\n</DescribeSelfImagesResponse>","errorExample":""}]',
+ 'title' => 'DescribeSelfImages',
+ ],
+ 'DeleteImage' => [
+ 'summary' => 'Deletes a custom image.',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'systemTags' => [
+ 'operationType' => 'delete',
+ 'abilityTreeCode' => '2550',
+ 'abilityTreeNodes' => [
+ 'FEATUREens10C7IY',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'ImageId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the image. You can specify only one image ID.'."\n"
+ ."\n"
+ .'You can delete only custom images that you created.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'm-5taesrgwpo9zqj9cjqu792****',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'Code' => [
+ 'description' => 'The returned service code. A value of 0 indicates that the operation was successful.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '0',
+ ],
+ 'RequestId' => [
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => '0D94920B-0349-5097-A57F-31876405F2E5',
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'MissingParameter',
+ 'errorMessage' => 'The input parameters that is mandatory for processing this request is not supplied.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'Forbidden.DelerrorteImage',
+ 'errorMessage' => 'The image cannot be deleted when used by instance.',
+ ],
+ [
+ 'errorCode' => 'Error.DeleteImage',
+ 'errorMessage' => 'The image cannot be deleted when used by instance.',
+ ],
+ [
+ 'errorCode' => 'IncorrectStatus.Image',
+ 'errorMessage' => 'The current status of the image does not support this operation.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": 0,\\n \\"RequestId\\": \\"0D94920B-0349-5097-A57F-31876405F2E5\\"\\n}","errorExample":""},{"type":"xml","example":"<DeleteImageResponse>\\n <Code>0</Code>\\n <RequestId>0D94920B-0349-5097-A57F-31876405F2E5</RequestId>\\n</DeleteImageResponse>","errorExample":""}]',
+ 'title' => 'DeleteImage',
+ ],
+ 'ModifyImageAttribute' => [
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'systemTags' => [
+ 'operationType' => 'update',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'ImageId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the image.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'm-5t4xwkfkbs0uxv0kymdb6uip7',
+ ],
+ ],
+ [
+ 'name' => 'ImageName',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The name of the image.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'Image Name'."\n",
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'Code' => [
+ 'description' => 'The service code. 0 is returned for a successful request. An error code is returned for a failed request.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '0',
+ ],
+ 'RequestId' => [
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => 'AC66B8F3-0B0A-5FB1-9EA2-DC03B2CD5B04',
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'MissingParameter',
+ 'errorMessage' => 'The input parameters that is mandatory for processing this request is not supplied.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Code\\": 0,\\n \\"RequestId\\": \\"AC66B8F3-0B0A-5FB1-9EA2-DC03B2CD5B04\\"\\n}","type":"json"}]',
+ 'title' => 'ModifyImageAttribute',
+ 'summary' => 'Modifies the image attributes.',
+ ],
+ 'ModifyImageSharePermission' => [
+ 'summary' => 'Shares or unshares an image.',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'systemTags' => [
+ 'operationType' => 'update',
+ 'abilityTreeCode' => '4386',
+ 'abilityTreeNodes' => [
+ 'FEATUREensW6UXP8',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'ImageId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the image. You can specify only one image ID. Custom images and public images are supported.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'm-5s7qotzavwbrnzaqh4unm****',
+ ],
+ ],
+ [
+ 'name' => 'AddAccounts',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the Alibaba Cloud account with which you want to share the image. You can specify multiple Alibaba Cloud IDs. Separate multiple IDs with commas (,).'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '1122334455**',
+ ],
+ ],
+ [
+ 'name' => 'RemoveAccounts',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the Alibaba Cloud account from which you want to unshare the image. You can specify only one Alibaba Cloud account ID.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '113355**',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => '701B3BB9-9190-544D-90D1-328B0527380C',
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'MissingParameter',
+ 'errorMessage' => 'The input parameter that is mandatory for processing this request is not supplied.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter',
+ 'errorMessage' => 'The errorMessage is %s. Please check it again.',
+ ],
+ [
+ 'errorCode' => 'ens.interface.error',
+ 'errorMessage' => 'An error occurred while calling the API.',
+ ],
+ [
+ 'errorCode' => 'CallInterface',
+ 'errorMessage' => 'Call Interface Happen Error.',
+ ],
+ [
+ 'errorCode' => 'InvalidImageType.NotSupported',
+ 'errorMessage' => 'The specified image type is not supported.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"701B3BB9-9190-544D-90D1-328B0527380C\\"\\n}","errorExample":""},{"type":"xml","example":"<ModifyImageSharePermissionResponse>\\n <RequestId>701B3BB9-9190-544D-90D1-328B0527380C</RequestId>\\n</ModifyImageSharePermissionResponse>","errorExample":""}]',
+ 'title' => 'ModifyImageSharePermission',
+ ],
+ 'DescribeImages' => [
+ 'summary' => 'Queries available images.',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'systemTags' => [
+ 'operationType' => 'list',
+ 'abilityTreeCode' => '3619',
+ 'abilityTreeNodes' => [
+ 'FEATUREensU96TR9',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'EnsRegionId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the Edge Node Service (ENS) node.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'cn-dalian-unicom',
+ ],
+ ],
+ [
+ 'name' => 'ImageId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the image. You can specify only one image ID.'."\n"
+ ."\n"
+ .'Custom images and public images are supported.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'm-5qm2r6xo7njrpdkx04q1o****',
+ ],
+ ],
+ [
+ 'name' => 'Status',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'This parameter is unavailable.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'This parameter is not currently in use.'."\n",
+ ],
+ ],
+ [
+ 'name' => 'ImageName',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The name of the custom image. The name must be 2 to 128 characters in length The name must start with a letter and cannot start with `acs:` or `aliyun`. The name cannot contain `http://` or `https://`. The name can contain letters, digits, periods (.), colons (:), underscores (\\_), and hyphens (-).'."\n"
+ ."\n"
+ .'By default, this parameter is left empty, which indicates that the original name is retained.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'centos_6_08_64_20G_a****',
+ ],
+ ],
+ [
+ 'name' => 'PageNumber',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The page number. Pages start from page **1**.'."\n"
+ ."\n"
+ .'Default value: **1**.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '1',
+ ],
+ ],
+ [
+ 'name' => 'PageSize',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The number of entries per page. Maximum value: **50**.'."\n"
+ ."\n"
+ .'Default value: **10**.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '50',
+ ],
+ ],
+ [
+ 'name' => 'SnapshotId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the snapshot.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'mock-clone_snapshot_id',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'Code' => [
+ 'description' => 'The returned service code. 0 indicates that the request was successful.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '0',
+ ],
+ 'Images' => [
+ 'type' => 'object',
+ 'itemNode' => true,
+ 'properties' => [
+ 'Image' => [
+ 'description' => 'The information about the images.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The information about the image.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'Architecture' => [
+ 'description' => 'The architecture of the image. Example: **x86\\_64**.'."\n",
+ 'type' => 'string',
+ 'example' => 'x86_64',
+ ],
+ 'CreationTime' => [
+ 'description' => 'The time when the image was created. The time follows the ISO 8601 standard.'."\n",
+ 'type' => 'string',
+ 'example' => '2017-12-08T12:10:03Z',
+ ],
+ 'ImageId' => [
+ 'description' => 'The ID of the image.'."\n",
+ 'type' => 'string',
+ 'example' => 'centos_6_08_64_20G_alibase_2017****',
+ ],
+ 'ImageName' => [
+ 'description' => 'The name of the image.'."\n",
+ 'type' => 'string',
+ 'example' => 'Ubuntu_16.04',
+ ],
+ 'ImageOwnerAlias' => [
+ 'description' => 'The source of the image. Valid values:'."\n"
+ ."\n"
+ .'* system: Alibaba Cloud public images'."\n"
+ .'* self: your custom images'."\n"
+ .'* others: shared images from other Alibaba Cloud accounts, or community images published by other Alibaba Cloud accounts'."\n",
+ 'type' => 'string',
+ 'example' => 'system',
+ ],
+ 'ImageSize' => [
+ 'description' => 'The size of the image. Unit: GiB.'."\n",
+ 'type' => 'string',
+ 'example' => '40',
+ ],
+ 'Platform' => [
+ 'description' => 'The operating system type of the image. Valid values:'."\n"
+ ."\n"
+ .'* Linux'."\n"
+ .'* Windows'."\n",
+ 'type' => 'string',
+ 'example' => 'centos',
+ ],
+ 'SnapshotId' => [
+ 'description' => 'The ID of the snapshot.'."\n",
+ 'type' => 'string',
+ 'example' => 'mock-clone_snapshot_id',
+ ],
+ 'DiskDeviceMappings' => [
+ 'type' => 'object',
+ 'itemNode' => true,
+ 'properties' => [
+ 'DiskDeviceMapping' => [
+ 'description' => 'The mappings between the disk and the snapshot in the image.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The mappings between the disk and the snapshot in the image.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'Type' => [
+ 'description' => 'The type of the disk. Valid values:'."\n"
+ ."\n"
+ .'* system: system disk.'."\n"
+ .'* data: data disk.'."\n",
+ 'type' => 'string',
+ 'example' => 'Data',
+ ],
+ 'Size' => [
+ 'description' => 'The size of the disk. Unit: GiB.'."\n",
+ 'type' => 'string',
+ 'example' => '100',
+ ],
+ 'Format' => [
+ 'description' => 'The format of the image.'."\n",
+ 'type' => 'string',
+ 'example' => 'The format of the image.'."\n"
+ .'raw'."\n"
+ .'qcow2',
+ ],
+ 'imageId' => [
+ 'description' => 'The ID of image.',
+ 'type' => 'string',
+ 'example' => 'i-test',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'RegionId' => [
+ 'description' => 'The region ID.'."\n",
+ 'type' => 'string',
+ 'example' => 'cn-qingdao',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'PageNumber' => [
+ 'description' => 'The page number.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '1',
+ ],
+ 'PageSize' => [
+ 'description' => 'The number of entries per page.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '10',
+ ],
+ 'RequestId' => [
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => '8331AA01-C16D-5481-BB47-D19CEBAA811E',
+ ],
+ 'TotalCount' => [
+ 'description' => 'The total number of images.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '4',
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'MissingParameter',
+ 'errorMessage' => 'The input parameters that is mandatory for processing this request is not supplied.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": 0,\\n \\"Images\\": {\\n \\"Image\\": [\\n {\\n \\"Architecture\\": \\"x86_64\\",\\n \\"CreationTime\\": \\"2017-12-08T12:10:03Z\\",\\n \\"ImageId\\": \\"centos_6_08_64_20G_alibase_2017****\\",\\n \\"ImageName\\": \\"Ubuntu_16.04\\",\\n \\"ImageOwnerAlias\\": \\"system\\",\\n \\"ImageSize\\": \\"40\\",\\n \\"Platform\\": \\"centos\\",\\n \\"SnapshotId\\": \\"mock-clone_snapshot_id\\",\\n \\"DiskDeviceMappings\\": {\\n \\"DiskDeviceMapping\\": [\\n {\\n \\"Type\\": \\"Data\\",\\n \\"Size\\": \\"100\\",\\n \\"Format\\": \\"镜像格式。\\\\nraw\\\\nqcow2\\",\\n \\"imageId\\": \\"i-test\\"\\n }\\n ]\\n },\\n \\"RegionId\\": \\"cn-beijing\\"\\n }\\n ]\\n },\\n \\"PageNumber\\": 1,\\n \\"PageSize\\": 10,\\n \\"RequestId\\": \\"8331AA01-C16D-5481-BB47-D19CEBAA811E\\",\\n \\"TotalCount\\": 4\\n}","errorExample":""},{"type":"xml","example":"<DescribeImagesResponse>\\n <Code>0</Code>\\n <Images>\\n <Architecture>x86_64</Architecture>\\n <CreationTime>2017-12-08T12:10:03Z</CreationTime>\\n <ImageId>centos_6_08_64_20G_alibase_2017****</ImageId>\\n <ImageName>Ubuntu_16.04</ImageName>\\n <ImageOwnerAlias>system</ImageOwnerAlias>\\n <ImageSize>40</ImageSize>\\n <Platform>centos</Platform>\\n <SnapshotId>mock-clone_snapshot_id</SnapshotId>\\n </Images>\\n <PageNumber>1</PageNumber>\\n <PageSize>10</PageSize>\\n <RequestId>8331AA01-C16D-5481-BB47-D19CEBAA811E</RequestId>\\n <TotalCount>4</TotalCount>\\n</DescribeImagesResponse>","errorExample":""}]',
+ 'title' => 'DescribeImages',
+ ],
+ 'DescribeImageInfos' => [
+ 'summary' => 'Queries available images.',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '4371',
+ 'abilityTreeNodes' => [
+ 'FEATUREens10C7IY',
+ ],
+ 'tenantRelevance' => 'tenant',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'OsType',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The operating system (OS). You can specify only one OS in a request. If you do not specify a value for this parameter, images for all supported OSs are queried. Valid values:'."\n"
+ ."\n"
+ .'* linux'."\n"
+ .'* windows'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'linux',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'Code' => [
+ 'description' => 'The HTTP status code that is returned.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '0',
+ ],
+ 'Images' => [
+ 'type' => 'object',
+ 'itemNode' => true,
+ 'properties' => [
+ 'Image' => [
+ 'description' => 'The information about images.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The information about the image.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'Description' => [
+ 'description' => 'The description of the image.'."\n",
+ 'type' => 'string',
+ 'example' => 'centos_6_08_64_20G_alibase_2017****',
+ ],
+ 'ImageId' => [
+ 'description' => 'The ID of the image.'."\n",
+ 'type' => 'string',
+ 'example' => 'centos_6_08_64_20G_alibase_2017****',
+ ],
+ 'ImageSize' => [
+ 'description' => 'The size of the image. Unit: GiB.'."\n",
+ 'type' => 'string',
+ 'example' => '20',
+ ],
+ 'ImageVersion' => [
+ 'description' => 'The version of the image.'."\n",
+ 'type' => 'string',
+ 'example' => '6.8',
+ ],
+ 'OSName' => [
+ 'description' => 'The type of the image. Valid values: **centos**, **debian**, **ubuntu**, and **windows**.'."\n",
+ 'type' => 'string',
+ 'example' => 'centos',
+ ],
+ 'OSType' => [
+ 'description' => 'The type of the operating system.'."\n",
+ 'type' => 'string',
+ 'example' => 'linux',
+ ],
+ 'ComputeType' => [
+ 'description' => 'The computing type of the image. Valid values:'."\n"
+ ."\n"
+ .'* ens_vm: x86 computing.'."\n"
+ .'* arm_vm: ARM computing.'."\n"
+ .'* bare_metal: x86 bare machine.'."\n"
+ .'* pcfarm: heterogeneous computing.'."\n",
+ 'type' => 'string',
+ 'enumValueTitles' => [
+ 'ens_vm' => '',
+ 'arm_vm' => '',
+ 'bare_metal' => '',
+ 'pcfarm' => '',
+ ],
+ 'example' => 'ens_vm',
+ ],
+ 'DiskDeviceMappings' => [
+ 'type' => 'object',
+ 'itemNode' => true,
+ 'properties' => [
+ 'DiskDeviceMapping' => [
+ 'description' => 'The mappings between disks and snapshots in the image.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The mappings between the disk and the snapshot in the image.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'Type' => [
+ 'description' => 'The type of the disk. Valid values: System and Data.'."\n",
+ 'type' => 'string',
+ 'example' => 'Data',
+ ],
+ 'Size' => [
+ 'description' => 'The size of the image. Unit: GB.'."\n",
+ 'type' => 'string',
+ 'example' => '100',
+ ],
+ 'Format' => [
+ 'description' => 'The format of the image.'."\n",
+ 'type' => 'string',
+ 'example' => 'The format of the image.'."\n"
+ .'raw'."\n"
+ .'qcow2',
+ ],
+ 'imageId' => [
+ 'description' => 'The ID of the image.'."\n",
+ 'type' => 'string',
+ 'example' => 'i-test',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'RegionId' => [
+ 'description' => 'The ID of the region.'."\n",
+ 'type' => 'string',
+ 'example' => 'cn-shenzhen',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'RequestId' => [
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '5568A08C-10A9-47F3-902F-647298B463FB',
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'MissingParameter',
+ 'errorMessage' => 'The input parameter domainName that is mandatory for processing this request is not supplied.',
+ ],
+ [
+ 'errorCode' => 'InstanceIdNotFound',
+ 'errorMessage' => 'The input parameter instancdId that is not found.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'CallInterface',
+ 'errorMessage' => 'Call Interface Happen Error.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": 0,\\n \\"Images\\": {\\n \\"Image\\": [\\n {\\n \\"Description\\": \\"centos_6_08_64_20G_alibase_2017****\\",\\n \\"ImageId\\": \\"centos_6_08_64_20G_alibase_2017****\\",\\n \\"ImageSize\\": \\"20\\",\\n \\"ImageVersion\\": \\"6.8\\",\\n \\"OSName\\": \\"centos\\",\\n \\"OSType\\": \\"linux\\",\\n \\"ComputeType\\": \\"ens_vm\\",\\n \\"DiskDeviceMappings\\": {\\n \\"DiskDeviceMapping\\": [\\n {\\n \\"Type\\": \\"Data\\",\\n \\"Size\\": \\"100\\",\\n \\"Format\\": \\"镜像格式,取值\\\\nraw\\\\nqcow2\\",\\n \\"imageId\\": \\"i-test\\"\\n }\\n ]\\n },\\n \\"RegionId\\": \\"cn-wulanchabu\\"\\n }\\n ]\\n },\\n \\"RequestId\\": \\"5568A08C-10A9-47F3-902F-647298B463FB\\"\\n}","errorExample":""},{"type":"xml","example":"<DescribeImageInfosResponse>\\n <Code>0</Code>\\n <Images>\\n <Description>centos_6_08_64_20G_alibase_2017****</Description>\\n <ImageId>centos_6_08_64_20G_alibase_2017****</ImageId>\\n <ImageSize>20</ImageSize>\\n <ImageVersion>6.8</ImageVersion>\\n <OSName>centos</OSName>\\n <OSType>linux</OSType>\\n <ComputeType>StreamCompute</ComputeType>\\n </Images>\\n <RequestId>5568A08C-10A9-47F3-902F-647298B463FB</RequestId>\\n</DescribeImageInfosResponse>","errorExample":""}]',
+ 'title' => 'DescribeImageInfos',
+ 'requestParamsDescription' => ' ',
+ 'responseParamsDescription' => ' ',
+ 'extraInfo' => ' ',
+ ],
+ 'DescribeImageSharePermission' => [
+ 'summary' => 'Queries the accounts with which you share an image specified by the ImageId parameter.',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'abilityTreeCode' => '18007',
+ 'abilityTreeNodes' => [
+ 'FEATUREensW6UXP8',
+ ],
+ 'tenantRelevance' => 'publicInformation',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'ImageId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the image.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'm-5s7qotzavwbrnzaqh4unm****',
+ ],
+ ],
+ [
+ 'name' => 'PageNumber',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The page number. Pages start from page **1**.'."\n"
+ ."\n"
+ .'Default value: **1**.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '1',
+ 'default' => '1',
+ ],
+ ],
+ [
+ 'name' => 'PageSize',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The number of entries to return on each page. Maximum value: **100**.'."\n"
+ ."\n"
+ .'Default value: **10**.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'maximum' => '100',
+ 'example' => '10',
+ 'default' => '10',
+ ],
+ ],
+ [
+ 'name' => 'AliyunId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the Alibaba Cloud account.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int64',
+ 'required' => false,
+ 'example' => '171710408091****',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'TotalCount' => [
+ 'description' => 'The total number of Alibaba Cloud accounts with which you share the image.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '2',
+ ],
+ 'PageSize' => [
+ 'description' => 'The number of entries per page.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '100',
+ ],
+ 'RequestId' => [
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => 'A44EE357-6174-5E37-A801-48F5790F9ACE',
+ ],
+ 'PageNumber' => [
+ 'description' => 'The page number of the returned page.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '1',
+ ],
+ 'ImageId' => [
+ 'description' => 'The ID of the image.'."\n",
+ 'type' => 'string',
+ 'example' => 'm-5qkf6jv9a0tzd5ipwx5fi****',
+ ],
+ 'Accounts' => [
+ 'type' => 'object',
+ 'itemNode' => true,
+ 'properties' => [
+ 'Account' => [
+ 'description' => 'The account information.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The registered Alibaba Cloud accounts with which you share the image.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'AliyunUid' => [
+ 'description' => 'The Alibaba Cloud account with which you share the image.'."\n",
+ 'type' => 'string',
+ 'example' => '1515285523xxxx',
+ ],
+ ],
+ 'example' => '[{"AliyunId": 197265348438****},]',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'MissingParameter',
+ 'errorMessage' => 'The input parameter that is mandatory for processing this request is not supplied.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter',
+ 'errorMessage' => 'The errorMessage is %s. Please check it again.',
+ ],
+ [
+ 'errorCode' => 'ens.interface.error',
+ 'errorMessage' => 'An error occurred while calling the API.',
+ ],
+ [
+ 'errorCode' => 'CallInterface',
+ 'errorMessage' => 'Call Interface Happen Error.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"TotalCount\\": 2,\\n \\"PageSize\\": 100,\\n \\"RequestId\\": \\"A44EE357-6174-5E37-A801-48F5790F9ACE\\",\\n \\"PageNumber\\": 1,\\n \\"ImageId\\": \\"m-5qkf6jv9a0tzd5ipwx5fi****\\",\\n \\"Accounts\\": {\\n \\"Account\\": [\\n {\\n \\"AliyunUid\\": \\"151528552xxxxx\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<DescribeImageSharePermissionResponse>\\n <TotalCount>2</TotalCount>\\n <PageSize>100</PageSize>\\n <RequestId>A44EE357-6174-5E37-A801-48F5790F9ACE</RequestId>\\n <PageNumber>1</PageNumber>\\n <ImageId>m-5qkf6jv9a0tzd5ipwx5fi****</ImageId>\\n <Accounts>[{\\"AliyunId\\": 197265348438****},]</Accounts>\\n</DescribeImageSharePermissionResponse>","errorExample":""}]',
+ 'title' => 'DescribeImageSharePermission',
+ ],
+ 'DescribeExportImageStatus' => [
+ 'summary' => 'Queries the export status of an image.',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'systemTags' => [
+ 'operationType' => 'get',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'ImageId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the image.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'centos_6_08_64_20G_alibase_****',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'ImageExportStatus' => [
+ 'description' => 'The export status of the image. Valid values:'."\n"
+ ."\n"
+ .'* Exporting'."\n"
+ .'* Exported'."\n"
+ .'* ExportError'."\n"
+ .'* Unexported'."\n",
+ 'type' => 'string',
+ 'example' => 'Exporting',
+ ],
+ 'RequestId' => [
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => '14BBB3A0-3DBE-54F5-AEC8-01D3F6B1EBE2',
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'MissingParameter',
+ 'errorMessage' => 'The input parameter that is mandatory for processing this request is not supplied.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter',
+ 'errorMessage' => 'The errorMessage is %s. Please check it again.',
+ ],
+ [
+ 'errorCode' => 'InvalidSecurityGroupId.NotFound',
+ 'errorMessage' => 'The specified SecurityGroupId does not exist.',
+ ],
+ [
+ 'errorCode' => 'SecurityGroupRuleConflict.Duplicated',
+ 'errorMessage' => 'The SecurityGroup rule already exists.',
+ ],
+ [
+ 'errorCode' => 'AuthorizationLimitExceed',
+ 'errorMessage' => 'The limit of authorization records in the security group reaches.',
+ ],
+ [
+ 'errorCode' => 'ens.interface.error',
+ 'errorMessage' => 'An error occurred while calling the API.',
+ ],
+ [
+ 'errorCode' => 'CallInterface',
+ 'errorMessage' => 'Call Interface Happen Error.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"ImageExportStatus\\": \\"Exporting\\",\\n \\"RequestId\\": \\"14BBB3A0-3DBE-54F5-AEC8-01D3F6B1EBE2\\"\\n}","type":"json"}]',
+ 'title' => 'DescribeExportImageStatus',
+ ],
+ 'DescribeExportImageInfo' => [
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'systemTags' => [
+ 'operationType' => 'get',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'ImageId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the image.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'm-xxxxx',
+ ],
+ ],
+ [
+ 'name' => 'ImageName',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The name of the image.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'testImageName',
+ ],
+ ],
+ [
+ 'name' => 'PageNumber',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The page number. Pages start from page **1**. Default value: **1**.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'example' => '1',
+ ],
+ ],
+ [
+ 'name' => 'PageSize',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The number of entries per page. Maximum value: **50**. Default value: **10**.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'maximum' => '50',
+ 'example' => '10',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'Images' => [
+ 'type' => 'object',
+ 'itemNode' => true,
+ 'properties' => [
+ 'Image' => [
+ 'description' => 'The returned result. For more information, see the Images parameter described in the JSON-formatted sample success response.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'Architecture' => [
+ 'description' => 'The architecture of the image. Example: **x86\\_64**.'."\n",
+ 'type' => 'string',
+ 'example' => 'x86_64',
+ ],
+ 'CreationTime' => [
+ 'description' => 'The time when the image was created.'."\n",
+ 'type' => 'string',
+ 'example' => '2017-12-08T12:10:03Z',
+ ],
+ 'ExportedImageURL' => [
+ 'description' => 'The URL of the exported image.'."\n",
+ 'type' => 'string',
+ 'example' => 'https://user_defined_bucket.oss-cn-beijing.aliyuncs.com/m-xxxxxxxxx1.qcow2',
+ ],
+ 'ImageExportStatus' => [
+ 'description' => 'The export status of the image. Valid values:'."\n"
+ ."\n"
+ .'* Exporting'."\n"
+ .'* Exported'."\n"
+ .'* ExportError'."\n"
+ .'* Unexported'."\n",
+ 'type' => 'string',
+ 'example' => 'Exported',
+ ],
+ 'ImageId' => [
+ 'description' => 'The ID of the image.'."\n",
+ 'type' => 'string',
+ 'example' => 'm-xxxxxxxxx1',
+ ],
+ 'ImageName' => [
+ 'description' => 'The name of the image.'."\n",
+ 'type' => 'string',
+ 'example' => 'm-xxxxxxxxx1',
+ ],
+ 'ImageOwnerAlias' => [
+ 'description' => 'The source of the image. Valid values:'."\n"
+ ."\n"
+ .'* system: public image'."\n"
+ .'* self: custom image'."\n",
+ 'type' => 'string',
+ 'example' => 'system',
+ ],
+ 'Platform' => [
+ 'description' => 'The OS.'."\n",
+ 'type' => 'string',
+ 'example' => 'centos',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'PageNumber' => [
+ 'description' => 'The page number.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '1',
+ ],
+ 'PageSize' => [
+ 'description' => 'The number of entries per page.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '10',
+ ],
+ 'RequestId' => [
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E',
+ ],
+ 'TotalCount' => [
+ 'description' => 'The total number of entries returned.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '13',
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'MissingParameter',
+ 'errorMessage' => 'The input parameter that is mandatory for processing this request is not supplied.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter',
+ 'errorMessage' => 'The errorMessage is %s. Please check it again.',
+ ],
+ [
+ 'errorCode' => 'ens.interface.error',
+ 'errorMessage' => 'An error occurred while calling the API.',
+ ],
+ [
+ 'errorCode' => 'CallInterface',
+ 'errorMessage' => 'Call Interface Happen Error.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"Images\\": {\\n \\"Image\\": [\\n {\\n \\"Architecture\\": \\"x86_64\\",\\n \\"CreationTime\\": \\"2017-12-08T12:10:03Z\\",\\n \\"ExportedImageURL\\": \\"https://user_defined_bucket.oss-cn-beijing.aliyuncs.com/m-xxxxxxxxx1.qcow2\\",\\n \\"ImageExportStatus\\": \\"Exported\\",\\n \\"ImageId\\": \\"m-xxxxxxxxx1\\",\\n \\"ImageName\\": \\"m-xxxxxxxxx1\\",\\n \\"ImageOwnerAlias\\": \\"system\\",\\n \\"Platform\\": \\"centos\\"\\n }\\n ]\\n },\\n \\"PageNumber\\": 1,\\n \\"PageSize\\": 10,\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E\\",\\n \\"TotalCount\\": 13\\n}","errorExample":""},{"type":"xml","example":"<DescribeExportImageInfoResponse>\\n<PageNumber>1</PageNumber>\\n<TotalCount>13</TotalCount>\\n<PageSize>10</PageSize>\\n<RequestId>A46DCC5B-FABC-46A2-B551-7D9CDA0637AD</RequestId>\\n<Images>\\n <Image>\\n <CreationTime>2017-12-08T12:10:03Z</CreationTime>\\n <ImageId>m-xxxxxxxxx1</ImageId>\\n <ImageName>m-xxxxxxxxx1</ImageName>\\n <Architecture>x86_64</Architecture>\\n <ImageOwnerAlias>system</ImageOwnerAlias>\\n <Platform>centos</Platform>\\n <ImageExportStatus>Exported</ImageExportStatus>\\n <ExportedImageURL>https://user_defined_bucket.oss-cn-beijing.aliyuncs.com/m-xxxxxxxxx1.qcow2</ExportedImageURL>\\n </Image>\\n <Image>\\n <CreationTime>2017-12-08T12:10:03Z</CreationTime>\\n <ImageId>m-xxxxxxxxx2</ImageId>\\n <ImageName>m-xxxxxxxxx2</ImageName>\\n <Architecture>x86_64</Architecture>\\n <ImageOwnerAlias>system</ImageOwnerAlias>\\n <Platform>centos</Platform>\\n <ImageExportStatus>Exported</ImageExportStatus>\\n <ExportedImageURL>https://user_defined_bucket.oss-cn-beijing.aliyuncs.com/m-xxxxxxxxx2.qcow2</ExportedImageURL>\\n </Image>\\n</Images>\\n</DescribeExportImageInfoResponse>","errorExample":""}]',
+ 'title' => 'DescribeExportImageInfo',
+ 'summary' => 'Queries the export result of an image.',
+ 'description' => '* You can call this operation to query information about all custom images in your account. The information include the image properties, image export status, and the Object Storage Service (OSS) download links.'."\n"
+ .'* Empty strings are returned for images that are not exported.'."\n"
+ .'* The download links may become invalid if you delete objects in OSS.'."\n",
+ 'requestParamsDescription' => ' ',
+ 'responseParamsDescription' => ' ',
+ 'extraInfo' => ' ',
+ ],
+ 'CreateKeyPair' => [
+ 'summary' => 'Creates an SSH key pair.',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'systemTags' => [
+ 'operationType' => 'create',
+ 'abilityTreeCode' => '914',
+ 'abilityTreeNodes' => [
+ 'FEATUREensCT6YHH',
+ ],
+ 'tenantRelevance' => 'publicInformation',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'KeyPairName',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The name of the key pair. The name must conform to the following naming conventions:'."\n"
+ ."\n"
+ .'* The name must be 2 to 128 characters in length, and can contain letters, digits, colons (:), underscores (\\_), and hyphens (-).'."\n"
+ .'* It must start with a letter but cannot start with `http://` or `https://`.',
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'TestKeyPairName',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'KeyPairFingerPrint' => [
+ 'description' => 'The fingerprint of the key pair. The message-digest algorithm 5 (MD5) is used based on the public key fingerprint format defined in RFC 4716. For more information, see [RFC 4716](https://tools.ietf.org/html/rfc4716).'."\n",
+ 'type' => 'string',
+ 'example' => '7880c1ad4687fdbf7a6da2131****',
+ ],
+ 'KeyPairId' => [
+ 'description' => 'The ID of the SSH key pair.'."\n",
+ 'type' => 'string',
+ 'example' => 'ssh-5lywanlkih1zo9yl8eg****',
+ ],
+ 'KeyPairName' => [
+ 'description' => 'The name of the key pair.'."\n",
+ 'type' => 'string',
+ 'example' => 'TestKeyPairName',
+ ],
+ 'PrivateKeyBody' => [
+ 'description' => 'The private key of the key pair. The private key is encoded with PEM in the PKCS#8 format.'."\n",
+ 'type' => 'string',
+ 'example' => '-----BEGIN RSA PRIVATE KEY-----\\nMIIEogIBAAKCAQE****',
+ ],
+ 'RequestId' => [
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'enumValueTitles' => [],
+ 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E',
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'MissingParameter',
+ 'errorMessage' => 'The input parameter that is mandatory for processing this request is not supplied.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter',
+ 'errorMessage' => 'The errorMessage is %s. Please check it again.',
+ ],
+ [
+ 'errorCode' => 'InvalidSecurityGroupId.NotFound',
+ 'errorMessage' => 'The specified SecurityGroupId does not exist.',
+ ],
+ [
+ 'errorCode' => 'SecurityGroupRuleConflict.Duplicated',
+ 'errorMessage' => 'The SecurityGroup rule already exists.',
+ ],
+ [
+ 'errorCode' => 'AuthorizationLimitExceed',
+ 'errorMessage' => 'The limit of authorization records in the security group reaches.',
+ ],
+ [
+ 'errorCode' => 'ens.interface.error',
+ 'errorMessage' => 'An error occurred while calling the API.',
+ ],
+ [
+ 'errorCode' => 'CallInterface',
+ 'errorMessage' => 'Call Interface Happen Error.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"KeyPairFingerPrint\\": \\"7880c1ad4687fdbf7a6da2131****\\",\\n \\"KeyPairId\\": \\"ssh-5lywanlkih1zo9yl8eg****\\",\\n \\"KeyPairName\\": \\"TestKeyPairName\\",\\n \\"PrivateKeyBody\\": \\"-----BEGIN RSA PRIVATE KEY-----\\\\\\\\nMIIEogIBAAKCAQE****\\",\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E\\"\\n}","errorExample":""},{"type":"xml","example":"<CreateKeyPairResesponse>\\n<KeyPairFingerPrint>7880c1ad4687fdbf7a6da2131****</KeyPairFingerPrint>\\n<KeyPairName>TestKeyPairName</KeyPairName>\\n<RequestId>473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E</RequestId>\\n<KeyPairId>ssh-5lywanlkih1zo9yl8eg****</KeyPairId>\\n<PrivateKeyBody>-----BEGIN RSA PRIVATE KEY-----\\nMIIEogIBAAKCAQE****</PrivateKeyBody>\\n</CreateKeyPairResesponse>\\n","errorExample":""}]',
+ 'title' => 'CreateKeyPair',
+ 'description' => 'An SSH key pair consists of a public key and a private key. ENS stores the public key and returns the unencrypted private key that is PEM-encoded in the PKCS#8 format. You must securely lock away the private key.'."\n",
+ 'requestParamsDescription' => ' ',
+ 'responseParamsDescription' => ' ',
+ 'extraInfo' => ' ',
+ ],
+ 'DeleteKeyPairs' => [
+ 'summary' => 'Deletes SSH key pairs.',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'systemTags' => [
+ 'operationType' => 'delete',
+ 'abilityTreeCode' => '1152',
+ 'abilityTreeNodes' => [
+ 'FEATUREensCT6YHH',
+ ],
+ 'tenantRelevance' => 'tenant',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'KeyPairName',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The name of the key pair. The name must conform to the following naming conventions:'."\n"
+ ."\n"
+ .'* The name must be 2 to 128 characters in length.'."\n"
+ .'* The name must start with a letter and cannot start with `http://` or `https://`.'."\n"
+ .'* The name can contain letters, digits, colons (:), underscores (\\_), and hyphens (-).'."\n"
+ ."\n"
+ .'Before you delete a key pair, you can call the DescribeKeyPairs operation to query existing key pairs.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'TestKeyPairName',
+ ],
+ ],
+ [
+ 'name' => 'KeyPairId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the SSH key pair.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'ssh-5lywanlkih1zo9yl8eg****',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E ',
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'MissingParameter',
+ 'errorMessage' => 'The input parameter that is mandatory for processing this request is not supplied.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter',
+ 'errorMessage' => 'The errorMessage is %s. Please check it again.',
+ ],
+ [
+ 'errorCode' => 'ens.interface.error',
+ 'errorMessage' => 'An error occurred while calling the API.',
+ ],
+ [
+ 'errorCode' => 'PubKeyNameExisted',
+ 'errorMessage' => 'Public Key Pair Name Existed.',
+ ],
+ [
+ 'errorCode' => 'PubKeyAttachedWithInstance',
+ 'errorMessage' => 'Public Key Attached With Instance.',
+ ],
+ [
+ 'errorCode' => 'InvalidPubKeyBody',
+ 'errorMessage' => 'Invalid Public Key Body.',
+ ],
+ [
+ 'errorCode' => 'PubKeyNameNotExist',
+ 'errorMessage' => 'Public Key Pair Name Not Exist.',
+ ],
+ [
+ 'errorCode' => 'CallInterface',
+ 'errorMessage' => 'Call Interface Happen Error.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E\\\\t\\"\\n}","errorExample":""},{"type":"xml","example":"<DeleteKeyPairsResponse>\\r\\n<RequestId>473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E</RequestId>\\r\\n</DeleteKeyPairsResponse>\\r\\n","errorExample":""}]',
+ 'title' => 'DeleteKeyPairs',
+ 'description' => '* After you delete an SSH key pair, you can no longer query the key pair by calling the DescribeKeyPairs operation.'."\n"
+ .'* If you delete an SSH key pair that is bound to an Edge Node Service (ENS) instance, ENS no longer stores the SSH key pair. However, you can still use the key pair to access the instance. When you call the DescribeInstance operation to query instance information, no other information but the name of the key pair (**KeyPairName**) is returned.'."\n",
+ 'requestParamsDescription' => ' ',
+ 'responseParamsDescription' => ' ',
+ 'extraInfo' => ' ',
+ ],
+ 'ImportKeyPair' => [
+ 'summary' => 'Imports the public key of a Rivest–Shamir–Adleman (RSA)-encrypted key pair that is generated by a third-party tool.',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'systemTags' => [
+ 'operationType' => 'create',
+ 'abilityTreeCode' => '1334',
+ 'abilityTreeNodes' => [
+ 'FEATUREensCT6YHH',
+ ],
+ 'tenantRelevance' => 'tenant',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'KeyPairName',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The name of the key pair. The name must conform to the following naming conventions:'."\n"
+ ."\n"
+ .'* The name must be 2 to 128 characters in length.'."\n"
+ .'* The name must start with a letter but cannot start with `http://` or `https://`.'."\n"
+ .'* The name can contain letters, digits, colons (:), underscores (\\_), and hyphens (-).'."\n"
+ ."\n"
+ .'You can specify the name of only one key pair.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'TestKeyPairName',
+ ],
+ ],
+ [
+ 'name' => 'PublicKeyBody',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The public key of the key pair. You can specify only one public key.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'ssh-rsa AAAAB****',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'KeyPairFingerPrint' => [
+ 'description' => 'The fingerprint of the key pair. The message-digest algorithm 5 (MD5) is used based on the public key fingerprint format defined in RFC 4716.'."\n",
+ 'type' => 'string',
+ 'example' => 'fdaf8ff7a756ef843814fc****',
+ ],
+ 'KeyPairName' => [
+ 'description' => 'The name of the key pair.'."\n",
+ 'type' => 'string',
+ 'example' => 'TestKeyPairName',
+ ],
+ 'RequestId' => [
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E',
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'MissingParameter',
+ 'errorMessage' => 'The input parameter that is mandatory for processing this request is not supplied.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter',
+ 'errorMessage' => 'The errorMessage is %s. Please check it again.',
+ ],
+ [
+ 'errorCode' => 'InvalidSecurityGroupId.NotFound',
+ 'errorMessage' => 'The specified SecurityGroupId does not exist.',
+ ],
+ [
+ 'errorCode' => 'SecurityGroupRuleConflict.Duplicated',
+ 'errorMessage' => 'The SecurityGroup rule already exists.',
+ ],
+ [
+ 'errorCode' => 'AuthorizationLimitExceed',
+ 'errorMessage' => 'The limit of authorization records in the security group reaches.',
+ ],
+ [
+ 'errorCode' => 'ens.interface.error',
+ 'errorMessage' => 'An error occurred while calling the API.',
+ ],
+ [
+ 'errorCode' => 'CallInterface',
+ 'errorMessage' => 'Call Interface Happen Error.',
+ ],
+ [
+ 'errorCode' => 'InvalidPublicKeyBody.Malformed',
+ 'errorMessage' => 'The PublicKeyBody format is not supported.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"KeyPairFingerPrint\\": \\"fdaf8ff7a756ef843814fc****\\",\\n \\"KeyPairName\\": \\"TestKeyPairName\\",\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E\\"\\n}","errorExample":""},{"type":"xml","example":"<ImportKeyPairResponse>\\n<RequestId>473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E</RequestId>\\n<KeyPairName>TestKeyPairName</KeyPairName>\\n<KeyPairFingerPrint>b2389cc0763ac8c342b08334****</KeyPairFingerPrint>\\n</ImportKeyPairResponse>\\n","errorExample":""}]',
+ 'title' => 'ImportKeyPair',
+ 'description' => '* After the key pair is imported, ENS stores the public key. You must securely store the private key.'."\n"
+ .'* The key pair can be only in the ssh-rsa format.'."\n",
+ 'requestParamsDescription' => ' ',
+ 'responseParamsDescription' => ' ',
+ 'extraInfo' => ' ',
+ ],
+ 'DescribeKeyPairs' => [
+ 'summary' => 'Queries one or more key pairs.',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'systemTags' => [
+ 'operationType' => 'get',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'KeyPairName',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The name of the key pair that you want to bind to the simple application server. The name must be 2 to 128 characters in length. The name must start with a letter but cannot start with `http://` or `https://`. The name can contain the following characters:'."\n"
+ ."\n"
+ .'* Numbers.'."\n"
+ .'* :'."\n"
+ .'* \\_'."\n"
+ .'* .'."\n"
+ ."\n"
+ .'You can specify only one name. By default, all key pairs are queried.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'TestKeyPairName',
+ ],
+ ],
+ [
+ 'name' => 'PageNumber',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The page number of the returned page. Valid values: integers that are greater than 0. Default value: 1.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '1',
+ ],
+ ],
+ [
+ 'name' => 'PageSize',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The number of entries per page. Valid values: integers that are greater than 0. Default value: 10.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '10',
+ ],
+ ],
+ [
+ 'name' => 'KeyPairId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the key pair.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => ' '."\n"
+ .'ssh-50cynkq42sgj4ej1tn78t4***'."\n",
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'KeyPairs' => [
+ 'type' => 'object',
+ 'itemNode' => true,
+ 'properties' => [
+ 'KeyPair' => [
+ 'description' => 'Details about the key pairs.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'CreationTime' => [
+ 'description' => 'The time when the key pair was created. The time follows the ISO 8601 standard in the yyyy-MM-ddThh:mm:ssZ format. The time is displayed in UTC.'."\n",
+ 'type' => 'string',
+ 'example' => '2020-04-26T15:38:27Z',
+ ],
+ 'KeyPairFingerPrint' => [
+ 'description' => 'The fingerprint of the key pair.'."\n",
+ 'type' => 'string',
+ 'example' => 'fdaf8ff7a756ef843814fc****',
+ ],
+ 'KeyPairName' => [
+ 'description' => 'The name of the SSH key pair.'."\n",
+ 'type' => 'string',
+ 'example' => 'TestKeyPairName',
+ ],
+ 'KeyPairId' => [
+ 'description' => 'The ID of the key pair.'."\n",
+ 'type' => 'string',
+ 'example' => 'ssh-50cynkq42sgj4ej1tn78t4***',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'PageNumber' => [
+ 'description' => 'The page number.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '1',
+ ],
+ 'PageSize' => [
+ 'description' => 'The number of entries returned per page.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '10',
+ ],
+ 'RequestId' => [
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '37B52F33-6879-49D0-A39B-22966B01449E',
+ ],
+ 'TotalCount' => [
+ 'description' => 'The total number of key pairs.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '7',
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'MissingParameter',
+ 'errorMessage' => 'The input parameter that is mandatory for processing this request is not supplied.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter',
+ 'errorMessage' => 'The errorMessage is %s. Please check it again.',
+ ],
+ [
+ 'errorCode' => 'ens.interface.error',
+ 'errorMessage' => 'An error occurred while calling the API.',
+ ],
+ [
+ 'errorCode' => 'CallInterface',
+ 'errorMessage' => 'Call Interface Happen Error.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"KeyPairs\\": {\\n \\"KeyPair\\": [\\n {\\n \\"CreationTime\\": \\"2020-04-26T15:38:27Z\\",\\n \\"KeyPairFingerPrint\\": \\"fdaf8ff7a756ef843814fc****\\",\\n \\"KeyPairName\\": \\"TestKeyPairName\\",\\n \\"KeyPairId\\": \\"ssh-50cynkq42sgj4ej1tn78t4***\\"\\n }\\n ]\\n },\\n \\"PageNumber\\": 1,\\n \\"PageSize\\": 10,\\n \\"RequestId\\": \\"37B52F33-6879-49D0-A39B-22966B01449E\\",\\n \\"TotalCount\\": 7\\n}","errorExample":""},{"type":"xml","example":"<DescribeKeyPairsResponse>\\n<TotalCount>7</TotalCount>\\n<RequestId>37B52F33-6879-49D0-A39B-22966B01449E</RequestId>\\n<PageSize>10</PageSize>\\n<PageNumber>1</PageNumber>\\n<KeyPairs>\\n <KeyPair>\\n <KeyPairFingerPrint>fdaf8ff7a756ef843814fc****</KeyPairFingerPrint>\\n <KeyPairName>TestKeyPairName</KeyPairName>\\n <CreationTime>2020-04-26T15:38:27Z</CreationTime>\\n </KeyPair>\\n</KeyPairs>\\n</DescribeKeyPairsResponse>\\n","errorExample":""}]',
+ 'title' => 'DescribeKeyPairs',
+ 'requestParamsDescription' => ' ',
+ 'responseParamsDescription' => ' ',
+ 'extraInfo' => ' ',
+ ],
+ 'CreateDisk' => [
+ 'summary' => 'Creates a pay-as-you-go or subscription data disk.',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'create',
+ 'riskType' => 'high',
+ 'chargeType' => 'paid',
+ 'abilityTreeCode' => '101931',
+ 'abilityTreeNodes' => [
+ 'FEATUREensA8B7J7',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'InstanceChargeType',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '实例付费方式,取值 PrePaid:预付费,包年包月 PostPaid:按量付费。目前只支持:PostPaid',
+ 'description' => 'The billing method of the instance. Set the value to **PostPaid**.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'enumValueTitles' => [
+ 'PostPaid' => '',
+ ],
+ 'example' => 'PostPaid',
+ 'enum' => [
+ 'PostPaid',
+ ],
+ ],
+ ],
+ [
+ 'name' => 'EnsRegionId',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '节点ID',
+ 'description' => 'The ID of the edge node.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'cn-chengdu-telecom',
+ ],
+ ],
+ [
+ 'name' => 'Category',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '磁盘种类 高效云盘:cloud_efficiency 全闪云盘:cloud_ssd',
+ 'description' => 'The category of the disk. Valid values:'."\n"
+ ."\n"
+ .'* cloud_efficiency: ultra disk.'."\n"
+ .'* cloud_ssd: all-flash disk.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'enumValueTitles' => [
+ 'cloud_efficiency' => '',
+ 'cloud_ssd' => '',
+ 'local_hdd' => '',
+ 'ssd:local_ssd' => '',
+ ],
+ 'example' => 'cloud_efficiency',
+ ],
+ ],
+ [
+ 'name' => 'Size',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '磁盘大小,单位GB',
+ 'description' => 'The size of the disk. Unit: GiB.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '20',
+ ],
+ ],
+ [
+ 'name' => 'SnapshotId',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '快照ID。',
+ 'description' => 'The ID of the snapshot that you want to use to create the disk.'."\n"
+ ."\n"
+ .'The following limits apply to the **SnapshotId** and **Size** parameters:'."\n"
+ ."\n"
+ .'* If the size of the snapshot specified by **SnapshotId** is greater than the specified **Size** value, the size of the created disk is equal to the specified snapshot size.'."\n"
+ .'* If the size of the snapshot specified by **SnapshotId** is smaller than the specified **Size** value, the size of the created disk is equal to the specified **Size** value.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 's-897654321****',
+ ],
+ ],
+ [
+ 'name' => 'Encrypted',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '云盘是否加密,如果Encrypted=true,KMSKeyId不输入时则采用服务默认密钥。',
+ 'description' => 'Specifies whether to encrypt the new system disk. Valid values:'."\n"
+ ."\n"
+ .'* **true**'."\n"
+ .'* **false** (default): no'."\n",
+ 'type' => 'boolean',
+ 'required' => false,
+ 'example' => 'false',
+ ],
+ ],
+ [
+ 'name' => 'KMSKeyId',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '用户云盘加密的KMS ID。',
+ 'description' => 'The ID of the Key Management Service (KMS) key that is used by the cloud disk.'."\n"
+ ."\n"
+ .'> If you set the **Encrypted** parameter to **true**, the default service key is used when the **KMSKeyId** parameter is empty.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '0e478b7a-4262-4802-b8cb-00d3fxxxxx',
+ ],
+ ],
+ [
+ 'name' => 'DiskName',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The name of the disk.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'yourDiskName',
+ ],
+ ],
+ [
+ 'name' => 'Tag',
+ 'in' => 'query',
+ 'style' => 'repeatList',
+ 'schema' => [
+ 'description' => 'The tags of the instance. You can specify at most 20 tags in each call.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The tag keys.'."\n"
+ ."\n"
+ .'You can specify at most 20 tags in each call.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'Key' => [
+ 'description' => 'The key of the tag. Valid values of N: **1** to **20**.'."\n"
+ ."\n"
+ .'* The key cannot start with `aliyun`, `acs:`, `http://`, or `https://`.'."\n"
+ .'* The key must be up to 64 characters in length.'."\n"
+ .'* The tag key cannot be an empty string.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'pro',
+ ],
+ 'Value' => [
+ 'description' => 'The value of a tag that is attached to the topics you want to query. This parameter is not required. If you configure this parameter, you must also configure the **Key** parameter.**** If you include the Key and Value parameters in a request, this operation queries only the topics that use the specified tags. If you do not include these parameters in a request, this operation queries all topics that you can access.'."\n"
+ ."\n"
+ .'* Valid values: 1 to 20.'."\n"
+ .'* The value of this parameter can be an empty string.'."\n"
+ .'* The tag value can be up to 128 characters in length. It cannot start with aliyun or acs: and cannot contain http:// or https://.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'tagValue',
+ ],
+ ],
+ 'required' => false,
+ ],
+ 'required' => false,
+ 'maxItems' => 20,
+ ],
+ ],
+ [
+ 'name' => 'InstanceBillingCycle',
+ 'in' => 'query',
+ 'schema' => [
+ 'type' => 'string',
+ 'enum' => [
+ 'Hour',
+ 'Day',
+ 'Month',
+ ],
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => '返回结构体',
+ 'description' => 'The response parameters.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => '请求唯一ID',
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '7030AB96-57CF-1C68-9FEE-D60E547FD79C',
+ ],
+ 'OrderId' => [
+ 'title' => '订单id,多个以逗号分割,可以直接跳转到收银行台 只有预付费返回订单号,后付费不返回',
+ 'description' => 'The ID of the order. Multiple IDs are separated by commas (,).'."\n"
+ ."\n"
+ .'> This parameter is not returned for the pay-as-you-go billing method.'."\n",
+ 'type' => 'string',
+ 'example' => '21127020370****',
+ ],
+ 'InstanceIds' => [
+ 'title' => '实列ID集合',
+ 'description' => 'The IDs of the instances.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The ID of an instance.'."\n",
+ 'type' => 'string',
+ 'example' => 'd-5rpvziragkacvop665m3h****',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'Invalid%s',
+ 'errorMessage' => 'The specified parameter %s is invalid.',
+ ],
+ [
+ 'errorCode' => 'Missing%s',
+ 'errorMessage' => 'You must specify the parameter %s.',
+ ],
+ [
+ 'errorCode' => 'Stock.NotEnough',
+ 'errorMessage' => 'The inventory of the specified zone is insufficient.Please contact the product.',
+ ],
+ [
+ 'errorCode' => 'ens.interface.error',
+ 'errorMessage' => 'Failed to call API.',
+ ],
+ [
+ 'errorCode' => 'ens.buy.store.empty',
+ 'errorMessage' => 'Insufficient inventory of purchased resources.',
+ ],
+ [
+ 'errorCode' => 'SaleControlVerificationFailedDiskSpec',
+ 'errorMessage' => 'Cloud disk capacity sales constraint verification failed, please re-match, or contact the product.',
+ ],
+ [
+ 'errorCode' => 'OrderFailed',
+ 'errorMessage' => 'Order failed, please try again.',
+ ],
+ [
+ 'errorCode' => 'SystemUseCouponFailed',
+ 'errorMessage' => 'Failed to use coupon.',
+ ],
+ [
+ 'errorCode' => 'SystemUseStoredCardFailed',
+ 'errorMessage' => 'Failed to use stored value card.',
+ ],
+ [
+ 'errorCode' => 'System.SystemError',
+ 'errorMessage' => 'system error.',
+ ],
+ [
+ 'errorCode' => 'SystemCanRefundCheckFailed',
+ 'errorMessage' => 'The business rule check of the cloud product fails, and this order cannot be refunded.',
+ ],
+ [
+ 'errorCode' => 'SystemOtsSystem',
+ 'errorMessage' => 'ots storage error.',
+ ],
+ [
+ 'errorCode' => 'SystemQueryImmortalError',
+ 'errorMessage' => 'Failed to call Juxiange.',
+ ],
+ [
+ 'errorCode' => 'SystemQueryInstanceInfoFailed',
+ 'errorMessage' => 'Failed to find instance information.',
+ ],
+ [
+ 'errorCode' => 'SystemResellerPayCalRefundUnitError',
+ 'errorMessage' => 'Ecological payment channel calculation unsubscribe information error.',
+ ],
+ [
+ 'errorCode' => 'SystemSaleValidateFailed',
+ 'errorMessage' => 'Sales Expression Validation System Error.',
+ ],
+ [
+ 'errorCode' => 'SystemTransferDeleteOldResourceFailed',
+ 'errorMessage' => 'Failed to delete the transferred instance in the transfer order.',
+ ],
+ [
+ 'errorCode' => 'SystemUnSupportOperationType',
+ 'errorMessage' => 'Unsupported operation type.',
+ ],
+ [
+ 'errorCode' => 'RiskRiskControlRejection',
+ 'errorMessage' => 'Risk Control Rejection.',
+ ],
+ [
+ 'errorCode' => 'AuthRamAuthFailed',
+ 'errorMessage' => 'ram sub-account authentication failed.',
+ ],
+ [
+ 'errorCode' => 'CommodityInvalidComponent',
+ 'errorMessage' => 'The module you purchased is illegal, please re-select.',
+ ],
+ [
+ 'errorCode' => 'CommodityInvalidItemCode',
+ 'errorMessage' => 'Specification code illegal.',
+ ],
+ [
+ 'errorCode' => 'PriceHsfTimeoutError',
+ 'errorMessage' => 'Time out when calling the request for quotation interface.',
+ ],
+ [
+ 'errorCode' => 'PricePatingConfigError',
+ 'errorMessage' => 'Inquiry related goods configuration error.',
+ ],
+ [
+ 'errorCode' => 'PricePricingPlanResultNotFound',
+ 'errorMessage' => 'Pricing plan price result not found.',
+ ],
+ [
+ 'errorCode' => 'PriceRatingGetRatingpricingPlan',
+ 'errorMessage' => 'Obtain a valid pricing plan exception.',
+ ],
+ [
+ 'errorCode' => 'OrderAbnormalResourceStatusForRenew',
+ 'errorMessage' => 'Invalid resource status for renewal.',
+ ],
+ [
+ 'errorCode' => 'OrderAccountStatusIllegal',
+ 'errorMessage' => 'Illegal account status.',
+ ],
+ [
+ 'errorCode' => 'OrderArrearage',
+ 'errorMessage' => 'User Arrears.',
+ ],
+ [
+ 'errorCode' => 'OrderBidUserOrderForbidden',
+ 'errorMessage' => 'Bid users cannot buy on the official website.',
+ ],
+ [
+ 'errorCode' => 'OrderCaptureFailed',
+ 'errorMessage' => 'The paid order of the instance has not been deducted successfully.',
+ ],
+ [
+ 'errorCode' => 'OrderExistsReleasedInstances',
+ 'errorMessage' => 'There are already released instances.',
+ ],
+ [
+ 'errorCode' => 'OrderGroupOrderSizeOverflow',
+ 'errorMessage' => 'The quantity of bound combined payment order exceeds the limit.',
+ ],
+ [
+ 'errorCode' => 'OrderHomeCurrencyCanNotDowngrade',
+ 'errorMessage' => 'Users in current currency cannot downgrade.',
+ ],
+ [
+ 'errorCode' => 'OrderHomeCurrencyCanNotUpgradeByValueTransfer',
+ 'errorMessage' => 'Users of current currency cannot upgrade through residual value transfer.',
+ ],
+ [
+ 'errorCode' => 'OrderInstanceHasInactiveChange',
+ 'errorMessage' => 'Instances exist temporary upgrade.',
+ ],
+ [
+ 'errorCode' => 'OrderInstHasUnpaidOrder',
+ 'errorMessage' => 'The instance has an unpaid order.',
+ ],
+ [
+ 'errorCode' => 'OrderInstHasUnsettledBills',
+ 'errorMessage' => 'The instance has an unsettled bill.',
+ ],
+ [
+ 'errorCode' => 'OrderLatestOrderIsHandling',
+ 'errorMessage' => 'Recent order is being processed, please try again later.',
+ ],
+ [
+ 'errorCode' => 'OrderMainOrderSizeOverflow',
+ 'errorMessage' => 'The quantity of the main order exceeds the limit.',
+ ],
+ [
+ 'errorCode' => 'OrderMissingModuleInfoError',
+ 'errorMessage' => 'Module parameter not specified.',
+ ],
+ [
+ 'errorCode' => 'OrderNoRealNameAuthentication',
+ 'errorMessage' => 'No real-name authentication.',
+ ],
+ [
+ 'errorCode' => 'OrderNotFound',
+ 'errorMessage' => 'The specified order information is not found.',
+ ],
+ [
+ 'errorCode' => 'OrderOpend',
+ 'errorMessage' => 'You have activated this product.',
+ ],
+ [
+ 'errorCode' => 'OrderPeriodInvalid',
+ 'errorMessage' => 'Illegal order cycle.',
+ ],
+ [
+ 'errorCode' => 'OrderQuantityInvalid',
+ 'errorMessage' => 'Illegal quantity ordered.',
+ ],
+ [
+ 'errorCode' => 'OrderQueryInstanceError',
+ 'errorMessage' => 'Query instance error.',
+ ],
+ [
+ 'errorCode' => 'OrderQueryInstanceNotExists',
+ 'errorMessage' => 'Instance data does not exist.',
+ ],
+ [
+ 'errorCode' => 'OrderQueryOrderExchangeRateFail',
+ 'errorMessage' => 'Failed to query order exchange rate information.',
+ ],
+ [
+ 'errorCode' => 'OrderQueryUserSettleInfoFail',
+ 'errorMessage' => 'Failed to query user settlement information.',
+ ],
+ [
+ 'errorCode' => 'OrderQuotaExceeded',
+ 'errorMessage' => 'Quantity exceeds limit.',
+ ],
+ [
+ 'errorCode' => 'OrderSysConstraintInvalid',
+ 'errorMessage' => 'System constraint check failed.',
+ ],
+ [
+ 'errorCode' => 'OrderTradeCompleteSettleInfoFail',
+ 'errorMessage' => 'Failed to complete the order settlement currency amount information.',
+ ],
+ [
+ 'errorCode' => 'TradeTradeOrderAfterPayCheckError',
+ 'errorMessage' => 'You have already paid for the subsequent orders of this instance. The current order has been automatically voided and you cannot pay any more.',
+ ],
+ [
+ 'errorCode' => 'PurchaseExistRenewchangeProd',
+ 'errorMessage' => 'There is a renewal change subscription that has not yet taken effect.',
+ ],
+ [
+ 'errorCode' => 'PurchaseExistToBeValidProdRuleError',
+ 'errorMessage' => 'Currently, there are temporary orders that are not in effect, and the upgrade operation cannot be performed.',
+ ],
+ [
+ 'errorCode' => 'PurchaseExistToBeValidRenewChangeProdRuleError',
+ 'errorMessage' => 'Currently, there is an uneffective renewal change subscription, and temporary upgrade operation cannot be performed.',
+ ],
+ [
+ 'errorCode' => 'PurchaseExistValidProdRuleError',
+ 'errorMessage' => 'Currently, there is a temporary order in effect, and operations such as upgrade/downgrade/expansion/pre-transfer cannot be performed.',
+ ],
+ [
+ 'errorCode' => 'ProductInstanceReleased',
+ 'errorMessage' => 'Instance released.',
+ ],
+ [
+ 'errorCode' => 'ProductInstanceTypeNotSupported',
+ 'errorMessage' => 'The instance type is not supported.',
+ ],
+ [
+ 'errorCode' => 'PatRiskRejectForTradeData',
+ 'errorMessage' => 'Payment order problem leads to risk control rejection.',
+ ],
+ [
+ 'errorCode' => 'PayAccountBookNotExist',
+ 'errorMessage' => 'There is no insufficient account balance in the account book, please retry after recharging.',
+ ],
+ [
+ 'errorCode' => 'PayAmountLimitExceeded',
+ 'errorMessage' => 'Payment limit exceeded, please resubmit.',
+ ],
+ [
+ 'errorCode' => 'PayBeforePayRiskRuleValidateFailed',
+ 'errorMessage' => 'The payment was blocked by risk control, and the payment failed.',
+ ],
+ [
+ 'errorCode' => 'PayCounponNotExist',
+ 'errorMessage' => 'Counpon does not exist.',
+ ],
+ [
+ 'errorCode' => 'PayCouponAmountNotEnough',
+ 'errorMessage' => 'Insufficient voucher balance or expired.',
+ ],
+ [
+ 'errorCode' => 'PayCouponNotMeetConsumptionRule',
+ 'errorMessage' => 'The coupon does not meet the conditions for use.',
+ ],
+ [
+ 'errorCode' => 'PayCurrencyInconsistency',
+ 'errorMessage' => 'Currency mismatch.',
+ ],
+ [
+ 'errorCode' => 'PayCurrencyNotSupported',
+ 'errorMessage' => 'Currency not supported.',
+ ],
+ [
+ 'errorCode' => 'PayForbiddenNoReasonFefund',
+ 'errorMessage' => 'Banned five days no reason refund.',
+ ],
+ [
+ 'errorCode' => 'PayHsfTimeoutError',
+ 'errorMessage' => 'Call payment system timeout.',
+ ],
+ [
+ 'errorCode' => 'PayInsufficientBalance',
+ 'errorMessage' => 'Account balance is insufficient, please recharge and try again.',
+ ],
+ [
+ 'errorCode' => 'PayInvalidCreditCard',
+ 'errorMessage' => 'Invalid credit card.',
+ ],
+ [
+ 'errorCode' => 'PayInvalidPayMethod',
+ 'errorMessage' => 'Illegal payment method.',
+ ],
+ [
+ 'errorCode' => 'PayMegrePayOrderHasThanOneChagreChannel',
+ 'errorMessage' => 'Payment failed, please retry or submit work order feedback.',
+ ],
+ [
+ 'errorCode' => 'PayNoCreditCard',
+ 'errorMessage' => 'No valid payment method, please check the payment method and try again.',
+ ],
+ [
+ 'errorCode' => 'PayOrderPayTimeInvalid',
+ 'errorMessage' => 'Order effective time is invalid.',
+ ],
+ [
+ 'errorCode' => 'PayPartRefundNotSupport',
+ 'errorMessage' => 'Not Capture, no partial refund.',
+ ],
+ [
+ 'errorCode' => 'PayPayChannelPayOrderInvalidStatus',
+ 'errorMessage' => 'Illegal status of payment order in payment channel.',
+ ],
+ [
+ 'errorCode' => 'PayPayChannelPayOrderNotExist',
+ 'errorMessage' => 'Payment channel payment order does not exist.',
+ ],
+ [
+ 'errorCode' => 'PayPayerAccountIllegal',
+ 'errorMessage' => 'Illegal payment account.',
+ ],
+ [
+ 'errorCode' => 'PayPayFailedParentRelationchanged',
+ 'errorMessage' => 'If the financial custody relationship changes, please void the order and place a new order for payment.',
+ ],
+ [
+ 'errorCode' => 'PayPayForbidUserCoupon',
+ 'errorMessage' => 'Coupon prohibited for orders.',
+ ],
+ [
+ 'errorCode' => 'PayQueryAvailableAmountFailed',
+ 'errorMessage' => 'Failed to query user availability, please try again later.',
+ ],
+ [
+ 'errorCode' => 'PayQueryAvailableEnduserAmountFailed',
+ 'errorMessage' => 'Failed to query the availability of quota direct customer main user, please try again later.',
+ ],
+ [
+ 'errorCode' => 'PayQueryParentRelationshipFailed',
+ 'errorMessage' => 'Failed to query current user hosting relationship, please try again later.',
+ ],
+ [
+ 'errorCode' => 'PayQueryPayChangeChannelNotEqual',
+ 'errorMessage' => 'Multi-order payment channels are inconsistent, please check whether the original order data payment channel is correct.',
+ ],
+ [
+ 'errorCode' => 'PayRefundFailed',
+ 'errorMessage' => 'Accumulated refund amount exceeds payment order amount.',
+ ],
+ [
+ 'errorCode' => 'PayResellerPayGetUrlError',
+ 'errorMessage' => 'Order payment failed, please try again later.',
+ ],
+ [
+ 'errorCode' => 'PayRiskRejectForPayerAccount',
+ 'errorMessage' => 'Payment account problem leads to risk control rejection.',
+ ],
+ [
+ 'errorCode' => 'PayStoredCardNotExist',
+ 'errorMessage' => 'Stored value card does not exist.',
+ ],
+ [
+ 'errorCode' => 'PaySystemError',
+ 'errorMessage' => 'Error calling payment system.',
+ ],
+ [
+ 'errorCode' => 'PayTaxCalcFailed',
+ 'errorMessage' => 'Failed to get user tax address.',
+ ],
+ [
+ 'errorCode' => 'PayWithholdingAgreementIllegal',
+ 'errorMessage' => 'Withholding Agreement Status Illegal.',
+ ],
+ [
+ 'errorCode' => 'AccountAliyunAccountFrozen',
+ 'errorMessage' => 'Alibaba Cloud account is frozen.',
+ ],
+ [
+ 'errorCode' => 'AccountAliyunAccountNotExist',
+ 'errorMessage' => 'Alibaba Cloud account does not exist.',
+ ],
+ [
+ 'errorCode' => 'RefundRefundInstanceNotFound',
+ 'errorMessage' => 'Unable to find instance information.',
+ ],
+ [
+ 'errorCode' => 'RefundRefundNoValidProd',
+ 'errorMessage' => 'Refund is not available to unsubscribe.',
+ ],
+ [
+ 'errorCode' => 'RefundRefundParamInvalid',
+ 'errorMessage' => 'Abnormal refund parameter.',
+ ],
+ [
+ 'errorCode' => 'RefundRefundQueryOrderFail',
+ 'errorMessage' => 'Failed to query order for refund field.',
+ ],
+ [
+ 'errorCode' => 'SystemConcurrentOperate',
+ 'errorMessage' => 'Concurrent operation causes failure.',
+ ],
+ [
+ 'errorCode' => 'PricePricingPlanNotFound',
+ 'errorMessage' => 'Pricing plan tree not found.',
+ ],
+ [
+ 'errorCode' => 'OrderInstanceHasTempUpgrade',
+ 'errorMessage' => 'Instances exist temporary upgrade.',
+ ],
+ [
+ 'errorCode' => 'PayQueryParentRelationchangedFailed',
+ 'errorMessage' => 'The financial custody relationship may change, please refresh and pay again.',
+ ],
+ [
+ 'errorCode' => 'PayforCreditPayInsufficientBalance',
+ 'errorMessage' => 'Insufficient quota, please contact your channel partner to increase the quota.',
+ ],
+ [
+ 'errorCode' => 'PayforAccountMoneyValidateError',
+ 'errorMessage' => 'The available amount of your channel partner\'s account is insufficient, please contact your channel partner to recharge in time.',
+ ],
+ [
+ 'errorCode' => 'BasicInfoUncompleted',
+ 'errorMessage' => 'You have not completed your basic personal information. Please complete the information and re-operate it.',
+ ],
+ [
+ 'errorCode' => 'SaleControl.VerificationFailed',
+ 'errorMessage' => 'You did not pass the salecontrol verification.Please contact the product.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"7030AB96-57CF-1C68-9FEE-D60E547FD79C\\",\\n \\"OrderId\\": \\"21127020370****\\",\\n \\"InstanceIds\\": [\\n \\"d-5rpvziragkacvop665m3h****\\"\\n ]\\n}","errorExample":""},{"type":"xml","example":"<CreateDiskResponse>\\n <RequestId>7030AB96-57CF-1C68-9FEE-D60E547FD79C</RequestId>\\n <OrderId>21127020370****</OrderId>\\n <InstanceIds>d-5rpvziragkacvop665m3h****</InstanceIds>\\n</CreateDiskResponse>","errorExample":""}]',
+ 'title' => 'CreateDisk',
+ ],
+ 'DeleteDisk' => [
+ 'summary' => 'Deletes a disk.',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'systemTags' => [
+ 'operationType' => 'delete',
+ 'abilityTreeCode' => '4360',
+ 'abilityTreeNodes' => [
+ 'FEATUREensA8B7J7',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'DiskId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the disk.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'd-5va95bg6i5f44kgkeuazyfcxm',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'Code' => [
+ 'description' => 'The returned service code. 0 indicates that the request was successful.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '0',
+ ],
+ 'RequestId' => [
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '3ABEEB76-1976-55AB-B884-3D65CA6A4743',
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'ens.interface.error',
+ 'errorMessage' => 'Failed to call API.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Code\\": 0,\\n \\"RequestId\\": \\"3ABEEB76-1976-55AB-B884-3D65CA6A4743\\"\\n}","type":"json"}]',
+ 'title' => 'DeleteDisk',
+ 'description' => 'When you release a disk, the disk must be in the Available state.'."\n",
+ ],
+ 'AttachDisk' => [
+ 'summary' => 'Attaches a disk to an Edge Node Service (ENS) instance.',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'systemTags' => [
+ 'operationType' => 'update',
+ 'abilityTreeCode' => '4358',
+ 'abilityTreeNodes' => [
+ 'FEATUREensCBRG04',
+ ],
+ 'tenantRelevance' => 'tenant',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'DiskId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the disk to be attached. The cloud disk and the instance must belong to the same node.',
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'd-5saf13yy6sopmmg88mzsg****',
+ ],
+ ],
+ [
+ 'name' => 'InstanceId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the instance.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'i-5rr19av7tkpgi9os52ag1****',
+ ],
+ ],
+ [
+ 'name' => 'DeleteWithInstance',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'Specifies whether the disk to be attached is released with the instance. Valid values:'."\n"
+ ."\n"
+ .'* true: The disk will be released when the ECS instance is released.'."\n"
+ .'* false: The disk will be retained when the ECS instance is released.'."\n"
+ .'* If you leave this parameter empty, the default value is used.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'false',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'Code' => [
+ 'description' => 'The returned service code. 0 indicates that the request was successful.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '0',
+ ],
+ 'RequestId' => [
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '916777D9-42D3-5928-92CE-373B1874B674',
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'MissingParameter',
+ 'errorMessage' => 'The input parameters that is mandatory for processing this request is not supplied.',
+ ],
+ [
+ 'errorCode' => 'InstanceIdNotFound',
+ 'errorMessage' => 'The input parameter instancdId that is not found.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'NotAllowMixed',
+ 'errorMessage' => 'NOT ALLOW MIX ATTACH.',
+ ],
+ [
+ 'errorCode' => 'CallInterface',
+ 'errorMessage' => 'Call Interface Happen Error.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ 403 => [
+ [
+ 'errorCode' => 'Target.IncorrectInstanceStatus',
+ 'errorMessage' => 'The current status of the instance does not support this operation.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": 0,\\n \\"RequestId\\": \\"916777D9-42D3-5928-92CE-373B1874B674\\"\\n}","errorExample":""},{"type":"xml","example":"<AttachDiskResponse>\\n <Code>0</Code>\\n <RequestId>916777D9-42D3-5928-92CE-373B1874B674</RequestId>\\n</AttachDiskResponse>","errorExample":""}]',
+ 'title' => 'AttachDisk',
+ ],
+ 'DetachDisk' => [
+ 'summary' => 'Detaches a pay-as-you-go disk from an Edge Node Service (ENS) instance. You cannot call this operation to detach a disk that is created together with an instance.',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'systemTags' => [
+ 'operationType' => 'update',
+ 'abilityTreeCode' => '1751',
+ 'abilityTreeNodes' => [
+ 'FEATUREensCBRG04',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'DiskId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the disk.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'd-5r7v69e0bejrnzger09w7****',
+ ],
+ ],
+ [
+ 'name' => 'InstanceId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the instance.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'i-5inkeimcipxk26yqtzm4q****',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'Code' => [
+ 'description' => 'The returned service code. 0 indicates that the request was successful.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '0',
+ ],
+ 'RequestId' => [
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E',
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'MissingParameter',
+ 'errorMessage' => 'The input parameters that is mandatory for processing this request is not supplied.',
+ ],
+ [
+ 'errorCode' => 'InstanceIdNotFound',
+ 'errorMessage' => 'The input parameter instancdId that is not found.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'CallInterface',
+ 'errorMessage' => 'Call Interface Happen Error.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": 0,\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E\\"\\n}","errorExample":""},{"type":"xml","example":"<DetachDiskResponse>\\n <Code>0</Code>\\n <RequestId>473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E</RequestId>\\n</DetachDiskResponse>","errorExample":""}]',
+ 'title' => 'DetachDisk',
+ ],
+ 'ResizeDisk' => [
+ 'summary' => 'Resizes a pay-as-you-go disk that you purchase.',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'update',
+ 'riskType' => 'high',
+ 'chargeType' => 'paid',
+ 'abilityTreeNodes' => [
+ 'FEATUREensPTDMDF',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'DiskId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the disk that you want to resize.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'd-5tzm9wnhzlhjzcbtxo465****',
+ ],
+ ],
+ [
+ 'name' => 'NewSize',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The size of the disk that you want to resize. Unit: GiB.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => '100',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '689412F2-8402-181E-8C87-1EF62331DCC4',
+ ],
+ 'OrderId' => [
+ 'description' => 'The order ID.'."\n",
+ 'type' => 'string',
+ 'example' => '21522202681****',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'PARAM_NOT_ENOUGH',
+ 'errorMessage' => 'Insufficient parameters entered',
+ ],
+ [
+ 'errorCode' => 'INSTANCE_ID_NOT_FOUND',
+ 'errorMessage' => 'Instance information not found',
+ ],
+ [
+ 'errorCode' => 'ENS_BUY_USER_ILLEGAL',
+ 'errorMessage' => 'User is illegal',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter',
+ 'errorMessage' => 'Insufficient parameters entered',
+ ],
+ [
+ 'errorCode' => 'ENS_BUY_COUNT_LESS',
+ 'errorMessage' => 'Too many resources purchased',
+ ],
+ [
+ 'errorCode' => 'SIZE_ILLEGAL',
+ 'errorMessage' => 'The purchased capacity is illegal',
+ ],
+ [
+ 'errorCode' => 'ENS_BUY_STORE_ENOUGH',
+ 'errorMessage' => 'Insufficient inventory of purchased resources',
+ ],
+ [
+ 'errorCode' => 'ENS_BUY_DISK_STATUS_ILLEGAL',
+ 'errorMessage' => 'The disk status is invalid',
+ ],
+ [
+ 'errorCode' => 'SaleControl.VerificationFailed',
+ 'errorMessage' => 'You did not pass the salecontrol verification.Please contact the product.',
+ ],
+ [
+ 'errorCode' => 'OrderFailed',
+ 'errorMessage' => 'Order failed, please try again.',
+ ],
+ [
+ 'errorCode' => 'SystemUseCouponFailed',
+ 'errorMessage' => 'Failed to use coupon.',
+ ],
+ [
+ 'errorCode' => 'SystemUseStoredCardFailed',
+ 'errorMessage' => 'Failed to use stored value card.',
+ ],
+ [
+ 'errorCode' => 'System.SystemError',
+ 'errorMessage' => 'system error.',
+ ],
+ [
+ 'errorCode' => 'SystemCanRefundCheckFailed',
+ 'errorMessage' => 'The business rule check of the cloud product fails, and this order cannot be refunded.',
+ ],
+ [
+ 'errorCode' => 'SystemOtsSystem',
+ 'errorMessage' => 'ots storage error.',
+ ],
+ [
+ 'errorCode' => 'SystemQueryImmortalError',
+ 'errorMessage' => 'Failed to call Juxiange.',
+ ],
+ [
+ 'errorCode' => 'SystemQueryInstanceInfoFailed',
+ 'errorMessage' => 'Failed to find instance information.',
+ ],
+ [
+ 'errorCode' => 'SystemResellerPayCalRefundUnitError',
+ 'errorMessage' => 'Ecological payment channel calculation unsubscribe information error.',
+ ],
+ [
+ 'errorCode' => 'SystemSaleValidateFailed',
+ 'errorMessage' => 'Sales Expression Validation System Error.',
+ ],
+ [
+ 'errorCode' => 'SystemTransferDeleteOldResourceFailed',
+ 'errorMessage' => 'Failed to delete the transferred instance in the transfer order.',
+ ],
+ [
+ 'errorCode' => 'SystemUnSupportOperationType',
+ 'errorMessage' => 'Unsupported operation type.',
+ ],
+ [
+ 'errorCode' => 'RiskRiskControlRejection',
+ 'errorMessage' => 'Risk Control Rejection.',
+ ],
+ [
+ 'errorCode' => 'AuthRamAuthFailed',
+ 'errorMessage' => 'ram sub-account authentication failed.',
+ ],
+ [
+ 'errorCode' => 'CommodityInvalidComponent',
+ 'errorMessage' => 'The module you purchased is illegal, please re-select.',
+ ],
+ [
+ 'errorCode' => 'CommodityInvalidItemCode',
+ 'errorMessage' => 'Specification code illegal.',
+ ],
+ [
+ 'errorCode' => 'PriceHsfTimeoutError',
+ 'errorMessage' => 'Time out when calling the request for quotation interface.',
+ ],
+ [
+ 'errorCode' => 'PricePatingConfigError',
+ 'errorMessage' => 'Inquiry related goods configuration error.',
+ ],
+ [
+ 'errorCode' => 'PricePricingPlanResultNotFound',
+ 'errorMessage' => 'Pricing plan price result not found.',
+ ],
+ [
+ 'errorCode' => 'PriceRatingGetRatingpricingPlan',
+ 'errorMessage' => 'Obtain a valid pricing plan exception.',
+ ],
+ [
+ 'errorCode' => 'OrderAbnormalResourceStatusForRenew',
+ 'errorMessage' => 'Invalid resource status for renewal.',
+ ],
+ [
+ 'errorCode' => 'OrderAccountStatusIllegal',
+ 'errorMessage' => 'Illegal account status.',
+ ],
+ [
+ 'errorCode' => 'OrderArrearage',
+ 'errorMessage' => 'User Arrears.',
+ ],
+ [
+ 'errorCode' => 'OrderBidUserOrderForbidden',
+ 'errorMessage' => 'Bid users cannot buy on the official website.',
+ ],
+ [
+ 'errorCode' => 'OrderCaptureFailed',
+ 'errorMessage' => 'The paid order of the instance has not been deducted successfully.',
+ ],
+ [
+ 'errorCode' => 'OrderExistsReleasedInstances',
+ 'errorMessage' => 'There are already released instances.',
+ ],
+ [
+ 'errorCode' => 'OrderGroupOrderSizeOverflow',
+ 'errorMessage' => 'The quantity of bound combined payment order exceeds the limit.',
+ ],
+ [
+ 'errorCode' => 'OrderHomeCurrencyCanNotDowngrade',
+ 'errorMessage' => 'Users in current currency cannot downgrade.',
+ ],
+ [
+ 'errorCode' => 'OrderHomeCurrencyCanNotUpgradeByValueTransfer',
+ 'errorMessage' => 'Users of current currency cannot upgrade through residual value transfer.',
+ ],
+ [
+ 'errorCode' => 'OrderInstanceHasInactiveChange',
+ 'errorMessage' => 'Instances exist temporary upgrade.',
+ ],
+ [
+ 'errorCode' => 'OrderInstHasUnpaidOrder',
+ 'errorMessage' => 'The instance has an unpaid order.',
+ ],
+ [
+ 'errorCode' => 'OrderInstHasUnsettledBills',
+ 'errorMessage' => 'The instance has an unsettled bill.',
+ ],
+ [
+ 'errorCode' => 'OrderLatestOrderIsHandling',
+ 'errorMessage' => 'Recent order is being processed, please try again later.',
+ ],
+ [
+ 'errorCode' => 'OrderMainOrderSizeOverflow',
+ 'errorMessage' => 'The quantity of the main order exceeds the limit.',
+ ],
+ [
+ 'errorCode' => 'OrderMissingModuleInfoError',
+ 'errorMessage' => 'Module parameter not specified.',
+ ],
+ [
+ 'errorCode' => 'OrderNoRealNameAuthentication',
+ 'errorMessage' => 'No real-name authentication.',
+ ],
+ [
+ 'errorCode' => 'OrderNotFound',
+ 'errorMessage' => 'The specified order information is not found.',
+ ],
+ [
+ 'errorCode' => 'OrderOpend',
+ 'errorMessage' => 'You have activated this product.',
+ ],
+ [
+ 'errorCode' => 'OrderPeriodInvalid',
+ 'errorMessage' => 'Illegal order cycle.',
+ ],
+ [
+ 'errorCode' => 'OrderQuantityInvalid',
+ 'errorMessage' => 'Illegal quantity ordered.',
+ ],
+ [
+ 'errorCode' => 'OrderQueryInstanceError',
+ 'errorMessage' => 'Query instance error.',
+ ],
+ [
+ 'errorCode' => 'OrderQueryInstanceNotExists',
+ 'errorMessage' => 'Instance data does not exist.',
+ ],
+ [
+ 'errorCode' => 'OrderQueryOrderExchangeRateFail',
+ 'errorMessage' => 'Failed to query order exchange rate information.',
+ ],
+ [
+ 'errorCode' => 'OrderQueryUserSettleInfoFail',
+ 'errorMessage' => 'Failed to query user settlement information.',
+ ],
+ [
+ 'errorCode' => 'OrderQuotaExceeded',
+ 'errorMessage' => 'Quantity exceeds limit.',
+ ],
+ [
+ 'errorCode' => 'OrderSysConstraintInvalid',
+ 'errorMessage' => 'System constraint check failed.',
+ ],
+ [
+ 'errorCode' => 'OrderTradeCompleteSettleInfoFail',
+ 'errorMessage' => 'Failed to complete the order settlement currency amount information.',
+ ],
+ [
+ 'errorCode' => 'TradeTradeOrderAfterPayCheckError',
+ 'errorMessage' => 'You have already paid for the subsequent orders of this instance. The current order has been automatically voided and you cannot pay any more.',
+ ],
+ [
+ 'errorCode' => 'PurchaseExistRenewchangeProd',
+ 'errorMessage' => 'There is a renewal change subscription that has not yet taken effect.',
+ ],
+ [
+ 'errorCode' => 'PurchaseExistToBeValidProdRuleError',
+ 'errorMessage' => 'Currently, there are temporary orders that are not in effect, and the upgrade operation cannot be performed.',
+ ],
+ [
+ 'errorCode' => 'PurchaseExistToBeValidRenewChangeProdRuleError',
+ 'errorMessage' => 'Currently, there is an uneffective renewal change subscription, and temporary upgrade operation cannot be performed.',
+ ],
+ [
+ 'errorCode' => 'PurchaseExistValidProdRuleError',
+ 'errorMessage' => 'Currently, there is a temporary order in effect, and operations such as upgrade/downgrade/expansion/pre-transfer cannot be performed.',
+ ],
+ [
+ 'errorCode' => 'ProductInstanceReleased',
+ 'errorMessage' => 'Instance released.',
+ ],
+ [
+ 'errorCode' => 'ProductInstanceTypeNotSupported',
+ 'errorMessage' => 'The instance type is not supported.',
+ ],
+ [
+ 'errorCode' => 'PatRiskRejectForTradeData',
+ 'errorMessage' => 'Payment order problem leads to risk control rejection.',
+ ],
+ [
+ 'errorCode' => 'PayAccountBookNotExist',
+ 'errorMessage' => 'There is no insufficient account balance in the account book, please retry after recharging.',
+ ],
+ [
+ 'errorCode' => 'PayAmountLimitExceeded',
+ 'errorMessage' => 'Payment limit exceeded, please resubmit.',
+ ],
+ [
+ 'errorCode' => 'PayBeforePayRiskRuleValidateFailed',
+ 'errorMessage' => 'The payment was blocked by risk control, and the payment failed.',
+ ],
+ [
+ 'errorCode' => 'PayCounponNotExist',
+ 'errorMessage' => 'Counpon does not exist.',
+ ],
+ [
+ 'errorCode' => 'PayCouponAmountNotEnough',
+ 'errorMessage' => 'Insufficient voucher balance or expired.',
+ ],
+ [
+ 'errorCode' => 'PayCouponNotMeetConsumptionRule',
+ 'errorMessage' => 'The coupon does not meet the conditions for use.',
+ ],
+ [
+ 'errorCode' => 'PayCurrencyInconsistency',
+ 'errorMessage' => 'Currency mismatch.',
+ ],
+ [
+ 'errorCode' => 'PayCurrencyNotSupported',
+ 'errorMessage' => 'Currency not supported.',
+ ],
+ [
+ 'errorCode' => 'PayForbiddenNoReasonFefund',
+ 'errorMessage' => 'Banned five days no reason refund.',
+ ],
+ [
+ 'errorCode' => 'PayHsfTimeoutError',
+ 'errorMessage' => 'Call payment system timeout.',
+ ],
+ [
+ 'errorCode' => 'PayInsufficientBalance',
+ 'errorMessage' => 'Account balance is insufficient, please recharge and try again.',
+ ],
+ [
+ 'errorCode' => 'PayInvalidCreditCard',
+ 'errorMessage' => 'Invalid credit card.',
+ ],
+ [
+ 'errorCode' => 'PayInvalidPayMethod',
+ 'errorMessage' => 'Illegal payment method.',
+ ],
+ [
+ 'errorCode' => 'PayMegrePayOrderHasThanOneChagreChannel',
+ 'errorMessage' => 'Payment failed, please retry or submit work order feedback.',
+ ],
+ [
+ 'errorCode' => 'PayNoCreditCard',
+ 'errorMessage' => 'No valid payment method, please check the payment method and try again.',
+ ],
+ [
+ 'errorCode' => 'PayOrderPayTimeInvalid',
+ 'errorMessage' => 'Order effective time is invalid.',
+ ],
+ [
+ 'errorCode' => 'PayPartRefundNotSupport',
+ 'errorMessage' => 'Not Capture, no partial refund.',
+ ],
+ [
+ 'errorCode' => 'PayPayChannelPayOrderInvalidStatus',
+ 'errorMessage' => 'Illegal status of payment order in payment channel.',
+ ],
+ [
+ 'errorCode' => 'PayPayChannelPayOrderNotExist',
+ 'errorMessage' => 'Payment channel payment order does not exist.',
+ ],
+ [
+ 'errorCode' => 'PayPayerAccountIllegal',
+ 'errorMessage' => 'Illegal payment account.',
+ ],
+ [
+ 'errorCode' => 'PayPayFailedParentRelationchanged',
+ 'errorMessage' => 'If the financial custody relationship changes, please void the order and place a new order for payment.',
+ ],
+ [
+ 'errorCode' => 'PayPayForbidUserCoupon',
+ 'errorMessage' => 'Coupon prohibited for orders.',
+ ],
+ [
+ 'errorCode' => 'PayQueryAvailableAmountFailed',
+ 'errorMessage' => 'Failed to query user availability, please try again later.',
+ ],
+ [
+ 'errorCode' => 'PayQueryAvailableEnduserAmountFailed',
+ 'errorMessage' => 'Failed to query the availability of quota direct customer main user, please try again later.',
+ ],
+ [
+ 'errorCode' => 'PayQueryParentRelationshipFailed',
+ 'errorMessage' => 'Failed to query current user hosting relationship, please try again later.',
+ ],
+ [
+ 'errorCode' => 'PayQueryPayChangeChannelNotEqual',
+ 'errorMessage' => 'Multi-order payment channels are inconsistent, please check whether the original order data payment channel is correct.',
+ ],
+ [
+ 'errorCode' => 'PayRefundFailed',
+ 'errorMessage' => 'Accumulated refund amount exceeds payment order amount.',
+ ],
+ [
+ 'errorCode' => 'PayResellerPayGetUrlError',
+ 'errorMessage' => 'Order payment failed, please try again later.',
+ ],
+ [
+ 'errorCode' => 'PayRiskRejectForPayerAccount',
+ 'errorMessage' => 'Payment account problem leads to risk control rejection.',
+ ],
+ [
+ 'errorCode' => 'PayStoredCardNotExist',
+ 'errorMessage' => 'Stored value card does not exist.',
+ ],
+ [
+ 'errorCode' => 'PaySystemError',
+ 'errorMessage' => 'Error calling payment system.',
+ ],
+ [
+ 'errorCode' => 'PayTaxCalcFailed',
+ 'errorMessage' => 'Failed to get user tax address.',
+ ],
+ [
+ 'errorCode' => 'PayWithholdingAgreementIllegal',
+ 'errorMessage' => 'Withholding Agreement Status Illegal.',
+ ],
+ [
+ 'errorCode' => 'AccountAliyunAccountFrozen',
+ 'errorMessage' => 'Alibaba Cloud account is frozen.',
+ ],
+ [
+ 'errorCode' => 'AccountAliyunAccountNotExist',
+ 'errorMessage' => 'Alibaba Cloud account does not exist.',
+ ],
+ [
+ 'errorCode' => 'RefundRefundInstanceNotFound',
+ 'errorMessage' => 'Unable to find instance information.',
+ ],
+ [
+ 'errorCode' => 'RefundRefundNoValidProd',
+ 'errorMessage' => 'Refund is not available to unsubscribe.',
+ ],
+ [
+ 'errorCode' => 'RefundRefundParamInvalid',
+ 'errorMessage' => 'Abnormal refund parameter.',
+ ],
+ [
+ 'errorCode' => 'RefundRefundQueryOrderFail',
+ 'errorMessage' => 'Failed to query order for refund field.',
+ ],
+ [
+ 'errorCode' => 'SystemConcurrentOperate',
+ 'errorMessage' => 'Concurrent operation causes failure.',
+ ],
+ [
+ 'errorCode' => 'PricePricingPlanNotFound',
+ 'errorMessage' => 'Pricing plan tree not found.',
+ ],
+ [
+ 'errorCode' => 'OrderInstanceHasTempUpgrade',
+ 'errorMessage' => 'Instances exist temporary upgrade.',
+ ],
+ [
+ 'errorCode' => 'PayQueryParentRelationchangedFailed',
+ 'errorMessage' => 'The financial custody relationship may change, please refresh and pay again.',
+ ],
+ [
+ 'errorCode' => 'PayforCreditPayInsufficientBalance',
+ 'errorMessage' => 'Insufficient quota, please contact your channel partner to increase the quota.',
+ ],
+ [
+ 'errorCode' => 'PayforAccountMoneyValidateError',
+ 'errorMessage' => 'The available amount of your channel partner\'s account is insufficient, please contact your channel partner to recharge in time.',
+ ],
+ [
+ 'errorCode' => 'BasicInfoUncompleted',
+ 'errorMessage' => 'You have not completed your basic personal information. Please complete the information and re-operate it.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'SaleControlVerificationFailedDiskSpec',
+ 'errorMessage' => 'Cloud disk capacity sales constraint verification failed, please re-match, or contact the product.',
+ ],
+ [
+ 'errorCode' => 'SaleControlVerificationFailedDiskType',
+ 'errorMessage' => 'Cloud disk type sales constraint verification failed, please re-match, or contact the product.',
+ ],
+ [
+ 'errorCode' => 'SaleControlVerificationFailedInstanceSystemDiskSpec',
+ 'errorMessage' => 'The system disk capacity sales constraint verification failed, please re-match or contact the product.',
+ ],
+ [
+ 'errorCode' => 'SaleControlVerificationFailedRegion',
+ 'errorMessage' => 'The node sales constraint verification failed, please re-select or contact the product.',
+ ],
+ [
+ 'errorCode' => 'SaleControlVerificationFailedInstanceDataDiskType',
+ 'errorMessage' => 'Data disk type sales constraint verification failed, please re-select, or contact the product.',
+ ],
+ [
+ 'errorCode' => 'CONFIGURATION_ALLOW_UPGRADE',
+ 'errorMessage' => 'The order type of this commodity only supports upgrade.',
+ ],
+ [
+ 'errorCode' => 'InvalidInstancebillingCycleStatus',
+ 'errorMessage' => 'The contract status of the current instance is incorrect.',
+ ],
+ [
+ 'errorCode' => 'PendingEffectiveContract',
+ 'errorMessage' => 'The contract of the current instance to take effect. Operation is prohibited.',
+ ],
+ [
+ 'errorCode' => 'InstanceForbidOperate',
+ 'errorMessage' => 'There are currently uncompleted operations on the instance. Please wait for the instance renewal, configuration change, or payment type conversion to be completed before retrying.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"689412F2-8402-181E-8C87-1EF62331DCC4\\",\\n \\"OrderId\\": \\"21522202681****\\"\\n}","errorExample":""},{"type":"xml","example":"<ResizeDiskResponse>\\n <RequestId>689412F2-8402-181E-8C87-1EF62331DCC4</RequestId>\\n <OrderId>21522202681****</OrderId>\\n</ResizeDiskResponse>","errorExample":""}]',
+ 'title' => 'ResizeDisk',
+ ],
+ 'DescribeDisks' => [
+ 'summary' => 'Queries the information about one or more disks.',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '882',
+ 'abilityTreeNodes' => [
+ 'FEATUREensFV3GVR',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'EnsRegionId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the edge node.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'cn-kunming-telecom',
+ ],
+ ],
+ [
+ 'name' => 'DiskId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the disk.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'd-5soak1gqa507lyfzvz0xo****',
+ ],
+ ],
+ [
+ 'name' => 'DiskName',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The name of the disk.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'DiskName',
+ ],
+ ],
+ [
+ 'name' => 'PageNumber',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The number of the page to return. Pages start from page **1**.'."\n"
+ ."\n"
+ .'Default value: **1**.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '1',
+ ],
+ ],
+ [
+ 'name' => 'PageSize',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The number of entries to return on each page. Maximum value: **50**.'."\n"
+ ."\n"
+ .'Default value: **10**.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '10',
+ ],
+ ],
+ [
+ 'name' => 'Status',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The status of the disk. Valid values:'."\n"
+ ."\n"
+ .'* In-use: The disk is in use.'."\n"
+ .'* Available: The disk can be attached.'."\n"
+ .'* Attaching: The disk is being attached.'."\n"
+ .'* Detaching: The disk is being detached.'."\n"
+ .'* Creating: The disk is being created.'."\n"
+ .'* ReIniting: The disk is being reset.'."\n"
+ .'* Deleting: The disk is being released.'."\n"
+ .'* Deleted: The disk is released.'."\n"
+ .'* Expiring: The disk is about to expire.',
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'Available',
+ ],
+ ],
+ [
+ 'name' => 'Type',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The type of the disk. Valid values:'."\n"
+ ."\n"
+ .'* system: system disk.'."\n"
+ .'* data: data disk.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'system',
+ ],
+ ],
+ [
+ 'name' => 'Category',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The category of the disk.'."\n"
+ ."\n"
+ .'* cloud_efficiency: ultra disk.'."\n"
+ .'* cloud_ssd: all-flash disk.'."\n"
+ .'* local_hdd: local HDD.'."\n"
+ .'* local_ssd: local SSD.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'local_ssd',
+ ],
+ ],
+ [
+ 'name' => 'DiskChargeType',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The billing method.'."\n"
+ ."\n"
+ .'* prePay: subscription.'."\n"
+ .'* postpay: pay-as-you-go.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'prepay',
+ ],
+ ],
+ [
+ 'name' => 'EnsRegionIds',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The node information.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '["cn-suzhou-telecom","cn-chengdu-telecom"]',
+ ],
+ ],
+ [
+ 'name' => 'DiskIds',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the disk.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '[\\"d-wz99njena32z90ki****\\"]',
+ ],
+ ],
+ [
+ 'name' => 'OrderByParams',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The order in which you want to sort the returned data. Example: {"EnsRegionId":"desc"}. By default, the nodes are sorted by IDs in descending order.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '{ "DiskNameSort":"desc","EnsRegionIdSort":"asc" }',
+ ],
+ ],
+ [
+ 'name' => 'DiskType',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The purchase method of the disk. Valid values:'."\n"
+ ."\n"
+ .'* ServiceDisk: The disk is purchased when ENS is activated.'."\n"
+ .'* ResoureDisk: The disk is purchased when the instance is created.'."\n"
+ .'* PostPayDisk: The disk is separately purchased.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'PostPayDisk',
+ ],
+ ],
+ [
+ 'name' => 'InstanceId',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '云盘所挂载的实列。',
+ 'description' => 'The ID of the instance to which the disk is attached.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'i-5t77rb0yoz79m28ku60sx****',
+ ],
+ ],
+ [
+ 'name' => 'SnapshotId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the snapshot.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 's-897654321****',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'Code' => [
+ 'description' => 'The returned service code. 0 indicates that the request was successful.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '0',
+ ],
+ 'Disks' => [
+ 'type' => 'object',
+ 'itemNode' => true,
+ 'properties' => [
+ 'Disks' => [
+ 'description' => 'The information about the disks.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The information about the disk.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'Category' => [
+ 'description' => 'The category of the disk.'."\n"
+ ."\n"
+ .'* cloud_efficiency: ultra disk.'."\n"
+ .'* cloud_ssd: all-flash disk.'."\n"
+ .'* local_hdd: local HDD.'."\n"
+ .'* local_ssd: local SSD.'."\n",
+ 'type' => 'string',
+ 'example' => 'local_ssd',
+ ],
+ 'CreationTime' => [
+ 'description' => 'The time when the disk was created. The time follows the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time is displayed in UTC.'."\n",
+ 'type' => 'string',
+ 'example' => '2021-11-11T14:34:55+08:00',
+ ],
+ 'DiskChargeType' => [
+ 'description' => 'The billing method of the cloud disk or local disk. Valid values:'."\n"
+ ."\n"
+ .'* **prepaid**: subscription.'."\n"
+ .'* **postpaid**: pay-as-you-go.'."\n",
+ 'type' => 'string',
+ 'example' => 'prepaid',
+ ],
+ 'DiskId' => [
+ 'description' => 'The ID of the disk.'."\n",
+ 'type' => 'string',
+ 'example' => 'd-5svum1dx1w4a4spr54lgr****',
+ ],
+ 'DiskName' => [
+ 'description' => 'The name of the disk.'."\n",
+ 'type' => 'string',
+ 'example' => 'fvt-ecs-5cf0****',
+ ],
+ 'EnsRegionId' => [
+ 'description' => 'The ID of the edge node.'."\n",
+ 'type' => 'string',
+ 'example' => 'cn-guangzhou-10',
+ ],
+ 'InstanceId' => [
+ 'description' => 'The ID of the instance.'."\n",
+ 'type' => 'string',
+ 'example' => 'i-5t77rb0yoz79m28ku60sx****',
+ ],
+ 'InstanceName' => [
+ 'description' => 'The name of the instance.'."\n",
+ 'type' => 'string',
+ 'example' => 'Edge Prod Environment Streaming Machine -1063'."\n",
+ ],
+ 'Description' => [
+ 'description' => 'The namespace description.'."\n",
+ 'type' => 'string',
+ 'example' => 'disk-description',
+ ],
+ 'Size' => [
+ 'description' => 'The size of the disk. Unit: MiB.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '20',
+ ],
+ 'Status' => [
+ 'description' => 'The status of the disk. Valid values:'."\n"
+ ."\n"
+ .'* In-use: The disk is in use.'."\n"
+ .'* Available: The disk can be attached.'."\n"
+ .'* Attaching: The disk is being attached.'."\n"
+ .'* Detaching: The disk is being detached.'."\n"
+ .'* Creating: The disk is being created.'."\n"
+ .'* ReIniting: The disk is being reset.'."\n",
+ 'type' => 'string',
+ 'example' => 'Available',
+ ],
+ 'Type' => [
+ 'description' => 'The type of the cloud disk or local disk. Valid values:'."\n"
+ ."\n"
+ .'* 1: system disk.'."\n"
+ .'* 2: data disk.'."\n",
+ 'type' => 'string',
+ 'example' => '1',
+ ],
+ 'Portable' => [
+ 'description' => 'Indicates whether the cloud disk or local disk is removable. Valid values:'."\n"
+ ."\n"
+ .'* true: The disk is removable. A removable disk can independently exist and can be attached to or detached from an instance within the same zone.'."\n"
+ .'* false: The disk is not removable. A disk that is not removable cannot independently exist or be attached to or detached from an instance within the same zone.'."\n"
+ ."\n"
+ .'If disks are of the following categories or types, the **Portable** value is **false** and the disks have the same lifecycle as their attached instances:'."\n"
+ ."\n"
+ .'* Local HDDs'."\n"
+ .'* Local SSDs'."\n"
+ .'* Data disks that use the subscription billing method'."\n",
+ 'type' => 'boolean',
+ 'example' => 'true',
+ ],
+ 'SnapshotId' => [
+ 'description' => 'The ID of the snapshot.'."\n",
+ 'type' => 'string',
+ 'example' => 's-bp67acfmxazb4p****',
+ ],
+ 'SerialId' => [
+ 'description' => 'The serial number.'."\n",
+ 'type' => 'string',
+ 'example' => '123',
+ ],
+ 'Encrypted' => [
+ 'title' => '云盘是否加密',
+ 'description' => 'Indicates whether the cloud disk is encrypted. Valid values:'."\n"
+ ."\n"
+ .'* **true**'."\n"
+ .'* **false**'."\n",
+ 'type' => 'boolean',
+ 'example' => 'False',
+ ],
+ 'EncryptedKeyId' => [
+ 'description' => 'The ID of the Key Management Service (KMS) key that is used for the cloud disk.'."\n",
+ 'type' => 'string',
+ 'example' => '05467897a-4262-4802-b8cb-00d3fb40****',
+ ],
+ 'DeleteWithInstance' => [
+ 'description' => 'Indicates whether the disk is released when the instance to which the disk is attached is released. Valid values:'."\n"
+ ."\n"
+ .'* true: The disk is released when the associated instance is released.'."\n"
+ .'* false: The disk is retained when the associated instance is released.'."\n",
+ 'type' => 'boolean',
+ 'example' => 'false',
+ 'default' => 'false',
+ ],
+ 'Tags' => [
+ 'type' => 'object',
+ 'itemNode' => true,
+ 'properties' => [
+ 'Tags' => [
+ 'type' => 'array',
+ 'items' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'Key' => [
+ 'type' => 'string',
+ ],
+ 'Value' => [
+ 'type' => 'string',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'PageNumber' => [
+ 'description' => 'The page number of the returned page.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '1',
+ ],
+ 'PageSize' => [
+ 'description' => 'The number of entries returned per page. Maximum value: **50**. Default value: **10**.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '50',
+ ],
+ 'RequestId' => [
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984',
+ ],
+ 'TotalCount' => [
+ 'description' => 'The total number of returned pages.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '13',
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'MissingParameter',
+ 'errorMessage' => 'The input parameter domainName that is mandatory for processing this request is not supplied.',
+ ],
+ [
+ 'errorCode' => 'InstanceIdNotFound',
+ 'errorMessage' => 'The input parameter instancdId that is not found.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'CallInterface',
+ 'errorMessage' => 'Call Interface Happen Error.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": 0,\\n \\"Disks\\": {\\n \\"Disks\\": [\\n {\\n \\"Category\\": \\"local_ssd\\",\\n \\"CreationTime\\": \\"2021-11-11T14:34:55+08:00\\",\\n \\"DiskChargeType\\": \\"prepaid\\",\\n \\"DiskId\\": \\"d-5svum1dx1w4a4spr54lgr****\\",\\n \\"DiskName\\": \\"fvt-ecs-5cf0****\\",\\n \\"EnsRegionId\\": \\"cn-guangzhou-10\\",\\n \\"InstanceId\\": \\"i-5t77rb0yoz79m28ku60sx****\\",\\n \\"InstanceName\\": \\"边缘prod环境串流机器-1063\\",\\n \\"Description\\": \\"disk-description\\",\\n \\"Size\\": 20,\\n \\"Status\\": \\"Available\\",\\n \\"Type\\": \\"1\\",\\n \\"Portable\\": true,\\n \\"SnapshotId\\": \\"s-bp67acfmxazb4p****\\",\\n \\"SerialId\\": \\"123\\",\\n \\"Encrypted\\": false,\\n \\"EncryptedKeyId\\": \\"05467897a-4262-4802-b8cb-00d3fb40****\\",\\n \\"DeleteWithInstance\\": false,\\n \\"Tags\\": {\\n \\"Tags\\": [\\n {\\n \\"Key\\": \\"\\",\\n \\"Value\\": \\"\\"\\n }\\n ]\\n }\\n }\\n ]\\n },\\n \\"PageNumber\\": 1,\\n \\"PageSize\\": 50,\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\",\\n \\"TotalCount\\": 13\\n}","errorExample":""},{"type":"xml","example":"<DescribeDisksResponse>\\n <Code>0</Code>\\n <Disks>\\n <Category>local_ssd</Category>\\n <CreationTime>2021-11-11T14:34:55+08:00</CreationTime>\\n <DiskChargeType>prepaid</DiskChargeType>\\n <DiskId>d-5svum1dx1w4a4spr54lgr****</DiskId>\\n <DiskName>fvt-ecs-5cf0****</DiskName>\\n <EnsRegionId>cn-guangzhou-10</EnsRegionId>\\n <InstanceId>i-5t77rb0yoz79m28ku60sx****</InstanceId>\\n <InstanceName>边缘prod环境串流机器-1063</InstanceName>\\n <Size>20</Size>\\n <Status>Available</Status>\\n <Type>1</Type>\\n <Portable>true</Portable>\\n <SnapshotId>s-bp67acfmxazb4p****</SnapshotId>\\n <SerialId>123</SerialId>\\n </Disks>\\n <PageNumber>1</PageNumber>\\n <PageSize>50</PageSize>\\n <RequestId>CEF72CEB-54B6-4AE8-B225-F876FF7BA984</RequestId>\\n <TotalCount>13</TotalCount>\\n</DescribeDisksResponse>","errorExample":""}]',
+ 'title' => 'DescribeDisks',
+ ],
+ 'ReInitDisk' => [
+ 'summary' => 'Initializes a disk.',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'systemTags' => [
+ 'operationType' => 'create',
+ 'abilityTreeCode' => '1227',
+ 'abilityTreeNodes' => [
+ 'FEATUREensM9G454',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'DiskId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the disk to be initialized. You can initialize only one disk at a time.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'd-5r7v69e0bejrnzger09w71yjv',
+ ],
+ ],
+ [
+ 'name' => 'ImageId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the image to use to create the instance.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'm-5rz3i231o531s4p4ozanxmgx7',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'Code' => [
+ 'description' => 'The returned service code. A value of 0 indicates that the operation was successful.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '0',
+ ],
+ 'RequestId' => [
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '4DD66F05-3116-4BAA-B588-52EB2E7F431D',
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'MissingParameter',
+ 'errorMessage' => 'The input parameters that is mandatory for processing this request is not supplied.',
+ ],
+ [
+ 'errorCode' => 'InstanceIdNotFound',
+ 'errorMessage' => 'The input parameter instancdId that is not found.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'CallInterface',
+ 'errorMessage' => 'Call Interface Happen Error.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Code\\": 0,\\n \\"RequestId\\": \\"4DD66F05-3116-4BAA-B588-52EB2E7F431D\\"\\n}","type":"json"}]',
+ 'title' => 'ReInitDisk',
+ ],
+ 'ResetDisk' => [
+ 'summary' => 'Rolls back a disk by using a snapshot.',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'update',
+ 'abilityTreeCode' => '163879',
+ 'abilityTreeNodes' => [
+ 'FEATUREensM9G454',
+ ],
+ 'tenantRelevance' => 'tenant',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'DiskId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the disk that you want to roll back.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'd-bp199lyny9b3****',
+ ],
+ ],
+ [
+ 'name' => 'SnapshotId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the snapshot that you want to use to roll back the disk.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'sp-bp199lyny9b3****',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => 'C0003E8B-B930-4F59-ADC0-0E209A9012A8',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'InstanceNotFound',
+ 'errorMessage' => 'The input parameter instancdId that is not found.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'CallInterface',
+ 'errorMessage' => 'Call Interface Happen Error.',
+ ],
+ [
+ 'errorCode' => 'InstanceIdNotFound',
+ 'errorMessage' => 'The input parameter instancdId that is not found.',
+ ],
+ [
+ 'errorCode' => 'IncorrectStatus.Disk',
+ 'errorMessage' => 'The status of the disk is incorrect.',
+ ],
+ [
+ 'errorCode' => 'DISK_SNAPSHOT_STATUS_NOT_MATCH',
+ 'errorMessage' => 'Snapshot status mismatch.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"C0003E8B-B930-4F59-ADC0-0E209A9012A8\\"\\n}","errorExample":""},{"type":"xml","example":"<ResetDiskResponse>\\n <RequestId>C0003E8B-B930-4F59-ADC0-0E209A9012A8</RequestId>\\n</ResetDiskResponse>","errorExample":""}]',
+ 'title' => 'ResetDisk',
+ 'description' => 'When you call this operation, take note of the following items:'."\n"
+ ."\n"
+ .'* The disk must be in the In Use (In_Use) or Unattached (Available) state.'."\n"
+ .'* The instance to which the disk is attached must be in the Stopped (Stopped) state. You can call the [StopInstance](~~StopInstance~~) operation to stop an instance.'."\n"
+ .'* The specified snapshot must be created from the disk specified by the DiskId parameter.'."\n"
+ .'* If the response contains `{"OperationLocks": {"LockReason" : "security"}}` when you query information about an ENS instance by calling the [DescribeInstances](~~DescribeInstances~~) operation, the instance is locked for security reasons and no operations are allowed on the instance.'."\n",
+ ],
+ 'DescribeDiskIopsList' => [
+ 'summary' => 'Queries the disk IOPS monitoring data.',
+ 'methods' => [
+ 'get',
+ ],
+ 'schemes' => [
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'none',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'StartTime',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '开始时间,格式: yyyy-MM-dd HH:mm:ss.',
+ 'description' => 'The beginning of the time range to query. Specify the time in the format of yyyy-MM-dd HH:mm:ss.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => '2023-12-14 00:00:00',
+ ],
+ ],
+ [
+ 'name' => 'EndTime',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '截止时间,和开始时间跨度不可超过1天,格式: yyyy-MM-dd HH:mm:ss.',
+ 'description' => 'The beginning of the time range to query. Specify the time in the format of yyyy-MM-dd HH:mm:ss. The time range specified by the StartTime and EndTime parameters cannot exceed one day for a query.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => '2023-12-14 23:59:59',
+ ],
+ ],
+ [
+ 'name' => 'DiskId',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '磁盘ID,格式: d-***********',
+ 'description' => 'The ID of the disk. Format: d-\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'd-5tzm9wnhzlhjzcbtxo465****',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'Id of the request'."\n",
+ 'type' => 'string',
+ 'example' => 'A7814CAB-DB4E-140A-9D6F-7C8210C1DAC3',
+ ],
+ 'DiskIopsList' => [
+ 'description' => 'The IOPS monitoring data of the cloud disk.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'DiskId' => [
+ 'title' => '磁盘ID',
+ 'description' => 'The ID of the disk.'."\n",
+ 'type' => 'string',
+ 'example' => 'd-5tzm9wnhzlhjzcbtxo465****',
+ ],
+ 'RegionId' => [
+ 'title' => '节点ID',
+ 'description' => 'The ID of the node.'."\n",
+ 'type' => 'string',
+ 'example' => 'cn-hangzhou-3',
+ ],
+ 'ReadBytes' => [
+ 'title' => '读吞吐(单位Byte)',
+ 'description' => 'The read throughput. Unit: bytes.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int64',
+ 'example' => '10054',
+ ],
+ 'ReadLatency' => [
+ 'title' => '读延迟(单位微秒)',
+ 'description' => 'The read latency. Unit: ms.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int64',
+ 'example' => '15646532',
+ ],
+ 'ReadOps' => [
+ 'title' => '读IOPS',
+ 'description' => 'The read IOPS.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int64',
+ 'example' => '4',
+ ],
+ 'WriteBytes' => [
+ 'title' => '写吞吐(单位Byte)',
+ 'description' => 'The write throughput. Unit: bytes.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int64',
+ 'example' => '0',
+ ],
+ 'WriteLatency' => [
+ 'title' => '写延迟(单位微秒)',
+ 'description' => 'The write latency. Unit: microseconds.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int64',
+ 'example' => '0',
+ ],
+ 'WriteOps' => [
+ 'title' => '写IOPS',
+ 'description' => 'The write IOPS.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int64',
+ 'example' => '0',
+ ],
+ 'BizTime' => [
+ 'title' => '业务时间,格式: yyyy-MM-dd HH:mm:ss.',
+ 'description' => 'The business time . The time is displayed in the yyyy-MM-dd HH:mm:ss.'."\n",
+ 'type' => 'string',
+ 'example' => '2023-12-14 00:00:00',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"A7814CAB-DB4E-140A-9D6F-7C8210C1DAC3\\",\\n \\"DiskIopsList\\": [\\n {\\n \\"DiskId\\": \\"d-5tzm9wnhzlhjzcbtxo465****\\",\\n \\"RegionId\\": \\"cn-hangzhou-3\\",\\n \\"ReadBytes\\": 10054,\\n \\"ReadLatency\\": 15646532,\\n \\"ReadOps\\": 4,\\n \\"WriteBytes\\": 0,\\n \\"WriteLatency\\": 0,\\n \\"WriteOps\\": 0,\\n \\"BizTime\\": \\"2023-12-14 00:00:00\\"\\n }\\n ]\\n}","type":"json"}]',
+ 'title' => 'DescribeDiskIopsList',
+ ],
+ 'CreateSnapshot' => [
+ 'summary' => 'Creates a snapshot.',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'create',
+ 'riskType' => 'high',
+ 'chargeType' => 'paid',
+ 'abilityTreeNodes' => [
+ 'FEATUREensOS1TQY',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'DiskId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the cloud disk.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'd-bp1s5fnvk4gn2tws0****',
+ ],
+ ],
+ [
+ 'name' => 'EnsRegionId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the edge node.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'cn-shenzhen-3',
+ ],
+ ],
+ [
+ 'name' => 'SnapshotName',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The name of the snapshot. The name must be 2 to 128 characters in length. It must start with a letter and cannot start with `http://` or `https://`. It can contain letters, digits, colons (:), underscores (\\_), and hyphens (-).'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'testSnapshotName',
+ ],
+ ],
+ [
+ 'name' => 'Description',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The description of the snapshot. The description must be 2 to 256 characters in length and cannot start with `http://` or `https://`.'."\n"
+ ."\n"
+ .'By default, this parameter is left empty.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'testDescription',
+ ],
+ ],
+ [
+ 'name' => 'InstanceBillingCycle',
+ 'in' => 'query',
+ 'schema' => [
+ 'type' => 'string',
+ 'enum' => [
+ 'Hour',
+ 'Day',
+ 'Month',
+ ],
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E',
+ ],
+ 'SnapShotId' => [
+ 'description' => 'The IDs of the snapshots.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The snapshot ID.'."\n",
+ 'type' => 'string',
+ 'example' => '["sp-5w1x1nxsmkhdgval1h5l****"]',
+ ],
+ 'example' => 's-bp17441ohwka0yuh****',
+ ],
+ 'OrderId' => [
+ 'description' => 'The ID of the order.'."\n",
+ 'type' => 'string',
+ 'example' => '21969183547****',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'OrderFailed',
+ 'errorMessage' => 'Order failed, please try again.',
+ ],
+ [
+ 'errorCode' => 'SystemUseCouponFailed',
+ 'errorMessage' => 'Failed to use coupon.',
+ ],
+ [
+ 'errorCode' => 'SystemUseStoredCardFailed',
+ 'errorMessage' => 'Failed to use stored value card.',
+ ],
+ [
+ 'errorCode' => 'System.SystemError',
+ 'errorMessage' => 'system error.',
+ ],
+ [
+ 'errorCode' => 'SystemCanRefundCheckFailed',
+ 'errorMessage' => 'The business rule check of the cloud product fails, and this order cannot be refunded.',
+ ],
+ [
+ 'errorCode' => 'SystemOtsSystem',
+ 'errorMessage' => 'ots storage error.',
+ ],
+ [
+ 'errorCode' => 'SystemQueryImmortalError',
+ 'errorMessage' => 'Failed to call Juxiange.',
+ ],
+ [
+ 'errorCode' => 'SystemQueryInstanceInfoFailed',
+ 'errorMessage' => 'Failed to find instance information.',
+ ],
+ [
+ 'errorCode' => 'SystemResellerPayCalRefundUnitError',
+ 'errorMessage' => 'Ecological payment channel calculation unsubscribe information error.',
+ ],
+ [
+ 'errorCode' => 'SystemSaleValidateFailed',
+ 'errorMessage' => 'Sales Expression Validation System Error.',
+ ],
+ [
+ 'errorCode' => 'SystemTransferDeleteOldResourceFailed',
+ 'errorMessage' => 'Failed to delete the transferred instance in the transfer order.',
+ ],
+ [
+ 'errorCode' => 'SystemUnSupportOperationType',
+ 'errorMessage' => 'Unsupported operation type.',
+ ],
+ [
+ 'errorCode' => 'RiskRiskControlRejection',
+ 'errorMessage' => 'Risk Control Rejection.',
+ ],
+ [
+ 'errorCode' => 'AuthRamAuthFailed',
+ 'errorMessage' => 'ram sub-account authentication failed.',
+ ],
+ [
+ 'errorCode' => 'CommodityInvalidComponent',
+ 'errorMessage' => 'The module you purchased is illegal, please re-select.',
+ ],
+ [
+ 'errorCode' => 'CommodityInvalidItemCode',
+ 'errorMessage' => 'Specification code illegal.',
+ ],
+ [
+ 'errorCode' => 'PriceHsfTimeoutError',
+ 'errorMessage' => 'Time out when calling the request for quotation interface.',
+ ],
+ [
+ 'errorCode' => 'PricePatingConfigError',
+ 'errorMessage' => 'Inquiry related goods configuration error.',
+ ],
+ [
+ 'errorCode' => 'PricePricingPlanResultNotFound',
+ 'errorMessage' => 'Pricing plan price result not found.',
+ ],
+ [
+ 'errorCode' => 'PriceRatingGetRatingpricingPlan',
+ 'errorMessage' => 'Obtain a valid pricing plan exception.',
+ ],
+ [
+ 'errorCode' => 'OrderAbnormalResourceStatusForRenew',
+ 'errorMessage' => 'Invalid resource status for renewal.',
+ ],
+ [
+ 'errorCode' => 'OrderAccountStatusIllegal',
+ 'errorMessage' => 'Illegal account status.',
+ ],
+ [
+ 'errorCode' => 'OrderArrearage',
+ 'errorMessage' => 'User Arrears.',
+ ],
+ [
+ 'errorCode' => 'OrderBidUserOrderForbidden',
+ 'errorMessage' => 'Bid users cannot buy on the official website.',
+ ],
+ [
+ 'errorCode' => 'OrderCaptureFailed',
+ 'errorMessage' => 'The paid order of the instance has not been deducted successfully.',
+ ],
+ [
+ 'errorCode' => 'OrderExistsReleasedInstances',
+ 'errorMessage' => 'There are already released instances.',
+ ],
+ [
+ 'errorCode' => 'OrderGroupOrderSizeOverflow',
+ 'errorMessage' => 'The quantity of bound combined payment order exceeds the limit.',
+ ],
+ [
+ 'errorCode' => 'OrderHomeCurrencyCanNotDowngrade',
+ 'errorMessage' => 'Users in current currency cannot downgrade.',
+ ],
+ [
+ 'errorCode' => 'OrderHomeCurrencyCanNotUpgradeByValueTransfer',
+ 'errorMessage' => 'Users of current currency cannot upgrade through residual value transfer.',
+ ],
+ [
+ 'errorCode' => 'OrderInstanceHasInactiveChange',
+ 'errorMessage' => 'Instances exist temporary upgrade.',
+ ],
+ [
+ 'errorCode' => 'OrderInstHasUnpaidOrder',
+ 'errorMessage' => 'The instance has an unpaid order.',
+ ],
+ [
+ 'errorCode' => 'OrderInstHasUnsettledBills',
+ 'errorMessage' => 'The instance has an unsettled bill.',
+ ],
+ [
+ 'errorCode' => 'OrderLatestOrderIsHandling',
+ 'errorMessage' => 'Recent order is being processed, please try again later.',
+ ],
+ [
+ 'errorCode' => 'OrderMainOrderSizeOverflow',
+ 'errorMessage' => 'The quantity of the main order exceeds the limit.',
+ ],
+ [
+ 'errorCode' => 'OrderMissingModuleInfoError',
+ 'errorMessage' => 'Module parameter not specified.',
+ ],
+ [
+ 'errorCode' => 'OrderNoRealNameAuthentication',
+ 'errorMessage' => 'No real-name authentication.',
+ ],
+ [
+ 'errorCode' => 'OrderNotFound',
+ 'errorMessage' => 'The specified order information is not found.',
+ ],
+ [
+ 'errorCode' => 'OrderOpend',
+ 'errorMessage' => 'You have activated this product.',
+ ],
+ [
+ 'errorCode' => 'OrderPeriodInvalid',
+ 'errorMessage' => 'Illegal order cycle.',
+ ],
+ [
+ 'errorCode' => 'OrderQuantityInvalid',
+ 'errorMessage' => 'Illegal quantity ordered.',
+ ],
+ [
+ 'errorCode' => 'OrderQueryInstanceError',
+ 'errorMessage' => 'Query instance error.',
+ ],
+ [
+ 'errorCode' => 'OrderQueryInstanceNotExists',
+ 'errorMessage' => 'Instance data does not exist.',
+ ],
+ [
+ 'errorCode' => 'OrderQueryOrderExchangeRateFail',
+ 'errorMessage' => 'Failed to query order exchange rate information.',
+ ],
+ [
+ 'errorCode' => 'OrderQueryUserSettleInfoFail',
+ 'errorMessage' => 'Failed to query user settlement information.',
+ ],
+ [
+ 'errorCode' => 'OrderQuotaExceeded',
+ 'errorMessage' => 'Quantity exceeds limit.',
+ ],
+ [
+ 'errorCode' => 'OrderSysConstraintInvalid',
+ 'errorMessage' => 'System constraint check failed.',
+ ],
+ [
+ 'errorCode' => 'OrderTradeCompleteSettleInfoFail',
+ 'errorMessage' => 'Failed to complete the order settlement currency amount information.',
+ ],
+ [
+ 'errorCode' => 'TradeTradeOrderAfterPayCheckError',
+ 'errorMessage' => 'You have already paid for the subsequent orders of this instance. The current order has been automatically voided and you cannot pay any more.',
+ ],
+ [
+ 'errorCode' => 'PurchaseExistRenewchangeProd',
+ 'errorMessage' => 'There is a renewal change subscription that has not yet taken effect.',
+ ],
+ [
+ 'errorCode' => 'PurchaseExistToBeValidProdRuleError',
+ 'errorMessage' => 'Currently, there are temporary orders that are not in effect, and the upgrade operation cannot be performed.',
+ ],
+ [
+ 'errorCode' => 'PurchaseExistToBeValidRenewChangeProdRuleError',
+ 'errorMessage' => 'Currently, there is an uneffective renewal change subscription, and temporary upgrade operation cannot be performed.',
+ ],
+ [
+ 'errorCode' => 'PurchaseExistValidProdRuleError',
+ 'errorMessage' => 'Currently, there is a temporary order in effect, and operations such as upgrade/downgrade/expansion/pre-transfer cannot be performed.',
+ ],
+ [
+ 'errorCode' => 'ProductInstanceReleased',
+ 'errorMessage' => 'Instance released.',
+ ],
+ [
+ 'errorCode' => 'ProductInstanceTypeNotSupported',
+ 'errorMessage' => 'The instance type is not supported.',
+ ],
+ [
+ 'errorCode' => 'PatRiskRejectForTradeData',
+ 'errorMessage' => 'Payment order problem leads to risk control rejection.',
+ ],
+ [
+ 'errorCode' => 'PayAccountBookNotExist',
+ 'errorMessage' => 'There is no insufficient account balance in the account book, please retry after recharging.',
+ ],
+ [
+ 'errorCode' => 'PayAmountLimitExceeded',
+ 'errorMessage' => 'Payment limit exceeded, please resubmit.',
+ ],
+ [
+ 'errorCode' => 'PayBeforePayRiskRuleValidateFailed',
+ 'errorMessage' => 'The payment was blocked by risk control, and the payment failed.',
+ ],
+ [
+ 'errorCode' => 'PayCounponNotExist',
+ 'errorMessage' => 'Counpon does not exist.',
+ ],
+ [
+ 'errorCode' => 'PayCouponAmountNotEnough',
+ 'errorMessage' => 'Insufficient voucher balance or expired.',
+ ],
+ [
+ 'errorCode' => 'PayCouponNotMeetConsumptionRule',
+ 'errorMessage' => 'The coupon does not meet the conditions for use.',
+ ],
+ [
+ 'errorCode' => 'PayCurrencyInconsistency',
+ 'errorMessage' => 'Currency mismatch.',
+ ],
+ [
+ 'errorCode' => 'PayCurrencyNotSupported',
+ 'errorMessage' => 'Currency not supported.',
+ ],
+ [
+ 'errorCode' => 'PayForbiddenNoReasonFefund',
+ 'errorMessage' => 'Banned five days no reason refund.',
+ ],
+ [
+ 'errorCode' => 'PayHsfTimeoutError',
+ 'errorMessage' => 'Call payment system timeout.',
+ ],
+ [
+ 'errorCode' => 'PayInsufficientBalance',
+ 'errorMessage' => 'Account balance is insufficient, please recharge and try again.',
+ ],
+ [
+ 'errorCode' => 'PayInvalidCreditCard',
+ 'errorMessage' => 'Invalid credit card.',
+ ],
+ [
+ 'errorCode' => 'PayInvalidPayMethod',
+ 'errorMessage' => 'Illegal payment method.',
+ ],
+ [
+ 'errorCode' => 'PayMegrePayOrderHasThanOneChagreChannel',
+ 'errorMessage' => 'Payment failed, please retry or submit work order feedback.',
+ ],
+ [
+ 'errorCode' => 'PayNoCreditCard',
+ 'errorMessage' => 'No valid payment method, please check the payment method and try again.',
+ ],
+ [
+ 'errorCode' => 'PayOrderPayTimeInvalid',
+ 'errorMessage' => 'Order effective time is invalid.',
+ ],
+ [
+ 'errorCode' => 'PayPartRefundNotSupport',
+ 'errorMessage' => 'Not Capture, no partial refund.',
+ ],
+ [
+ 'errorCode' => 'PayPayChannelPayOrderInvalidStatus',
+ 'errorMessage' => 'Illegal status of payment order in payment channel.',
+ ],
+ [
+ 'errorCode' => 'PayPayChannelPayOrderNotExist',
+ 'errorMessage' => 'Payment channel payment order does not exist.',
+ ],
+ [
+ 'errorCode' => 'PayPayerAccountIllegal',
+ 'errorMessage' => 'Illegal payment account.',
+ ],
+ [
+ 'errorCode' => 'PayPayFailedParentRelationchanged',
+ 'errorMessage' => 'If the financial custody relationship changes, please void the order and place a new order for payment.',
+ ],
+ [
+ 'errorCode' => 'PayPayForbidUserCoupon',
+ 'errorMessage' => 'Coupon prohibited for orders.',
+ ],
+ [
+ 'errorCode' => 'PayQueryAvailableAmountFailed',
+ 'errorMessage' => 'Failed to query user availability, please try again later.',
+ ],
+ [
+ 'errorCode' => 'PayQueryAvailableEnduserAmountFailed',
+ 'errorMessage' => 'Failed to query the availability of quota direct customer main user, please try again later.',
+ ],
+ [
+ 'errorCode' => 'PayQueryParentRelationshipFailed',
+ 'errorMessage' => 'Failed to query current user hosting relationship, please try again later.',
+ ],
+ [
+ 'errorCode' => 'PayQueryPayChangeChannelNotEqual',
+ 'errorMessage' => 'Multi-order payment channels are inconsistent, please check whether the original order data payment channel is correct.',
+ ],
+ [
+ 'errorCode' => 'PayRefundFailed',
+ 'errorMessage' => 'Accumulated refund amount exceeds payment order amount.',
+ ],
+ [
+ 'errorCode' => 'PayResellerPayGetUrlError',
+ 'errorMessage' => 'Order payment failed, please try again later.',
+ ],
+ [
+ 'errorCode' => 'PayRiskRejectForPayerAccount',
+ 'errorMessage' => 'Payment account problem leads to risk control rejection.',
+ ],
+ [
+ 'errorCode' => 'PayStoredCardNotExist',
+ 'errorMessage' => 'Stored value card does not exist.',
+ ],
+ [
+ 'errorCode' => 'PaySystemError',
+ 'errorMessage' => 'Error calling payment system.',
+ ],
+ [
+ 'errorCode' => 'PayTaxCalcFailed',
+ 'errorMessage' => 'Failed to get user tax address.',
+ ],
+ [
+ 'errorCode' => 'PayWithholdingAgreementIllegal',
+ 'errorMessage' => 'Withholding Agreement Status Illegal.',
+ ],
+ [
+ 'errorCode' => 'AccountAliyunAccountFrozen',
+ 'errorMessage' => 'Alibaba Cloud account is frozen.',
+ ],
+ [
+ 'errorCode' => 'AccountAliyunAccountNotExist',
+ 'errorMessage' => 'Alibaba Cloud account does not exist.',
+ ],
+ [
+ 'errorCode' => 'RefundRefundInstanceNotFound',
+ 'errorMessage' => 'Unable to find instance information.',
+ ],
+ [
+ 'errorCode' => 'RefundRefundNoValidProd',
+ 'errorMessage' => 'Refund is not available to unsubscribe.',
+ ],
+ [
+ 'errorCode' => 'RefundRefundParamInvalid',
+ 'errorMessage' => 'Abnormal refund parameter.',
+ ],
+ [
+ 'errorCode' => 'RefundRefundQueryOrderFail',
+ 'errorMessage' => 'Failed to query order for refund field.',
+ ],
+ [
+ 'errorCode' => 'SystemConcurrentOperate',
+ 'errorMessage' => 'Concurrent operation causes failure.',
+ ],
+ [
+ 'errorCode' => 'PricePricingPlanNotFound',
+ 'errorMessage' => 'Pricing plan tree not found.',
+ ],
+ [
+ 'errorCode' => 'OrderInstanceHasTempUpgrade',
+ 'errorMessage' => 'Instances exist temporary upgrade.',
+ ],
+ [
+ 'errorCode' => 'PayQueryParentRelationchangedFailed',
+ 'errorMessage' => 'The financial custody relationship may change, please refresh and pay again.',
+ ],
+ [
+ 'errorCode' => 'PayforCreditPayInsufficientBalance',
+ 'errorMessage' => 'Insufficient quota, please contact your channel partner to increase the quota.',
+ ],
+ [
+ 'errorCode' => 'PayforAccountMoneyValidateError',
+ 'errorMessage' => 'The available amount of your channel partner\'s account is insufficient, please contact your channel partner to recharge in time.',
+ ],
+ [
+ 'errorCode' => 'BasicInfoUncompleted',
+ 'errorMessage' => 'You have not completed your basic personal information. Please complete the information and re-operate it.',
+ ],
+ [
+ 'errorCode' => 'SaleControlVerificationFailedStock',
+ 'errorMessage' => 'Inventory sales constraint verification failed, please re-match, or contact the product.',
+ ],
+ [
+ 'errorCode' => 'SaleControlVerificationFailedRegion',
+ 'errorMessage' => 'The node sales constraint verification failed, please re-select or contact the product.',
+ ],
+ [
+ 'errorCode' => 'SaleControl.VerificationFailed',
+ 'errorMessage' => 'You did not pass the salecontrol verification.Please contact the product.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E\\",\\n \\"SnapShotId\\": [\\n \\"sp-5w1x1nxsmkhdgval1h5l****\\"\\n ],\\n \\"OrderId\\": \\"21969183547****\\"\\n}","errorExample":""},{"type":"xml","example":"<CreateSnapshotResponse>\\n <RequestId>853D6E71-E087-1557-B65C-32BFBEE5CD97</RequestId>\\n <SnapShotId>sp-5w1x1nxsmkhdgval1h5l****</SnapShotId>\\n <OrderId>21969183547****</OrderId>\\n</CreateSnapshotResponse>","errorExample":""}]',
+ 'title' => 'CreateSnapshot',
+ ],
+ 'DeleteSnapshot' => [
+ 'summary' => 'Deletes a snapshot.',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'delete',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'SnapshotId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the snapshot.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'sp-bp1c0doj0taqyzzl****',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'INSTANCE_ID_NOT_FOUND',
+ 'errorMessage' => 'The input parameter instancdId that is not found.',
+ ],
+ [
+ 'errorCode' => 'IncorrectInstanceStatus',
+ 'errorMessage' => 'The current status of the resource does not support this operation',
+ ],
+ [
+ 'errorCode' => 'ERROR_SNAPSHOT_COPY_IN_PROGRESS',
+ 'errorMessage' => 'Destination site has incomplete snapshot copy or delete sequence.',
+ ],
+ [
+ 'errorCode' => 'DISK_SNAPSHOT_STATUS_NOT_MATCH',
+ 'errorMessage' => 'Snapshot status mismatch.',
+ ],
+ [
+ 'errorCode' => 'ERROR_SNAPSHOT_NOT_FOUND',
+ 'errorMessage' => 'The specified snapshot does not exist.',
+ ],
+ [
+ 'errorCode' => 'SNAPSHOT_CLONE_DISK_NOT_NULL',
+ 'errorMessage' => 'Clone disk exists for this snapshot.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'eventInfo' => [
+ 'enable' => false,
+ 'eventNames' => [],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E\\"\\n}","errorExample":""},{"type":"xml","example":"<DeleteSnapshotResponse>\\n <RequestId>473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E</RequestId>\\n</DeleteSnapshotResponse>","errorExample":""}]',
+ 'title' => 'DeleteSnapshot',
+ ],
+ 'ModifySnapshotAttribute' => [
+ 'summary' => 'Modifies the information about a snapshot.',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'deprecated' => false,
+ 'systemTags' => [],
+ 'parameters' => [
+ [
+ 'name' => 'SnapshotId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the snapshot.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'sp-bp199lyny9bb47pa****',
+ ],
+ ],
+ [
+ 'name' => 'SnapshotName',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The name of the snapshot. The name must be 2 to 128 characters in length. It must start with a letter but cannot start with `http://` or `https://`. It can contain letters, digits, colons (:), underscores (\\_), and hyphens (-).'."\n"
+ ."\n"
+ .'The name cannot start with **auto** because snapshots whose names start with auto are recognized as automatic snapshots.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'testSnapshotName',
+ ],
+ ],
+ [
+ 'name' => 'Description',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The description of the snapshot. The description must be 2 to 256 characters in length. It cannot start with `http://` or `https://`.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'testDescription',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'MissingParameter',
+ 'errorMessage' => 'The input parameter SnapshotId that is mandatory for processing this request is not supplied.',
+ ],
+ [
+ 'errorCode' => 'SnapshotIdNotFound',
+ 'errorMessage' => 'The input parameter SnapshotId that is not found.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'CallInterface',
+ 'errorMessage' => 'Call Interface Happen Error.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E\\"\\n}","errorExample":""},{"type":"xml","example":"<ModifySnapshotAttributeResponse>\\n <RequestId>473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E</RequestId>\\n</ModifySnapshotAttributeResponse>","errorExample":""}]',
+ 'title' => 'ModifySnapshotAttribute',
+ ],
+ 'DescribeSnapshots' => [
+ 'summary' => 'Queries information about snapshots.',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'list',
+ 'abilityTreeCode' => '163788',
+ 'abilityTreeNodes' => [
+ 'FEATUREensDKRRMB',
+ ],
+ 'tenantRelevance' => 'publicInformation',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'EnsRegionId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the ENS node. You can query the node ID by calling the [DescribeEnsRegions](~~2637662~~) operation.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'cn-hangzhou',
+ ],
+ ],
+ [
+ 'name' => 'DiskId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the disk.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'd-bp67acfmxazb4p****',
+ ],
+ ],
+ [
+ 'name' => 'SnapshotId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the snapshot. The value can be a JSON array that consists of up to 100 snapshot IDs. Separate the snapshot IDs with commas (,).'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'sp-bp67acfmxazb4p****',
+ ],
+ ],
+ [
+ 'name' => 'EnsRegionIds',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The node information.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '["cn-suzhou-telecom","cn-chengdu-telecom"]',
+ ],
+ ],
+ [
+ 'name' => 'SnapshotName',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The name of the snapshot. The name must be 2 to 128 characters in length. It must start with a letter and cannot start with `http://` or `https://`. It can contain letters, digits, colons (:), underscores (\\_), and hyphens (-).'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'testSnapshotName',
+ ],
+ ],
+ [
+ 'name' => 'InstanceId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the instance.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'i-bp67acfmxazb4p****',
+ ],
+ ],
+ [
+ 'name' => 'PageNumber',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The page number.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'example' => '1',
+ 'default' => '1',
+ ],
+ ],
+ [
+ 'name' => 'PageSize',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The number of entries per page.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'example' => '10',
+ 'default' => '10',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'description' => 'Schema of Response'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'Snapshots' => [
+ 'description' => 'The information about the snapshots.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'SnapshotId' => [
+ 'description' => 'The ID of the snapshot.'."\n",
+ 'type' => 'string',
+ 'example' => 's-bp67acfmxazb4p****',
+ ],
+ 'CreationTime' => [
+ 'description' => 'The creation time. The time follows the [ISO 8601](~~25696~~) standard in the yyyy-MM-ddTHH:mm:ssZ format. The time is displayed in UTC.'."\n",
+ 'type' => 'string',
+ 'example' => '2020-08-20T14:52:28Z',
+ ],
+ 'Status' => [
+ 'description' => 'The status of the snapshot. Valid value:'."\n"
+ ."\n"
+ .'* creating: The snapshot is being created.'."\n"
+ .'* Available: The snapshot is available.'."\n"
+ .'* deleting: The snapshot is being deleted.'."\n"
+ .'* error: An error occurred on the snapshot.'."\n",
+ 'type' => 'string',
+ 'example' => 'available',
+ ],
+ 'Size' => [
+ 'description' => 'The capacity of the disk. Unit: MiB.'."\n",
+ 'type' => 'string',
+ 'example' => '40',
+ ],
+ 'SourceDiskId' => [
+ 'description' => 'The ID of the source disk. This parameter is retained even after the source disk for which the snapshot was created is released.'."\n",
+ 'type' => 'string',
+ 'example' => 'd-bp67acfmxazb4ph****',
+ ],
+ 'SourceDiskType' => [
+ 'description' => 'The type of the disk. Valid value:'."\n"
+ ."\n"
+ .'* 1: system disk'."\n"
+ .'* 2: data disk'."\n",
+ 'type' => 'string',
+ 'example' => '1',
+ ],
+ 'SourceDiskCategory' => [
+ 'description' => 'The type of the disk. Valid value:'."\n"
+ ."\n"
+ .'* cloud_efficiency: ultra disk'."\n"
+ .'* cloud_ssd: all-flash disk'."\n"
+ .'* local_hdd: local HDD'."\n"
+ .'* local_ssd: local SSD'."\n",
+ 'type' => 'string',
+ 'example' => 'cloud_efficiency',
+ ],
+ 'SnapshotName' => [
+ 'description' => 'The name of the snapshot. This parameter is returned only if a snapshot name was specified when the snapshot was created.'."\n",
+ 'type' => 'string',
+ 'example' => 'testSnapshotName',
+ ],
+ 'Description' => [
+ 'description' => 'The description of the snapshot.'."\n",
+ 'type' => 'string',
+ 'example' => 'testDescription',
+ ],
+ 'EnsRegionId' => [
+ 'description' => 'The ID of the edge node.'."\n",
+ 'type' => 'string',
+ 'example' => 'cn-beijing-15',
+ ],
+ 'SourceSnapshotId' => [
+ 'description' => 'The ID of the source snapshot.'."\n",
+ 'type' => 'string',
+ 'example' => 's-bpdfer893jfkdqe****',
+ ],
+ 'SourceEnsRegionId' => [
+ 'description' => 'The ID of the source edge node.'."\n",
+ 'type' => 'string',
+ 'example' => 'cn-hangzhou-27',
+ ],
+ ],
+ ],
+ ],
+ 'PageNumber' => [
+ 'description' => 'The page number of the returned page.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '1',
+ ],
+ 'PageSize' => [
+ 'description' => 'The number of entries per page.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '10',
+ ],
+ 'TotalCount' => [
+ 'description' => 'The total number of snapshots.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '1',
+ ],
+ 'RequestId' => [
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '9635ED2E-3103-1606-84D4-9F8E816B19F9',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'MissingParameter',
+ 'errorMessage' => 'The input parameter that is mandatory for processing this request is not supplied.',
+ ],
+ [
+ 'errorCode' => 'InstanceIdNotFound',
+ 'errorMessage' => 'The input parameter instancdId that is not found.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'CallInterface',
+ 'errorMessage' => 'Call Interface Happen Error.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"Snapshots\\": [\\n {\\n \\"SnapshotId\\": \\"s-bp67acfmxazb4p****\\",\\n \\"CreationTime\\": \\"2020-08-20 14:52:28\\",\\n \\"Status\\": \\"available\\",\\n \\"Size\\": \\"40\\",\\n \\"SourceDiskId\\": \\"d-bp67acfmxazb4ph****\\",\\n \\"SourceDiskType\\": \\"1\\",\\n \\"SourceDiskCategory\\": \\"cloud_efficiency\\",\\n \\"SnapshotName\\": \\"testSnapshotName\\",\\n \\"Description\\": \\"testDescription\\",\\n \\"EnsRegionId\\": \\"cn-beijing-15\\",\\n \\"SourceSnapshotId\\": \\"s-bpdfer893jfkdqe****\\",\\n \\"SourceEnsRegionId\\": \\"cn-hangzhou-27\\"\\n }\\n ],\\n \\"PageNumber\\": 1,\\n \\"PageSize\\": 10,\\n \\"TotalCount\\": 1,\\n \\"RequestId\\": \\"9635ED2E-3103-1606-84D4-9F8E816B19F9\\"\\n}","errorExample":""},{"type":"xml","example":"<DescribeSnapshotsResponse>\\n <Code>0</Code>\\n <Snapshots>\\n <SnapshotId>s-bp67acfmxazb4p****</SnapshotId>\\n <CreationTime>2020-08-20T14:52:28Z</CreationTime>\\n <Status>available</Status>\\n <Size>40</Size>\\n <SourceDiskId>d-bp67acfmxazb4ph****</SourceDiskId>\\n <SourceDiskType>1</SourceDiskType>\\n <SourceDiskCategory>cloud_efficiency</SourceDiskCategory>\\n <SnapshotName>testSnapshotName</SnapshotName>\\n <Description>testDescription</Description>\\n </Snapshots>\\n <PageNumber>1</PageNumber>\\n <PageSize>10</PageSize>\\n <TotalCount>1</TotalCount>\\n <RequestId>9635ED2E-3103-1606-84D4-9F8E816B19F9</RequestId>\\n</DescribeSnapshotsResponse>","errorExample":""}]',
+ 'title' => 'DescribeSnapshots',
+ ],
+ 'CopySnapshot' => [
+ 'summary' => 'Copies a snapshot across nodes.',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'readAndWrite',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'create',
+ 'riskType' => 'high',
+ 'chargeType' => 'paid',
+ 'abilityTreeNodes' => [
+ 'FEATUREensTASVEV',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'SnapshotId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the source snapshot.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'sp-bp1c0doj0taqyzzl****',
+ ],
+ ],
+ [
+ 'name' => 'DestinationRegionIds',
+ 'in' => 'query',
+ 'style' => 'json',
+ 'schema' => [
+ 'description' => 'The IDs of destination nodes.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The ID of the destination node.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'cn-hangzhou-26',
+ ],
+ 'required' => true,
+ ],
+ ],
+ [
+ 'name' => 'DestinationSnapshotName',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The name of the snapshot. The name must be 2 to 128 characters in length. It must start with a letter and cannot start with `http://` or `https://`. It can contain letters, digits, colons (:), underscores (\\_), and hyphens (-).'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'testSnapshotName',
+ ],
+ ],
+ [
+ 'name' => 'DestinationSnapshotDescription',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The description of the snapshot. The description must be 2 to 256 characters in length and cannot start with `http://` or `https://`.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'testDescription',
+ ],
+ ],
+ [
+ 'name' => 'InstanceBillingCycle',
+ 'in' => 'query',
+ 'schema' => [
+ 'type' => 'string',
+ 'enum' => [
+ 'Hour',
+ 'Day',
+ 'Month',
+ ],
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => 'EA3758E0-8899-17D3-9526-5F62CF33A586',
+ ],
+ 'AllocationId' => [
+ 'description' => 'The list of created snapshots.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'EnsRegionId' => [
+ 'description' => 'The ID of the node.'."\n",
+ 'type' => 'string',
+ 'example' => 'cn-chengdu-telecom-4',
+ ],
+ 'InstanceId' => [
+ 'description' => 'The IDs of the instances.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The ID of the instance.'."\n",
+ 'type' => 'string',
+ 'example' => '["e426409223"]',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'BizStatusCode' => [
+ 'description' => 'The success status code.'."\n"
+ ."\n"
+ .'* **PartSuccess**: partially succeeded.'."\n"
+ .'* **AllSuccess**: all succeeded.'."\n",
+ 'type' => 'string',
+ 'example' => 'AllSuccess',
+ ],
+ 'UnAllocationId' => [
+ 'description' => 'The list of nodes that are not created.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'EnsRegionId' => [
+ 'description' => 'The ID of the node.'."\n",
+ 'type' => 'string',
+ 'example' => 'cn-chengdu-26',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'SaleControl.VerificationFailed',
+ 'errorMessage' => 'You did not pass the salecontrol verification.Please contact the product.',
+ ],
+ [
+ 'errorCode' => 'Invalid%s',
+ 'errorMessage' => 'The specified parameter %s is invalid.',
+ ],
+ [
+ 'errorCode' => 'ENS_SERVICE_ARREARAGE',
+ 'errorMessage' => '用户欠费',
+ ],
+ [
+ 'errorCode' => 'Order.CreateFailed',
+ 'errorMessage' => 'Failed to create order. Please check your parameters and try it again.',
+ ],
+ [
+ 'errorCode' => 'ens.interface.error',
+ 'errorMessage' => 'Failed to call API.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"EA3758E0-8899-17D3-9526-5F62CF33A586\\",\\n \\"AllocationId\\": [\\n {\\n \\"EnsRegionId\\": \\"cn-hangzhou-27\\",\\n \\"InstanceId\\": [\\n \\"e426409223\\"\\n ]\\n }\\n ],\\n \\"BizStatusCode\\": \\"PartSuccess\\",\\n \\"UnAllocationId\\": [\\n {\\n \\"EnsRegionId\\": \\"cn-chengdu-26\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"<CopySnapshotResponse>\\n <RequestId>EA3758E0-8899-17D3-9526-5F62CF33A586</RequestId>\\n <BizStatusCode>AllSuccess</BizStatusCode>\\n <AllocationId>\\n <InstanceId>e426409223</InstanceId>\\n <InstanceId>e42640922s</InstanceId>\\n <EnsRegionId>cn-chengdu-telecom-4</EnsRegionId>\\n </AllocationId>\\n <UnAllocationId>\\n <EnsRegionId>cn-chengdu-26</EnsRegionId>\\n </UnAllocationId>\\n</CopySnapshotResponse>","errorExample":""}]',
+ 'title' => 'CopySnapshot',
+ ],
+ 'CreateNetwork' => [
+ 'summary' => 'Creates a virtual private cloud (VPC).',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'create',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '15352',
+ 'abilityTreeNodes' => [
+ 'FEATUREensGMWJSM',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'EnsRegionId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the edge node.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'cn-beijing-telecom',
+ ],
+ ],
+ [
+ 'name' => 'CidrBlock',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The CIDR block of the network. You can use one of the following CIDR blocks or their subnets as the CIDR block of the network:'."\n"
+ ."\n"
+ .'* 10.0.0.0/8 (default)'."\n"
+ .'* 172.16.0.0/12'."\n"
+ .'* 192.168.0.0/16'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => '192.168.0.0/24',
+ ],
+ ],
+ [
+ 'name' => 'NetworkName',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The name of the network. The name must meet the following requirements:'."\n"
+ ."\n"
+ .'* The name must be 2 to 128 characters in length.'."\n"
+ .'* The name must start with a letter but cannot start with http:// or https://.'."\n"
+ .'* The name can contain letters, digits, colons (:), underscores (\\_), and hyphens (-).'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'abc',
+ 'maxLength' => 128,
+ 'minLength' => 2,
+ ],
+ ],
+ [
+ 'name' => 'Description',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The description of the network.'."\n"
+ ."\n"
+ .'The description must be 2 to 256 characters in length. It must start with a letter but cannot start with http:// or https://.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'this is my first network',
+ 'maxLength' => 256,
+ 'minLength' => 2,
+ ],
+ ],
+ [
+ 'name' => 'Tag',
+ 'in' => 'query',
+ 'style' => 'repeatList',
+ 'schema' => [
+ 'description' => 'The resource tags.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The tags.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'Key' => [
+ 'description' => 'The key of the tag that are to add to the instance. Valid values of N: **1** to **20**.'."\n"
+ ."\n"
+ .'* The key cannot start with `aliyun`, `acs:`, `http://`, or `https://`.'."\n"
+ .'* The key must be up to 64 characters in length.'."\n"
+ .'* The tag key cannot be an empty string.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'key1',
+ ],
+ 'Value' => [
+ 'description' => 'The value of tag N that is added to the resource. You can specify up to 20 tag values. The tag value can be an empty string. The tag value can be up to 128 characters in length. It cannot start with acs: or contain http:// or https://.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'tagValue',
+ ],
+ ],
+ 'required' => false,
+ ],
+ 'required' => false,
+ 'maxItems' => 20,
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E',
+ ],
+ 'NetworkId' => [
+ 'description' => 'The ID of the network.'."\n",
+ 'type' => 'string',
+ 'example' => 'n-5***',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'InvalidParameter',
+ 'errorMessage' => 'InvalidParameter',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.CidrBlock',
+ 'errorMessage' => 'The specified parameter CidrBlock is invalid. ',
+ ],
+ [
+ 'errorCode' => 'Network.QuotaExceeded',
+ 'errorMessage' => 'Network quota exceeded',
+ ],
+ [
+ 'errorCode' => 'MissingParameter',
+ 'errorMessage' => 'MissingParameter',
+ ],
+ [
+ 'errorCode' => 'InvalidEnsRegionId.NotFound',
+ 'errorMessage' => 'The input parameter ensRegionId that is not found. ',
+ ],
+ [
+ 'errorCode' => 'ens.interface.error',
+ 'errorMessage' => 'Failed to call API.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E\\",\\n \\"NetworkId\\": \\"n-5***\\"\\n}","errorExample":""},{"type":"xml","example":"<CreateNetworkResponse>\\n <RequestId>473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E</RequestId>\\n <NetworkId>n-5***</NetworkId>\\n</CreateNetworkResponse>","errorExample":""}]',
+ 'title' => 'CreateNetwork',
+ 'description' => '* You can call this operation up to 100 times per second.'."\n"
+ .'* You can call this operation up to 5 times per second per user.'."\n",
+ ],
+ 'CreateClassicNetwork' => [
+ 'summary' => 'Creates a classic network',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'deprecated' => false,
+ 'systemTags' => [],
+ 'parameters' => [
+ [
+ 'name' => 'EnsRegionId',
+ 'in' => 'query',
+ 'allowEmptyValue' => false,
+ 'schema' => [
+ 'description' => 'The ID of the edge node.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'cn-chengdu-xxxx-4',
+ ],
+ ],
+ [
+ 'name' => 'CidrBlock',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The CIDR block of the network. You can use one of the following CIDR blocks or their subnets as the CIDR block of the network:'."\n"
+ ."\n"
+ .'* 10.0.0.0/8 (default)'."\n"
+ .'* 172.16.0.0/12'."\n"
+ .'* 192.168.0.0/16'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => '10.0.0.0/16',
+ ],
+ ],
+ [
+ 'name' => 'NetworkName',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The name of the network. The name must meet the following requirements:'."\n"
+ ."\n"
+ .'* The name must be 2 to 128 characters in length.'."\n"
+ .'* The name must start with a letter but cannot start with http:// or https://.'."\n"
+ .'* The name can contain letters, digits, colons (:), underscores (\\_), and hyphens (-).'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'example',
+ ],
+ ],
+ [
+ 'name' => 'Description',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The description of the network. The name must be 2 to 256 characters in length. It must start with a letter but cannot start with http:// or https://.',
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'This is my vswitch.',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '1A004E06-AC1B-5806-BA5E-41AB6B02DE83',
+ ],
+ 'NetworkId' => [
+ 'description' => 'The ID of the network.'."\n",
+ 'type' => 'string',
+ 'example' => 'n-5s9ayrxsd9hszrlt5fgv2****',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'InvalidParameter',
+ 'errorMessage' => 'InvalidParameter',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.CidrBlock',
+ 'errorMessage' => 'The specified parameter CidrBlock is invalid. ',
+ ],
+ [
+ 'errorCode' => 'Network.QuotaExceeded',
+ 'errorMessage' => 'Network quota exceeded',
+ ],
+ [
+ 'errorCode' => 'ens.interface.error',
+ 'errorMessage' => 'An error occurred while calling the API. ',
+ ],
+ [
+ 'errorCode' => 'MissingParameter',
+ 'errorMessage' => 'MissingParameter',
+ ],
+ [
+ 'errorCode' => 'InvalidEnsRegionId.NotFound',
+ 'errorMessage' => 'The input parameter ensRegionId that is not found. ',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"1A004E06-AC1B-5806-BA5E-41AB6B02DE83\\",\\n \\"NetworkId\\": \\"n-5s9ayrxsd9hszrlt5fgv2****\\"\\n}","type":"json"}]',
+ 'title' => 'CreateClassicNetwork',
+ ],
+ 'DeleteNetwork' => [
+ 'summary' => 'Deletes a virtual private cloud (VPC).',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'delete',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'NetworkId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the network.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'n-5***',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'InvalidNetworkId.NotFound',
+ 'errorMessage' => 'Network not found',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter',
+ 'errorMessage' => 'InvalidParameter',
+ ],
+ [
+ 'errorCode' => 'ens.interface.error',
+ 'errorMessage' => 'Failed to call API.',
+ ],
+ [
+ 'errorCode' => 'DependencyViolation.VSwitch',
+ 'errorMessage' => 'Specified network has vswitch.',
+ ],
+ [
+ 'errorCode' => 'DependencyViolation.RouteEntry',
+ 'errorMessage' => 'Specified network has route entry.',
+ ],
+ [
+ 'errorCode' => 'DependencyViolation.CloudInstance',
+ 'errorMessage' => 'Specified network has nat cloud instance.',
+ ],
+ [
+ 'errorCode' => 'DependencyViolation.NAT',
+ 'errorMessage' => 'Specified network has nat instance.',
+ ],
+ [
+ 'errorCode' => 'DependencyViolation.NetworkAcl',
+ 'errorMessage' => 'Specified network has network acl.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E\\"\\n}","errorExample":""},{"type":"xml","example":"<DeleteNetworkResponse>\\n <RequestId>473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E</RequestId>\\n</DeleteNetworkResponse>","errorExample":""}]',
+ 'title' => 'DeleteNetwork',
+ ],
+ 'ModifyNetworkAttribute' => [
+ 'summary' => 'Modifies the network information.',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'update',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'NetworkId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the network.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'n-****',
+ ],
+ ],
+ [
+ 'name' => 'NetworkName',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The name of the network. The name must meet the following requirements:'."\n"
+ ."\n"
+ .'* The name must be 2 to 128 characters in length'."\n"
+ .'* It must start with a letter but cannot start with http:// or https://.'."\n"
+ .'* The name can contain letters, digits, colons (:), underscores (\\_), and hyphens (-).'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'abc',
+ 'maxLength' => 128,
+ 'minLength' => 2,
+ ],
+ ],
+ [
+ 'name' => 'Description',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The description of the network.'."\n"
+ ."\n"
+ .'The description must be 2 to 256 characters in length. It must start with a letter but cannot start with http:// or https://.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'this is my first network',
+ 'maxLength' => 256,
+ 'minLength' => 2,
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'InvalidParameter',
+ 'errorMessage' => 'InvalidParameter',
+ ],
+ [
+ 'errorCode' => 'InvalidNetworkId.NotFound',
+ 'errorMessage' => 'Network not found',
+ ],
+ [
+ 'errorCode' => 'ens.interface.error',
+ 'errorMessage' => 'An error occurred while calling the API.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E\\"\\n}","errorExample":""},{"type":"xml","example":"<ModifyNetworkAttributeResponse>\\n <RequestId>473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E</RequestId>\\n</ModifyNetworkAttributeResponse>","errorExample":""}]',
+ 'title' => 'ModifyNetworkAttribute',
+ 'description' => '* You can call this operation up to 100 times per second.'."\n"
+ .'* You can call this operation up to 5 times per second per user.'."\n",
+ ],
+ 'DescribeNetworkInterfaces' => [
+ 'summary' => 'Queries Elastic Network Interfaces (ENIs).',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'list',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '4378',
+ 'abilityTreeNodes' => [
+ 'FEATUREensOTSUQL',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'NetworkInterfaceId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the ENI.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'eni-58z57orgmt6d1****',
+ ],
+ ],
+ [
+ 'name' => 'InstanceId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the instance.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'i-5t7z99n32gplriv',
+ ],
+ ],
+ [
+ 'name' => 'NetworkId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the network.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'n-2zeuphj08tt7q3brd****',
+ ],
+ ],
+ [
+ 'name' => 'VSwitchId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the vSwitch.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'vsw-12345',
+ ],
+ ],
+ [
+ 'name' => 'EnsRegionId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The region ID of the instance.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'cn-tianjin-cmcc',
+ ],
+ ],
+ [
+ 'name' => 'SecurityGroupId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the security group to which the secondary ENI belongs. To query the details of secondary ENIs based on the ID of a security group, specify this parameter.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'sg-5p1fg655nh68xyz9i***',
+ ],
+ ],
+ [
+ 'name' => 'PrimaryIpAddress',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The primary IP address of the ENI.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '***',
+ ],
+ ],
+ [
+ 'name' => 'Type',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The type of the ENI. Valid values:'."\n"
+ ."\n"
+ .'* Primary: the primary ENI.'."\n"
+ .'* Secondary: the secondary ENI.'."\n"
+ ."\n"
+ .'This parameter is empty by default, which indicates that both primary and secondary ENIs are queried.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'Secondary',
+ 'enum' => [
+ 'Primary',
+ 'Secondary',
+ ],
+ ],
+ ],
+ [
+ 'name' => 'NetworkInterfaceName',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The name of the ENI.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'test-01',
+ 'maxLength' => 128,
+ ],
+ ],
+ [
+ 'name' => 'Status',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The status of the ENI. Valid values:'."\n"
+ ."\n"
+ .'* Available: The ENI is available.'."\n"
+ .'* Attaching: The ENI is being attached to an instance.'."\n"
+ .'* InUse: The ENI is attached to an instance.'."\n"
+ .'* Detaching: The ENI is being detached from an instance.'."\n"
+ .'* Deleting: The ENI is being deleted.'."\n"
+ ."\n"
+ .'This parameter is empty by default, which indicates that ENIs in all states are queried.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'Available',
+ ],
+ ],
+ [
+ 'name' => 'PageNumber',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The page number of the returned page. Pages start from page 1. Default value: 1.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '1',
+ 'default' => '1',
+ ],
+ ],
+ [
+ 'name' => 'PageSize',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The number of entries to return on each page. Maximum value: 100. Default value: 50.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'maximum' => '100',
+ 'example' => '50',
+ 'default' => '50',
+ ],
+ ],
+ [
+ 'name' => 'Ipv6Address',
+ 'in' => 'query',
+ 'style' => 'flat',
+ 'schema' => [
+ 'description' => 'IPv6 addresses N of the ENI. You can specify multiple IPv6 addresses. Valid values of N: 1 to 100.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'IPv6 address N of the ENI.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '2605:340:cdb1:XXXX:XXXX:XXXX:XXXX:e2d6',
+ ],
+ 'required' => false,
+ ],
+ ],
+ [
+ 'name' => 'EnsRegionIds',
+ 'in' => 'query',
+ 'style' => 'flat',
+ 'schema' => [
+ 'description' => 'The IDs of edge nodes. N indicates the number of edge node IDs that you can specify at the same time. Valid values of N: 1 to 100.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The ID of the edge node.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'cn-fuzhou-1',
+ ],
+ 'required' => false,
+ ],
+ ],
+ [
+ 'name' => 'NetworkInterfaceIds',
+ 'in' => 'query',
+ 'style' => 'flat',
+ 'schema' => [
+ 'description' => 'The IDs of the elastic network interfaces (ENIs). N indicates the number of ENI IDs that you can specify at the same time. Valid values of N: 1 to 100.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The ID of the ENI.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'eni-5****',
+ ],
+ 'required' => false,
+ 'maxItems' => 100,
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'description' => 'Details about the ENIs.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'NetworkInterfaceSets' => [
+ 'type' => 'object',
+ 'itemNode' => true,
+ 'properties' => [
+ 'NetworkInterfaceSet' => [
+ 'description' => 'Details about the ENIs.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'Details about the ENI.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'CreationTime' => [
+ 'description' => 'The time when the ENI was created. Specify the time in the ISO 8601 standard in the yyyy-MM-ddThh:mmZ format. The time is displayed in UTC.'."\n",
+ 'type' => 'string',
+ 'example' => '2022-02-22T03:53:25Z',
+ ],
+ 'EnsRegionId' => [
+ 'description' => 'The ID of the edge node.'."\n",
+ 'type' => 'string',
+ 'example' => 'id-jakarta-1',
+ ],
+ 'InstanceId' => [
+ 'description' => 'The ID of the instance to which the ENI is bound.'."\n",
+ 'type' => 'string',
+ 'example' => 'i-5siavnr3',
+ ],
+ 'MacAddress' => [
+ 'description' => 'The MAC address of the ENI.'."\n",
+ 'type' => 'string',
+ 'example' => '00:16:3e:08:60:0a',
+ ],
+ 'NetworkInterfaceId' => [
+ 'description' => 'The ID of the ENI.'."\n",
+ 'type' => 'string',
+ 'example' => 'eni-uf686a5',
+ ],
+ 'PrimaryIp' => [
+ 'description' => 'The private IP address of the server.'."\n",
+ 'type' => 'string',
+ 'example' => '12.23.3.4',
+ ],
+ 'PrimaryIpType' => [
+ 'description' => 'The primary private IP address. Valid values:'."\n"
+ ."\n"
+ .'* **Public**: public IP address.'."\n"
+ .'* **Private**: internal IP address.'."\n",
+ 'type' => 'string',
+ 'example' => 'private',
+ ],
+ 'Status' => [
+ 'description' => 'The status of the ENI. Valid values:'."\n"
+ ."\n"
+ .'* Available: The ENI is available.'."\n"
+ .'* Attaching: The ENI is being attached to an instance.'."\n"
+ .'* InUse: The ENI is attached to an instance.'."\n"
+ .'* Detaching: The ENI is being detached from an instance.'."\n"
+ .'* Deleting: The ENI is being deleted.'."\n",
+ 'type' => 'string',
+ 'example' => 'In_use',
+ ],
+ 'NetworkId' => [
+ 'description' => 'The ID of the network.'."\n",
+ 'type' => 'string',
+ 'example' => 'n-5w0qd03adw****',
+ ],
+ 'VSwitchId' => [
+ 'description' => 'The ID of the vSwitch.'."\n",
+ 'type' => 'string',
+ 'example' => 'vsw-5rqswx1trlsj9',
+ ],
+ 'PrivateIpSets' => [
+ 'type' => 'object',
+ 'itemNode' => true,
+ 'properties' => [
+ 'PrivateIpSet' => [
+ 'description' => 'Details about the private IP address.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => '',
+ 'type' => 'object',
+ 'properties' => [
+ 'PrivateIpAddress' => [
+ 'description' => 'The private IP address.'."\n",
+ 'type' => 'string',
+ 'example' => '192.168.0.130',
+ ],
+ 'Primary' => [
+ 'description' => 'Specifies whether the private IP address is the primary private IP address. Valid values:'."\n"
+ ."\n"
+ .'* true'."\n"
+ .'* false'."\n",
+ 'type' => 'boolean',
+ 'example' => 'true',
+ ],
+ 'PrivateIpStatus' => [
+ 'title' => '私有IP状态,取值:'."\n"
+ .'- Available:可用。'."\n"
+ .'- Creating:创建中。'."\n"
+ .'- Deleting:删除中。',
+ 'type' => 'string',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'NetworkInterfaceName' => [
+ 'description' => 'The ENI name.'."\n",
+ 'type' => 'string',
+ 'example' => 'primaryTest',
+ ],
+ 'Description' => [
+ 'description' => 'The description of ENI.'."\n",
+ 'type' => 'string',
+ 'example' => 'test-description',
+ ],
+ 'SecurityGroupIds' => [
+ 'type' => 'object',
+ 'itemNode' => true,
+ 'properties' => [
+ 'SecurityGroup' => [
+ 'description' => 'The ID of the security group.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The ID of the security group.'."\n",
+ 'type' => 'string',
+ 'example' => 'sg-5p1bozeiw711a1***',
+ ],
+ ],
+ ],
+ ],
+ 'Type' => [
+ 'description' => 'The type of the ENI. Valid values:'."\n"
+ ."\n"
+ .'* Primary'."\n"
+ .'* Secondary'."\n",
+ 'type' => 'string',
+ 'example' => 'Primary',
+ ],
+ 'Ipv6Sets' => [
+ 'type' => 'object',
+ 'itemNode' => true,
+ 'properties' => [
+ 'Ipv6Set' => [
+ 'description' => 'The IPv6 addresses of the ENIs.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The IPv6 addresses of the ENI.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'Ipv6Address' => [
+ 'description' => 'The IPv6 address of the ENI.'."\n",
+ 'type' => 'string',
+ 'example' => '2605:340:cdb1:XXXX:XXXX:XXXX:XXXX:e2d6'."\n",
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'VmncLearn' => [
+ 'type' => 'boolean',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'PageNumber' => [
+ 'description' => 'The number of the page to return. Pages start from page **1**. Default value: **1**.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '1',
+ ],
+ 'PageSize' => [
+ 'description' => 'The number of entries returned per page. Maximum value: **50**. Default value: **10**.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '50',
+ ],
+ 'TotalCount' => [
+ 'description' => 'The total number of entries in the list.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '49',
+ ],
+ 'RequestId' => [
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '708AF9CE-FF92-5DF9-93F8-B7754AB1061A',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'Missing%s',
+ 'errorMessage' => 'You must specify the parameter %s.',
+ ],
+ [
+ 'errorCode' => 'Invalid%s',
+ 'errorMessage' => 'The specified parameter %s is invalid.',
+ ],
+ [
+ 'errorCode' => 'ens.interface.error',
+ 'errorMessage' => 'Failed to call API.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"NetworkInterfaceSets\\": {\\n \\"NetworkInterfaceSet\\": [\\n {\\n \\"CreationTime\\": \\"2022-02-22T03:53:25Z\\",\\n \\"EnsRegionId\\": \\"id-jakarta-1\\",\\n \\"InstanceId\\": \\"i-5siavnr3\\",\\n \\"MacAddress\\": \\"00:16:XXX:XXX:60:0a\\",\\n \\"NetworkInterfaceId\\": \\"eni-uf686a5\\",\\n \\"PrimaryIp\\": \\"10.XXX.XXX.25\\",\\n \\"PrimaryIpType\\": \\"Private\\",\\n \\"Status\\": \\"InUse\\",\\n \\"NetworkId\\": \\"n-5w0qd03adw****\\",\\n \\"VSwitchId\\": \\"vsw-5rqswx1trlsj9\\",\\n \\"PrivateIpSets\\": {\\n \\"PrivateIpSet\\": [\\n {\\n \\"PrivateIpAddress\\": \\"192.XXX.XXX.130\\",\\n \\"Primary\\": true,\\n \\"PrivateIpStatus\\": \\"Available\\"\\n }\\n ]\\n },\\n \\"NetworkInterfaceName\\": \\"primaryTest\\",\\n \\"Description\\": \\"test-description\\",\\n \\"SecurityGroupIds\\": {\\n \\"SecurityGroup\\": [\\n \\"sg-5p1bozeiw711a1***\\"\\n ]\\n },\\n \\"Type\\": \\"Primary\\",\\n \\"Ipv6Sets\\": {\\n \\"Ipv6Set\\": [\\n {\\n \\"Ipv6Address\\": \\"2605:340:cdb1:XXXX:XXXX:XXXX:XXXX:e2d6\\\\n\\"\\n }\\n ]\\n },\\n \\"VmncLearn\\": true\\n }\\n ]\\n },\\n \\"PageNumber\\": 1,\\n \\"PageSize\\": 50,\\n \\"TotalCount\\": 49,\\n \\"RequestId\\": \\"708AF9CE-FF92-5DF9-93F8-B7754AB1061A\\"\\n}","type":"json"}]',
+ 'title' => 'DescribeNetworkInterfaces',
+ ],
+ 'DescribeNetworkAttribute' => [
+ 'summary' => 'Queries the configuration of a specified network.',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '15785',
+ 'abilityTreeNodes' => [
+ 'FEATUREensJ76HWH',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'NetworkId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the network.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'n-****',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E',
+ ],
+ 'EnsRegionId' => [
+ 'description' => 'The ID of the edge node.'."\n",
+ 'type' => 'string',
+ 'example' => 'cn-beijing',
+ ],
+ 'NetworkId' => [
+ 'description' => 'The ID of the network.'."\n",
+ 'type' => 'string',
+ 'example' => 'n-5***',
+ ],
+ 'NetworkName' => [
+ 'description' => 'The name of the network.'."\n",
+ 'type' => 'string',
+ 'example' => 'abc',
+ ],
+ 'CidrBlock' => [
+ 'description' => 'The IPv4 CIDR block of the network.'."\n",
+ 'type' => 'string',
+ 'example' => '10.0.0.0/24',
+ ],
+ 'Status' => [
+ 'description' => 'The status of the network. Valid values:'."\n"
+ ."\n"
+ .'* Pending'."\n"
+ .'* Available'."\n",
+ 'type' => 'string',
+ 'example' => 'Available',
+ ],
+ 'Description' => [
+ 'description' => 'The description of the network.'."\n",
+ 'type' => 'string',
+ 'example' => 'abc',
+ ],
+ 'CreatedTime' => [
+ 'description' => 'The time when the network was created. The time follows the ISO 8601 standard in the YYYY-MM-DDThh:mm:ssZ format. The time is displayed in UTC.'."\n",
+ 'type' => 'string',
+ 'example' => '2019-06-01T00:00:00Z',
+ ],
+ 'VSwitchIds' => [
+ 'type' => 'object',
+ 'itemNode' => true,
+ 'properties' => [
+ 'VSwitchId' => [
+ 'description' => 'The list of vSwitches in the network.',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The list of vSwitches in the network.',
+ 'type' => 'string',
+ 'example' => '{"VSwitchId": [ "vsw-bp14cagpfysr29feg****" ]}',
+ ],
+ ],
+ ],
+ ],
+ 'CloudResources' => [
+ 'type' => 'object',
+ 'itemNode' => true,
+ 'properties' => [
+ 'CloudResourceSetType' => [
+ 'description' => 'The list of resources in the network.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'Schema of Response',
+ 'type' => 'object',
+ 'properties' => [
+ 'ResourceCount' => [
+ 'description' => 'The number of resources in the network.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '3',
+ ],
+ 'ResourceType' => [
+ 'description' => 'The resource type. VSwitch.'."\n",
+ 'type' => 'string',
+ 'example' => 'VSwitch',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'RouterTableId' => [
+ 'description' => 'The ID of the route table.'."\n",
+ 'type' => 'string',
+ 'example' => 'rtb-5***',
+ ],
+ 'NetworkAclId' => [
+ 'description' => 'The ID of the network access control list (ACL).'."\n",
+ 'type' => 'string',
+ 'example' => 'nacl-a2do9e413e0sp****',
+ ],
+ 'InstanceIds' => [
+ 'type' => 'object',
+ 'itemNode' => true,
+ 'properties' => [
+ 'InstanceId' => [
+ 'description' => 'The instance IDs.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The instance IDs.'."\n",
+ 'type' => 'string',
+ 'example' => 'i-5****vbfdpyrbi',
+ ],
+ ],
+ ],
+ ],
+ 'RouteTableIds' => [
+ 'type' => 'object',
+ 'itemNode' => true,
+ 'properties' => [
+ 'RouteTableId' => [
+ 'description' => 'List of routing table IDs.',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The ID of Routing table.',
+ 'type' => 'string',
+ 'example' => 'rt-5****8uz',
+ ],
+ ],
+ ],
+ ],
+ 'NetworkInterfaceIds' => [
+ 'type' => 'object',
+ 'itemNode' => true,
+ 'properties' => [
+ 'NetworkInterfaceId' => [
+ 'description' => 'A list of multicast source IDs.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'A list of multicast source IDs.'."\n",
+ 'type' => 'string',
+ 'example' => 'eni-5*****8vyk',
+ ],
+ ],
+ ],
+ ],
+ 'LoadBalancerIds' => [
+ 'type' => 'object',
+ 'itemNode' => true,
+ 'properties' => [
+ 'LoadBalancerId' => [
+ 'description' => 'List of ELB instances.',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The IDs of ELB instances.'."\n",
+ 'type' => 'string',
+ 'example' => 'lb-5****2uk',
+ ],
+ ],
+ ],
+ ],
+ 'NatGatewayIds' => [
+ 'type' => 'object',
+ 'itemNode' => true,
+ 'properties' => [
+ 'NatGatewayId' => [
+ 'description' => 'List of NAT Gateways.',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The IDs of NAT Gateways.',
+ 'type' => 'string',
+ 'example' => 'nat-5****4ik',
+ ],
+ ],
+ ],
+ ],
+ 'HaVipIds' => [
+ 'type' => 'object',
+ 'itemNode' => true,
+ 'properties' => [
+ 'HaVipId' => [
+ 'description' => 'List of HaVipIds.',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The IDs of HaVipId.',
+ 'type' => 'string',
+ 'example' => 'havip-5****4aof',
+ ],
+ ],
+ ],
+ ],
+ 'RouteTableId' => [
+ 'description' => 'The ID of the route table.'."\n",
+ 'type' => 'string',
+ 'example' => 'rt-539***fpu',
+ ],
+ 'GatewayRouteTableId' => [
+ 'description' => 'The ID of the gateway route table.'."\n",
+ 'type' => 'string',
+ 'example' => 'rt-539***tbs',
+ ],
+ 'SecondaryCidrBlocks' => [
+ 'type' => 'object',
+ 'itemNode' => true,
+ 'properties' => [
+ 'SecondaryCidrBlock' => [
+ 'type' => 'array',
+ 'items' => [
+ 'type' => 'string',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'NetworkNotFound',
+ 'errorMessage' => 'The specified network is not found.',
+ ],
+ [
+ 'errorCode' => 'ens.interface.error',
+ 'errorMessage' => 'Failed to call API.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E\\",\\n \\"EnsRegionId\\": \\"cn-beijing\\",\\n \\"NetworkId\\": \\"n-5***\\",\\n \\"NetworkName\\": \\"abc\\",\\n \\"CidrBlock\\": \\"10.0.0.0/24\\",\\n \\"Status\\": \\"Available\\",\\n \\"Description\\": \\"abc\\",\\n \\"CreatedTime\\": \\"2019-06-01T00:00:00Z\\",\\n \\"VSwitchIds\\": {\\n \\"VSwitchId\\": [\\n \\"{\\\\\\"VSwitchId\\\\\\": [ \\\\\\"vsw-bp14cagpfysr29feg****\\\\\\" ]}\\"\\n ]\\n },\\n \\"CloudResources\\": {\\n \\"CloudResourceSetType\\": [\\n {\\n \\"ResourceCount\\": 3,\\n \\"ResourceType\\": \\"VSwitch\\"\\n }\\n ]\\n },\\n \\"RouterTableId\\": \\"rtb-5***\\",\\n \\"NetworkAclId\\": \\"nacl-a2do9e413e0sp****\\",\\n \\"InstanceIds\\": {\\n \\"InstanceId\\": [\\n \\"i-5****vbfdpyrbi\\"\\n ]\\n },\\n \\"RouteTableIds\\": {\\n \\"RouteTableId\\": [\\n \\"rt-5****8uz\\"\\n ]\\n },\\n \\"NetworkInterfaceIds\\": {\\n \\"NetworkInterfaceId\\": [\\n \\"eni-5*****8vyk\\"\\n ]\\n },\\n \\"LoadBalancerIds\\": {\\n \\"LoadBalancerId\\": [\\n \\"lb-5****2uk\\"\\n ]\\n },\\n \\"NatGatewayIds\\": {\\n \\"NatGatewayId\\": [\\n \\"nat-5****4ik\\"\\n ]\\n },\\n \\"HaVipIds\\": {\\n \\"HaVipId\\": [\\n \\"havip-5****4aof\\"\\n ]\\n },\\n \\"RouteTableId\\": \\"rt-539***fpu\\",\\n \\"GatewayRouteTableId\\": \\"rt-539***tbs\\",\\n \\"SecondaryCidrBlocks\\": {\\n \\"SecondaryCidrBlock\\": [\\n \\"172.XX.XX.0/12\\"\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<DescribeNetworkAttributeResponse>\\n <RequestId>473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E</RequestId>\\n <EnsRegionId>cn-beijing</EnsRegionId>\\n <NetworkId>n-5***</NetworkId>\\n <NetworkName>abc</NetworkName>\\n <CidrBlock>10.0.0.0/24</CidrBlock>\\n <Status>Available</Status>\\n <Description>abc</Description>\\n <CreatedTime>2019-06-01T00:00:00Z</CreatedTime>\\n <VSwitchIds>{\\"VSwitchId\\": [ \\"vsw-bp14cagpfysr29feg****\\" ]}</VSwitchIds>\\n <CloudResources>\\n <ResourceCount>3</ResourceCount>\\n <ResourceType>VSwitch</ResourceType>\\n </CloudResources>\\n</DescribeNetworkAttributeResponse>","errorExample":""}]',
+ 'title' => 'DescribeNetworkAttribute',
+ 'description' => '* You can call this operation up to 100 times per second.'."\n"
+ .'* You can call this operation up to 10 times per second per account.'."\n",
+ ],
+ 'DescribeNetworks' => [
+ 'summary' => 'Query the network list.',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'list',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '15780',
+ 'abilityTreeNodes' => [
+ 'FEATUREensJ76HWH',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'NetworkId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the network.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'n-5***',
+ ],
+ ],
+ [
+ 'name' => 'EnsRegionId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the edge node.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'cn-beijing-telecom',
+ ],
+ ],
+ [
+ 'name' => 'NetworkName',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The name of the network.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'example',
+ ],
+ ],
+ [
+ 'name' => 'PageNumber',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The page number of the returned page. Default value: **1**.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'example' => '1',
+ ],
+ ],
+ [
+ 'name' => 'PageSize',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The number of entries per page. Valid values: **1 to 50**. Default value: **10**.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'example' => '10',
+ ],
+ ],
+ [
+ 'name' => 'EnsRegionIds',
+ 'in' => 'query',
+ 'style' => 'flat',
+ 'schema' => [
+ 'description' => 'The IDs of edge nodes. You can specify 1 to 100 IDs.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The ID of the edge node.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'cn-chengdu-telecom-4',
+ ],
+ 'required' => false,
+ 'maxItems' => 100,
+ 'minItems' => 1,
+ ],
+ ],
+ [
+ 'name' => 'NetworkIds',
+ 'in' => 'query',
+ 'style' => 'flat',
+ 'schema' => [
+ 'description' => 'The IDs of VPCs You can specify 1 to 100 IDs.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The ID of the VPC.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'n-5***9iu',
+ ],
+ 'required' => false,
+ 'maxItems' => 100,
+ 'minItems' => 1,
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E',
+ ],
+ 'TotalCount' => [
+ 'description' => 'The total number of entries in the list.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '3',
+ ],
+ 'PageSize' => [
+ 'description' => 'The number of entries returned on each page.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '2',
+ ],
+ 'PageNumber' => [
+ 'description' => 'The page number of the returned page.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '1',
+ ],
+ 'Networks' => [
+ 'type' => 'object',
+ 'itemNode' => true,
+ 'properties' => [
+ 'Network' => [
+ 'description' => 'The VPCs.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The VPC.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'EnsRegionId' => [
+ 'description' => 'The ID of the edge node.'."\n",
+ 'type' => 'string',
+ 'example' => 'cn-beijing',
+ ],
+ 'NetworkId' => [
+ 'description' => 'The ID of the network.'."\n",
+ 'type' => 'string',
+ 'example' => 'n-5***',
+ ],
+ 'NetworkName' => [
+ 'description' => 'The name of the network.'."\n",
+ 'type' => 'string',
+ 'example' => 'example',
+ ],
+ 'CidrBlock' => [
+ 'description' => 'The IPv4 CIDR block of the network.'."\n",
+ 'type' => 'string',
+ 'example' => '10.0.xx.xx/24',
+ ],
+ 'Status' => [
+ 'description' => 'The status of the network. Valid values:'."\n"
+ ."\n"
+ .'* Pending'."\n"
+ .'* Available'."\n",
+ 'type' => 'string',
+ 'example' => 'Available',
+ ],
+ 'Description' => [
+ 'description' => 'The description of the network.'."\n",
+ 'type' => 'string',
+ 'example' => 'exampleDescription',
+ ],
+ 'CreatedTime' => [
+ 'description' => 'The timestamp when the instance was created. Unit: milliseconds.'."\n",
+ 'type' => 'string',
+ 'example' => '2020-06-16T06:33:15Z',
+ ],
+ 'VSwitchIds' => [
+ 'type' => 'object',
+ 'itemNode' => true,
+ 'properties' => [
+ 'VSwitchId' => [
+ 'description' => 'The list of vSwitches in the network.',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The list of vSwitches in the network.',
+ 'type' => 'string',
+ 'example' => 'vsw-bp1nhbnpv2blyz8dl****',
+ ],
+ ],
+ ],
+ ],
+ 'RouterTableId' => [
+ 'description' => 'The route table ID.'."\n",
+ 'type' => 'string',
+ 'example' => 'rtb-5**',
+ ],
+ 'NetworkAclId' => [
+ 'description' => 'The ID of the network access control list (ACL).'."\n",
+ 'type' => 'string',
+ 'example' => 'nacl-a2do9e413e0spxscd****',
+ ],
+ 'RouteTableIds' => [
+ 'type' => 'object',
+ 'itemNode' => true,
+ 'properties' => [
+ 'RouteTableId' => [
+ 'description' => 'The IDs of the route tables.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The ID of the route table.'."\n",
+ 'type' => 'string',
+ 'example' => 'rt-5*****pks',
+ ],
+ ],
+ ],
+ ],
+ 'RouteTableId' => [
+ 'description' => 'The ID of the route table.'."\n",
+ 'type' => 'string',
+ 'example' => 'rt-5*****pks',
+ ],
+ 'GatewayRouteTableId' => [
+ 'description' => 'The ID of the gateway route table.'."\n",
+ 'type' => 'string',
+ 'example' => 'rt-5*****tbs',
+ ],
+ 'Tags' => [
+ 'type' => 'object',
+ 'itemNode' => true,
+ 'properties' => [
+ 'Tag' => [
+ 'description' => '',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => '',
+ 'type' => 'object',
+ 'properties' => [
+ 'Value' => [
+ 'description' => 'The bandwidth.',
+ 'type' => 'string',
+ 'example' => 'TestValue',
+ ],
+ 'Key' => [
+ 'description' => 'The key of the tag.',
+ 'type' => 'string',
+ 'example' => 'TestKey',
+ ],
+ 'TagValue' => [
+ 'description' => '',
+ 'type' => 'string',
+ 'deprecated' => true,
+ 'example' => 'TestValue',
+ ],
+ 'TagKey' => [
+ 'description' => '',
+ 'type' => 'string',
+ 'deprecated' => true,
+ 'example' => 'TestKey',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'SecondaryCidrBlocks' => [
+ 'type' => 'object',
+ 'itemNode' => true,
+ 'properties' => [
+ 'SecondaryCidrBlock' => [
+ 'type' => 'array',
+ 'items' => [
+ 'type' => 'string',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'ens.interface.error',
+ 'errorMessage' => 'Failed to call API.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E\\",\\n \\"TotalCount\\": 3,\\n \\"PageSize\\": 2,\\n \\"PageNumber\\": 1,\\n \\"Networks\\": {\\n \\"Network\\": [\\n {\\n \\"EnsRegionId\\": \\"cn-beijing\\",\\n \\"NetworkId\\": \\"n-5***\\",\\n \\"NetworkName\\": \\"example\\",\\n \\"CidrBlock\\": \\"10.0.xx.xx/24\\",\\n \\"Status\\": \\"Available\\",\\n \\"Description\\": \\"exampleDescription\\",\\n \\"CreatedTime\\": \\"1653620630000\\",\\n \\"VSwitchIds\\": {\\n \\"VSwitchId\\": [\\n \\"vsw-bp1nhbnpv2blyz8dl****\\"\\n ]\\n },\\n \\"RouterTableId\\": \\"rtb-5**\\",\\n \\"NetworkAclId\\": \\"nacl-a2do9e413e0spxscd****\\",\\n \\"RouteTableIds\\": {\\n \\"RouteTableId\\": [\\n \\"rt-5*****pks\\"\\n ]\\n },\\n \\"RouteTableId\\": \\"rt-5*****pks\\",\\n \\"GatewayRouteTableId\\": \\"rt-5*****tbs\\",\\n \\"Tags\\": {\\n \\"Tag\\": [\\n {\\n \\"Value\\": \\"TestValue\\",\\n \\"Key\\": \\"TestKey\\",\\n \\"TagValue\\": \\"TestValue\\",\\n \\"TagKey\\": \\"TestKey\\"\\n }\\n ]\\n },\\n \\"SecondaryCidrBlocks\\": {\\n \\"SecondaryCidrBlock\\": [\\n \\"172.XX.XX.0/12\\"\\n ]\\n }\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<DescribeNetworksResponse>\\n <RequestId>473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E</RequestId>\\n <TotalCount>3</TotalCount>\\n <PageSize>2</PageSize>\\n <PageNumber>1</PageNumber>\\n <Networks>\\n <EnsRegionId>cn-beijing</EnsRegionId>\\n <NetworkId>n-5***</NetworkId>\\n <NetworkName>example</NetworkName>\\n <CidrBlock>10.0.xx.xx/24</CidrBlock>\\n <Status>Available</Status>\\n <Description>exampleDescription</Description>\\n <CreatedTime>1653620630000</CreatedTime>\\n <VSwitchIds>vsw-bp1nhbnpv2blyz8dl****</VSwitchIds>\\n <RouterTableId>rtb-5**</RouterTableId>\\n <NetworkAclId>nacl-a2do9e413e0spxscd****</NetworkAclId>\\n </Networks>\\n</DescribeNetworksResponse>","errorExample":""}]',
+ 'title' => 'DescribeNetworks',
+ 'description' => '* You can call this operation up to 100 times per second.'."\n"
+ .'* You can call this operation up to 10 times per second per account.'."\n",
+ ],
+ 'CreateEnsRouteEntry' => [
+ 'summary' => 'Creates a custom route entry.',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'create',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '128371',
+ 'abilityTreeNodes' => [
+ 'FEATUREensGMWJSM',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'RouteTableId',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '要创建自定义路由条目的路由表ID。',
+ 'description' => 'The ID of the route table to which you want to add a custom route entry.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'vtb-bp1cifr72dioje82lse2j',
+ ],
+ ],
+ [
+ 'name' => 'DestinationCidrBlock',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '自定义路由条目的目标网段。',
+ 'description' => 'The destination CIDR block of the custom route entry. Make sure that the following requirements are met:'."\n"
+ ."\n"
+ .'* The destination CIDR block cannot point or belong to 100.64.0.0/10.'."\n"
+ .'* The destination CIDR blocks of the custom route entries in the same route table cannot overlap.'."\n"
+ .'* 0.0.0.0/0 indicates the default CIDR block.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => '0.0.0.0/0',
+ ],
+ ],
+ [
+ 'name' => 'NextHopType',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '自定义路由条目的下一跳的类型',
+ 'description' => 'The next hop type of the custom route. Valid values:'."\n"
+ ."\n"
+ .'* Instance: an ENS instance.'."\n"
+ .'* HaVip: a high-availability virtual IP address (HAVIP).'."\n"
+ .'* NetworkPeer: VPC peering connection.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'Instance',
+ 'default' => 'Instance',
+ 'enum' => [
+ 'Instance',
+ 'HaVip',
+ 'NetworkPeer',
+ ],
+ ],
+ ],
+ [
+ 'name' => 'NextHopId',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '自定义路由条目的下一跳实例的ID。',
+ 'description' => 'The ID of the next hop of the custom route entry.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'i-5vb7leks9z4mxy1ay258',
+ ],
+ ],
+ [
+ 'name' => 'RouteEntryName',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '要创建的自定义路由条目的名称。',
+ 'description' => 'The name of the custom route entry that you want to add. The name must be 1 to 128 characters in length. It cannot start with http:// or https://.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'test',
+ 'maxLength' => 128,
+ 'minLength' => 2,
+ ],
+ ],
+ [
+ 'name' => 'Description',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '自定义路由条目的描述信息。',
+ 'description' => 'The description of the custom route entry.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'example',
+ 'maxLength' => 256,
+ 'minLength' => 2,
+ ],
+ ],
+ [
+ 'name' => 'SourceCidrBlock',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The source CIDR block is available when you configure a route entry in the gateway route table, but is not unavailable when you configure a route entry in the vSwitch route table.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '172.XXX.XXX.0/24',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E',
+ ],
+ 'RouteEntryId' => [
+ 'title' => '路由条目id。',
+ 'description' => 'The ID of the route.'."\n",
+ 'type' => 'string',
+ 'example' => 'rte-5vb5q8sk0lyoscx8539ds',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'Invalid%s',
+ 'errorMessage' => 'The specified parameter %s is invalid.',
+ ],
+ [
+ 'errorCode' => 'Missing%s',
+ 'errorMessage' => 'You must specify the parameter %s.',
+ ],
+ [
+ 'errorCode' => 'ens.interface.error',
+ 'errorMessage' => 'Failed to call API.',
+ ],
+ [
+ 'errorCode' => 'InvalidRouteTableId.NotFound',
+ 'errorMessage' => 'Specified route table does not exist.',
+ ],
+ [
+ 'errorCode' => 'IncorrectStatus.Network',
+ 'errorMessage' => 'The status of the network is incorrect.',
+ ],
+ [
+ 'errorCode' => 'InvalidNetworkType.NotSupported',
+ 'errorMessage' => 'The specified network type does not supported.',
+ ],
+ [
+ 'errorCode' => 'QuotaExceeded',
+ 'errorMessage' => 'Route entry quota exceeded in this route table.',
+ ],
+ [
+ 'errorCode' => 'InvalidRouteEntry.Duplicate',
+ 'errorMessage' => 'The route entry already exists.',
+ ],
+ [
+ 'errorCode' => 'InvalidInstanceId.NotFound',
+ 'errorMessage' => 'The specified InstanceId does not exist.',
+ ],
+ [
+ 'errorCode' => 'InvalidCidrBlock.Malformed',
+ 'errorMessage' => 'Specified CIDR block is not valid.',
+ ],
+ [
+ 'errorCode' => 'InvalidSourceCidrBlock.Malformed',
+ 'errorMessage' => 'Specified Source CIDR Block is not valid.',
+ ],
+ [
+ 'errorCode' => 'InvalidSourceCidrBlock.NotSupported',
+ 'errorMessage' => 'The route table does not support the source CIDR block parameter.',
+ ],
+ [
+ 'errorCode' => 'InvalidNextHopType.NotSupported',
+ 'errorMessage' => 'This next hop type is not supported.',
+ ],
+ [
+ 'errorCode' => 'HaVipNotFound',
+ 'errorMessage' => 'The input parameter haVipId that is not found.',
+ ],
+ [
+ 'errorCode' => 'IncorrectHaVipStatus',
+ 'errorMessage' => 'The status of the haVip is invalid.',
+ ],
+ [
+ 'errorCode' => 'InstanceNotFound.NetworkPeerConnection',
+ 'errorMessage' => 'Network peer connection not found, please check the InstanceId.',
+ ],
+ [
+ 'errorCode' => 'IncorrectStatus.NetworkPeerConnection',
+ 'errorMessage' => 'The status of the network peer connection is incorrect.',
+ ],
+ [
+ 'errorCode' => 'IncorrectNetworkInterfaceStatus',
+ 'errorMessage' => 'The operation could not be completed because the status of the specified network interface is invalid for this action.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E\\",\\n \\"RouteEntryId\\": \\"rte-5vb5q8sk0lyoscx8539ds\\"\\n}","type":"json"}]',
+ 'title' => 'CreateEnsRouteEntry',
+ ],
+ 'DeleteEnsRouteEntry' => [
+ 'summary' => 'Deletes a custom route entry.',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'delete',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '128376',
+ 'abilityTreeNodes' => [
+ 'FEATUREensGMWJSM',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'RouteEntryId',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '要删除的路由条目ID。',
+ 'description' => 'The ID of the route that you want to delete.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'rte-8vbmb2890wiret5maqq25',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'Invalid%s',
+ 'errorMessage' => 'The specified parameter %s is invalid.',
+ ],
+ [
+ 'errorCode' => 'Missing%s',
+ 'errorMessage' => 'You must specify the parameter %s.',
+ ],
+ [
+ 'errorCode' => 'InvalidRouteEntry.SystemRoute',
+ 'errorMessage' => 'Specified operation is denied as route entry type is system.',
+ ],
+ [
+ 'errorCode' => 'ens.interface.error',
+ 'errorMessage' => 'Failed to call API.',
+ ],
+ [
+ 'errorCode' => 'InvalidRouteEntryId.NotFound',
+ 'errorMessage' => 'Specified RouteEntryId does not exist.',
+ ],
+ [
+ 'errorCode' => 'IncorrectStatus.RouteEntry',
+ 'errorMessage' => 'The status of the routeEntry is incorrect.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E\\"\\n}","type":"json"}]',
+ 'title' => 'DeleteEnsRouteEntry',
+ ],
+ 'DescribeEnsRouteEntryList' => [
+ 'summary' => 'Queries route entries.',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'list',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '128367',
+ 'abilityTreeNodes' => [
+ 'FEATUREensGMWJSM',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'RouteTableId',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '要查询的路由表的ID。',
+ 'description' => 'The ID of the route table that you want to query.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'vtb-hp3wdhynneo7fsclox8hs',
+ ],
+ ],
+ [
+ 'name' => 'RouteEntryId',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '要查询的路由条目的ID。',
+ 'description' => 'The ID of the route that you want to query.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'rte-8vbdw66evgv44u2u7v3hx',
+ ],
+ ],
+ [
+ 'name' => 'DestinationCidrBlock',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '路由条目的目标网段',
+ 'description' => 'The destination Classless Inter-Domain Routing (CIDR) block of the route entry.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '11.0.0.0/16',
+ ],
+ ],
+ [
+ 'name' => 'RouteEntryType',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '路由条目的类型',
+ 'description' => 'The route type. Valid values:'."\n"
+ ."\n"
+ .'* Custom: custom route'."\n"
+ .'* System: system route'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'Custom',
+ 'enum' => [
+ 'System',
+ 'Custom',
+ ],
+ ],
+ ],
+ [
+ 'name' => 'NextHopType',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '下一跳类型',
+ 'description' => 'The type of next hop of the custom route entry. Valid values:'."\n"
+ ."\n"
+ .'* Instance (default): an ENS instance.'."\n"
+ .'* HaVip: a high-availability virtual IP address (HAVIP).'."\n"
+ .'* NetworkPeer: VPC peering connection.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'Instance',
+ 'enum' => [
+ 'Instance',
+ 'HaVip',
+ 'NetworkPeer',
+ ],
+ ],
+ ],
+ [
+ 'name' => 'NextHopId',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '下一跳实例ID。',
+ 'description' => 'The ID of the next hop.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'i-2zecshuv3axtr2gc4noa',
+ ],
+ ],
+ [
+ 'name' => 'RouteEntryName',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '路由条目的名称。',
+ 'description' => 'The name of the route.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'test0',
+ ],
+ ],
+ [
+ 'name' => 'PageNumber',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '列表的页码,默认值为1。',
+ 'description' => 'The page number of the returned page. Valid values: integers that are greater than 0. Default value: 1.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'example' => '1',
+ ],
+ ],
+ [
+ 'name' => 'PageSize',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '分页查询时每页的行数,最大值为100,默认值为10。',
+ 'description' => 'The number of entries per page. Default value: 10. Valid values: 10 to 100.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'maximum' => '100',
+ 'example' => '10',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E',
+ ],
+ 'RouteEntrys' => [
+ 'title' => '路由条目信息。',
+ 'description' => 'The information about the routes.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'title' => '路由条目信息。',
+ 'description' => 'The information about the route.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'Status' => [
+ 'title' => '路由条目的状态',
+ 'description' => 'The status of the route entry. Valid values:'."\n",
+ 'type' => 'string',
+ 'example' => 'Available',
+ ],
+ 'Type' => [
+ 'title' => '路由条目的类型',
+ 'description' => 'The type of the route entry.'."\n",
+ 'type' => 'string',
+ 'example' => 'Custom',
+ ],
+ 'Description' => [
+ 'title' => '路由条目的描述信息。',
+ 'description' => 'Enter a description for the route.'."\n",
+ 'type' => 'string',
+ 'example' => 'test',
+ ],
+ 'RouteEntryName' => [
+ 'title' => '路由条目的名称。',
+ 'description' => 'The name of the route.'."\n",
+ 'type' => 'string',
+ 'example' => 'test0',
+ ],
+ 'DestinationCidrBlock' => [
+ 'title' => '路由条目的目标网段。',
+ 'description' => 'The destination CIDR block of the route.'."\n",
+ 'type' => 'string',
+ 'example' => '101.0.45.0/24',
+ ],
+ 'RouteEntryId' => [
+ 'title' => '路由条目的ID。',
+ 'description' => 'The ID of the route.'."\n",
+ 'type' => 'string',
+ 'example' => 'rte-2zeksx7h436f5unk349m1',
+ ],
+ 'RouteTableId' => [
+ 'title' => '路由表ID。',
+ 'description' => 'The ID of the route table.'."\n",
+ 'type' => 'string',
+ 'example' => 'vtb-uf62p9o5cn35fi8xgurnm',
+ ],
+ 'NextHops' => [
+ 'title' => '下一跳',
+ 'description' => 'The information about the next hop.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'title' => '下一跳',
+ 'description' => 'The next hop.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'NextHopId' => [
+ 'title' => '下一跳实例ID。',
+ 'description' => 'The ID of the next hop.'."\n",
+ 'type' => 'string',
+ 'example' => 'i-bp1111yup9991890woxq',
+ ],
+ 'NextHopType' => [
+ 'title' => '下一跳类型',
+ 'description' => 'The type of the next hop. Valid values:'."\n",
+ 'type' => 'string',
+ 'example' => 'Instance',
+ ],
+ 'NextHopName' => [
+ 'description' => 'The instance ID of the next hop.'."\n",
+ 'type' => 'string',
+ 'example' => 'testInstance',
+ ],
+ ],
+ ],
+ ],
+ 'SourceCidrBlock' => [
+ 'description' => 'The source CIDR block. This field is used when you configure a route entry in the gateway route table. This field is not supported in the vSwitch route table.'."\n",
+ 'type' => 'string',
+ 'example' => '10.XXX.XXX.0/24',
+ ],
+ 'CreationTime' => [
+ 'description' => 'The time when the IP address was created. The time is displayed in UTC.'."\n",
+ 'type' => 'string',
+ 'example' => '2023-02-16T03:50:05Z',
+ ],
+ ],
+ ],
+ ],
+ 'PageNumber' => [
+ 'title' => '',
+ 'description' => 'The page number of the returned page.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '1',
+ ],
+ 'PageSize' => [
+ 'description' => 'The number of entries per page.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '10',
+ ],
+ 'TotalCount' => [
+ 'description' => 'The number of returned entries.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '7',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'Invalid%s',
+ 'errorMessage' => 'The specified parameter %s is invalid.',
+ ],
+ [
+ 'errorCode' => 'Missing%s',
+ 'errorMessage' => 'You must specify the parameter %s.',
+ ],
+ [
+ 'errorCode' => 'ens.interface.error',
+ 'errorMessage' => 'Failed to call API.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E\\",\\n \\"RouteEntrys\\": [\\n {\\n \\"Status\\": \\"Available\\",\\n \\"Type\\": \\"Custom\\",\\n \\"Description\\": \\"测试\\",\\n \\"RouteEntryName\\": \\"test0\\",\\n \\"DestinationCidrBlock\\": \\"101.0.45.0/24\\",\\n \\"RouteEntryId\\": \\"rte-2zeksx7h436f5unk349m1\\",\\n \\"RouteTableId\\": \\"vtb-uf62p9o5cn35fi8xgurnm\\",\\n \\"NextHops\\": [\\n {\\n \\"NextHopId\\": \\"i-bp1111yup9991890woxq\\",\\n \\"NextHopType\\": \\"Instance\\",\\n \\"NextHopName\\": \\"testInstance\\"\\n }\\n ],\\n \\"SourceCidrBlock\\": \\"10.XXX.XXX.0/24\\",\\n \\"CreationTime\\": \\"2023-02-16T03:50:05Z\\"\\n }\\n ],\\n \\"PageNumber\\": 1,\\n \\"PageSize\\": 10,\\n \\"TotalCount\\": 7\\n}","type":"json"}]',
+ 'title' => 'DescribeEnsRouteEntryList',
+ ],
+ 'CreateVSwitch' => [
+ 'summary' => 'A vSwitch is created.',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'systemTags' => [
+ 'operationType' => 'create',
+ 'abilityTreeCode' => '33019',
+ 'abilityTreeNodes' => [
+ 'FEATUREensD2JHRI',
+ ],
+ 'tenantRelevance' => 'tenant',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'EnsRegionId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the edge node.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'cn-xian-unicom',
+ ],
+ ],
+ [
+ 'name' => 'CidrBlock',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The CIDR block of the vSwitch. Take note of the following limits:'."\n"
+ ."\n"
+ .'* The subnet mask must be 16 to 29 bits in length.'."\n"
+ .'* The CIDR block of the vSwitch must fall within the CIDR block of the VPC to which the vSwitch belongs.'."\n"
+ .'* The CIDR block of the vSwitch cannot be the same as the destination CIDR block in a route entry of the VPC. However, it can be a subset of the destination CIDR block.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => '172.16.0.0/24',
+ ],
+ ],
+ [
+ 'name' => 'VSwitchName',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The name of the vSwitch. The name must meet the following requirements:'."\n"
+ ."\n"
+ .'* The name must be 2 to 128 characters in length.'."\n"
+ .'* The name must start with a letter and cannot start with http:// or https://. It can contain letters, digits, colons (:), underscores (\\_), and hyphens (-).'."\n"
+ ."\n"
+ .'Default value: null.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'test',
+ ],
+ ],
+ [
+ 'name' => 'Description',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The description of the vSwitch.'."\n"
+ ."\n"
+ .'The description must be 2 to 256 characters in length. It must start with a letter but cannot start with http:// or https://.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'This is my vswitch.',
+ ],
+ ],
+ [
+ 'name' => 'NetworkId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the network to which the vSwitch that you want to create belongs.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'n-257gqcdfvx6n****',
+ ],
+ ],
+ [
+ 'name' => 'Tag',
+ 'in' => 'query',
+ 'style' => 'repeatList',
+ 'schema' => [
+ 'description' => 'The tags.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The tag to add to the resource.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'Key' => [
+ 'description' => 'The key of the tag that are to add to the instance. Valid values of N: **1** to **20**.'."\n"
+ ."\n"
+ .'* The key cannot start with `aliyun`, `acs:`, `http://`, or `https://`.'."\n"
+ .'* The key must be up to 64 characters in length.'."\n"
+ .'* The tag key cannot be an empty string.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'team',
+ ],
+ 'Value' => [
+ 'description' => 'The value of tag N that is added to the resource. Valid values of N: 1 to 20. The tag value can be an empty string. The tag value can be up to 128 characters in length. It cannot start with acs: or contain http:// or https://.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'Deep',
+ ],
+ ],
+ 'required' => false,
+ ],
+ 'required' => false,
+ 'maxItems' => 20,
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'VSwitchId' => [
+ 'description' => 'The ID of the vSwitch.'."\n",
+ 'type' => 'string',
+ 'example' => 'vsw-5****',
+ ],
+ 'RequestId' => [
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984',
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'MissingParameter',
+ 'errorMessage' => 'The input parameter that is mandatory for processing this request is not supplied.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'CallInterface',
+ 'errorMessage' => 'Call Interface Happen Error.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter',
+ 'errorMessage' => 'The errorMessage is %s. Please check it again.',
+ ],
+ [
+ 'errorCode' => 'InvalidSecurityGroupId.NotFound',
+ 'errorMessage' => 'The specified SecurityGroupId does not exist.',
+ ],
+ [
+ 'errorCode' => 'SecurityGroupRuleConflict.Duplicated',
+ 'errorMessage' => 'The SecurityGroup rule already exists.',
+ ],
+ [
+ 'errorCode' => 'AuthorizationLimitExceed',
+ 'errorMessage' => 'The limit of authorization records in the security group reaches.',
+ ],
+ [
+ 'errorCode' => 'ens.interface.error',
+ 'errorMessage' => 'An error occurred while calling the API.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"VSwitchId\\": \\"vsw-5****\\",\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\"\\n}","errorExample":""},{"type":"xml","example":"<CreateVSwitchResponse>\\n <VSwitchId>vsw-5****</VSwitchId>\\n <RequestId>CEF72CEB-54B6-4AE8-B225-F876FF7BA984</RequestId>\\n</CreateVSwitchResponse>","errorExample":""}]',
+ 'title' => 'CreateVSwitch',
+ ],
+ 'DeleteVSwitch' => [
+ 'summary' => 'Deletes a vSwitch.',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'systemTags' => [
+ 'operationType' => 'delete',
+ 'abilityTreeCode' => '2183',
+ 'abilityTreeNodes' => [
+ 'FEATUREensD2JHRI',
+ ],
+ 'tenantRelevance' => 'tenant',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'VSwitchId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the vSwitch.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'vsw-5m9xhl****',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984',
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'MissingParameter',
+ 'errorMessage' => 'The input parameter that is mandatory for processing this request is not supplied.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter',
+ 'errorMessage' => 'The errorMessage is %s. Please check it again.',
+ ],
+ [
+ 'errorCode' => 'InvalidSecurityGroupId.NotFound',
+ 'errorMessage' => 'The specified SecurityGroupId does not exist.',
+ ],
+ [
+ 'errorCode' => 'SecurityGroupRuleConflict.Duplicated',
+ 'errorMessage' => 'The SecurityGroup rule already exists.',
+ ],
+ [
+ 'errorCode' => 'AuthorizationLimitExceed',
+ 'errorMessage' => 'The limit of authorization records in the security group reaches.',
+ ],
+ [
+ 'errorCode' => 'ens.interface.error',
+ 'errorMessage' => 'An error occurred while calling the API.',
+ ],
+ [
+ 'errorCode' => 'CallInterface',
+ 'errorMessage' => 'Call Interface Happen Error.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\"\\n}","errorExample":""},{"type":"xml","example":"<DeleteVSwitchResponse>\\r\\n<RequestId>CEF72CEB-54B6-4AE8-B225-F876FF7BA984</RequestId>\\r\\n</DeleteVSwitchResponse>","errorExample":""}]',
+ 'title' => 'DeleteVSwitch',
+ 'description' => 'Before you delete a vSwitch, make sure that no instances exist in the vSwitch.'."\n",
+ 'requestParamsDescription' => ' ',
+ 'responseParamsDescription' => ' ',
+ 'extraInfo' => ' ',
+ ],
+ 'ModifyVSwitchAttribute' => [
+ 'summary' => 'Modifies information about a vSwitch.',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'update',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'VSwitchId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the vSwitch.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'n-****',
+ ],
+ ],
+ [
+ 'name' => 'VSwitchName',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The name of the vSwitch.'."\n"
+ ."\n"
+ .'* The name must be 2 to 128 characters in length and can contain letters, digits, colons (:), underscores (\\_), and hyphens (-).'."\n"
+ .'* It must start with a letter but cannot start with http:// or https://.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'Test-switch',
+ 'maxLength' => 128,
+ 'minLength' => 2,
+ ],
+ ],
+ [
+ 'name' => 'Description',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The description of the listener.'."\n"
+ ."\n"
+ .'* The description must be 2 to 256 characters in length.'."\n"
+ .'* It must start with a letter but cannot start with http:// or https://.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'this is my first network',
+ 'maxLength' => 256,
+ 'minLength' => 2,
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'InvalidParameter',
+ 'errorMessage' => 'InvalidParameter',
+ ],
+ [
+ 'errorCode' => 'InvalidVSwitchId.NotFound',
+ 'errorMessage' => 'The specified VSwitchId does not exist.',
+ ],
+ [
+ 'errorCode' => 'ens.interface.error',
+ 'errorMessage' => 'An error occurred while calling the API.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E\\"\\n}","errorExample":""},{"type":"xml","example":"<ModifyVSwitchAttributeResponse>\\n <RequestId>473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E</RequestId>\\n</ModifyVSwitchAttributeResponse>","errorExample":""}]',
+ 'title' => 'ModifyVSwitchAttribute',
+ 'description' => '* You can call this operation up to 100 times per second.'."\n"
+ .'* You can call this operation up to 5 times per second per user.'."\n",
+ ],
+ 'DescribeVSwitches' => [
+ 'summary' => 'Queries information about available vSwitches.',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'systemTags' => [
+ 'operationType' => 'list',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '33023',
+ 'abilityTreeNodes' => [
+ 'FEATUREensD2JHRI',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'EnsRegionId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the ENS node.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'cn-xian-unicom',
+ ],
+ ],
+ [
+ 'name' => 'VSwitchId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the vSwitch.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'vsw-5m9xhlq8oh***',
+ ],
+ ],
+ [
+ 'name' => 'VSwitchName',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The name of the vSwitch.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'testVSwitchName',
+ ],
+ ],
+ [
+ 'name' => 'NetworkId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the VPC to which the vSwitch belongs.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'vpc-25cdvfeq58pl****',
+ ],
+ ],
+ [
+ 'name' => 'PageNumber',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The page number. Default value: **1**.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'minimum' => '1',
+ 'example' => '1',
+ 'default' => '1',
+ ],
+ ],
+ [
+ 'name' => 'PageSize',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The number of entries per page. Maximum value: **50**. Default value: **10**.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'maximum' => '100',
+ 'example' => '10',
+ 'default' => '10',
+ ],
+ ],
+ [
+ 'name' => 'EnsRegionIds',
+ 'in' => 'query',
+ 'style' => 'flat',
+ 'schema' => [
+ 'description' => 'The IDs of edge nodes. You can specify 1 to 100 IDs.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The IDs of edge nodes.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'cn-chengdu-telecom-4',
+ ],
+ 'required' => false,
+ 'maxItems' => 100,
+ ],
+ ],
+ [
+ 'name' => 'VSwitchIds',
+ 'in' => 'query',
+ 'style' => 'flat',
+ 'schema' => [
+ 'description' => 'The IDs of vSwitches. You can specify 1 to 100 IDs.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The IDs of vSwitches.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'vsw-5****tzrpf',
+ ],
+ 'required' => false,
+ 'maxItems' => 100,
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E',
+ ],
+ 'PageSize' => [
+ 'description' => 'The number of entries returned on each page.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '2',
+ ],
+ 'PageNumber' => [
+ 'description' => 'The page number.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '1',
+ ],
+ 'TotalCount' => [
+ 'description' => 'The total number of entries returned.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '3',
+ ],
+ 'VSwitches' => [
+ 'type' => 'object',
+ 'itemNode' => true,
+ 'properties' => [
+ 'VSwitch' => [
+ 'description' => 'The information about the vSwitches. For more information, see the array of vSwitches in the response examples in the JSON format.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'EnsRegionId' => [
+ 'description' => 'The ID of the ENS node.'."\n",
+ 'type' => 'string',
+ 'example' => 'cn-xian-unicom',
+ ],
+ 'Status' => [
+ 'description' => 'The status of the vSwitch. Valid values:'."\n"
+ ."\n"
+ .'* Pending'."\n"
+ .'* Available'."\n",
+ 'type' => 'string',
+ 'example' => 'Pending',
+ ],
+ 'FreeIpCount' => [
+ 'description' => 'The number of available IP addresses.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int64',
+ 'example' => '1024',
+ ],
+ 'VSwitchId' => [
+ 'description' => 'The ID of the vSwitch.'."\n",
+ 'type' => 'string',
+ 'example' => 'vsw-5m9xhlq8oh***',
+ ],
+ 'CidrBlock' => [
+ 'description' => 'The IPv4 CIDR block of the vSwitch.'."\n",
+ 'type' => 'string',
+ 'example' => '10.21.224.0/22',
+ ],
+ 'Description' => [
+ 'description' => 'The description of the vSwitch.'."\n",
+ 'type' => 'string',
+ 'example' => 'VSwitchDescription',
+ ],
+ 'NetworkId' => [
+ 'description' => 'The ID of the virtual private cloud (VPC).'."\n",
+ 'type' => 'string',
+ 'example' => 'vpc-25cdvfeq58pl****',
+ ],
+ 'CreatedTime' => [
+ 'description' => 'The time when the VPC was created. The time follows the ISO 8601 standard in the YYYY-MM-DDThh:mm:ssZ format. The time is displayed in UTC.'."\n",
+ 'type' => 'string',
+ 'example' => '2020-06-16T06:33:15Z',
+ ],
+ 'VSwitchName' => [
+ 'description' => 'The name of the vSwitch.'."\n",
+ 'type' => 'string',
+ 'example' => 'testVSwitchName',
+ ],
+ 'Tags' => [
+ 'type' => 'object',
+ 'itemNode' => true,
+ 'properties' => [
+ 'Tag' => [
+ 'description' => '',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => '',
+ 'type' => 'object',
+ 'properties' => [
+ 'Value' => [
+ 'description' => 'The request error rate.',
+ 'type' => 'string',
+ 'example' => 'TestValue',
+ ],
+ 'Key' => [
+ 'description' => 'The tag key.',
+ 'type' => 'string',
+ 'example' => 'TestKey',
+ ],
+ 'TagValue' => [
+ 'description' => '',
+ 'type' => 'string',
+ 'deprecated' => true,
+ 'example' => 'TestValue',
+ ],
+ 'TagKey' => [
+ 'description' => '',
+ 'type' => 'string',
+ 'deprecated' => true,
+ 'example' => 'TestKey',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'CallInterface',
+ 'errorMessage' => 'Call Interface Happen Error.',
+ ],
+ [
+ 'errorCode' => 'ens.interface.error',
+ 'errorMessage' => 'Failed to call API.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E\\",\\n \\"PageSize\\": 2,\\n \\"PageNumber\\": 1,\\n \\"TotalCount\\": 3,\\n \\"VSwitches\\": {\\n \\"VSwitch\\": [\\n {\\n \\"EnsRegionId\\": \\"cn-xian-unicom\\",\\n \\"Status\\": \\"Pending\\",\\n \\"FreeIpCount\\": 1024,\\n \\"VSwitchId\\": \\"vsw-5m9xhlq8oh***\\",\\n \\"CidrBlock\\": \\"10.21.224.0/22\\",\\n \\"Description\\": \\"VSwitchDescription\\",\\n \\"NetworkId\\": \\"vpc-25cdvfeq58pl****\\",\\n \\"CreatedTime\\": \\"2020-06-16T06:33:15Z\\",\\n \\"VSwitchName\\": \\"testVSwitchName\\",\\n \\"Tags\\": {\\n \\"Tag\\": [\\n {\\n \\"Value\\": \\"TestValue\\",\\n \\"Key\\": \\"TestKey\\",\\n \\"TagValue\\": \\"TestValue\\",\\n \\"TagKey\\": \\"TestKey\\"\\n }\\n ]\\n }\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<DescribeVSwitchesResponse>\\n <PageSize>2</PageSize>\\n <RequestId>473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E</RequestId>\\n <PageNumber>1</PageNumber>\\n <TotalCount>3</TotalCount>\\n <VSwitches>\\n <EnsRegionId>cn-xian-unicom</EnsRegionId>\\n <Status>Pending</Status>\\n <FreeIpCount>1024</FreeIpCount>\\n <VSwitchId>vsw-5m9xhlq8oh***</VSwitchId>\\n <CidrBlock>10.21.224.0/22</CidrBlock>\\n <Description>VSwitchDescription</Description>\\n <NetworkId>vpc-25cdvfeq58pl****</NetworkId>\\n <CreatedTime>2020-06-16T06:33:15Z</CreatedTime>\\n <VSwitchName>testVSwitchName</VSwitchName>\\n </VSwitches>\\n</DescribeVSwitchesResponse>","errorExample":""}]',
+ 'title' => 'DescribeVSwitches',
+ ],
+ 'CreateSecurityGroup' => [
+ 'summary' => 'Creates a security group.',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'systemTags' => [
+ 'operationType' => 'create',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '33018',
+ 'abilityTreeNodes' => [
+ 'FEATUREensJVII2K',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'SecurityGroupName',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The name of the security group. The name must be 2 to 128 characters in length and can contain letters, digits, colons (:), underscores (\\_), and hyphens (-). It must start with a letter but cannot start with http:// or https://. It can contain letters, digits, colons (:), underscores (\\_), and hyphens (-). By default, this parameter is empty.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'Dcdn1:2_3-4',
+ 'maxLength' => 128,
+ ],
+ ],
+ [
+ 'name' => 'Description',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The description. The description must be 2 to 256 characters in length. It must start with a letter but cannot start with http:// or https://.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'testDescription',
+ 'maxLength' => 256,
+ ],
+ ],
+ [
+ 'name' => 'Permissions',
+ 'in' => 'query',
+ 'style' => 'json',
+ 'schema' => [
+ 'description' => 'An array of security group rules. You can specify up to 200 IDs of security group rules.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The security group rule.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'Direction' => [
+ 'description' => 'The direction in which the security group rule is applied.'."\n"
+ ."\n"
+ .'* egress'."\n"
+ .'* ingress'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'ingress',
+ 'enum' => [
+ 'egress',
+ 'ingress',
+ ],
+ ],
+ 'IpProtocol' => [
+ 'description' => 'The protocol type. Valid values:'."\n"
+ ."\n"
+ .'* TCP'."\n"
+ .'* UDP'."\n"
+ .'* ICMP'."\n"
+ .'* ALL: All protocols are supported.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'enumValueTitles' => [
+ 'TCP' => 'TCP',
+ 'UDP' => 'UDP',
+ 'ALL' => 'ALL',
+ 'ICMP' => 'ICMP',
+ ],
+ 'example' => 'TCP',
+ 'enum' => [
+ 'TCP',
+ 'UDP',
+ 'ICMP',
+ 'ALL',
+ 'GRE',
+ 'tcp',
+ 'udp',
+ 'icmp',
+ 'all',
+ 'gre',
+ ],
+ ],
+ 'PortRange' => [
+ 'description' => 'The range of destination port numbers for the protocols specified in the security group rule. Valid values:'."\n"
+ ."\n"
+ .'* If you set IpProtocol to TCP or UDP, the port number range is 1 to 65535. Specify a port range in the format of \\<Start port number>/\\<End port number>. Example: 1/200.'."\n"
+ .'* If you set IpProtocol to ICMP, the port number range is -1/-1.'."\n"
+ .'* If you set IpProtocol to ALL, the port number range is -1/-1.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => '80/80',
+ ],
+ 'SourcePortRange' => [
+ 'description' => 'The range of source port numbers for the protocols specified in the security group rule. Valid values:'."\n"
+ ."\n"
+ .'* If you set IpProtocol to TCP or UDP, the port number range is 1 to 65535. Specify a port range in the format of \\<Start port number>/\\<End port number>. Example: 1/200.'."\n"
+ .'* If you set IpProtocol to ICMP, the port number range is -1/-1.'."\n"
+ .'* If you set IpProtocol to ALL, the port number range is -1/-1, which indicates all port numbers.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '22/22',
+ ],
+ 'Policy' => [
+ 'description' => 'The action of the security group rule. Valid values:'."\n"
+ ."\n"
+ .'* Accept'."\n"
+ .'* Drop'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'enumValueTitles' => [
+ 'Accept' => 'Accept',
+ 'Drop' => 'Drop',
+ ],
+ 'example' => 'Accept',
+ 'enum' => [
+ 'Accept',
+ 'Drop',
+ 'accept',
+ 'drop',
+ ],
+ ],
+ 'DestCidrIp' => [
+ 'description' => 'The destination IPv4 CIDR block. IPv4 CIDR blocks and IPv4 addresses are supported.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '0.0.0.0/0',
+ ],
+ 'Description' => [
+ 'description' => 'The description. It must be 2 to 256 characters in length and cannot start with http:// or https://.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'testDescription',
+ 'maxLength' => 256,
+ ],
+ 'Priority' => [
+ 'description' => 'The priority of the security group rule. A smaller value specifies a higher priority. Valid values: 1 to 100.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => true,
+ 'maximum' => '100',
+ 'minimum' => '1',
+ 'example' => '1',
+ ],
+ 'SourceCidrIp' => [
+ 'description' => 'The source IPv4 CIDR block. IPv4 CIDR blocks and IPv4 addresses are supported.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '0.0.0.0/0',
+ ],
+ 'Ipv6SourceCidrIp' => [
+ 'type' => 'string',
+ ],
+ 'Ipv6DestCidrIp' => [
+ 'type' => 'string',
+ ],
+ ],
+ 'required' => false,
+ ],
+ 'required' => false,
+ 'maxItems' => 200,
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '760bad53276431c499e30dc36f6b26be',
+ ],
+ 'SecurityGroupId' => [
+ 'description' => 'The ID of the security group.'."\n",
+ 'type' => 'string',
+ 'example' => 'sg-bp1fg655nh68xyz9i***',
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'CallInterface',
+ 'errorMessage' => 'Call Interface Happen Error.',
+ ],
+ [
+ 'errorCode' => 'ens.interface.error',
+ 'errorMessage' => 'Failed to call API.',
+ ],
+ [
+ 'errorCode' => 'Invalid%s',
+ 'errorMessage' => 'The specified parameter %s is invalid.',
+ ],
+ [
+ 'errorCode' => 'Missing%s',
+ 'errorMessage' => 'You must specify the parameter %s.',
+ ],
+ [
+ 'errorCode' => 'AuthorizationLimitExceed',
+ 'errorMessage' => 'The limit of authorization records in the security group reaches.',
+ ],
+ [
+ 'errorCode' => 'SecurityGroupRuleConflict.Duplicated',
+ 'errorMessage' => 'The SecurityGroup rule already exists.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.PortRange',
+ 'errorMessage' => 'The parameter PortRange is not valid.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.CidrIp',
+ 'errorMessage' => 'The parameter CidrIp is not valid.',
+ ],
+ [
+ 'errorCode' => 'QuotaExceed.SecurityGroup',
+ 'errorMessage' => 'The maximum number of security groups is reached.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.DestIpConflict',
+ 'errorMessage' => 'The Parameters DestCidrIp and Ipv6DestCidrIp cannot be set at the same time.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.Ipv4ProtocolConflictWithIpv6Address',
+ 'errorMessage' => 'IPv6 address cannot be specified for IPv4-specific protocol.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.Ipv6ProtocolConflictWithIpv4Address',
+ 'errorMessage' => 'IPv4 address cannot be specified for IPv6-specific protocol.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.SourceIpConflict',
+ 'errorMessage' => 'The Parameters SourceCidrIp and Ipv6SourceCidrIp cannot be set at the same time.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"760bad53276431c499e30dc36f6b26be\\",\\n \\"SecurityGroupId\\": \\"sg-bp1fg655nh68xyz9i***\\"\\n}","errorExample":""},{"type":"xml","example":"<CreateSecurityGroupResponse>\\n <SecurityGroupId>sg-bp1fg655nh68xyz9i***</SecurityGroupId>\\n <RequestId>760bad53276431c499e30dc36f6b26be</RequestId>\\n</CreateSecurityGroupResponse>","errorExample":""}]',
+ 'title' => 'CreateSecurityGroup',
+ ],
+ 'DeleteSecurityGroup' => [
+ 'summary' => 'Deletes a security group.',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'systemTags' => [
+ 'operationType' => 'delete',
+ 'abilityTreeCode' => '1714',
+ 'abilityTreeNodes' => [
+ 'FEATUREensJVII2K',
+ ],
+ 'tenantRelevance' => 'tenant',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'SecurityGroupId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The security group ID of the instance.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'sg-bp67acfmxazb4ph***',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E',
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'MissingParameter',
+ 'errorMessage' => 'The input parameter that is mandatory for processing this request is not supplied.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter',
+ 'errorMessage' => 'The errorMessage is %s. Please check it again.',
+ ],
+ [
+ 'errorCode' => 'InvalidSecurityGroupId.NotFound',
+ 'errorMessage' => 'The specified SecurityGroupId does not exist.',
+ ],
+ [
+ 'errorCode' => 'SecurityGroupRuleConflict.Duplicated',
+ 'errorMessage' => 'The SecurityGroup rule already exists.',
+ ],
+ [
+ 'errorCode' => 'AuthorizationLimitExceed',
+ 'errorMessage' => 'The limit of authorization records in the security group reaches.',
+ ],
+ [
+ 'errorCode' => 'SecurityGroupRule.NotFound',
+ 'errorMessage' => 'The input security group rule does not exist.',
+ ],
+ [
+ 'errorCode' => 'IncorrectInstanceStatus',
+ 'errorMessage' => 'The current status of the resource does not support this operation.',
+ ],
+ [
+ 'errorCode' => 'InvalidInstanceId.NotFound',
+ 'errorMessage' => 'The specified InstanceId does not exist.',
+ ],
+ [
+ 'errorCode' => 'DependencyViolation',
+ 'errorMessage' => 'There is still instance(s) in the specified security group.',
+ ],
+ [
+ 'errorCode' => 'ens.interface.error',
+ 'errorMessage' => 'An error occurred while calling the API.',
+ ],
+ [
+ 'errorCode' => 'CallInterface',
+ 'errorMessage' => 'Call Interface Happen Error.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E\\"\\n}","errorExample":""},{"type":"xml","example":"<DeleteSecurityGroupResponse>\\n <RequestId>CEF72CEB-54B6-4AE8-B225-F876FF7BA984</RequestId>\\n</DeleteSecurityGroupResponse>","errorExample":""}]',
+ 'title' => 'DeleteSecurityGroup',
+ 'description' => 'Before you delete a security group, make sure that no instances exist in the security group.'."\n",
+ ],
+ 'JoinSecurityGroup' => [
+ 'summary' => 'Adds an Edge Node Service (ENS) instance to a specified security group.',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'systemTags' => [
+ 'operationType' => 'update',
+ 'abilityTreeCode' => '2627',
+ 'abilityTreeNodes' => [
+ 'FEATUREensSZS7MU',
+ ],
+ 'tenantRelevance' => 'tenant',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'SecurityGroupId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the security group.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'sg-bp67acfmxazb4ph***',
+ ],
+ ],
+ [
+ 'name' => 'InstanceId',
+ 'in' => 'query',
+ 'allowEmptyValue' => false,
+ 'schema' => [
+ 'description' => 'The ID of the instance.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'i-bp67acfmxazb4ph***',
+ ],
+ ],
+ [
+ 'name' => 'NetworkInterfaceId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the ENI.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'eni-58z57orgmt6d1****'."\n",
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E',
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'MissingParameter',
+ 'errorMessage' => 'The input parameter that is mandatory for processing this request is not supplied.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'CallInterface',
+ 'errorMessage' => 'Call Interface Happen Error.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter',
+ 'errorMessage' => 'The errorMessage is %s. Please check it again.',
+ ],
+ [
+ 'errorCode' => 'InvalidSecurityGroupId.NotFound',
+ 'errorMessage' => 'The specified SecurityGroupId does not exist.',
+ ],
+ [
+ 'errorCode' => 'SecurityGroupRuleConflict.Duplicated',
+ 'errorMessage' => 'The SecurityGroup rule already exists.',
+ ],
+ [
+ 'errorCode' => 'AuthorizationLimitExceed',
+ 'errorMessage' => 'The limit of authorization records in the security group reaches.',
+ ],
+ [
+ 'errorCode' => 'SecurityGroupRule.NotFound',
+ 'errorMessage' => 'The input security group rule does not exist.',
+ ],
+ [
+ 'errorCode' => 'IncorrectInstanceStatus',
+ 'errorMessage' => 'The current status of the resource does not support this operation.',
+ ],
+ [
+ 'errorCode' => 'InvalidInstanceId.NotFound',
+ 'errorMessage' => 'The specified InstanceId does not exist.',
+ ],
+ [
+ 'errorCode' => 'ens.interface.error',
+ 'errorMessage' => 'An error occurred while calling the API.',
+ ],
+ [
+ 'errorCode' => 'RegionNotSupport',
+ 'errorMessage' => 'The specified InstanceId of regionId does not support SecurityGroup',
+ ],
+ [
+ 'errorCode' => 'InstanceAlreadyBound',
+ 'errorMessage' => 'The instance is already bound to a SecurityGroup.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E\\"\\n}","errorExample":""},{"type":"xml","example":"<JoinSecurityGroupResponse>\\n <RequestId>CEF72CEB-54B6-4AE8-B225-F876FF7BA984</RequestId>\\n</JoinSecurityGroupResponse>","errorExample":""}]',
+ 'title' => 'JoinSecurityGroup',
+ 'description' => 'Before you call this operation to add an instance to a security group, make sure that the instance is in the Stopped or Running state.'."\n",
+ ],
+ 'LeaveSecurityGroup' => [
+ 'summary' => 'Removes an instance from a security group.',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'systemTags' => [
+ 'operationType' => 'update',
+ 'abilityTreeCode' => '4379',
+ 'abilityTreeNodes' => [
+ 'FEATUREensTCI0WT',
+ ],
+ 'tenantRelevance' => 'tenant',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'SecurityGroupId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the security group.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'sg-bp67acfmxazb4p****',
+ ],
+ ],
+ [
+ 'name' => 'InstanceId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The instance ID.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'i-bp67acfmxazb4p****',
+ ],
+ ],
+ [
+ 'name' => 'NetworkInterfaceId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the ENI.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'eni-58z57orgmt6d1****',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E',
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'MissingParameter',
+ 'errorMessage' => 'The input parameter that is mandatory for processing this request is not supplied.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter',
+ 'errorMessage' => 'The errorMessage is %s. Please check it again.',
+ ],
+ [
+ 'errorCode' => 'InvalidSecurityGroupId.NotFound',
+ 'errorMessage' => 'The specified SecurityGroupId does not exist.',
+ ],
+ [
+ 'errorCode' => 'SecurityGroupRuleConflict.Duplicated',
+ 'errorMessage' => 'The SecurityGroup rule already exists.',
+ ],
+ [
+ 'errorCode' => 'AuthorizationLimitExceed',
+ 'errorMessage' => 'The limit of authorization records in the security group reaches.',
+ ],
+ [
+ 'errorCode' => 'SecurityGroupRule.NotFound',
+ 'errorMessage' => 'The input security group rule does not exist.',
+ ],
+ [
+ 'errorCode' => 'IncorrectInstanceStatus',
+ 'errorMessage' => 'The current status of the resource does not support this operation.',
+ ],
+ [
+ 'errorCode' => 'InvalidInstanceId.NotFound',
+ 'errorMessage' => 'The specified InstanceId does not exist.',
+ ],
+ [
+ 'errorCode' => 'ens.interface.error',
+ 'errorMessage' => 'An error occurred while calling the API.',
+ ],
+ [
+ 'errorCode' => 'CallInterface',
+ 'errorMessage' => 'Call Interface Happen Error.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E\\"\\n}","errorExample":""},{"type":"xml","example":"<LeaveSecurityGroupResponse>\\r\\n<RequestId>CEF72CEB-54B6-4AE8-B225-F876FF7BA984</RequestId>\\r\\n</LeaveSecurityGroupResponse>","errorExample":""}]',
+ 'title' => 'LeaveSecurityGroup',
+ 'description' => 'Before you remove an instance from a security group, the instance must be in the Stopped or Running state.'."\n",
+ 'requestParamsDescription' => ' ',
+ 'responseParamsDescription' => ' ',
+ 'extraInfo' => ' ',
+ ],
+ 'ModifySecurityGroupAttribute' => [
+ 'summary' => 'Modifies the information about a security group.',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'update',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'SecurityGroupId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the security group.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'sg-bp67acfmxazb4p****',
+ ],
+ ],
+ [
+ 'name' => 'SecurityGroupName',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The name of the security group. The name of a bucket must meet the following requirements:'."\n"
+ ."\n"
+ .'* The name must be 2 to 128 characters in length.'."\n"
+ .'* The name must start with a letter but cannot start with http:// or https://.'."\n"
+ .'* The name can contain letters, digits, colons (:), underscores (\\_), and hyphens (-).'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'example',
+ 'maxLength' => 128,
+ 'minLength' => 2,
+ ],
+ ],
+ [
+ 'name' => 'Description',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The description of the security group.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'testDescription',
+ 'maxLength' => 256,
+ 'minLength' => 2,
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'InvalidParameter',
+ 'errorMessage' => 'InvalidParameter',
+ ],
+ [
+ 'errorCode' => 'InvalidSecurityGroupId.NotFound',
+ 'errorMessage' => 'The specified SecurityGroupId does not exist',
+ ],
+ [
+ 'errorCode' => 'ens.interface.error',
+ 'errorMessage' => 'An error occurred while calling the API.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E\\"\\n}","errorExample":""},{"type":"xml","example":"<RequestId>473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E</RequestId>","errorExample":""}]',
+ 'title' => 'ModifySecurityGroupAttribute',
+ 'description' => '* You can call this operation up to 100 times per second.'."\n"
+ .'* You can call this operation up to 5 times per second per user.'."\n",
+ 'requestParamsDescription' => ' ',
+ 'responseParamsDescription' => ' ',
+ 'extraInfo' => ' ',
+ ],
+ 'DescribeSecurityGroups' => [
+ 'summary' => 'Queries details about created security groups.',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'list',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '33022',
+ 'abilityTreeNodes' => [
+ 'FEATUREensZUGXT1',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'SecurityGroupId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the security group.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'sg-bp67acfmxazb4ph***',
+ ],
+ ],
+ [
+ 'name' => 'SecurityGroupName',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The name of the security group.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'DocTest',
+ ],
+ ],
+ [
+ 'name' => 'PageSize',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The number of entries per page.'."\n"
+ ."\n"
+ .'* Maximum value: 50.'."\n"
+ .'* Default value: 10'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'maximum' => '100',
+ 'minimum' => '1',
+ 'example' => '10',
+ 'default' => '10',
+ ],
+ ],
+ [
+ 'name' => 'PageNumber',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The page number.'."\n"
+ ."\n"
+ .'* Pages start from page 1.'."\n"
+ .'* Default value: 1'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'minimum' => '1',
+ 'example' => '1',
+ 'default' => '1',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E',
+ ],
+ 'PageSize' => [
+ 'description' => 'The number of entries per page.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '10',
+ ],
+ 'PageNumber' => [
+ 'description' => 'The page number.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '1',
+ ],
+ 'TotalCount' => [
+ 'description' => 'The total number of returned pages.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '49',
+ ],
+ 'SecurityGroups' => [
+ 'type' => 'object',
+ 'itemNode' => true,
+ 'properties' => [
+ 'SecurityGroup' => [
+ 'description' => 'Details about security groups.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'CreationTime' => [
+ 'description' => 'The creation time. The time follows the ISO 8601 standard in the YYYY-MM-DDThh:mm:ssZ format. The time is displayed in UTC.'."\n",
+ 'type' => 'string',
+ 'example' => '2019-11-01T06:08:46Z',
+ ],
+ 'InstanceCount' => [
+ 'description' => 'The number of associated instances.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '5',
+ ],
+ 'Description' => [
+ 'description' => 'The description of the security group.'."\n",
+ 'type' => 'string',
+ 'example' => 'TestDescription',
+ ],
+ 'SecurityGroupId' => [
+ 'description' => 'The ID of the security group.'."\n",
+ 'type' => 'string',
+ 'example' => 'sg-bp67acfmxazb4ph***',
+ ],
+ 'SecurityGroupName' => [
+ 'description' => 'The name of the security group.'."\n",
+ 'type' => 'string',
+ 'example' => 'DocTest',
+ ],
+ 'InstanceIds' => [
+ 'type' => 'object',
+ 'itemNode' => true,
+ 'properties' => [
+ 'InstanceId' => [
+ 'description' => 'The IDs of the instances that are associated with the security group.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The ID of instance.'."\n",
+ 'type' => 'string',
+ 'example' => 'i-5****',
+ ],
+ ],
+ ],
+ ],
+ 'NetworkInterfaceIds' => [
+ 'type' => 'object',
+ 'itemNode' => true,
+ 'properties' => [
+ 'NetworkInterfaceId' => [
+ 'description' => 'The IDs of the ENIs that are associated with the security group.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The ID of the ENI.'."\n",
+ 'type' => 'string',
+ 'example' => 'eni-5****',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'CallInterface',
+ 'errorMessage' => 'Call Interface Happen Error.',
+ ],
+ [
+ 'errorCode' => 'ens.interface.error',
+ 'errorMessage' => 'Failed to call API.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E\\",\\n \\"PageSize\\": 10,\\n \\"PageNumber\\": 1,\\n \\"TotalCount\\": 49,\\n \\"SecurityGroups\\": {\\n \\"SecurityGroup\\": [\\n {\\n \\"CreationTime\\": \\"2019-11-01T06:08:46Z\\",\\n \\"InstanceCount\\": 5,\\n \\"Description\\": \\"TestDescription\\",\\n \\"SecurityGroupId\\": \\"sg-bp67acfmxazb4ph***\\",\\n \\"SecurityGroupName\\": \\"DocTest\\",\\n \\"InstanceIds\\": {\\n \\"InstanceId\\": [\\n \\"i-5****\\"\\n ]\\n },\\n \\"NetworkInterfaceIds\\": {\\n \\"NetworkInterfaceId\\": [\\n \\"eni-5****\\"\\n ]\\n }\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<DescribeSecurityGroupsResponse>\\n <PageNumber>1</PageNumber>\\n <TotalCount>49</TotalCount>\\n <PageSize>1</PageSize>\\n <RequestId>A1707FC0-430C-423A-B624-284046B20399</RequestId>\\n <SecurityGroups>\\n <SecurityGroup>\\n <CreationTime>2019-11-01T06:08:46Z</CreationTime>\\n <SecurityGroupId>sg-bp67acfmxazb4ph***</SecurityGroupId>\\n <SecurityGroupName>DocTest</SecurityGroupName>\\n <Description/>\\n <InstanceCount>5</InstanceCount>\\n </SecurityGroup>\\n </SecurityGroups>\\n</DescribeSecurityGroupsResponse>","errorExample":""}]',
+ 'title' => 'DescribeSecurityGroups',
+ ],
+ 'AuthorizeSecurityGroup' => [
+ 'summary' => 'Creates an inbound security group rule. This operation allows or denies the inbound traffic from other devices to instances in the security group.',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'systemTags' => [
+ 'operationType' => 'update',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '951',
+ 'abilityTreeNodes' => [
+ 'FEATUREens73ZR6V',
+ ],
+ 'tenantRelevance' => 'tenant',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'IpProtocol',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The transport layer protocol. The values of this parameter are case-sensitive. Valid values:'."\n"
+ ."\n"
+ .'* tcp'."\n"
+ .'* udp'."\n"
+ .'* icmp'."\n"
+ .'* gre'."\n"
+ .'* all: All protocols are supported.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'all',
+ 'enum' => [
+ 'tcp',
+ 'udp',
+ 'icmp',
+ 'gre',
+ 'all',
+ ],
+ ],
+ ],
+ [
+ 'name' => 'PortRange',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The range of destination ports that correspond to the transport layer protocol for security group rule N. Valid values:'."\n"
+ ."\n"
+ .'* When the IpProtocol parameter is set to tcp or udp, the port number range is **1** to **65535**. The start port number and the end port number are separated by a forward slash (/). Correct example: **1/200**. Incorrect example: **200/1**.'."\n"
+ .'* When the IpProtocol parameter is set to icmp, the port number range is **-1/-1**, which indicates all ports.'."\n"
+ .'* When the IpProtocol parameter is set to gre, the port number range is **-1/-1**, which indicates all ports.'."\n"
+ .'* When the IpProtocol parameter is set to all, the port number range is **-1/-1**, which indicates all ports.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => '22/22',
+ ],
+ ],
+ [
+ 'name' => 'SecurityGroupId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the security group.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'sg-bp67acfmxazb4ph***',
+ ],
+ ],
+ [
+ 'name' => 'Policy',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The action of security group rule N that determines whether to allow inbound access. Valid values:'."\n"
+ ."\n"
+ .'* accept: allows access.'."\n"
+ .'* drop: denies access and returns no responses.'."\n"
+ ."\n"
+ .'Default value: accept.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'accept',
+ 'default' => 'accept',
+ 'enum' => [
+ 'accept',
+ 'drop',
+ ],
+ ],
+ ],
+ [
+ 'name' => 'Priority',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The priority of security group rule N. Valid values: **1** to **100**.'."\n"
+ ."\n"
+ .'Default value: **1**.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'maximum' => '100',
+ 'minimum' => '1',
+ 'example' => '1',
+ 'default' => '1',
+ ],
+ ],
+ [
+ 'name' => 'SourceCidrIp',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The source IPv4 CIDR block. CIDR blocks and IPv4 addresses are supported.'."\n"
+ ."\n"
+ .'This parameter is empty by default.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => '10.0.XX.XX/8',
+ ],
+ ],
+ [
+ 'name' => 'SourcePortRange',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The range of port numbers that correspond to the transport layer protocol for the source security group. Valid values:'."\n"
+ ."\n"
+ .'* When the IpProtocol parameter is set to tcp or udp, the port number range is **1 to 65535**. The start port number and the end port number are separated by a forward slash (/). Correct example: **1/200**. Incorrect example: **200/1**.'."\n"
+ .'* When the IpProtocol parameter is set to icmp, the port number range is **-1/-1**, which indicates all ports.'."\n"
+ .'* When the IpProtocol parameter is set to gre, the port number range is **-1/-1**, which indicates all ports.'."\n"
+ .'* When the IpProtocol parameter is set to all, the port number range is **-1/-1**, which indicates all ports.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '22/22',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E',
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'MissingParameter',
+ 'errorMessage' => 'The input parameter that is mandatory for processing this request is not supplied.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter',
+ 'errorMessage' => 'The errorMessage is %s. Please check it again.',
+ ],
+ [
+ 'errorCode' => 'InvalidSecurityGroupId.NotFound',
+ 'errorMessage' => 'The specified SecurityGroupId does not exist.',
+ ],
+ [
+ 'errorCode' => 'SecurityGroupRuleConflict.Duplicated',
+ 'errorMessage' => 'The SecurityGroup rule already exists.',
+ ],
+ [
+ 'errorCode' => 'AuthorizationLimitExceed',
+ 'errorMessage' => 'The limit of authorization records in the security group reaches.',
+ ],
+ [
+ 'errorCode' => 'ens.interface.error',
+ 'errorMessage' => 'An error occurred while calling the API.',
+ ],
+ [
+ 'errorCode' => 'CallInterface',
+ 'errorMessage' => 'Call Interface Happen Error.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E\\"\\n}","errorExample":""},{"type":"xml","example":"<AuthorizeSecurityGroupResponse>\\r\\n<RequestId>CEF72CEB-54B6-4AE8-B225-F876FF7BA984</RequestId>\\r\\n</AuthorizeSecurityGroupResponse>","errorExample":""}]',
+ 'title' => 'AuthorizeSecurityGroup',
+ 'requestParamsDescription' => ' ',
+ 'responseParamsDescription' => ' ',
+ 'extraInfo' => ' ',
+ ],
+ 'RevokeSecurityGroup' => [
+ 'summary' => 'Deletes an inbound security group rule. After the rule is deleted, the access control implemented by the rule is removed.',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'systemTags' => [
+ 'operationType' => 'update',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'IpProtocol',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The transport layer protocol. The value of this parameter is case-sensitive. Valid values:'."\n"
+ ."\n"
+ .'* tcp'."\n"
+ .'* udp'."\n"
+ .'* icmp'."\n"
+ .'* gre'."\n"
+ .'* all: all protocols.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'all',
+ 'enum' => [
+ 'tcp',
+ 'udp',
+ 'icmp',
+ 'gre',
+ 'all',
+ ],
+ ],
+ ],
+ [
+ 'name' => 'PortRange',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The range of destination ports that correspond to the transport layer protocol for the security group rule. Valid values:'."\n"
+ ."\n"
+ .'* When the IpProtocol parameter is set to tcp or udp, the port number range is **1** to **65535**. The start port number and the end port number are separated by a forward slash (/). Correct example: **1/200**. Incorrect example: **200/1**.'."\n"
+ .'* When the IpProtocol parameter is set to icmp, the port number range is **-1/-1**, which indicates all ports.'."\n"
+ .'* When the IpProtocol parameter is set to gre, the port number range is **-1/-1**, which indicates all ports.'."\n"
+ .'* When the IpProtocol parameter is set to all, the port number range is **-1/-1**, which indicates all ports.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => '22/22',
+ ],
+ ],
+ [
+ 'name' => 'SecurityGroupId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the security group.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'sg-bp67acfmxazb4p**** ',
+ ],
+ ],
+ [
+ 'name' => 'Policy',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The authorization policy. Valid values:'."\n"
+ ."\n"
+ .'* accept: allows access. This is the default value.'."\n"
+ .'* drop: denies access and does not return responses.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'accept',
+ 'default' => 'accept',
+ 'enum' => [
+ 'accept',
+ 'drop',
+ ],
+ ],
+ ],
+ [
+ 'name' => 'Priority',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The priority of the security group rule. Valid values: **1** to **100**. Default value: **1**.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'maximum' => '100',
+ 'minimum' => '1',
+ 'example' => '1',
+ 'default' => '1',
+ ],
+ ],
+ [
+ 'name' => 'SourceCidrIp',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The source CIDR block. CIDR blocks and IPv4 addresses are supported. Default value: 0.0.XX.XX/0.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => '10.0.XX.XX/8',
+ ],
+ ],
+ [
+ 'name' => 'SourcePortRange',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The range of source ports that correspond to the transport layer protocol for the security group rule. Valid values:'."\n"
+ ."\n"
+ .'* When the IpProtocol parameter is set to tcp or udp, the port number range is **1** to **65535**. The start port number and the end port number are separated by a forward slash (/). Correct example: **1/200**. Incorrect example: **200/1**.'."\n"
+ .'* When the IpProtocol parameter is set to icmp, the port number range is **-1/-1**, which indicates all ports.'."\n"
+ .'* When the IpProtocol parameter is set to gre, the port number range is **-1/-1**, which indicates all ports.'."\n"
+ .'* When the IpProtocol parameter is set to all, the port number range is **-1/-1**, which indicates all ports.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '22/22',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E',
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'MissingParameter',
+ 'errorMessage' => 'The input parameter that is mandatory for processing this request is not supplied.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter',
+ 'errorMessage' => 'The errorMessage is %s. Please check it again.',
+ ],
+ [
+ 'errorCode' => 'InvalidSecurityGroupId.NotFound',
+ 'errorMessage' => 'The specified SecurityGroupId does not exist.',
+ ],
+ [
+ 'errorCode' => 'SecurityGroupRuleConflict.Duplicated',
+ 'errorMessage' => 'The SecurityGroup rule already exists.',
+ ],
+ [
+ 'errorCode' => 'AuthorizationLimitExceed',
+ 'errorMessage' => 'The limit of authorization records in the security group reaches.',
+ ],
+ [
+ 'errorCode' => 'SecurityGroupRule.NotFound',
+ 'errorMessage' => 'The input security group rule does not exist.',
+ ],
+ [
+ 'errorCode' => 'ens.interface.error',
+ 'errorMessage' => 'An error occurred while calling the API.',
+ ],
+ [
+ 'errorCode' => 'DependencyViolation',
+ 'errorMessage' => 'There is still instance(s) in the specified security group.',
+ ],
+ [
+ 'errorCode' => 'CallInterface',
+ 'errorMessage' => 'Call Interface Happen Error.',
+ ],
+ ],
+ ],
+ 'eventInfo' => [
+ 'enable' => false,
+ 'eventNames' => [],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E\\"\\n}","errorExample":""},{"type":"xml","example":"<RevokeSecurityGroupResponse>\\r\\n<RequestId>CEF72CEB-54B6-4AE8-B225-F876FF7BA984</RequestId>\\r\\n</RevokeSecurityGroupResponse>","errorExample":""}]',
+ 'title' => 'RevokeSecurityGroup',
+ 'description' => '* In the security group-related API documents, inbound traffic refers to the traffic sent by the source and received by the destination.'."\n"
+ .'* You can determine an inbound security group rule by specifying one of the following groups of parameters. You cannot determine a security group rule by specifying only one parameter.'."\n"
+ .'* You can specify one or more of the following parameters to remove access control for a CIDR block: IpProtocol, PortRange, Policy, and SourceCidrIp.'."\n",
+ 'requestParamsDescription' => ' ',
+ 'responseParamsDescription' => ' ',
+ 'extraInfo' => ' ',
+ ],
+ 'AuthorizeSecurityGroupEgress' => [
+ 'summary' => 'Creates an outbound security group rule. This operation allows or denies the outbound traffic from the instances in the security group to other devices.',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'systemTags' => [
+ 'operationType' => 'update',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'IpProtocol',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The transport layer protocol. The value of this parameter is case-sensitive. Valid values:'."\n"
+ ."\n"
+ .'* tcp'."\n"
+ .'* udp'."\n"
+ .'* icmp'."\n"
+ .'* gre'."\n"
+ .'* all: All protocols are supported.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'all',
+ 'enum' => [
+ 'tcp',
+ 'udp',
+ 'icmp',
+ 'gre',
+ 'all',
+ ],
+ ],
+ ],
+ [
+ 'name' => 'PortRange',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The range of destination ports that correspond to the transport layer protocol for security group rule N. Valid values:'."\n"
+ ."\n"
+ .'* When the IpProtocol parameter is set to tcp or udp, the port number range is **1** to **65535**. The start port number and the end port number are separated by a forward slash (/). Correct example: **1/200**. Incorrect example: **200/1**.'."\n"
+ .'* When the IpProtocol parameter is set to icmp, the port number range is **-1/-1**, which indicates all ports.'."\n"
+ .'* When the IpProtocol parameter is set to gre, the port number range is **-1/-1**, which indicates all ports.'."\n"
+ .'* When the IpProtocol parameter is set to all, the port number range is **-1/-1**, which indicates all ports.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => '22/22',
+ ],
+ ],
+ [
+ 'name' => 'SecurityGroupId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the security group.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'sg-bp67acfmxazb4p**** ',
+ ],
+ ],
+ [
+ 'name' => 'Policy',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The action of the security group rule. Valid values:'."\n"
+ ."\n"
+ .'* accept: allows access. This is the default value.'."\n"
+ .'* drop: denies access and does not return responses.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'accept',
+ 'default' => 'accept',
+ 'enum' => [
+ 'accept',
+ 'drop',
+ ],
+ ],
+ ],
+ [
+ 'name' => 'Priority',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The priority of security group rule N. Valid values: **1 to 100**. Default value: **1**.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'maximum' => '100',
+ 'minimum' => '1',
+ 'example' => '1',
+ 'default' => '1',
+ ],
+ ],
+ [
+ 'name' => 'DestCidrIp',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The destination IP addresses. CIDR blocks and IPv4 addresses are supported.'."\n"
+ ."\n"
+ .'This parameter is empty by default.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => '10.0.XX.XX/8',
+ ],
+ ],
+ [
+ 'name' => 'SourcePortRange',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The range of port numbers that correspond to the transport layer protocol for the source security group. Valid values:'."\n"
+ ."\n"
+ .'* When the IpProtocol parameter is set to tcp or udp, the port number range is **1** to **65535**. The start port number and the end port number are separated by a forward slash (/). Correct example: **1/200**. Incorrect example: **200/1**.'."\n"
+ .'* When the IpProtocol parameter is set to icmp, the port number range is **-1/-1**, which indicates all ports.'."\n"
+ .'* When the IpProtocol parameter is set to gre, the port number range is **-1/-1**, which indicates all ports.'."\n"
+ .'* When the IpProtocol parameter is set to all, the port number range is **-1/-1**, which indicates all ports.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '22/22',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E',
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'MissingParameter',
+ 'errorMessage' => 'The input parameter that is mandatory for processing this request is not supplied.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter',
+ 'errorMessage' => 'The errorMessage is %s. Please check it again.',
+ ],
+ [
+ 'errorCode' => 'InvalidSecurityGroupId.NotFound',
+ 'errorMessage' => 'The specified SecurityGroupId does not exist.',
+ ],
+ [
+ 'errorCode' => 'SecurityGroupRuleConflict.Duplicated',
+ 'errorMessage' => 'The SecurityGroup rule already exists.',
+ ],
+ [
+ 'errorCode' => 'AuthorizationLimitExceed',
+ 'errorMessage' => 'The limit of authorization records in the security group reaches.',
+ ],
+ [
+ 'errorCode' => 'ens.interface.error',
+ 'errorMessage' => 'An error occurred while calling the API.',
+ ],
+ [
+ 'errorCode' => 'CallInterface',
+ 'errorMessage' => 'Call Interface Happen Error.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E\\"\\n}","errorExample":""},{"type":"xml","example":"<AuthorizeSecurityGroupEgressResponse>\\r\\n<RequestId>CEF72CEB-54B6-4AE8-B225-F876FF7BA984</RequestId>\\r\\n</AuthorizeSecurityGroupEgressResponse>","errorExample":""}]',
+ 'title' => 'AuthorizeSecurityGroupEgress',
+ 'description' => 'In the security group-related API documents, outbound traffic refers to the traffic that is sent by the source device and received at the destination device.'."\n",
+ 'requestParamsDescription' => ' ',
+ 'responseParamsDescription' => ' ',
+ 'extraInfo' => ' ',
+ ],
+ 'RevokeSecurityGroupEgress' => [
+ 'summary' => 'Deletes an outbound security group rule. After the rule is deleted, the access control implemented by the rule is removed.',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'systemTags' => [
+ 'operationType' => 'update',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'IpProtocol',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The transport layer protocol. The value of this parameter is case-sensitive. Valid values:'."\n"
+ ."\n"
+ .'* tcp'."\n"
+ .'* udp'."\n"
+ .'* icmp'."\n"
+ .'* gre'."\n"
+ .'* all: All protocols are supported.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'all',
+ 'enum' => [
+ 'tcp',
+ 'udp',
+ 'icmp',
+ 'gre',
+ 'all',
+ ],
+ ],
+ ],
+ [
+ 'name' => 'PortRange',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The range of destination ports that correspond to the transport layer protocol for the security group rule. Valid values:'."\n"
+ ."\n"
+ .'* If you set the IpProtocol parameter to tcp or udp, the port number ranges from **1** to **65535**. The start port number and the end port number are separated by a forward slash (/). Correct example: **1/200**. Incorrect example: **200/1**.'."\n"
+ .'* When the IpProtocol parameter is set to icmp, the port number range is **-1/-1**, which indicates all ports.'."\n"
+ .'* When the IpProtocol parameter is set to gre, the port number range is **-1/-1**, which indicates all ports.'."\n"
+ .'* When the IpProtocol parameter is set to all, the port number range is **-1/-1**, which indicates all ports.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => '22/22',
+ ],
+ ],
+ [
+ 'name' => 'SecurityGroupId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the security group.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'sg-bp67acfmxazb4ph***',
+ ],
+ ],
+ [
+ 'name' => 'Policy',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The action of the security group rule. Valid values:'."\n"
+ ."\n"
+ .'* **accept**: allows access.'."\n"
+ .'* **drop**: denies access and returns no responses.'."\n"
+ ."\n"
+ .'Default value: **accept**.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'accept',
+ 'default' => 'accept',
+ 'enum' => [
+ 'accept',
+ 'drop',
+ ],
+ ],
+ ],
+ [
+ 'name' => 'Priority',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The priority of the security group rule. Valid values: **1** to **100**. A smaller value indicates a higher priority.'."\n"
+ ."\n"
+ .'Default value: **1**.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'maximum' => '100',
+ 'minimum' => '1',
+ 'example' => '1',
+ 'default' => '1',
+ ],
+ ],
+ [
+ 'name' => 'DestCidrIp',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The destination IP addresses. CIDR blocks and IPv4 addresses are supported.'."\n"
+ ."\n"
+ .'By default, this parameter is empty.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => '10.0.0.0/8',
+ ],
+ ],
+ [
+ 'name' => 'SourcePortRange',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The range of port numbers that correspond to the transport layer protocol for the source security group. Valid values:'."\n"
+ ."\n"
+ .'* If you set the IpProtocol parameter to tcp or udp, the port number ranges from **1** to **65535**. The start port number and the end port number are separated by a forward slash (/). Correct example: **1/200**. Incorrect example: **200/1**.'."\n"
+ .'* When the IpProtocol parameter is set to icmp, the port number range is **-1/-1**, which indicates all ports.'."\n"
+ .'* When the IpProtocol parameter is set to gre, the port number range is **-1/-1**, which indicates all ports.'."\n"
+ .'* When the IpProtocol parameter is set to all, the port number range is **-1/-1**, which indicates all ports.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '22/22',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984',
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'MissingParameter',
+ 'errorMessage' => 'The input parameter that is mandatory for processing this request is not supplied.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter',
+ 'errorMessage' => 'The errorMessage is %s. Please check it again.',
+ ],
+ [
+ 'errorCode' => 'InvalidSecurityGroupId.NotFound',
+ 'errorMessage' => 'The specified SecurityGroupId does not exist.',
+ ],
+ [
+ 'errorCode' => 'SecurityGroupRuleConflict.Duplicated',
+ 'errorMessage' => 'The SecurityGroup rule already exists.',
+ ],
+ [
+ 'errorCode' => 'AuthorizationLimitExceed',
+ 'errorMessage' => 'The limit of authorization records in the security group reaches.',
+ ],
+ [
+ 'errorCode' => 'SecurityGroupRule.NotFound',
+ 'errorMessage' => 'The input security group rule does not exist.',
+ ],
+ [
+ 'errorCode' => 'ens.interface.error',
+ 'errorMessage' => 'An error occurred while calling the API.',
+ ],
+ [
+ 'errorCode' => 'CallInterface',
+ 'errorMessage' => 'Call Interface Happen Error.',
+ ],
+ ],
+ ],
+ 'eventInfo' => [
+ 'enable' => false,
+ 'eventNames' => [],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\"\\n}","errorExample":""},{"type":"xml","example":"<RevokeSecurityGroupEgressResponse>\\r\\n<RequestId>CEF72CEB-54B6-4AE8-B225-F876FF7BA984</RequestId>\\r\\n</RevokeSecurityGroupEgressResponse>","errorExample":""}]',
+ 'title' => 'RevokeSecurityGroupEgress',
+ 'description' => '> In the security group-related API documents, outbound traffic refers to the traffic sent by the source and received by the destination.'."\n",
+ 'requestParamsDescription' => ' ',
+ 'responseParamsDescription' => ' ',
+ 'extraInfo' => ' ',
+ ],
+ 'DescribeSecurityGroupAttribute' => [
+ 'summary' => 'Queries the rules of a security group.',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeNodes' => [
+ 'FEATUREensZUGXT1',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'SecurityGroupId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the security group.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'sg-bp67acfmxazb4ph***',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E',
+ ],
+ 'Description' => [
+ 'description' => 'The description of the security group.'."\n",
+ 'type' => 'string',
+ 'example' => 'testDescription1',
+ ],
+ 'SecurityGroupId' => [
+ 'description' => 'The ID of the destination security group.'."\n",
+ 'type' => 'string',
+ 'example' => 'sg-bp1gxw6bznjjvhu3****',
+ ],
+ 'SecurityGroupName' => [
+ 'description' => 'The name of the destination security group.'."\n",
+ 'type' => 'string',
+ 'example' => 'testSecurityGroupName2',
+ ],
+ 'Permissions' => [
+ 'type' => 'object',
+ 'itemNode' => true,
+ 'properties' => [
+ 'Permission' => [
+ 'description' => 'Details about the rules.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'CreationTime' => [
+ 'description' => 'The time at which the security group rule was created. The time is displayed in UTC.'."\n",
+ 'type' => 'string',
+ 'example' => '2018-12-12T07:28:38Z',
+ ],
+ 'Direction' => [
+ 'description' => 'The direction in which the security group rule is applied.'."\n",
+ 'type' => 'string',
+ 'example' => 'ingress',
+ ],
+ 'Policy' => [
+ 'description' => 'The policy.'."\n",
+ 'type' => 'string',
+ 'example' => 'Accept',
+ ],
+ 'PortRange' => [
+ 'description' => 'The source port range.'."\n",
+ 'type' => 'string',
+ 'example' => '80/80',
+ ],
+ 'SourceCidrIp' => [
+ 'description' => 'The range of source IP addresses for inbound access control.'."\n",
+ 'type' => 'string',
+ 'example' => '0.0.0.0/0',
+ ],
+ 'IpProtocol' => [
+ 'description' => 'The transport layer protocol.'."\n",
+ 'type' => 'string',
+ 'example' => 'TCP',
+ ],
+ 'DestCidrIp' => [
+ 'description' => 'The range of destination IP addresses for outbound access control.'."\n",
+ 'type' => 'string',
+ 'example' => '0.0.0.0/0',
+ ],
+ 'Priority' => [
+ 'description' => 'The priority of the rule.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '1',
+ ],
+ 'SourcePortRange' => [
+ 'description' => 'The source port number range for the security group.'."\n",
+ 'type' => 'string',
+ 'example' => '22/22',
+ ],
+ 'Description' => [
+ 'description' => 'The description.'."\n",
+ 'type' => 'string',
+ 'example' => 'testDescription1',
+ ],
+ 'Ipv6SourceCidrIp' => [
+ 'type' => 'string',
+ ],
+ 'Ipv6DestCidrIp' => [
+ 'type' => 'string',
+ ],
+ ],
+ 'description' => 'Schema of Response',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidSecurityGroupId.NotFound',
+ 'errorMessage' => 'The specified SecurityGroupId does not exist.',
+ ],
+ [
+ 'errorCode' => 'IncorrectInstanceStatus',
+ 'errorMessage' => 'The current status of the resource does not support this operation.',
+ ],
+ [
+ 'errorCode' => 'CallInterface',
+ 'errorMessage' => 'Call Interface Happen Error.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E\\",\\n \\"Description\\": \\"testDescription1\\",\\n \\"SecurityGroupId\\": \\"sg-bp1gxw6bznjjvhu3****\\",\\n \\"SecurityGroupName\\": \\"testSecurityGroupName2\\",\\n \\"Permissions\\": {\\n \\"Permission\\": [\\n {\\n \\"CreationTime\\": \\"2018-12-12T07:28:38Z\\",\\n \\"Direction\\": \\"ingress\\",\\n \\"Policy\\": \\"Accept\\",\\n \\"PortRange\\": \\"80/80\\",\\n \\"SourceCidrIp\\": \\"0.0.0.0/0\\",\\n \\"IpProtocol\\": \\"TCP\\",\\n \\"DestCidrIp\\": \\"0.0.0.0/0\\",\\n \\"Priority\\": 1,\\n \\"SourcePortRange\\": \\"22/22\\",\\n \\"Description\\": \\"testDescription1\\",\\n \\"Ipv6SourceCidrIp\\": \\"::/0\\",\\n \\"Ipv6DestCidrIp\\": \\"::/0\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<DescribeSecurityGroupAttributeResponse>\\n <RequestId>473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E</RequestId>\\n <Description>testDescription1</Description>\\n <SecurityGroupId>sg-bp1gxw6bznjjvhu3****</SecurityGroupId>\\n <SecurityGroupName>testSecurityGroupName2</SecurityGroupName>\\n <Permissions>\\n <CreationTime>2018-12-12T07:28:38Z</CreationTime>\\n <Direction>ingress</Direction>\\n <Policy>Accept</Policy>\\n <PortRange>80/80</PortRange>\\n <SourceCidrIp>0.0.0.0/0</SourceCidrIp>\\n <IpProtocol>TCP</IpProtocol>\\n <DestCidrIp>0.0.0.0/0</DestCidrIp>\\n <Priority>1</Priority>\\n <SourcePortRange>22/22</SourcePortRange>\\n <Description>testDescription1</Description>\\n </Permissions>\\n</DescribeSecurityGroupAttributeResponse>","errorExample":""}]',
+ 'title' => 'DescribeSecurityGroupAttribute',
+ ],
+ 'DeleteEip' => [
+ 'summary' => 'Deletes a pay-as-you-go elastic IP address (EIP).',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'delete',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'InstanceId',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '实例id',
+ 'description' => 'The ID of the instance.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'i-5sg1owx0g4ojy66ab2tez77r2',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => '',
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'The request ID.',
+ 'type' => 'string',
+ 'example' => '9341CDC2-D6AC-5992-86C8-D5774CFCC708',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ 'eventInfo' => [
+ 'enable' => false,
+ 'eventNames' => [],
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"9341CDC2-D6AC-5992-86C8-D5774CFCC708\\"\\n}","type":"json"}]',
+ 'title' => 'DeleteEip',
+ ],
+ 'CreateEipInstance' => [
+ 'summary' => 'Applies for an elastic IP address (EIP).',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'readAndWrite',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'create',
+ 'riskType' => 'none',
+ 'chargeType' => 'paid',
+ 'abilityTreeCode' => '20153',
+ 'abilityTreeNodes' => [
+ 'FEATUREensZ9TTQL',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'EnsRegionId',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => 'ENS节点ID',
+ 'description' => 'The ID of the Edge Node Service (ENS) node.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'cn-suzhou-telecom',
+ ],
+ ],
+ [
+ 'name' => 'Bandwidth',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => 'EIP的带宽峰值',
+ 'description' => 'The maximum bandwidth of the EIP. Default value: 5. Valid values: 5 to 10000. Unit: Mbit/s.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int64',
+ 'required' => false,
+ 'maximum' => '10000',
+ 'minimum' => '5',
+ 'example' => '5',
+ 'default' => '5',
+ ],
+ ],
+ [
+ 'name' => 'InstanceChargeType',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => 'EIP的计费方式,取值: PrePaid:包年包月。 PostPaid(默认值):按量计费。 当InstanceChargeType取值为PostPaid时,InternetChargeType不能为PayByBandwidth',
+ 'description' => 'The billing method of the EIP. Set the value to **PostPaid**.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'PostPaid',
+ 'enum' => [
+ 'PostPaid',
+ ],
+ ],
+ ],
+ [
+ 'name' => 'InternetChargeType',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => 'EIP的计量方式,取值: PayByBandwidth(默认值):按带宽计费。 取值:95BandwidthByMonth:月95。',
+ 'description' => 'The metering method of the EIP. Set the value to **95BandwidthByMonth**.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => '95BandwidthByMonth',
+ 'enum' => [
+ '95BandwidthByMonth',
+ 'FlowoutByDay',
+ 'AverageDayBandwidthByMonth',
+ ],
+ ],
+ ],
+ [
+ 'name' => 'Name',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => 'EIP实例名称。',
+ 'description' => 'The name of the EIP.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'EIP1',
+ ],
+ ],
+ [
+ 'name' => 'Isp',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '运营商信息',
+ 'description' => 'The Internet service provider. Valid values:'."\n"
+ ."\n"
+ .'* **cmcc**: China Mobile.'."\n"
+ .'* **unicom**: China Unicom.'."\n"
+ .'* **telecom**: China Telecom.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'cmcc',
+ 'enum' => [
+ 'cmcc',
+ 'unicom',
+ 'telecom',
+ ],
+ ],
+ ],
+ [
+ 'name' => 'Description',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The description of the EIP.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'yourDescription',
+ ],
+ ],
+ [
+ 'name' => 'Tag',
+ 'in' => 'query',
+ 'style' => 'repeatList',
+ 'schema' => [
+ 'description' => 'The tags.',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The tags.',
+ 'type' => 'object',
+ 'properties' => [
+ 'Key' => [
+ 'description' => 'The key of tag N of the instance. Valid values of N: **1** to **20**.'."\n"
+ ."\n"
+ .'* The key cannot start with `aliyun`, `acs:`, `http://`, or `https://`.'."\n"
+ .'* The key must be up to 64 characters in length.'."\n"
+ .'* The tag key cannot be an empty string.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'team',
+ ],
+ 'Value' => [
+ 'description' => 'The value of tag N that is added to the resource. Valid values of N: 1 to 20. The tag value can be an empty string. The tag value can be up to 128 characters in length. It cannot start with acs: or contain http:// or https://.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'tagValue',
+ ],
+ ],
+ 'required' => false,
+ ],
+ 'required' => false,
+ 'maxItems' => 20,
+ ],
+ ],
+ [
+ 'name' => 'ClientToken',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The client token that is used to ensure the idempotence of the request. This prevents repeated operations caused by multiple retries.'."\n"
+ ."\n"
+ .'* 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 only contain ASCII characters and cannot exceed 64 characters in length.'."\n"
+ .'* If you use a ClientToken that has been used and other request parameters remain unchanged in a repeated request, the client will receive the same result as the first request. This does not affect the status of your server.'."\n"
+ .'* You can initiate a retry when the operation times out or the error code is PROCESSING. The idempotence is valid. If HTTP status code 200 is returned, the client receives the same result as the last request. However, your server status is not affected. If HTTP status code 4xx is returned and error code is not PROCESSING, the idempotence is invalid.'."\n"
+ .'* A client token is valid for 10 minutes.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '26C28756-2586-17AF-B802-0DC50D8FDEBB',
+ ],
+ ],
+ [
+ 'name' => 'IpAddress',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => 'IP地址',
+ 'type' => 'string',
+ ],
+ ],
+ [
+ 'name' => 'InstanceId',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => 'EIP的实例ID。',
+ 'type' => 'string',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => '9DB6123F-470D-510A-A9EB-EBA799340452',
+ ],
+ 'AllocationId' => [
+ 'title' => 'EIP的ID。',
+ 'description' => 'The ID of the EIP.'."\n",
+ 'type' => 'string',
+ 'example' => 'eip-25877c70gddh****',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'ens.interface.error',
+ 'errorMessage' => 'Failed to call API.',
+ ],
+ [
+ 'errorCode' => 'ResourceNotAvailable',
+ 'errorMessage' => 'Resource you requested is not available in this node.',
+ ],
+ [
+ 'errorCode' => 'OrderFailed',
+ 'errorMessage' => 'Order failed, please try again.',
+ ],
+ [
+ 'errorCode' => 'SystemUseCouponFailed',
+ 'errorMessage' => 'Failed to use coupon.',
+ ],
+ [
+ 'errorCode' => 'SystemUseStoredCardFailed',
+ 'errorMessage' => 'Failed to use stored value card.',
+ ],
+ [
+ 'errorCode' => 'System.SystemError',
+ 'errorMessage' => 'system error.',
+ ],
+ [
+ 'errorCode' => 'SystemCanRefundCheckFailed',
+ 'errorMessage' => 'The business rule check of the cloud product fails, and this order cannot be refunded.',
+ ],
+ [
+ 'errorCode' => 'SystemOtsSystem',
+ 'errorMessage' => 'ots storage error.',
+ ],
+ [
+ 'errorCode' => 'SystemQueryImmortalError',
+ 'errorMessage' => 'Failed to call Juxiange.',
+ ],
+ [
+ 'errorCode' => 'SystemQueryInstanceInfoFailed',
+ 'errorMessage' => 'Failed to find instance information.',
+ ],
+ [
+ 'errorCode' => 'SystemResellerPayCalRefundUnitError',
+ 'errorMessage' => 'Ecological payment channel calculation unsubscribe information error.',
+ ],
+ [
+ 'errorCode' => 'SystemSaleValidateFailed',
+ 'errorMessage' => 'Sales Expression Validation System Error.',
+ ],
+ [
+ 'errorCode' => 'SystemTransferDeleteOldResourceFailed',
+ 'errorMessage' => 'Failed to delete the transferred instance in the transfer order.',
+ ],
+ [
+ 'errorCode' => 'SystemUnSupportOperationType',
+ 'errorMessage' => 'Unsupported operation type.',
+ ],
+ [
+ 'errorCode' => 'RiskRiskControlRejection',
+ 'errorMessage' => 'Risk Control Rejection.',
+ ],
+ [
+ 'errorCode' => 'AuthRamAuthFailed',
+ 'errorMessage' => 'ram sub-account authentication failed.',
+ ],
+ [
+ 'errorCode' => 'CommodityInvalidComponent',
+ 'errorMessage' => 'The module you purchased is illegal, please re-select.',
+ ],
+ [
+ 'errorCode' => 'CommodityInvalidItemCode',
+ 'errorMessage' => 'Specification code illegal.',
+ ],
+ [
+ 'errorCode' => 'PriceHsfTimeoutError',
+ 'errorMessage' => 'Time out when calling the request for quotation interface.',
+ ],
+ [
+ 'errorCode' => 'PricePatingConfigError',
+ 'errorMessage' => 'Inquiry related goods configuration error.',
+ ],
+ [
+ 'errorCode' => 'PricePricingPlanResultNotFound',
+ 'errorMessage' => 'Pricing plan price result not found.',
+ ],
+ [
+ 'errorCode' => 'PriceRatingGetRatingpricingPlan',
+ 'errorMessage' => 'Obtain a valid pricing plan exception.',
+ ],
+ [
+ 'errorCode' => 'OrderAbnormalResourceStatusForRenew',
+ 'errorMessage' => 'Invalid resource status for renewal.',
+ ],
+ [
+ 'errorCode' => 'OrderAccountStatusIllegal',
+ 'errorMessage' => 'Illegal account status.',
+ ],
+ [
+ 'errorCode' => 'OrderArrearage',
+ 'errorMessage' => 'User Arrears.',
+ ],
+ [
+ 'errorCode' => 'OrderBidUserOrderForbidden',
+ 'errorMessage' => 'Bid users cannot buy on the official website.',
+ ],
+ [
+ 'errorCode' => 'OrderCaptureFailed',
+ 'errorMessage' => 'The paid order of the instance has not been deducted successfully.',
+ ],
+ [
+ 'errorCode' => 'OrderExistsReleasedInstances',
+ 'errorMessage' => 'There are already released instances.',
+ ],
+ [
+ 'errorCode' => 'OrderGroupOrderSizeOverflow',
+ 'errorMessage' => 'The quantity of bound combined payment order exceeds the limit.',
+ ],
+ [
+ 'errorCode' => 'OrderHomeCurrencyCanNotDowngrade',
+ 'errorMessage' => 'Users in current currency cannot downgrade.',
+ ],
+ [
+ 'errorCode' => 'OrderHomeCurrencyCanNotUpgradeByValueTransfer',
+ 'errorMessage' => 'Users of current currency cannot upgrade through residual value transfer.',
+ ],
+ [
+ 'errorCode' => 'OrderInstanceHasInactiveChange',
+ 'errorMessage' => 'Instances exist temporary upgrade.',
+ ],
+ [
+ 'errorCode' => 'OrderInstHasUnpaidOrder',
+ 'errorMessage' => 'The instance has an unpaid order.',
+ ],
+ [
+ 'errorCode' => 'OrderInstHasUnsettledBills',
+ 'errorMessage' => 'The instance has an unsettled bill.',
+ ],
+ [
+ 'errorCode' => 'OrderLatestOrderIsHandling',
+ 'errorMessage' => 'Recent order is being processed, please try again later.',
+ ],
+ [
+ 'errorCode' => 'OrderMainOrderSizeOverflow',
+ 'errorMessage' => 'The quantity of the main order exceeds the limit.',
+ ],
+ [
+ 'errorCode' => 'OrderMissingModuleInfoError',
+ 'errorMessage' => 'Module parameter not specified.',
+ ],
+ [
+ 'errorCode' => 'OrderNoRealNameAuthentication',
+ 'errorMessage' => 'No real-name authentication.',
+ ],
+ [
+ 'errorCode' => 'OrderNotFound',
+ 'errorMessage' => 'The specified order information is not found.',
+ ],
+ [
+ 'errorCode' => 'OrderOpend',
+ 'errorMessage' => 'You have activated this product.',
+ ],
+ [
+ 'errorCode' => 'OrderPeriodInvalid',
+ 'errorMessage' => 'Illegal order cycle.',
+ ],
+ [
+ 'errorCode' => 'OrderQuantityInvalid',
+ 'errorMessage' => 'Illegal quantity ordered.',
+ ],
+ [
+ 'errorCode' => 'OrderQueryInstanceError',
+ 'errorMessage' => 'Query instance error.',
+ ],
+ [
+ 'errorCode' => 'OrderQueryInstanceNotExists',
+ 'errorMessage' => 'Instance data does not exist.',
+ ],
+ [
+ 'errorCode' => 'OrderQueryOrderExchangeRateFail',
+ 'errorMessage' => 'Failed to query order exchange rate information.',
+ ],
+ [
+ 'errorCode' => 'OrderQueryUserSettleInfoFail',
+ 'errorMessage' => 'Failed to query user settlement information.',
+ ],
+ [
+ 'errorCode' => 'OrderQuotaExceeded',
+ 'errorMessage' => 'Quantity exceeds limit.',
+ ],
+ [
+ 'errorCode' => 'OrderSysConstraintInvalid',
+ 'errorMessage' => 'System constraint check failed.',
+ ],
+ [
+ 'errorCode' => 'OrderTradeCompleteSettleInfoFail',
+ 'errorMessage' => 'Failed to complete the order settlement currency amount information.',
+ ],
+ [
+ 'errorCode' => 'TradeTradeOrderAfterPayCheckError',
+ 'errorMessage' => 'You have already paid for the subsequent orders of this instance. The current order has been automatically voided and you cannot pay any more.',
+ ],
+ [
+ 'errorCode' => 'PurchaseExistRenewchangeProd',
+ 'errorMessage' => 'There is a renewal change subscription that has not yet taken effect.',
+ ],
+ [
+ 'errorCode' => 'PurchaseExistToBeValidProdRuleError',
+ 'errorMessage' => 'Currently, there are temporary orders that are not in effect, and the upgrade operation cannot be performed.',
+ ],
+ [
+ 'errorCode' => 'PurchaseExistToBeValidRenewChangeProdRuleError',
+ 'errorMessage' => 'Currently, there is an uneffective renewal change subscription, and temporary upgrade operation cannot be performed.',
+ ],
+ [
+ 'errorCode' => 'PurchaseExistValidProdRuleError',
+ 'errorMessage' => 'Currently, there is a temporary order in effect, and operations such as upgrade/downgrade/expansion/pre-transfer cannot be performed.',
+ ],
+ [
+ 'errorCode' => 'ProductInstanceReleased',
+ 'errorMessage' => 'Instance released.',
+ ],
+ [
+ 'errorCode' => 'ProductInstanceTypeNotSupported',
+ 'errorMessage' => 'The instance type is not supported.',
+ ],
+ [
+ 'errorCode' => 'PatRiskRejectForTradeData',
+ 'errorMessage' => 'Payment order problem leads to risk control rejection.',
+ ],
+ [
+ 'errorCode' => 'PayAccountBookNotExist',
+ 'errorMessage' => 'There is no insufficient account balance in the account book, please retry after recharging.',
+ ],
+ [
+ 'errorCode' => 'PayAmountLimitExceeded',
+ 'errorMessage' => 'Payment limit exceeded, please resubmit.',
+ ],
+ [
+ 'errorCode' => 'PayBeforePayRiskRuleValidateFailed',
+ 'errorMessage' => 'The payment was blocked by risk control, and the payment failed.',
+ ],
+ [
+ 'errorCode' => 'PayCounponNotExist',
+ 'errorMessage' => 'Counpon does not exist.',
+ ],
+ [
+ 'errorCode' => 'PayCouponAmountNotEnough',
+ 'errorMessage' => 'Insufficient voucher balance or expired.',
+ ],
+ [
+ 'errorCode' => 'PayCouponNotMeetConsumptionRule',
+ 'errorMessage' => 'The coupon does not meet the conditions for use.',
+ ],
+ [
+ 'errorCode' => 'PayCurrencyInconsistency',
+ 'errorMessage' => 'Currency mismatch.',
+ ],
+ [
+ 'errorCode' => 'PayCurrencyNotSupported',
+ 'errorMessage' => 'Currency not supported.',
+ ],
+ [
+ 'errorCode' => 'PayForbiddenNoReasonFefund',
+ 'errorMessage' => 'Banned five days no reason refund.',
+ ],
+ [
+ 'errorCode' => 'PayHsfTimeoutError',
+ 'errorMessage' => 'Call payment system timeout.',
+ ],
+ [
+ 'errorCode' => 'PayInsufficientBalance',
+ 'errorMessage' => 'Account balance is insufficient, please recharge and try again.',
+ ],
+ [
+ 'errorCode' => 'PayInvalidCreditCard',
+ 'errorMessage' => 'Invalid credit card.',
+ ],
+ [
+ 'errorCode' => 'PayInvalidPayMethod',
+ 'errorMessage' => 'Illegal payment method.',
+ ],
+ [
+ 'errorCode' => 'PayMegrePayOrderHasThanOneChagreChannel',
+ 'errorMessage' => 'Payment failed, please retry or submit work order feedback.',
+ ],
+ [
+ 'errorCode' => 'PayNoCreditCard',
+ 'errorMessage' => 'No valid payment method, please check the payment method and try again.',
+ ],
+ [
+ 'errorCode' => 'PayOrderPayTimeInvalid',
+ 'errorMessage' => 'Order effective time is invalid.',
+ ],
+ [
+ 'errorCode' => 'PayPartRefundNotSupport',
+ 'errorMessage' => 'Not Capture, no partial refund.',
+ ],
+ [
+ 'errorCode' => 'PayPayChannelPayOrderInvalidStatus',
+ 'errorMessage' => 'Illegal status of payment order in payment channel.',
+ ],
+ [
+ 'errorCode' => 'PayPayChannelPayOrderNotExist',
+ 'errorMessage' => 'Payment channel payment order does not exist.',
+ ],
+ [
+ 'errorCode' => 'PayPayerAccountIllegal',
+ 'errorMessage' => 'Illegal payment account.',
+ ],
+ [
+ 'errorCode' => 'PayPayFailedParentRelationchanged',
+ 'errorMessage' => 'If the financial custody relationship changes, please void the order and place a new order for payment.',
+ ],
+ [
+ 'errorCode' => 'PayPayForbidUserCoupon',
+ 'errorMessage' => 'Coupon prohibited for orders.',
+ ],
+ [
+ 'errorCode' => 'PayQueryAvailableAmountFailed',
+ 'errorMessage' => 'Failed to query user availability, please try again later.',
+ ],
+ [
+ 'errorCode' => 'PayQueryAvailableEnduserAmountFailed',
+ 'errorMessage' => 'Failed to query the availability of quota direct customer main user, please try again later.',
+ ],
+ [
+ 'errorCode' => 'PayQueryParentRelationshipFailed',
+ 'errorMessage' => 'Failed to query current user hosting relationship, please try again later.',
+ ],
+ [
+ 'errorCode' => 'PayQueryPayChangeChannelNotEqual',
+ 'errorMessage' => 'Multi-order payment channels are inconsistent, please check whether the original order data payment channel is correct.',
+ ],
+ [
+ 'errorCode' => 'PayRefundFailed',
+ 'errorMessage' => 'Accumulated refund amount exceeds payment order amount.',
+ ],
+ [
+ 'errorCode' => 'PayResellerPayGetUrlError',
+ 'errorMessage' => 'Order payment failed, please try again later.',
+ ],
+ [
+ 'errorCode' => 'PayRiskRejectForPayerAccount',
+ 'errorMessage' => 'Payment account problem leads to risk control rejection.',
+ ],
+ [
+ 'errorCode' => 'PayStoredCardNotExist',
+ 'errorMessage' => 'Stored value card does not exist.',
+ ],
+ [
+ 'errorCode' => 'PaySystemError',
+ 'errorMessage' => 'Error calling payment system.',
+ ],
+ [
+ 'errorCode' => 'PayTaxCalcFailed',
+ 'errorMessage' => 'Failed to get user tax address.',
+ ],
+ [
+ 'errorCode' => 'PayWithholdingAgreementIllegal',
+ 'errorMessage' => 'Withholding Agreement Status Illegal.',
+ ],
+ [
+ 'errorCode' => 'AccountAliyunAccountFrozen',
+ 'errorMessage' => 'Alibaba Cloud account is frozen.',
+ ],
+ [
+ 'errorCode' => 'AccountAliyunAccountNotExist',
+ 'errorMessage' => 'Alibaba Cloud account does not exist.',
+ ],
+ [
+ 'errorCode' => 'RefundRefundInstanceNotFound',
+ 'errorMessage' => 'Unable to find instance information.',
+ ],
+ [
+ 'errorCode' => 'RefundRefundNoValidProd',
+ 'errorMessage' => 'Refund is not available to unsubscribe.',
+ ],
+ [
+ 'errorCode' => 'RefundRefundParamInvalid',
+ 'errorMessage' => 'Abnormal refund parameter.',
+ ],
+ [
+ 'errorCode' => 'RefundRefundQueryOrderFail',
+ 'errorMessage' => 'Failed to query order for refund field.',
+ ],
+ [
+ 'errorCode' => 'SystemConcurrentOperate',
+ 'errorMessage' => 'Concurrent operation causes failure.',
+ ],
+ [
+ 'errorCode' => 'PricePricingPlanNotFound',
+ 'errorMessage' => 'Pricing plan tree not found.',
+ ],
+ [
+ 'errorCode' => 'OrderInstanceHasTempUpgrade',
+ 'errorMessage' => 'Instances exist temporary upgrade.',
+ ],
+ [
+ 'errorCode' => 'PayQueryParentRelationchangedFailed',
+ 'errorMessage' => 'The financial custody relationship may change, please refresh and pay again.',
+ ],
+ [
+ 'errorCode' => 'PayforCreditPayInsufficientBalance',
+ 'errorMessage' => 'Insufficient quota, please contact your channel partner to increase the quota.',
+ ],
+ [
+ 'errorCode' => 'PayforAccountMoneyValidateError',
+ 'errorMessage' => 'The available amount of your channel partner\'s account is insufficient, please contact your channel partner to recharge in time.',
+ ],
+ [
+ 'errorCode' => 'BasicInfoUncompleted',
+ 'errorMessage' => 'You have not completed your basic personal information. Please complete the information and re-operate it.',
+ ],
+ [
+ 'errorCode' => 'Processing',
+ 'errorMessage' => 'Request is in progress, please try again later.',
+ ],
+ [
+ 'errorCode' => 'SaleControlVerificationFailedBandwidthType',
+ 'errorMessage' => 'Bandwidth type sales constraint verification failed, please re-match, or contact the product.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ [
+ 'errorCode' => 'InvalidParam_NotSupportInstanceIdAndIpAddress',
+ 'errorMessage' => 'The parameter InstanceId and IpAddress cannot be supported simultaneously.',
+ ],
+ [
+ 'errorCode' => 'InventoryExceeded',
+ 'errorMessage' => 'The Instance in stock are insufficient,please submit a ticket.',
+ ],
+ [
+ 'errorCode' => 'ResourceNotFound.Ip',
+ 'errorMessage' => 'The specified ip is not found.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"9DB6123F-470D-510A-A9EB-EBA799340452\\",\\n \\"AllocationId\\": \\"eip-25877c70gddh****\\"\\n}","errorExample":""},{"type":"xml","example":"<CreateEipInstanceResponse>\\n <RequestId>9DB6123F-470D-510A-A9EB-EBA799340452</RequestId>\\n <AllocationId>eip-25877c70gddh****</AllocationId>\\n</CreateEipInstanceResponse>","errorExample":""}]',
+ 'title' => 'CreateEipInstance',
+ 'description' => '* You can call this operation up to 5,000 times per second per account.'."\n"
+ .'* You can call this operation up to 50 times per second per user.'."\n",
+ ],
+ 'AssociateEnsEipAddress' => [
+ 'summary' => 'Associates an elastic IP address (EIP) with a cloud resource that is deployed in the same region.',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'update',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '19509',
+ 'abilityTreeNodes' => [
+ 'FEATUREens5WGMNC',
+ ],
+ 'tenantRelevance' => 'tenant',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'AllocationId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the EIP that you want to associate.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'eip-5sc1sgcrsrwgwdvx44hru3p63',
+ ],
+ ],
+ [
+ 'name' => 'InstanceId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the cloud service with which the EIP is associated.'."\n"
+ ."\n"
+ .'> You can specify the ID of an Edge Load Balancer (ELB) instance ID.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'lb-5saivuir6b1mupxjfbhmk1xkb',
+ ],
+ ],
+ [
+ 'name' => 'InstanceType',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The type of instance with which you want to associate the EIP. Valid values:'."\n"
+ ."\n"
+ .'* **Nat**: NAT gateway.'."\n"
+ .'* **SlbInstance**: Edge Load Balancer (ELB) instance.'."\n"
+ .'* **NetworkInterface**: secondary elastic network interface (ENI).'."\n"
+ .'* **NatSlbInstance**: If you want to associate multiple EIPs with an ELB instance, you need to set the parameter to this value.'."\n"
+ .'* **EnsInstance** (default): ENS instance.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'SlbInstance',
+ 'default' => 'EnsInstance',
+ 'enum' => [
+ 'SlbInstance',
+ 'EnsInstance',
+ 'NatSlbInstance',
+ 'Nat',
+ 'NetworkInterface',
+ 'HaVip',
+ ],
+ ],
+ ],
+ [
+ 'name' => 'Standby',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'Specifies whether the EIP is a secondary EIP. Valid values:'."\n"
+ ."\n"
+ .'* true'."\n"
+ .'* false'."\n",
+ 'type' => 'boolean',
+ 'required' => false,
+ 'example' => 'true',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'RegionAccessDenied',
+ 'errorMessage' => 'Could not operate this region\'s resource',
+ ],
+ [
+ 'errorCode' => 'InstanceNotFound',
+ 'errorMessage' => 'The input parameter instancdId that is not found.',
+ ],
+ [
+ 'errorCode' => 'ens.interface.error',
+ 'errorMessage' => 'An error occurred while call the API.',
+ ],
+ [
+ 'errorCode' => 'Invalid%s',
+ 'errorMessage' => 'The specified parameter %s is invalid.',
+ ],
+ [
+ 'errorCode' => 'Missing%s',
+ 'errorMessage' => 'You must specify the parameter %s.',
+ ],
+ [
+ 'errorCode' => 'IncorrectEipStatus',
+ 'errorMessage' => 'The current status of the resource does not support this operation.',
+ ],
+ [
+ 'errorCode' => 'InvalidAssociation.Duplicated',
+ 'errorMessage' => 'Specified instance already is associated.',
+ ],
+ [
+ 'errorCode' => 'LoadBalancerNotFound',
+ 'errorMessage' => 'The input parameter allocationId that is not found.',
+ ],
+ [
+ 'errorCode' => 'EipNotFound',
+ 'errorMessage' => 'The input parameter allocationId that is not found.',
+ ],
+ [
+ 'errorCode' => 'IncorrectInstanceStatus',
+ 'errorMessage' => 'Current instance status does not support this operation.',
+ ],
+ [
+ 'errorCode' => 'InvalidAssociation.AssociateEipFist',
+ 'errorMessage' => 'Associate EIP first.',
+ ],
+ [
+ 'errorCode' => 'InvalidAssociation.RegionNotSupportStandby',
+ 'errorMessage' => 'The region of EIP does not support standby.',
+ ],
+ [
+ 'errorCode' => 'NatNotFound',
+ 'errorMessage' => 'The input parameter allocationId that is not found.',
+ ],
+ [
+ 'errorCode' => 'InvalidAssociation.NetworkTypeNotSupport',
+ 'errorMessage' => 'The instance network type does not support binding to EIP.',
+ ],
+ [
+ 'errorCode' => 'EniNotFound',
+ 'errorMessage' => 'The input parameter allocationId that is not found.',
+ ],
+ [
+ 'errorCode' => 'IncorrectEniStatus',
+ 'errorMessage' => 'Current instance status does not support this operation.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.EniServiceManaged ',
+ 'errorMessage' => 'The eni is managed by service.',
+ ],
+ [
+ 'errorCode' => 'InvalidAssociation.EniNotSupportStandby',
+ 'errorMessage' => 'Eni does not support standby eip.',
+ ],
+ [
+ 'errorCode' => 'IncorrectEniType',
+ 'errorMessage' => 'The type of eni is invalid.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E\\"\\n}","errorExample":""},{"type":"xml","example":"<AssociateEnsEipAddressResponse>\\n <RequestId>473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E</RequestId>\\n</AssociateEnsEipAddressResponse>","errorExample":""}]',
+ 'title' => 'AssociateEnsEipAddress',
+ ],
+ 'UnAssociateEnsEipAddress' => [
+ 'summary' => 'Disassociates an elastic IP address (EIP) from an instance.',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'update',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '19511',
+ 'abilityTreeNodes' => [
+ 'FEATUREens5WGMNC',
+ ],
+ 'tenantRelevance' => 'tenant',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'AllocationId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the EIP.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'eip-5sqa431nx3vee8heqxfxp****',
+ ],
+ ],
+ [
+ 'name' => 'Force',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'Specifies whether to disassociate the EIP from a NAT gateway if a DNAT or SNAT entry is added to the NAT gateway. Valid values:'."\n"
+ ."\n"
+ .'* **false** (default): does not disassociate the EIP from a NAT gateway if a DNAT or SNAT entry is added to the NAT gateway.'."\n"
+ .'* **true**: disassociates the EIP from a NAT gateway if a DNAT or SNAT entry is added to the NAT gateway.'."\n",
+ 'type' => 'boolean',
+ 'required' => false,
+ 'example' => 'false',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => '4A431388-2D4B-46F4-A96B-D4E6BD0688C1',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'InstanceNotFound',
+ 'errorMessage' => 'The input parameter instancdId that is not found.',
+ ],
+ [
+ 'errorCode' => 'Invalid%s',
+ 'errorMessage' => 'The specified parameter %s is invalid.',
+ ],
+ [
+ 'errorCode' => 'Missing%s',
+ 'errorMessage' => 'You must specify the parameter %s.',
+ ],
+ [
+ 'errorCode' => 'IncorrectEipStatus',
+ 'errorMessage' => 'The current status of the resource does not support this operation.',
+ ],
+ [
+ 'errorCode' => 'EipNotFound',
+ 'errorMessage' => 'The input parameter allocationId that is not found. ',
+ ],
+ [
+ 'errorCode' => 'IncorrectEipIpStatus',
+ 'errorMessage' => 'The ip status of EIP is invalid.',
+ ],
+ [
+ 'errorCode' => 'InvalidUnAssociation.UnAssociateStandbyEipFist',
+ 'errorMessage' => 'Unassociate standby eip first.',
+ ],
+ [
+ 'errorCode' => 'ens.interface.error',
+ 'errorMessage' => 'Failed to call API.',
+ ],
+ [
+ 'errorCode' => 'InvalidIpStatus.HasBeenUsedByForwardEntry',
+ 'errorMessage' => 'The eip has been used by dnat.',
+ ],
+ [
+ 'errorCode' => 'InvalidIpStatus.HasBeenUsedBySnatTable',
+ 'errorMessage' => 'The eip has been used by snat.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"4A431388-2D4B-46F4-A96B-D4E6BD0688C1\\"\\n}","type":"json"}]',
+ 'title' => 'UnAssociateEnsEipAddress',
+ ],
+ 'ModifyEnsEipAddressAttribute' => [
+ 'summary' => 'Modifies the name, description, and peak bandwidth of a specified elastic IP address (EIP).',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'update',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'AllocationId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the EIP.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'eip-5sw5dxzgi6umq4uexxkt8wpma',
+ ],
+ ],
+ [
+ 'name' => 'Name',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The new name of the EIP. The name must be 2 to 128 characters in length and cannot start with http:// or https://.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'test-api-modify',
+ 'maxLength' => 128,
+ 'minLength' => 2,
+ ],
+ ],
+ [
+ 'name' => 'Description',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The new description of the EIP. The description must be 2 to 256 characters in length and cannot start with http:// or https://.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'abc',
+ 'maxLength' => 256,
+ 'minLength' => 2,
+ ],
+ ],
+ [
+ 'name' => 'Bandwidth',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The peak bandwidth of the EIP. Default value: 5. Valid values: **5** to **10000**. Unit: Mbit/s.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'maximum' => '10000',
+ 'minimum' => '1',
+ 'example' => '50',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'ens.interface.error',
+ 'errorMessage' => 'An error occurred while call the API.',
+ ],
+ [
+ 'errorCode' => 'EipNotFound',
+ 'errorMessage' => 'The input parameter allocationId that is not found. ',
+ ],
+ [
+ 'errorCode' => 'Invalid%s',
+ 'errorMessage' => 'The specified parameter %s is invalid.',
+ ],
+ [
+ 'errorCode' => 'Missing%s',
+ 'errorMessage' => 'You must specify the parameter %s.',
+ ],
+ [
+ 'errorCode' => 'IncorrectEipStatus',
+ 'errorMessage' => 'The current status of the resource does not support this operation.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter',
+ 'errorMessage' => '需要修改的带宽未发生变化。',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E\\"\\n}","type":"json"}]',
+ 'title' => 'ModifyEnsEipAddressAttribute',
+ ],
+ 'DescribeEnsEipAddresses' => [
+ 'summary' => 'Queries elastic IP addresses (EIPs).',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'list',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '19512',
+ 'abilityTreeNodes' => [
+ 'FEATUREens0AZ8P3',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'AllocationId',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '要查询的EIP实例的ID。 最多支持输入50个EIP实例ID,实例ID之间用逗号(,)分隔。',
+ 'description' => 'The ID of the EIP that you want to query. You can specify up to 50 EIP IDs. Separate multiple IDs with commas (,).'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'eip-5q9uwkd9bznjpxz8hr6cirnjk',
+ ],
+ ],
+ [
+ 'name' => 'EipAddress',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '要查询的EIP的IP地址。 最多支持输入50个EIP的IP地址,IP地址之间用逗号(,)分隔。',
+ 'description' => 'The EIP that you want to query. You can specify up to 50 EIPs. Separate multiple EIPs with commas (,).'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '192.168.0.1',
+ ],
+ ],
+ [
+ 'name' => 'AssociatedInstanceId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the instance with which you want to associate the EIP.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'lb-5t18quoohsrc3xkf86spmnu77',
+ ],
+ ],
+ [
+ 'name' => 'AssociatedInstanceType',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The type of the instance that is associated with the EIP. Valid values:'."\n"
+ ."\n"
+ .'* **EnsInstance**: ENS instance in a VPC'."\n"
+ .'* **SlbInstance**: SLB instance'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'SlbInstance',
+ 'enum' => [
+ 'SlbInstance',
+ 'EnsInstance',
+ 'Nat',
+ 'NetworkInterface',
+ 'HaVip',
+ ],
+ ],
+ ],
+ [
+ 'name' => 'EnsRegionId',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => 'ENS节点ID',
+ 'description' => 'The ID of the Edge Node Service (ENS) node.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'cn-chengdu-telecom',
+ ],
+ ],
+ [
+ 'name' => 'EipName',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The name of the EIP.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'test',
+ ],
+ ],
+ [
+ 'name' => 'Standby',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'Specifies whether the EIP is a secondary EIP. Valid values:'."\n"
+ ."\n"
+ .'* **true**'."\n"
+ .'* **false**'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'true',
+ ],
+ ],
+ [
+ 'name' => 'IcmpReplyEnabled',
+ 'in' => 'query',
+ 'schema' => [
+ 'type' => 'boolean',
+ ],
+ ],
+ [
+ 'name' => 'EnsRegionIds',
+ 'in' => 'query',
+ 'style' => 'flat',
+ 'schema' => [
+ 'description' => 'The IDs of edge nodes. You can specify 1 to 100 IDs.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The ID of the edge node.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'cn-chengdu-telecom-4',
+ ],
+ 'required' => false,
+ 'maxItems' => 100,
+ ],
+ ],
+ [
+ 'name' => 'PageNumber',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '列表的页码,默认值为1。',
+ 'description' => 'The page number. Default value: 1.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'example' => '1',
+ ],
+ ],
+ [
+ 'name' => 'PageSize',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '分页查询时每页的行数,最大值为100,默认值为10。',
+ 'description' => 'The number of entries per page. Maximum value: 100. Default value: 10.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'maximum' => '100',
+ 'example' => '50',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => '8629F679-B51D-4194-A1CC-5D8F504C362B',
+ ],
+ 'EipAddresses' => [
+ 'description' => 'Details of the EIPs.'."\n",
+ 'type' => 'object',
+ 'items' => [
+ 'description' => 'EIP的详细信息。',
+ 'type' => 'object',
+ 'properties' => [
+ 'AllocationId' => [
+ 'name' => 'AllocationId',
+ 'description' => 'EIP的实例ID。',
+ 'type' => 'string',
+ 'example' => 'eip-5sainglpw7qfem3icir4s****',
+ 'backendName' => 'eipId',
+ ],
+ 'AllocationTime' => [
+ 'name' => 'AllocationTime',
+ 'description' => 'EIP的创建时间',
+ 'type' => 'string',
+ 'example' => '1624885274000',
+ 'backendName' => 'createdAt',
+ ],
+ 'Bandwidth' => [
+ 'name' => 'Bandwidth',
+ 'description' => 'EIP的带宽峰值,默认值为5。取值范围:**5**~**10000**,单位:Mbps。',
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '50',
+ 'backendName' => 'bandwidth',
+ ],
+ 'ChargeType' => [
+ 'name' => 'ChargeType',
+ 'description' => 'EIP的计费模式。'."\n"
+ ."\n"
+ .'- **PrePaid**:包年包月。'."\n"
+ ."\n"
+ .'- **PostPaid**:按量计费。',
+ 'type' => 'string',
+ 'example' => 'PostPaid',
+ 'backendName' => 'payType',
+ ],
+ 'Description' => [
+ 'name' => 'Description',
+ 'description' => 'EIP的描述信息。',
+ 'type' => 'string',
+ 'example' => 'example',
+ 'backendName' => 'description',
+ ],
+ 'InstanceId' => [
+ 'name' => 'InstanceId',
+ 'description' => '当前绑定的实例的ID。',
+ 'type' => 'string',
+ 'example' => 'lb-5sc3kum2e0sz34wbqrws9****',
+ 'backendName' => 'instanceId',
+ ],
+ 'InstanceType' => [
+ 'name' => 'InstanceType',
+ 'description' => '要绑定的云产品实例的类型,取值: '."\n"
+ ."\n"
+ .'- **EnsInstance**:VPC类型的ENS实例。'."\n"
+ ."\n"
+ .'- **SlbInstance**:负载均衡实例。',
+ 'type' => 'string',
+ 'example' => 'SlbInstance',
+ 'backendName' => 'instanceType',
+ ],
+ 'InternetChargeType' => [
+ 'name' => 'InternetChargeType',
+ 'description' => 'EIP的计费方式。'."\n"
+ ."\n"
+ .'- **95BandwidthByMonth**:月95峰值带宽。'."\n"
+ ."\n"
+ .'- **PayByBandwidth**:固定带宽计费。',
+ 'type' => 'string',
+ 'example' => '95BandwidthByMonth',
+ 'backendName' => 'chargeType',
+ ],
+ 'IpAddress' => [
+ 'name' => 'IpAddress',
+ 'description' => 'EIP的IP地址。',
+ 'type' => 'string',
+ 'example' => '120.XXX.XXX.4',
+ 'backendName' => 'eip',
+ ],
+ 'Name' => [
+ 'name' => 'Name',
+ 'description' => 'EIP实例名称。',
+ 'type' => 'string',
+ 'example' => 'test',
+ 'backendName' => 'name',
+ ],
+ 'EnsRegionId' => [
+ 'name' => 'EnsRegionId',
+ 'description' => 'ENS节点ID。',
+ 'type' => 'string',
+ 'example' => 'cn-xian-telecom',
+ 'backendName' => 'ensRegionId',
+ ],
+ 'Status' => [
+ 'name' => 'Status',
+ 'description' => 'EIP的状态。'."\n"
+ ."\n"
+ .'- **Associating**:绑定中。'."\n"
+ ."\n"
+ .'- **Unassociating**:解绑中。 '."\n"
+ ."\n"
+ .'- **InUse**:已分配。 '."\n"
+ ."\n"
+ .'- **Available**:可用。 '."\n",
+ 'type' => 'string',
+ 'example' => 'Available',
+ 'backendName' => 'status',
+ 'valueMapping' => [
+ 'cases' => [
+ [
+ 'targetValue' => 'Associating',
+ 'value' => 'associating',
+ ],
+ [
+ 'targetValue' => 'Unassociating',
+ 'value' => 'unassociating',
+ ],
+ [
+ 'targetValue' => 'InUse',
+ 'value' => 'associated',
+ ],
+ [
+ 'targetValue' => 'Available',
+ 'value' => 'available',
+ ],
+ [
+ 'targetValue' => 'Creating',
+ 'value' => 'creating',
+ ],
+ [
+ 'targetValue' => 'Releasing',
+ 'value' => 'releasing',
+ ],
+ ],
+ ],
+ ],
+ 'Isp' => [
+ 'name' => 'Isp',
+ 'description' => '运营商,取值:'."\n"
+ ."\n"
+ .'- **cmcc**:中国移动。'."\n"
+ .'- **unicom**:中国联通。'."\n"
+ .'- **telecom**:中国电信。',
+ 'type' => 'string',
+ 'example' => 'cmcc',
+ 'backendName' => 'isp',
+ ],
+ 'Standby' => [
+ 'name' => 'Standby',
+ 'description' => '该EIP是否是备用。',
+ 'type' => 'boolean',
+ 'example' => 'true',
+ 'backendName' => 'standby',
+ ],
+ 'IpStatus' => [
+ 'name' => 'IpStatus',
+ 'description' => '如果该弹性IP是备用EIP时,表示当前EIP的运行状态。'."\n"
+ .'- **Stopped**:已停止。'."\n"
+ .'- **Running**:运行中。'."\n"
+ .'- **Starting**:启动中。'."\n"
+ .'- **Stopping**:停止中。',
+ 'type' => 'string',
+ 'example' => 'Stopped',
+ 'backendName' => 'ipStatus',
+ 'valueMapping' => [
+ 'cases' => [
+ [
+ 'targetValue' => 'Running',
+ 'value' => 'running',
+ ],
+ [
+ 'targetValue' => 'Stopped',
+ 'value' => 'stopped',
+ ],
+ [
+ 'targetValue' => 'Starting',
+ 'value' => 'starting',
+ ],
+ [
+ 'targetValue' => 'Stopping',
+ 'value' => 'stopping',
+ ],
+ ],
+ ],
+ ],
+ 'Tags' => [
+ 'name' => 'Tags',
+ 'description' => '标签集合。',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => '标签集合。',
+ 'type' => 'object',
+ 'properties' => [
+ 'Value' => [
+ 'name' => 'Value',
+ 'description' => '标签值。',
+ 'type' => 'string',
+ 'example' => 'TestValue',
+ 'backendName' => 'value',
+ ],
+ 'Key' => [
+ 'name' => 'Key',
+ 'description' => '标签键',
+ 'type' => 'string',
+ 'example' => 'TestKey',
+ 'backendName' => 'key',
+ ],
+ 'TagValue' => [
+ 'name' => 'TagValue',
+ 'description' => '标签值。',
+ 'type' => 'string',
+ 'deprecated' => true,
+ 'example' => 'TestValue',
+ 'backendName' => 'value',
+ ],
+ 'TagKey' => [
+ 'name' => 'TagKey',
+ 'description' => '标签键。',
+ 'type' => 'string',
+ 'deprecated' => true,
+ 'example' => 'TestKey',
+ 'backendName' => 'key',
+ ],
+ ],
+ 'extendType' => 'true',
+ ],
+ 'backendName' => 'appendInfo.tags',
+ 'itemName' => 'Tag',
+ ],
+ ],
+ 'extendType' => 'true',
+ ],
+ 'example' => '[\\"106.14.194.193\\"]',
+ 'itemNode' => true,
+ 'properties' => [
+ 'EipAddress' => [
+ 'type' => 'array',
+ 'items' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'AllocationId' => [
+ 'type' => 'string',
+ ],
+ 'AllocationTime' => [
+ 'type' => 'string',
+ ],
+ 'Bandwidth' => [
+ 'type' => 'integer',
+ 'format' => 'int32',
+ ],
+ 'ChargeType' => [
+ 'type' => 'string',
+ ],
+ 'Description' => [
+ 'type' => 'string',
+ ],
+ 'InstanceId' => [
+ 'type' => 'string',
+ ],
+ 'InstanceType' => [
+ 'type' => 'string',
+ ],
+ 'InternetChargeType' => [
+ 'type' => 'string',
+ ],
+ 'IpAddress' => [
+ 'type' => 'string',
+ ],
+ 'Name' => [
+ 'type' => 'string',
+ ],
+ 'EnsRegionId' => [
+ 'type' => 'string',
+ ],
+ 'Status' => [
+ 'type' => 'string',
+ ],
+ 'Isp' => [
+ 'type' => 'string',
+ ],
+ 'Standby' => [
+ 'type' => 'boolean',
+ ],
+ 'IpStatus' => [
+ 'type' => 'string',
+ ],
+ 'Tags' => [
+ 'type' => 'object',
+ 'itemNode' => true,
+ 'properties' => [
+ 'Tag' => [
+ 'type' => 'array',
+ 'items' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'Value' => [
+ 'type' => 'string',
+ ],
+ 'Key' => [
+ 'type' => 'string',
+ ],
+ 'TagValue' => [
+ 'type' => 'string',
+ 'deprecated' => true,
+ ],
+ 'TagKey' => [
+ 'type' => 'string',
+ 'deprecated' => true,
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'IcmpReplyEnabled' => [
+ 'type' => 'boolean',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'PageNumber' => [
+ 'description' => 'The page number. Valid values: an integer that is greater than 0. Default value: 1.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '1',
+ ],
+ 'PageSize' => [
+ 'description' => 'The number of entries per page. Default value: 10. Valid values: **10** to **100**.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '50',
+ ],
+ 'TotalCount' => [
+ 'description' => 'The total number of entries returned.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '7',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'ens.interface.error',
+ 'errorMessage' => 'Failed to call API.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"8629F679-B51D-4194-A1CC-5D8F504C362B\\",\\n \\"EipAddresses\\": {\\n \\"EipAddress\\": [\\n {\\n \\"AllocationId\\": \\"eip-5sainglpw7qfem3icir4s****\\",\\n \\"AllocationTime\\": \\"1624885274000\\",\\n \\"Bandwidth\\": 50,\\n \\"ChargeType\\": \\"PostPaid\\",\\n \\"Description\\": \\"example\\",\\n \\"InstanceId\\": \\"lb-5sc3kum2e0sz34wbqrws9****\\",\\n \\"InstanceType\\": \\"SlbInstance\\",\\n \\"InternetChargeType\\": \\"95BandwidthByMonth\\",\\n \\"IpAddress\\": \\"120.XXX.XXX.4\\",\\n \\"Name\\": \\"test\\",\\n \\"EnsRegionId\\": \\"cn-xian-telecom\\",\\n \\"Status\\": \\"Available\\",\\n \\"Isp\\": \\"cmcc\\",\\n \\"Standby\\": true,\\n \\"IpStatus\\": \\"Stopped\\",\\n \\"Tags\\": {\\n \\"Tag\\": [\\n {\\n \\"Value\\": \\"TestValue\\",\\n \\"Key\\": \\"TestKey\\",\\n \\"TagValue\\": \\"TestValue\\",\\n \\"TagKey\\": \\"TestKey\\"\\n }\\n ]\\n },\\n \\"IcmpReplyEnabled\\": false\\n }\\n ]\\n },\\n \\"PageNumber\\": 1,\\n \\"PageSize\\": 50,\\n \\"TotalCount\\": 7\\n}","errorExample":""},{"type":"xml","example":"<DescribeEnsEipAddressesResponse>\\n <RequestId>8629F679-B51D-4194-A1CC-5D8F504C362B</RequestId>\\n <EipAddresses>\\n <AllocationId>eip-5sainglpw7qfem3icir4s****</AllocationId>\\n <AllocationTime>1624885274000</AllocationTime>\\n <Bandwidth>50</Bandwidth>\\n <ChargeType>PostPaid</ChargeType>\\n <Description>example</Description>\\n <InstanceId>lb-5sc3kum2e0sz34wbqrws9****</InstanceId>\\n <InstanceType>SlbInstance</InstanceType>\\n <InternetChargeType>95BandwidthByMonth</InternetChargeType>\\n <IpAddress>10.10.10</IpAddress>\\n <Name>test</Name>\\n <EnsRegionId>cn-xian-telecom</EnsRegionId>\\n <Status>Available</Status>\\n <Isp>cmcc</Isp>\\n <Standby>true</Standby>\\n <IpStatus>Stopped</IpStatus>\\n </EipAddresses>\\n <PageNumber>1</PageNumber>\\n <PageSize>50</PageSize>\\n <TotalCount>7</TotalCount>\\n</DescribeEnsEipAddressesResponse>","errorExample":""}]',
+ 'title' => 'DescribeEnsEipAddresses',
+ ],
+ 'CreateNatGateway' => [
+ 'summary' => 'Creates a network address translation (NAT) gateway.',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'create',
+ 'riskType' => 'high',
+ 'chargeType' => 'paid',
+ 'abilityTreeCode' => '130960',
+ 'abilityTreeNodes' => [
+ 'FEATUREensP4M91S',
+ ],
+ 'tenantRelevance' => 'tenant',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'Name',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The name of the NAT gateway. The name must be 1 to 128 characters in length. The name cannot start with `http://` or `https://`.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'name',
+ 'maxLength' => 128,
+ 'minLength' => 1,
+ ],
+ ],
+ [
+ 'name' => 'EnsRegionId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the Edge Node Service (ENS) node.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'cn-suzhou-telecom',
+ ],
+ ],
+ [
+ 'name' => 'NetworkId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the network.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'n-5qj7ykuxmjn7k96l090sp****',
+ ],
+ ],
+ [
+ 'name' => 'VSwitchId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the new vSwitch.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'vsw-5savh5ngxh8sbj14bu7n****',
+ ],
+ ],
+ [
+ 'name' => 'InstanceType',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The instance type of the NAT gateway. Set the value to **enat.default**.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'enat.default',
+ 'default' => 'enat.default',
+ 'enum' => [
+ 'enat.default',
+ 'enat.s1.small',
+ 'enat.s1.medium',
+ 'enat.s2.small',
+ 'enat.s2.medium',
+ ],
+ ],
+ ],
+ [
+ 'name' => 'Tag',
+ 'in' => 'query',
+ 'style' => 'repeatList',
+ 'schema' => [
+ 'description' => 'The tags.',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The tag that is bound to the instance.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'Key' => [
+ 'description' => 'The key of tag N of the instance. Valid values of N: **1** to **20**.'."\n"
+ ."\n"
+ .'* The key cannot start with `aliyun`, `acs:`, `http://`, or `https://`.'."\n"
+ .'* The key must be up to 64 characters in length.'."\n"
+ .'* The tag key cannot be an empty string.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'team',
+ ],
+ 'Value' => [
+ 'description' => 'The value of tag N that is added to the resource. Valid values of N: 1 to 20. The tag value can be an empty string. The tag value can be up to 128 characters in length. It cannot start with acs: or contain http:// or https://.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'Deep',
+ ],
+ ],
+ 'required' => false,
+ ],
+ 'required' => false,
+ 'maxItems' => 20,
+ ],
+ ],
+ [
+ 'name' => 'InstanceBillingCycle',
+ 'in' => 'query',
+ 'schema' => [
+ 'type' => 'string',
+ 'required' => false,
+ 'enum' => [
+ 'Hour',
+ 'Month',
+ ],
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response.',
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E',
+ ],
+ 'NatGatewayId' => [
+ 'description' => 'The ID of the NAT gateway.'."\n",
+ 'type' => 'string',
+ 'example' => 'nat-5t7nh1cfm6kxiszlttr38****',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'ens.interface.error ',
+ 'errorMessage' => 'An error occurred while call the API. ',
+ ],
+ [
+ 'errorCode' => 'Invalid%s',
+ 'errorMessage' => 'The specified parameter %s is invalid.',
+ ],
+ [
+ 'errorCode' => 'Missing%s',
+ 'errorMessage' => 'You must specify the parameter %s.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.RegionNotSupported',
+ 'errorMessage' => 'The specified EnsRegion does not support this operation.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.VSwitchNotFound',
+ 'errorMessage' => 'The specified VSwitch is not found. ',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.VSwitchNotBelongToNetwork ',
+ 'errorMessage' => 'The specified VSwitch is not bound to the Network',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.NetworkNotFound',
+ 'errorMessage' => 'The specified Network is not found. ',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.NetworkNotSupported',
+ 'errorMessage' => 'The specified Network does not support this operation. ',
+ ],
+ [
+ 'errorCode' => 'QuotaExceed.NatGateway',
+ 'errorMessage' => 'The maximum number of natGateway is reached. ',
+ ],
+ [
+ 'errorCode' => 'SaleControl.VerificationFailed',
+ 'errorMessage' => 'You did not pass the salecontrol verification.Please contact the product.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E\\",\\n \\"NatGatewayId\\": \\"nat-5t7nh1cfm6kxiszlttr38****\\"\\n}","errorExample":""},{"type":"xml","example":"<CreateNatGatewayResponse>\\n <RequestId>473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E</RequestId>\\n <NatGatewayId>nat-5t7nh1cfm6kxiszlttr38****</NatGatewayId>\\n</CreateNatGatewayResponse>","errorExample":""}]',
+ 'title' => 'CreateNatGateway',
+ ],
+ 'DeleteNatGateway' => [
+ 'summary' => 'Deletes an Internet network address translation (NAT) gateway.',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'delete',
+ 'riskType' => 'high',
+ 'chargeType' => 'paid',
+ 'abilityTreeCode' => '130974',
+ 'abilityTreeNodes' => [
+ 'FEATUREensEFSRBY',
+ ],
+ 'tenantRelevance' => 'tenant',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'NatGatewayId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the NAT gateway that you want to delete.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'nat-5t7nh1cfm6kxiszlttr38****',
+ ],
+ ],
+ [
+ 'name' => 'ForceDelete',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'Specifies whether to forcefully delete the NAT instance.'."\n",
+ 'type' => 'boolean',
+ 'required' => false,
+ 'example' => 'true',
+ 'default' => 'false',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'ens.interface.error',
+ 'errorMessage' => 'An error occurred while call the API.',
+ ],
+ [
+ 'errorCode' => 'Invalid%s',
+ 'errorMessage' => 'The specified parameter %s is invalid.',
+ ],
+ [
+ 'errorCode' => 'Missing%s',
+ 'errorMessage' => 'You must specify the parameter %s.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.NatNotFound',
+ 'errorMessage' => 'The specified Nat is not found.',
+ ],
+ [
+ 'errorCode' => 'DependencyViolation.NatRule',
+ 'errorMessage' => 'DependencyViolation.SNAT/DNAT',
+ ],
+ [
+ 'errorCode' => 'DependencyViolation.Eip',
+ 'errorMessage' => 'DependencyViolation.Eip',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ [
+ 'errorCode' => 'InstanceIdNotFound',
+ 'errorMessage' => 'No instance ID found. Enter a valid instance ID.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E\\"\\n}","errorExample":""},{"type":"xml","example":"<DeleteNatGatewayResponse>\\n <RequestId>473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E</RequestId>\\n</DeleteNatGatewayResponse>","errorExample":""}]',
+ 'title' => 'DeleteNatGateway',
+ ],
+ 'DescribeNatGateways' => [
+ 'summary' => 'Queries created Network Address Translation (NAT) gateways.',
+ 'methods' => [
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'list',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '128812',
+ 'abilityTreeNodes' => [
+ 'FEATUREensRGDWBB',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'EnsRegionId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the Edge Node Service (ENS) node.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'cn-wuxi-9',
+ ],
+ ],
+ [
+ 'name' => 'NatGatewayId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the NAT gateway.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'nat-5t7nh1cfm6kxiszlttr38****',
+ ],
+ ],
+ [
+ 'name' => 'NetworkId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the network.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'n-2zeuphj08tt7q3brd****',
+ ],
+ ],
+ [
+ 'name' => 'VSwitchId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the vSwitch.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'vsw-5rllcjb3ol6duzjdnbm1o****',
+ ],
+ ],
+ [
+ 'name' => 'Name',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The name of the NAT gateway.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'test0',
+ ],
+ ],
+ [
+ 'name' => 'NatGatewayIds',
+ 'in' => 'query',
+ 'style' => 'flat',
+ 'schema' => [
+ 'description' => 'The IDs of the NAT gateways. You can specify 1 to 100 IDs.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The ID of the NAT gateway.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'nat-5****4ik',
+ ],
+ 'required' => false,
+ 'maxItems' => 100,
+ ],
+ ],
+ [
+ 'name' => 'EnsRegionIds',
+ 'in' => 'query',
+ 'style' => 'flat',
+ 'schema' => [
+ 'description' => 'The IDs of edge nodes. You can specify 1 to 100 IDs.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The ID of the edge node.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'cn-chengdu-telecom-4',
+ ],
+ 'required' => false,
+ ],
+ ],
+ [
+ 'name' => 'PageNumber',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The page number. Pages start from page **1**.'."\n"
+ ."\n"
+ .'Default value: **1**.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'example' => '1',
+ ],
+ ],
+ [
+ 'name' => 'PageSize',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The number of entries per page. The maximum value is **100**.'."\n"
+ ."\n"
+ .'Default value: **10**.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'example' => '10',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => '2818A8F4-5E2B-5611-8732-5ACF7B677059',
+ ],
+ 'PageNumber' => [
+ 'description' => 'The page number.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '1',
+ ],
+ 'TotalCount' => [
+ 'description' => 'The number of NAT gateways that are returned.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '49',
+ ],
+ 'PageSize' => [
+ 'description' => 'The number of entries per page.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '10',
+ ],
+ 'NatGateways' => [
+ 'description' => 'The details of the NAT gateways.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The details of the NAT gateway.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'EnsRegionId' => [
+ 'description' => 'The ID of the ENS node.'."\n",
+ 'type' => 'string',
+ 'example' => 'cn-xiangyang-5',
+ ],
+ 'NatGatewayId' => [
+ 'description' => 'The ID of the NAT gateway.'."\n",
+ 'type' => 'string',
+ 'example' => 'nat-5t7nh1cfm6kxiszlttr38****',
+ ],
+ 'NetworkId' => [
+ 'description' => 'The ID of the network.'."\n",
+ 'type' => 'string',
+ 'example' => 'n-5s2ml1olj0kzaws9n1yrj****',
+ ],
+ 'VSwitchId' => [
+ 'description' => 'The ID of the vSwitch.'."\n",
+ 'type' => 'string',
+ 'example' => 'vsw-5szpp1os9m55myirbflfw****',
+ ],
+ 'Name' => [
+ 'description' => 'The name of the NAT gateway.'."\n",
+ 'type' => 'string',
+ 'example' => 'test0',
+ ],
+ 'CreationTime' => [
+ 'description' => 'The time when the NAT gateway was created. The time follows the ISO 8601 standard in the YYYY-MM-DDThh:mm:ssZ format. The time is displayed in UTC.'."\n",
+ 'type' => 'string',
+ 'example' => '2021-11-22T07:03:32Z',
+ ],
+ 'Spec' => [
+ 'description' => 'The type of the NAT gateway.'."\n",
+ 'type' => 'string',
+ 'example' => 'enat.default',
+ ],
+ 'Status' => [
+ 'description' => 'The status of the NAT gateway. Valid values:'."\n"
+ ."\n"
+ .'* **Creating**: After you send a request to create a NAT gateway, the system creates the NAT gateway in the background. The NAT gateway remains in the Creating state until the operation is completed.'."\n"
+ .'* **Available**: The NAT gateway is in the Available state after the creation is complete.'."\n"
+ .'* **Deleting**: After you send a request to delete a NAT gateway, the system deletes the NAT gateway in the background. The NAT gateway remains in the Deleting state until the operation is completed.'."\n",
+ 'type' => 'string',
+ 'example' => 'Available',
+ ],
+ 'IpLists' => [
+ 'description' => 'The EIPs that are associated with the NAT gateway.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The EIP that is associated with the NAT gateway.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'UsingStatus' => [
+ 'description' => 'The association between the EIP and the Internet NAT gateway. Valid values:'."\n"
+ ."\n"
+ .'* **UsedByForwardTable**: The EIP is specified in a DNAT entry.'."\n"
+ .'* **UsedBySnatTable**: The EIP is specified in an SNAT entry.'."\n"
+ .'* **Idle**: The EIP is not specified in an SNAT entry or a DNAT entry.'."\n",
+ 'type' => 'string',
+ 'example' => 'Idle',
+ ],
+ 'IpAddress' => [
+ 'description' => 'The EIP.'."\n",
+ 'type' => 'string',
+ 'example' => '8.XX.XX.162',
+ ],
+ 'AllocationId' => [
+ 'description' => 'The ID of the EIP.'."\n",
+ 'type' => 'string',
+ 'example' => 'eip-50g****',
+ ],
+ ],
+ ],
+ ],
+ 'Tags' => [
+ 'description' => '',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => '',
+ 'type' => 'object',
+ 'properties' => [
+ 'Value' => [
+ 'description' => '',
+ 'type' => 'string',
+ 'example' => 'TestValue',
+ ],
+ 'Key' => [
+ 'description' => '',
+ 'type' => 'string',
+ 'example' => 'TestKey',
+ ],
+ 'TagKey' => [
+ 'description' => '',
+ 'type' => 'string',
+ 'deprecated' => true,
+ 'example' => 'TestKey',
+ ],
+ 'TagValue' => [
+ 'description' => '',
+ 'type' => 'string',
+ 'deprecated' => true,
+ 'example' => 'TestValue',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'Invalid%s',
+ 'errorMessage' => 'The specified parameter %s is invalid.',
+ ],
+ [
+ 'errorCode' => 'Missing%s',
+ 'errorMessage' => 'You must specify the parameter %s.',
+ ],
+ [
+ 'errorCode' => 'ens.interface.error',
+ 'errorMessage' => 'Failed to call API.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"2818A8F4-5E2B-5611-8732-5ACF7B677059\\",\\n \\"PageNumber\\": 1,\\n \\"TotalCount\\": 49,\\n \\"PageSize\\": 10,\\n \\"NatGateways\\": [\\n {\\n \\"EnsRegionId\\": \\"cn-xiangyang-5\\",\\n \\"NatGatewayId\\": \\"nat-5t7nh1cfm6kxiszlttr38****\\",\\n \\"NetworkId\\": \\"n-5s2ml1olj0kzaws9n1yrj****\\",\\n \\"VSwitchId\\": \\"vsw-5szpp1os9m55myirbflfw****\\",\\n \\"Name\\": \\"test0\\",\\n \\"CreationTime\\": \\"2021-11-22T07:03:32Z\\",\\n \\"Spec\\": \\"enat.default\\",\\n \\"Status\\": \\"Available\\",\\n \\"IpLists\\": [\\n {\\n \\"UsingStatus\\": \\"Idle\\",\\n \\"IpAddress\\": \\"8.XX.XX.162\\",\\n \\"AllocationId\\": \\"eip-50g****\\"\\n }\\n ],\\n \\"Tags\\": [\\n {\\n \\"Value\\": \\"TestValue\\",\\n \\"Key\\": \\"TestKey\\",\\n \\"TagKey\\": \\"TestKey\\",\\n \\"TagValue\\": \\"TestValue\\"\\n }\\n ]\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"<DescribeNatGatewaysResponse>\\n <RequestId>2818A8F4-5E2B-5611-8732-5ACF7B677059</RequestId>\\n <PageNumber>1</PageNumber>\\n <TotalCount>49</TotalCount>\\n <PageSize>10</PageSize>\\n <NatGateways>\\n <EnsRegionId>cn-xiangyang-5</EnsRegionId>\\n <NatGatewayId>nat-5t7nh1cfm6kxiszlttr38****</NatGatewayId>\\n <NetworkId>n-5s2ml1olj0kzaws9n1yrj****</NetworkId>\\n <VSwitchId>vsw-5szpp1os9m55myirbflfw****</VSwitchId>\\n <Name>test0</Name>\\n <CreationTime>2021-11-22T07:03:32Z</CreationTime>\\n <Spec>enat.default</Spec>\\n </NatGateways>\\n</DescribeNatGatewaysResponse>","errorExample":""}]',
+ 'title' => 'DescribeNatGateways',
+ ],
+ 'CreateForwardEntry' => [
+ 'summary' => 'Adds a Destination Network Address Translation (DNAT) entry to a DNAT table.',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'create',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'NatGatewayId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the Network Address Translation (NAT) gateway.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'nat-5t7nh1cfm6kxiszlttr383xpo',
+ ],
+ ],
+ [
+ 'name' => 'ExternalIp',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The elastic IP address (EIP) that is used to access the Internet.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => '121.11.36.28',
+ ],
+ ],
+ [
+ 'name' => 'ExternalPort',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The external port or port range that is used for port forwarding.'."\n"
+ ."\n"
+ .'* Valid values: 1 to 65535.'."\n"
+ .'* To specify a port range, separate the first port and the last port with a forward slash (/), such as 10/20.'."\n"
+ .'* If you set ExternalPort to a port range, you must also set InternalPort to a port range. The number of ports in the port ranges must be the same. For example, if you set ExternalPort to 10/20, you can set InternalPort to 80/90.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => '22',
+ ],
+ ],
+ [
+ 'name' => 'InternalIp',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The private IP address of the instance that uses the DNAT entry for Internet communication.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => '10.0.0.13',
+ ],
+ ],
+ [
+ 'name' => 'InternalPort',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The internal port or port range that is used for port forwarding.'."\n"
+ ."\n"
+ .'* Valid values: 1 to 65535.'."\n"
+ .'* To specify a port range, separate the first port and the last port with a forward slash (/), such as 10/20.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => '22',
+ ],
+ ],
+ [
+ 'name' => 'ForwardEntryName',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The name of the DNAT entry. The name must be 2 to 128 characters in length. The name cannot start with `http://` or `https://`.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'test0',
+ 'maxLength' => 128,
+ ],
+ ],
+ [
+ 'name' => 'IpProtocol',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The protocol. Valid values:'."\n"
+ ."\n"
+ .'* **TCP**: forwards TCP packets.'."\n"
+ .'* **UDP**: forwards UDP packets.'."\n"
+ .'* **Any** (default): forwards all packets.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'Any',
+ 'enum' => [
+ 'TCP',
+ 'UDP',
+ 'Any',
+ ],
+ ],
+ ],
+ [
+ 'name' => 'HealthCheckPort',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The probe port. The port must be within the internal port range. By default, this parameter is left empty.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'maximum' => '65535',
+ 'minimum' => '1',
+ 'example' => '80',
+ ],
+ ],
+ [
+ 'name' => 'StandbyExternalIp',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The secondary EIP that is used to access the Internet. You need to select a secondary EIP that is bound to NAT. After the DNAT entry is created, the secondary EIP takes effect.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '101.XXX.XXX.4',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => 'EF6D6FA4-DACA-5822-A981-81006271D263',
+ ],
+ 'ForwardEntryId' => [
+ 'description' => 'The ID of the DNAT entry.'."\n",
+ 'type' => 'string',
+ 'example' => 'fwd-5tc07cw14metghn3siv4ak8do',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'Invalid%s',
+ 'errorMessage' => 'The specified parameter %s is invalid.',
+ ],
+ [
+ 'errorCode' => 'Missing%s',
+ 'errorMessage' => 'You must specify the parameter %s.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.NatNotFound',
+ 'errorMessage' => 'The specified Nat is not found.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.ExternalIp',
+ 'errorMessage' => 'The specified externalIp is not found.',
+ ],
+ [
+ 'errorCode' => 'Forbidden.ExternalIpUsedInSnat',
+ 'errorMessage' => 'Forbidden.ExternalIpUsedInSnat',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.InternalIpNotFound',
+ 'errorMessage' => 'The input parameter internalIp that is not found.',
+ ],
+ [
+ 'errorCode' => 'Forbidden.ExternalPort.Duplicated',
+ 'errorMessage' => 'The specified ExternalPort is duplicated.',
+ ],
+ [
+ 'errorCode' => 'ForwardEntryLimitExceed',
+ 'errorMessage' => 'The limit of forward entry in the nat reaches.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.HealthCheckPort',
+ 'errorMessage' => 'HealthCheckPort is not in the range of InternalPort',
+ ],
+ [
+ 'errorCode' => 'IncorrectInstanceStatus',
+ 'errorMessage' => 'The current status of the instance does not support this operation.',
+ ],
+ [
+ 'errorCode' => 'SystemBusy',
+ 'errorMessage' => 'System is busy, please try again later.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.InternalIp',
+ 'errorMessage' => 'The specified parameter internalIp is invalid.',
+ ],
+ [
+ 'errorCode' => 'InvalidPort.Malformed',
+ 'errorMessage' => 'The specified port is not a valid port.',
+ ],
+ [
+ 'errorCode' => 'ens.interface.error',
+ 'errorMessage' => 'Failed to call API.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"EF6D6FA4-DACA-5822-A981-81006271D263\\",\\n \\"ForwardEntryId\\": \\"fwd-5tc07cw14metghn3siv4a****\\"\\n}","errorExample":""},{"type":"xml","example":"<CreateForwardEntryResponse>\\n <RequestId>EF6D6FA4-DACA-5822-A981-81006271D263</RequestId>\\n <ForwardEntryId>fwd-5tc07cw14metghn3siv4a****</ForwardEntryId>\\n</CreateForwardEntryResponse>","errorExample":""}]',
+ 'title' => 'CreateForwardEntry',
+ ],
+ 'DeleteForwardEntry' => [
+ 'summary' => 'Deletes a Destination Network Address Translation (DNAT) entry from a specified DNAT table.',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'delete',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'ForwardEntryId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the DNAT entry that you want to delete.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'fwd-5tfk8qgepr9ijjkqxt8do****',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'Invalid%s',
+ 'errorMessage' => 'The specified parameter %s is invalid.',
+ ],
+ [
+ 'errorCode' => 'Missing%s',
+ 'errorMessage' => 'You must specify the parameter %s.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.DnatNotFound',
+ 'errorMessage' => 'The specified dnat is not found.',
+ ],
+ [
+ 'errorCode' => 'IncorretDnatEntryStatus',
+ 'errorMessage' => 'Dnat entry status blocked this operation.',
+ ],
+ [
+ 'errorCode' => 'ens.interface.error',
+ 'errorMessage' => 'Failed to call API.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E\\"\\n}","errorExample":""},{"type":"xml","example":"<DeleteForwardEntryResponse>\\n <RequestId>473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E</RequestId>\\n</DeleteForwardEntryResponse>","errorExample":""}]',
+ 'title' => 'DeleteForwardEntry',
+ ],
+ 'ModifyForwardEntry' => [
+ 'summary' => 'Modifies a Destination Network Address Translation (DNAT) rule.',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'update',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '143970',
+ 'abilityTreeNodes' => [
+ 'FEATUREensJ0M44X',
+ ],
+ 'tenantRelevance' => 'tenant',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'ForwardEntryId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the DNAT entry.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'dnat-5tfjp3537mi6iokl59g5c****',
+ ],
+ ],
+ [
+ 'name' => 'ForwardEntryName',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The name of the DNAT entry. The name must be 2 to 128 characters in length. It cannot start with `http://` or `https://`.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'test0',
+ 'maxLength' => 128,
+ ],
+ ],
+ [
+ 'name' => 'HealthCheckPort',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The probe port. The port must be within the internal port range. By default, this parameter is left empty.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'maximum' => '65535',
+ 'minimum' => '0',
+ 'example' => '80',
+ ],
+ ],
+ [
+ 'name' => 'ExternalIp',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The EIP in the DNAT entry. The public IP address is used to access the Internet.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '121.XXX.XXX.28',
+ ],
+ ],
+ [
+ 'name' => 'ExternalPort',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The external port or port range that is used for port forwarding.'."\n"
+ ."\n"
+ .'* Valid values: 1 to 65535.'."\n"
+ .'* To specify a port range, separate the first port and the last port with a forward slash (/), such as 10/20. The first port and the last port are included.'."\n"
+ .'* If you set ExternalPort to a port range, you must also set InternalPort to a port range. The number of ports in the port ranges must be the same. For example, if you set ExternalPort to 10/20, you can set InternalPort to 80/90.'."\n"
+ .'* The maximum port range is 1000.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '22',
+ ],
+ ],
+ [
+ 'name' => 'InternalIp',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The private IP address of the instance that uses the DNAT entry for Internet communication.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '10.XXX.XXX.50',
+ ],
+ ],
+ [
+ 'name' => 'InternalPort',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The private port or port range that is used in port forwarding.'."\n"
+ ."\n"
+ .'* Valid values: 1 to 65535.'."\n"
+ .'* To specify a port range, separate the first port and the last port with a forward slash (/), such as 10/20. The first port and the last port are included.'."\n"
+ .'* If you set InternalPort to a port range, you must also set ExternalPort to a port range. The number of ports in the port ranges must be the same. For example, if you set ExternalPort to 10/20, you can set InternalPort to 80/90.'."\n"
+ .'* The maximum port range is 1000.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '22',
+ ],
+ ],
+ [
+ 'name' => 'IpProtocol',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The protocol. Valid values:'."\n"
+ ."\n"
+ .'* **TCP**: forwards TCP packets.'."\n"
+ .'* **UDP**: forwards UDP packets.'."\n"
+ .'* **Any** (default): forwards all packets.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'Any',
+ 'enum' => [
+ 'TCP',
+ 'UDP',
+ 'Any',
+ ],
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'Missing%s',
+ 'errorMessage' => 'You must specify the parameter %s.',
+ ],
+ [
+ 'errorCode' => 'Invalid%s',
+ 'errorMessage' => 'The specified parameter %s is invalid.',
+ ],
+ [
+ 'errorCode' => 'ens.interface.error',
+ 'errorMessage' => 'Failed to call API.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.DnatNotFound',
+ 'errorMessage' => 'The specified dnat is not found.',
+ ],
+ [
+ 'errorCode' => 'IncorretDnatEntryStatus',
+ 'errorMessage' => 'Dnat entry status blocked this operation.',
+ ],
+ [
+ 'errorCode' => 'InstanceNotFound',
+ 'errorMessage' => 'Instance not found, please check the InstanceId.',
+ ],
+ [
+ 'errorCode' => 'IncorrectInstanceStatus',
+ 'errorMessage' => 'The current status of the instance does not support this operation.',
+ ],
+ [
+ 'errorCode' => 'Forbidden.ExternalPort.Duplicated',
+ 'errorMessage' => 'The specified ExternalPort is duplicated.',
+ ],
+ [
+ 'errorCode' => 'InvalidExternalIp.NotFound',
+ 'errorMessage' => 'Specified ExternalIp does not found on the NAT Gateway.',
+ ],
+ [
+ 'errorCode' => 'InvalidPort.Malformed',
+ 'errorMessage' => 'The specified ExternalPort or InternalPort is not a valid port.',
+ ],
+ [
+ 'errorCode' => 'Forbidden.ExternalIpUsedInSnat',
+ 'errorMessage' => 'The external ip is already in use in the snat rule.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.HealthCheckPort',
+ 'errorMessage' => 'HealthCheckPort is not in the range of InternalPort.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E\\"\\n}","errorExample":""},{"type":"xml","example":"<ModifyForwardEntryResponse>\\n <RequestId>473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E</RequestId>\\n</ModifyForwardEntryResponse>","errorExample":""}]',
+ 'title' => 'ModifyForwardEntry',
+ ],
+ 'DescribeForwardTableEntries' => [
+ 'summary' => 'Queries Destination Network Address Translation (DNAT) entries that you created.',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'list',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '128825',
+ 'abilityTreeNodes' => [
+ 'FEATUREensSHG96R',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'NatGatewayId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the NAT gateway.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'nat-5t7nh1cfm6kxiszlttr38****',
+ ],
+ ],
+ [
+ 'name' => 'ForwardEntryId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the DNAT entry.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'fwd-5tfi6f0rutmd00xrhkag7****',
+ ],
+ ],
+ [
+ 'name' => 'ExternalIp',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The EIP in the DNAT entry. The public IP address is used to access the Internet.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '36.XXX.XXX.72',
+ ],
+ ],
+ [
+ 'name' => 'InternalIp',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The private IP address of the instance that uses the DNAT entry for Internet communication.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '10.XXX.XXX.50',
+ ],
+ ],
+ [
+ 'name' => 'ForwardEntryName',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The name of the DNAT entry.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'test0',
+ ],
+ ],
+ [
+ 'name' => 'IpProtocol',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The protocol. Valid values:'."\n"
+ ."\n"
+ .'* **TCP**: forwards TCP packets.'."\n"
+ .'* **UDP**: forwards UDP packets.'."\n"
+ .'* **Any**: forwards all packets.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'TCP',
+ ],
+ ],
+ [
+ 'name' => 'PageNumber',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The page number. Pages start from page **1**.'."\n"
+ ."\n"
+ .'Default value: **1**.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'example' => '1',
+ ],
+ ],
+ [
+ 'name' => 'PageSize',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The number of entries per page. Maximum value: **100**.'."\n"
+ ."\n"
+ .'Default value: **10**.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'example' => '10',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E',
+ ],
+ 'PageNumber' => [
+ 'description' => 'The page number.'."\n",
+ 'type' => 'string',
+ 'example' => '1',
+ ],
+ 'TotalCount' => [
+ 'description' => 'The total number of entries returned.'."\n",
+ 'type' => 'string',
+ 'example' => '100',
+ ],
+ 'PageSize' => [
+ 'description' => 'The number of entries per page.'."\n",
+ 'type' => 'string',
+ 'example' => '10',
+ ],
+ 'ForwardTableEntries' => [
+ 'description' => 'Details of DNAT entries.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => '',
+ 'type' => 'object',
+ 'properties' => [
+ 'NatGatewayId' => [
+ 'description' => 'The ID of the NAT gateway.'."\n",
+ 'type' => 'string',
+ 'example' => 'nat-5tawjw5j7sgd2deujxuk0****',
+ ],
+ 'ForwardEntryId' => [
+ 'description' => 'The ID of the DNAT entry.'."\n",
+ 'type' => 'string',
+ 'example' => 'fwd-5tf66679oi2uoxcvlg0g2****',
+ ],
+ 'ExternalIp' => [
+ 'description' => 'The EIP in the DNAT entry. The public IP address is used to access the Internet.'."\n",
+ 'type' => 'string',
+ 'example' => '120.XXX.XXX.70',
+ ],
+ 'ExternalPort' => [
+ 'description' => 'The external port or port range that is used in port forwarding.'."\n",
+ 'type' => 'string',
+ 'example' => '22',
+ ],
+ 'InternalIp' => [
+ 'description' => 'The private IP address of the instance that uses the DNAT entry for Internet communication.'."\n",
+ 'type' => 'string',
+ 'example' => '10.XXX.XXX.3',
+ ],
+ 'InternalPort' => [
+ 'description' => 'The internal port or port range that is used for port forwarding.'."\n",
+ 'type' => 'string',
+ 'example' => '22',
+ ],
+ 'ForwardEntryName' => [
+ 'description' => 'The name of the DNAT entry.'."\n",
+ 'type' => 'string',
+ 'example' => 'test0',
+ ],
+ 'Status' => [
+ 'description' => 'The status of the DNAT entry. Valid values:'."\n"
+ ."\n"
+ .'* Pending: The DNAT entry is being created or modified.'."\n"
+ .'* Available: The DNAT entry is available.'."\n"
+ .'* Deleting: The DNAT entry is being deleted.'."\n",
+ 'type' => 'string',
+ 'example' => 'Available',
+ ],
+ 'IpProtocol' => [
+ 'description' => 'The protocol. Valid values:'."\n"
+ ."\n"
+ .'* **TCP**: forwards TCP packets.'."\n"
+ .'* **UDP**: forwards UDP packets.'."\n"
+ .'* **Any**: forwards all packets.'."\n",
+ 'type' => 'string',
+ 'example' => 'Any',
+ ],
+ 'HealthCheckPort' => [
+ 'description' => 'The probe port of DNAT.'."\n",
+ 'type' => 'string',
+ 'example' => '80',
+ ],
+ 'StandbyExternalIp' => [
+ 'description' => 'The secondary EIP that is used to access the Internet.'."\n",
+ 'type' => 'string',
+ 'example' => '101.XXX.XXX.7',
+ ],
+ 'StandbyStatus' => [
+ 'description' => 'The status of the secondary EIP. Valid values:'."\n"
+ ."\n"
+ .'* Running'."\n"
+ .'* Stopping'."\n"
+ .'* Stopped'."\n"
+ .'* Starting'."\n",
+ 'type' => 'string',
+ 'example' => 'Stopped',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'Invalid%s',
+ 'errorMessage' => 'The specified parameter %s is invalid.',
+ ],
+ [
+ 'errorCode' => 'Missing%s',
+ 'errorMessage' => 'You must specify the parameter %s.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.NatNotFound',
+ 'errorMessage' => 'The specified Nat is not found.',
+ ],
+ [
+ 'errorCode' => 'ens.interface.error',
+ 'errorMessage' => 'Failed to call API.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E\\",\\n \\"PageNumber\\": \\"1\\",\\n \\"TotalCount\\": \\"100\\",\\n \\"PageSize\\": \\"10\\",\\n \\"ForwardTableEntries\\": [\\n {\\n \\"NatGatewayId\\": \\"nat-5tawjw5j7sgd2deujxuk0****\\",\\n \\"ForwardEntryId\\": \\"fwd-5tf66679oi2uoxcvlg0g2****\\",\\n \\"ExternalIp\\": \\"120.XXX.XXX.70\\",\\n \\"ExternalPort\\": \\"22\\",\\n \\"InternalIp\\": \\"10.XXX.XXX.3\\",\\n \\"InternalPort\\": \\"22\\",\\n \\"ForwardEntryName\\": \\"test0\\",\\n \\"Status\\": \\"Available\\",\\n \\"IpProtocol\\": \\"Any\\",\\n \\"HealthCheckPort\\": \\"80\\",\\n \\"StandbyExternalIp\\": \\"101.XXX.XXX.7\\",\\n \\"StandbyStatus\\": \\"Stopped\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"<DescribeForwardTableEntriesResponse>\\n <RequestId>473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E</RequestId>\\n <PageNumber>1</PageNumber>\\n <TotalCount>100</TotalCount>\\n <PageSize>10</PageSize>\\n <ForwardTableEntries>\\n <NatGatewayId>nat-5tawjw5j7sgd2deujxuk0****</NatGatewayId>\\n <ForwardEntryId>fwd-5tf66679oi2uoxcvlg0g2****</ForwardEntryId>\\n <ExternalIp>120.XXX.XXX.70</ExternalIp>\\n <ExternalPort>22</ExternalPort>\\n <InternalIp>10.XXX.XXX.3</InternalIp>\\n <InternalPort>22</InternalPort>\\n <ForwardEntryName>test0</ForwardEntryName>\\n <Status>Available</Status>\\n <IpProtocol>Any</IpProtocol>\\n <HealthCheckPort>80</HealthCheckPort>\\n </ForwardTableEntries>\\n</DescribeForwardTableEntriesResponse>","errorExample":""}]',
+ 'title' => 'DescribeForwardTableEntries',
+ ],
+ 'CreateSnatEntry' => [
+ 'summary' => 'Adds a source network address translation (SNAT) entry to a specified SNAT table.',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'create',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '128818',
+ 'abilityTreeNodes' => [
+ 'FEATUREensHCNR8B',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'NatGatewayId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the Network Address Translation (NAT) gateway.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'nat-5tawjw5j7sgd2deujxuk0****',
+ ],
+ ],
+ [
+ 'name' => 'SnatIp',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The elastic IP address (EIP) in the SNAT entry. Separate multiple EIPs with commas (,).'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => '120.XXX.XXX.71',
+ ],
+ ],
+ [
+ 'name' => 'SourceVSwitchId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the vSwitch that you need to access over the Internet. This parameter specifies that Edge Node Service (ENS) instances in the vSwitch can use the SNAT entry to access the Internet.'."\n"
+ ."\n"
+ .'> If you specify **SourceVSwitchId** and **SourceCIDR**, **SourceVSwitchId** does not take effect. The value that you specified for **SourceCIDR** takes precedence.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'vsw-bp1hwx7gi495q260p****',
+ ],
+ ],
+ [
+ 'name' => 'SourceCIDR',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The CIDR block. You can specify the CIDR block of a network, a vSwitch, or an instance. You can also specify a custom CIDR block. All instances within the CIDR block can access the Internet or external networks by using SNAT.'."\n"
+ ."\n"
+ .'> If you specify **SourceVSwitchId** and **SourceCIDR**, **SourceVSwitchId** does not take effect. The value that you specified for **SourceCIDR** takes precedence.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '10.0.0.0/24',
+ ],
+ ],
+ [
+ 'name' => 'SnatEntryName',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The name of the SNAT entry. The name must be 1 to 128 characters in length. The name cannot start with `http://` or `https://`.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'test0',
+ ],
+ ],
+ [
+ 'name' => 'SourceNetworkId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the network. This parameter specifies that all ENS instances in the network can use the SNAT entry to access the Internet.'."\n"
+ ."\n"
+ .'> If you specify **SourceNetworkId** and **SourceVSwitchId** or **SourceCIDR**, **SourceNetworkId** does not take effect. The value that you specified for **SourceCIDR** takes precedence. Priority: **SourceCIDR** > **SourceVSwitchId** > **SourceNetworkId**.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'n-2zeuphj08tt7q3brd****',
+ ],
+ ],
+ [
+ 'name' => 'StandbySnatIp',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The secondary EIP in the SNAT entry. Separate multiple secondary EIPs with commas (,).'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '101.XXX.XXX.7',
+ ],
+ ],
+ [
+ 'name' => 'IdleTimeout',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The timeout period for idle connections. Valid values: **1** to **86400**. Unit: seconds.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'maximum' => '86400',
+ 'minimum' => '1',
+ 'example' => '15',
+ ],
+ ],
+ [
+ 'name' => 'IspAffinity',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'Whether to enable operator affinity. Value taking:'."\n"
+ ."\n"
+ .'- false:Do not open.'."\n"
+ .'- true:Open.',
+ 'type' => 'boolean',
+ 'required' => false,
+ 'example' => 'true',
+ ],
+ ],
+ [
+ 'name' => 'EipAffinity',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'Specifies whether to enable IP affinity. If you do not specify this parameter, IP affinity is enabled by default. Valid values:'."\n"
+ ."\n"
+ .'* **false**'."\n"
+ .'* **true**'."\n"
+ ."\n"
+ .'> After you enable IP affinity, if multiple EIPs are associated with an SNAT entry, one client uses the same EIP to for communication. If IP affinity is disabled, the client uses a random EIP for communication.'."\n",
+ 'type' => 'boolean',
+ 'required' => false,
+ 'example' => 'false',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response.',
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => '018EED6A-69CA-58C8-A345-498927D5D34E',
+ ],
+ 'SnatEntryId' => [
+ 'description' => 'The ID of the SNAT entry.'."\n",
+ 'type' => 'string',
+ 'example' => 'snat-5tc08qfj5ecblfdn2rqr9****',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'Invalid%s',
+ 'errorMessage' => 'The specified parameter %s is invalid.',
+ ],
+ [
+ 'errorCode' => 'Missing%s',
+ 'errorMessage' => 'You must specify the parameter %s.',
+ ],
+ [
+ 'errorCode' => 'Forbidden.SourceCIDR.NotSupport',
+ 'errorMessage' => 'SourceCIDR support intranet cidr only.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.NatNotFound',
+ 'errorMessage' => 'The specified Nat is not found.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.SnatIp',
+ 'errorMessage' => 'The specified SnatIp is not found.',
+ ],
+ [
+ 'errorCode' => 'SnatEntryLimitExceed',
+ 'errorMessage' => 'The limit of snat entry in the network reaches. ',
+ ],
+ [
+ 'errorCode' => 'SnatIpLimitExceed',
+ 'errorMessage' => 'The Snat pool ip too many.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.SourceNetworkId',
+ 'errorMessage' => 'The specified parameter SourceNetworkId is invalid.',
+ ],
+ [
+ 'errorCode' => 'ens.interface.error',
+ 'errorMessage' => 'Failed to call API.',
+ ],
+ [
+ 'errorCode' => 'Forbidden.SourceCIDR.Duplicated',
+ 'errorMessage' => 'The specified sourceCIDR is duplicated.',
+ ],
+ [
+ 'errorCode' => 'Forbidden.SnatIpUsedInDnat',
+ 'errorMessage' => 'The snatIp is already in use in the DNAT rule.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.SourceCIDR',
+ 'errorMessage' => 'The specified parameter SourceCIDR is invalid.',
+ ],
+ [
+ 'errorCode' => 'InvalidVSwitchId.NotFound',
+ 'errorMessage' => 'Specified virtual switch does not exist.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"018EED6A-69CA-58C8-A345-498927D5D34E\\",\\n \\"SnatEntryId\\": \\"snat-5tc08qfj5ecblfdn2rqr9****\\"\\n}","errorExample":""},{"type":"xml","example":"<CreateSnatEntryResponse>\\n <RequestId>018EED6A-69CA-58C8-A345-498927D5D34E</RequestId>\\n <SnatEntryId>snat-5tc08qfj5ecblfdn2rqr9****</SnatEntryId>\\n</CreateSnatEntryResponse>","errorExample":""}]',
+ 'title' => 'CreateSnatEntry',
+ ],
+ 'DeleteSnatEntry' => [
+ 'summary' => 'Deletes a source network address translation (SNAT) entry from a specified SNAT table.',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'delete',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'SnatEntryId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the SNAT entry that you want to delete.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'snat-5tfi6f8gds82mjmlofeym****',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'Invalid%s',
+ 'errorMessage' => 'The specified parameter %s is invalid.',
+ ],
+ [
+ 'errorCode' => 'Missing%s',
+ 'errorMessage' => 'You must specify the parameter %s.',
+ ],
+ [
+ 'errorCode' => 'ens.interface.error',
+ 'errorMessage' => 'Failed to call API.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.SnatNotFound',
+ 'errorMessage' => 'The specified snat is not found.',
+ ],
+ [
+ 'errorCode' => 'IncorretSnatEntryStatus',
+ 'errorMessage' => 'Snat entry status blocked this operation.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E\\"\\n}","errorExample":""},{"type":"xml","example":"<DeleteSnatEntryResponse>\\n <RequestId>473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E</RequestId>\\n</DeleteSnatEntryResponse>","errorExample":""}]',
+ 'title' => 'DeleteSnatEntry',
+ ],
+ 'DescribeSnatTableEntries' => [
+ 'summary' => 'Queries source network address translation (SNAT) entries.',
+ 'methods' => [
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'list',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '128820',
+ 'abilityTreeNodes' => [
+ 'FEATUREensSHG96R',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'NatGatewayId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the Network Address Translation (NAT) gateway.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'nat-5tawjw5j7sgd2deujxuk0****',
+ ],
+ ],
+ [
+ 'name' => 'SnatEntryId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the SNAT entry.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'snat-5tfjp36fsrb36zs36faj0****',
+ ],
+ ],
+ [
+ 'name' => 'SnatIp',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The elastic IP address (EIP) specified in the SNAT entry.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '58.XXXX.XXX.29',
+ ],
+ ],
+ [
+ 'name' => 'SourceCIDR',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The source CIDR block specified in the SNAT entry.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '10.1.0.50/32',
+ ],
+ ],
+ [
+ 'name' => 'SnatEntryName',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The name of the SNAT entry.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'test0',
+ 'maxLength' => 128,
+ ],
+ ],
+ [
+ 'name' => 'SnatIps',
+ 'in' => 'query',
+ 'style' => 'flat',
+ 'schema' => [
+ 'description' => 'The information about the EIP specified in the SNAT entry.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The information about the EIP specified in the SNAT entry.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '58.XXXX.XXX.30',
+ ],
+ 'required' => false,
+ 'maxItems' => 100,
+ ],
+ ],
+ [
+ 'name' => 'PageNumber',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The page number. Pages start from page **1**.'."\n"
+ ."\n"
+ .'Default value: **1**.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'example' => '1',
+ ],
+ ],
+ [
+ 'name' => 'PageSize',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The number of entries per page. The maximum value is **100**.'."\n"
+ ."\n"
+ .'Default value: **10**.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'example' => '10',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E',
+ ],
+ 'PageNumber' => [
+ 'description' => 'The page number.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '1',
+ ],
+ 'TotalCount' => [
+ 'description' => 'The number of SNAT entries that are returned.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '7',
+ ],
+ 'PageSize' => [
+ 'description' => 'The number of entries per page.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '10',
+ ],
+ 'SnatTableEntries' => [
+ 'description' => 'The details of the SNAT entries.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The details of the SNAT entry.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'NatGatewayId' => [
+ 'description' => 'The ID of the NAT gateway.'."\n",
+ 'type' => 'string',
+ 'example' => 'nat-5t7nh1cfm6kxiszlttr38****',
+ ],
+ 'SnatEntryId' => [
+ 'description' => 'The ID of the SNAT entry.'."\n",
+ 'type' => 'string',
+ 'example' => 'snat-5tfjp3537mi6iokl59g5c****',
+ ],
+ 'SnatIp' => [
+ 'description' => 'The EIP specified in the SNAT entry.'."\n",
+ 'type' => 'string',
+ 'example' => '120.XXX.XXX.71',
+ ],
+ 'SourceCIDR' => [
+ 'description' => 'The source CIDR block specified in the SNAT entry.'."\n",
+ 'type' => 'string',
+ 'example' => '10.0.0.13/32',
+ ],
+ 'SnatEntryName' => [
+ 'description' => 'The name of the SNAT entry.'."\n",
+ 'type' => 'string',
+ 'example' => 'test0',
+ ],
+ 'Status' => [
+ 'description' => 'The status of the SNAT entry. Valid values:'."\n"
+ ."\n"
+ .'* Pending: The SNAT entry is being created or modified.'."\n"
+ .'* Available: The SNAT entry is available.'."\n"
+ .'* Deleting: The SNAT entry is being deleted.'."\n",
+ 'type' => 'string',
+ 'example' => 'Available',
+ ],
+ 'StandbySnatIp' => [
+ 'description' => 'The secondary EIP. Multiple EIPs are separated by commas (,).'."\n",
+ 'type' => 'string',
+ 'example' => '101.XXX.XXX.7',
+ ],
+ 'StandbyStatus' => [
+ 'description' => 'The status of the secondary EIP. Valid values:'."\n"
+ ."\n"
+ .'* Running'."\n"
+ .'* Stopping'."\n"
+ .'* Stopped'."\n"
+ .'* Starting'."\n",
+ 'type' => 'string',
+ 'example' => 'Stopped',
+ ],
+ 'IdleTimeout' => [
+ 'description' => 'The timeout period for idle connections. Valid values: **1** to **86400**. Unit: seconds.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '900',
+ ],
+ 'IspAffinity' => [
+ 'description' => 'Whether to enable operator affinity. Value taking:'."\n"
+ ."\n"
+ .'- false:Do not open.'."\n"
+ ."\n"
+ .'- true:Open.',
+ 'type' => 'boolean',
+ 'example' => 'true',
+ ],
+ 'EipAffinity' => [
+ 'description' => 'Specifies whether to enable EIP affinity. Valid values:'."\n"
+ ."\n"
+ .'* **0**: no'."\n"
+ .'* **1**: yes'."\n"
+ ."\n"
+ .'**'."\n"
+ ."\n"
+ .'**Description** After you enable EIP affinity, if multiple EIPs are associated with an SNAT entry, each client uses one EIP to access the Internet. If EIP affinity is disabled, each client uses a random EIP to access the Internet.'."\n",
+ 'type' => 'boolean',
+ 'example' => 'false',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'Invalid%s',
+ 'errorMessage' => 'The specified parameter %s is invalid.',
+ ],
+ [
+ 'errorCode' => 'Missing%s',
+ 'errorMessage' => 'You must specify the parameter %s.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.NatNotFound',
+ 'errorMessage' => 'The specified Nat is not found.',
+ ],
+ [
+ 'errorCode' => 'ens.interface.error',
+ 'errorMessage' => 'Failed to call API.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E\\",\\n \\"PageNumber\\": 1,\\n \\"TotalCount\\": 7,\\n \\"PageSize\\": 10,\\n \\"SnatTableEntries\\": [\\n {\\n \\"NatGatewayId\\": \\"nat-5t7nh1cfm6kxiszlttr38****\\",\\n \\"SnatEntryId\\": \\"snat-5tfjp3537mi6iokl59g5c****\\",\\n \\"SnatIp\\": \\"120.XXX.XXX.71\\",\\n \\"SourceCIDR\\": \\"10.0.0.13/32\\",\\n \\"SnatEntryName\\": \\"test0\\",\\n \\"Status\\": \\"Available\\",\\n \\"StandbySnatIp\\": \\"101.XXX.XXX.7\\",\\n \\"StandbyStatus\\": \\"Stopped\\",\\n \\"IdleTimeout\\": 900,\\n \\"IspAffinity\\": true,\\n \\"EipAffinity\\": false\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"<DescribeSnatTableEntriesResponse>\\n <RequestId>473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E</RequestId>\\n <PageNumber>1</PageNumber>\\n <TotalCount>7</TotalCount>\\n <PageSize>10</PageSize>\\n <SnatTableEntries>\\n <NatGatewayId>nat-5t7nh1cfm6kxiszlttr38****</NatGatewayId>\\n <SnatEntryId>snat-5tfjp3537mi6iokl59g5c****</SnatEntryId>\\n <SnatIp>120.XXX.XXX.71</SnatIp>\\n <SourceCIDR>10.0.0.13/32</SourceCIDR>\\n <SnatEntryName>test0</SnatEntryName>\\n <Status>Available</Status>\\n </SnatTableEntries>\\n</DescribeSnatTableEntriesResponse>","errorExample":""}]',
+ 'title' => 'DescribeSnatTableEntries',
+ ],
+ 'DescribeSnatAttribute' => [
+ 'summary' => 'Queries the details of a specific source network address translation (SNAT) entry.',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '168709',
+ 'abilityTreeNodes' => [
+ 'FEATUREensSHG96R',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'SnatEntryId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the SNAT entry.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'snat-5tc08qfj5ecblfdn2rqr9****',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'The response parameters.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E',
+ ],
+ 'NatGatewayId' => [
+ 'description' => 'The ID of the Network Address Translation (NAT) gateway.'."\n",
+ 'type' => 'string',
+ 'example' => 'nat-5t7nh1cfm6kxiszlttr38****',
+ ],
+ 'SnatEntryId' => [
+ 'description' => 'The ID of the SNAT entry.'."\n",
+ 'type' => 'string',
+ 'example' => 'snat-5tfi6f8gds82mjmlofeym****',
+ ],
+ 'SnatIp' => [
+ 'description' => 'The EIP specified in the SNAT entry. Multiple EIPs are separated by commas (,).'."\n",
+ 'type' => 'string',
+ 'example' => '120.72.XX.XX',
+ ],
+ 'SourceCIDR' => [
+ 'description' => 'The source CIDR block specified in the SNAT entry.'."\n",
+ 'type' => 'string',
+ 'example' => '10.0.XX.XX/24',
+ ],
+ 'SnatEntryName' => [
+ 'description' => 'The name of the SNAT entry.'."\n",
+ 'type' => 'string',
+ 'example' => 'test0',
+ ],
+ 'Status' => [
+ 'description' => 'The status of the SNAT entry.'."\n"
+ ."\n"
+ .'* Pending: The SNAT entry is being created or modified.'."\n"
+ .'* Available: The SNAT entry is available.'."\n"
+ .'* Deleting: The SNAT entry is being deleted.'."\n",
+ 'type' => 'string',
+ 'example' => 'Available',
+ ],
+ 'CreationTime' => [
+ 'description' => 'The time when the entry was created. The time is displayed in UTC.'."\n",
+ 'type' => 'string',
+ 'example' => '2020-04-26T15:38:27Z',
+ ],
+ 'SnatIps' => [
+ 'description' => 'The information about the EIP specified in the SNAT entry.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The information about the EIP specified in the SNAT entry.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'Ip' => [
+ 'description' => 'The IP address.'."\n",
+ 'type' => 'string',
+ 'example' => '203.132.XX.XX',
+ ],
+ 'Status' => [
+ 'description' => 'The status of the IP address.'."\n"
+ ."\n"
+ .'* Running'."\n"
+ .'* Stopping'."\n"
+ .'* Stopped'."\n"
+ .'* Starting'."\n"
+ .'* Releasing'."\n",
+ 'type' => 'string',
+ 'example' => 'Running',
+ ],
+ 'CreationTime' => [
+ 'description' => 'The time when the IP address was created. The time is displayed in UTC.'."\n",
+ 'type' => 'string',
+ 'example' => '2020-04-26T15:38:27Z',
+ ],
+ ],
+ ],
+ ],
+ 'StandbySnatIp' => [
+ 'description' => 'The secondary EIP specified in the SNAT entry. Multiple secondary EIPs are separated by commas (,).'."\n",
+ 'type' => 'string',
+ 'example' => '101.23. XX.XX',
+ ],
+ 'StandbyStatus' => [
+ 'description' => 'The status of the secondary EIP.'."\n"
+ ."\n"
+ .'* Running'."\n"
+ .'* Stopping'."\n"
+ .'* Stopped'."\n"
+ .'* Starting'."\n",
+ 'type' => 'string',
+ 'example' => 'Stopped',
+ ],
+ 'Type' => [
+ 'description' => 'The type of the NAT.'."\n"
+ ."\n"
+ .'* Empty: symmetric NAT.'."\n"
+ .'* FullCone: full cone NAT.'."\n",
+ 'type' => 'string',
+ 'example' => 'FullCone',
+ ],
+ 'IdleTimeout' => [
+ 'description' => 'The timeout period. Unit: seconds.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '10',
+ ],
+ 'DestCIDR' => [
+ 'description' => 'The destination CIDR block. The rule takes effect only on requests that access the destination CIDR block.'."\n",
+ 'type' => 'string',
+ 'example' => '101.10. XX.XX/24',
+ ],
+ 'IspAffinity' => [
+ 'description' => 'Whether to enable operator affinity. Value taking:'."\n"
+ .'- false:Do not open.'."\n"
+ .'- true:Open.',
+ 'type' => 'boolean',
+ 'example' => 'true',
+ ],
+ 'EipAffinity' => [
+ 'description' => 'Specifies whether to enable IP affinity. Valid values:'."\n"
+ ."\n"
+ .'* **false**'."\n"
+ .'* **true**'."\n"
+ ."\n"
+ .'> After you enable IP affinity, if multiple EIPs are associated with an SNAT entry, one client uses the same EIP to for communication. If IP affinity is disabled, the client uses a random EIP for communication.'."\n",
+ 'type' => 'boolean',
+ 'example' => 'false',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'Invalid%s',
+ 'errorMessage' => 'The specified parameter %s is invalid.',
+ ],
+ [
+ 'errorCode' => 'Missing%s',
+ 'errorMessage' => 'You must specify the parameter %s.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.SnatNotFound',
+ 'errorMessage' => 'The specified snat is not found.',
+ ],
+ [
+ 'errorCode' => 'ens.interface.error',
+ 'errorMessage' => 'Failed to call API.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E\\",\\n \\"NatGatewayId\\": \\"nat-5t7nh1cfm6kxiszlttr38****\\",\\n \\"SnatEntryId\\": \\"snat-5tfi6f8gds82mjmlofeym****\\",\\n \\"SnatIp\\": \\"120. XXX. XXX.71\\",\\n \\"SourceCIDR\\": \\"10. XXX. XXX.0/24\\",\\n \\"SnatEntryName\\": \\"test0\\",\\n \\"Status\\": \\"Available\\",\\n \\"CreationTime\\": \\"2020-04-26T15:38:27Z\\",\\n \\"SnatIps\\": [\\n {\\n \\"Ip\\": \\"203. XXX. XXX.139\\",\\n \\"Status\\": \\"Running\\",\\n \\"CreationTime\\": \\"2020-04-26T15:38:27Z\\"\\n }\\n ],\\n \\"StandbySnatIp\\": \\"101. XXX. XXX.4\\",\\n \\"StandbyStatus\\": \\"Stopped\\",\\n \\"Type\\": \\"FullCone\\",\\n \\"IdleTimeout\\": 10,\\n \\"DestCIDR\\": \\"101. XXX. XXX.0/24\\",\\n \\"IspAffinity\\": true,\\n \\"EipAffinity\\": false\\n}","type":"json"}]',
+ 'title' => 'DescribeSnatAttribute',
+ ],
+ 'AddSnatIpForSnatEntry' => [
+ 'summary' => 'Adds an elastic IP address (EIP) to a Source Network Address Translation (SNAT) entry.',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'deprecated' => false,
+ 'systemTags' => [],
+ 'parameters' => [
+ [
+ 'name' => 'SnatEntryId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the SNAT entry.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'snat-5xkzf89dndkzh8yg9stzqz9m4',
+ ],
+ ],
+ [
+ 'name' => 'SnatIp',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The EIP specified in the SNAT entry.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => '219.152.82.144',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => 'CD1FFCC6-5E9E-5C31-A014-13D02737B0EA',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'Invalid%s',
+ 'errorMessage' => 'The specified parameter %s is invalid.',
+ ],
+ [
+ 'errorCode' => 'Missing%s',
+ 'errorMessage' => 'You must specify the parameter %s.',
+ ],
+ [
+ 'errorCode' => 'ens.interface.error ',
+ 'errorMessage' => 'An error occurred while call the API. ',
+ ],
+ [
+ 'errorCode' => 'Forbidden.SnatIpUsedInDnat',
+ 'errorMessage' => 'Forbidden.SnatIpUsedInDnat',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.SnatIp',
+ 'errorMessage' => 'The specified SnatIp is not found.',
+ ],
+ [
+ 'errorCode' => 'SnatIpLimitExceed',
+ 'errorMessage' => 'The Snat pool ip too many.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.SnatNotFound',
+ 'errorMessage' => 'The specified snat is not found.',
+ ],
+ [
+ 'errorCode' => 'IncorretSnatEntryStatus',
+ 'errorMessage' => 'Snat entry status blocked this operation.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"CD1FFCC6-5E9E-5C31-A014-13D02737B0EA\\"\\n}","type":"json"}]',
+ 'title' => 'AddSnatIpForSnatEntry',
+ ],
+ 'DeleteSnatIpForSnatEntry' => [
+ 'summary' => 'Deletes an elastic IP address (EIP) from a source network address translation (SNAT) entry.',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'delete',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'SnatEntryId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the SNAT entry.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'snat-5tfi6f8gds82mjmlofeym****',
+ ],
+ ],
+ [
+ 'name' => 'SnatIp',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The EIP that you want to delete from the SNAT entry.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => '120.72.56.71',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'Invalid%s',
+ 'errorMessage' => 'The specified parameter %s is invalid.',
+ ],
+ [
+ 'errorCode' => 'Missing%s',
+ 'errorMessage' => 'You must specify the parameter %s.',
+ ],
+ [
+ 'errorCode' => 'ens.interface.error ',
+ 'errorMessage' => 'An error occurred while call the API. ',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.SnatNotFound',
+ 'errorMessage' => 'The specified snat is not found.',
+ ],
+ [
+ 'errorCode' => 'IncorretSnatEntryStatus',
+ 'errorMessage' => 'Snat entry status blocked this operation.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.SnatIpNotFound',
+ 'errorMessage' => 'The specified snat ip not found.',
+ ],
+ [
+ 'errorCode' => 'IncorretSnatIpStatus',
+ 'errorMessage' => 'Snat ip status blocked this operation.',
+ ],
+ [
+ 'errorCode' => 'Forbidden.SnatIp',
+ 'errorMessage' => 'Snat requires at least one running snat ip',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\"\\n}","type":"json"}]',
+ 'title' => 'DeleteSnatIpForSnatEntry',
+ ],
+ 'StartSnatIpForSnatEntry' => [
+ 'summary' => 'Starts the elastic IP address (EIP) specified in a source network address translation (SNAT) entry.',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'deprecated' => false,
+ 'systemTags' => [],
+ 'parameters' => [
+ [
+ 'name' => 'SnatEntryId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the SNAT entry.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'snat-5tfi6f8gds82mjmlofeym****',
+ ],
+ ],
+ [
+ 'name' => 'SnatIp',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The EIP specified in the SNAT entry.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => '219.152.82.143',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => '85BBD491-CE05-5BDA-979E-843FE52B74CF',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'Invalid%s',
+ 'errorMessage' => 'The specified parameter %s is invalid.',
+ ],
+ [
+ 'errorCode' => 'Missing%s',
+ 'errorMessage' => 'You must specify the parameter %s.',
+ ],
+ [
+ 'errorCode' => 'ens.interface.error ',
+ 'errorMessage' => 'An error occurred while call the API. ',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.SnatNotFound',
+ 'errorMessage' => 'The specified snat is not found.',
+ ],
+ [
+ 'errorCode' => 'IncorretSnatEntryStatus',
+ 'errorMessage' => 'Snat entry status blocked this operation.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.SnatIpNotFound',
+ 'errorMessage' => 'The specified snat ip not found.',
+ ],
+ [
+ 'errorCode' => 'IncorretSnatIpStatus',
+ 'errorMessage' => 'Snat ip status blocked this operation.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"85BBD491-CE05-5BDA-979E-843FE52B74CF\\"\\n}","type":"json"}]',
+ 'title' => 'StartSnatIpForSnatEntry',
+ ],
+ 'StopSnatIpForSnatEntry' => [
+ 'summary' => 'Disables an elastic IP address (EIP) in a source network address translation (SNAT) entry.',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'deprecated' => false,
+ 'systemTags' => [],
+ 'parameters' => [
+ [
+ 'name' => 'SnatEntryId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the SNAT entry.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'snat-5tfi6f8gds82mjmlofeym****',
+ ],
+ ],
+ [
+ 'name' => 'SnatIp',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The EIP specified in the SNAT entry.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => '221.178.103.143',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => '9A415CB9-7591-566F-924B-32709578756B',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'Invalid%s',
+ 'errorMessage' => 'The specified parameter %s is invalid.',
+ ],
+ [
+ 'errorCode' => 'Missing%s',
+ 'errorMessage' => 'You must specify the parameter %s.',
+ ],
+ [
+ 'errorCode' => 'ens.interface.error ',
+ 'errorMessage' => 'An error occurred while call the API. ',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.SnatNotFound',
+ 'errorMessage' => 'The specified snat is not found.',
+ ],
+ [
+ 'errorCode' => 'IncorretSnatEntryStatus',
+ 'errorMessage' => 'Snat entry status blocked this operation.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.SnatIpNotFound',
+ 'errorMessage' => 'The specified snat ip not found.',
+ ],
+ [
+ 'errorCode' => 'IncorretSnatIpStatus',
+ 'errorMessage' => 'Snat ip status blocked this operation.',
+ ],
+ [
+ 'errorCode' => 'Forbidden.SnatIp',
+ 'errorMessage' => 'Snat requires at least one running snat ip',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"9A415CB9-7591-566F-924B-32709578756B\\"\\n}","type":"json"}]',
+ 'title' => 'StopSnatIpForSnatEntry',
+ ],
+ 'CreateLoadBalancer' => [
+ 'summary' => 'Creates an Edge Load Balancer (ELB) instance.',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'readAndWrite',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'create',
+ 'riskType' => 'none',
+ 'chargeType' => 'paid',
+ 'abilityTreeCode' => '18910',
+ 'abilityTreeNodes' => [
+ 'FEATUREens6EB2HM',
+ ],
+ 'tenantRelevance' => 'publicInformation',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'EnsRegionId',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => 'ENS节点ID。',
+ 'description' => 'The ID of the Edge Node Service (ENS) node.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'cn-chengdu-telecom',
+ ],
+ ],
+ [
+ 'name' => 'LoadBalancerSpec',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '负载均衡实例的名称。',
+ 'description' => 'The specification of the ELB instance.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'elb.s2.medium',
+ ],
+ ],
+ [
+ 'name' => 'LoadBalancerName',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '负载均衡实例的名称。',
+ 'description' => 'The name of the ELB instance. The name must be 1 to 80 characters in length. If you leave this parameter empty, the system randomly allocates a name as the value of this parameter.'."\n"
+ ."\n"
+ .'> The value cannot start with `http://` or `https://`.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'gcs-pre-websocket-eslb-telecom',
+ ],
+ ],
+ [
+ 'name' => 'PayType',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '付费类型。PostPaid(目前只支持此种):按量付费',
+ 'description' => 'The billing method of the cluster. Valid value: PostPaid. PostPaid specifies the pay-as-you-go billing method.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'PostPaid',
+ 'enum' => [
+ 'PostPaid',
+ ],
+ ],
+ ],
+ [
+ 'name' => 'NetworkId',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '要创建的ELB实例的网络ID',
+ 'description' => 'The network ID of the created ELB instance.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'n-5sax03dh2eyagujgsn7z9****',
+ ],
+ ],
+ [
+ 'name' => 'VSwitchId',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '专有网络实例的所属的交换机ID。',
+ 'description' => 'The ID of the vSwitch to which the internal-facing ELB instance belongs.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'vsw-5s78haoys9oylle6ln71m****',
+ ],
+ ],
+ [
+ 'name' => 'ClientToken',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The client token that is used to ensure the idempotence of the request. This prevents repeated operations caused by multiple retries.'."\n"
+ ."\n"
+ .'* 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 only contain ASCII characters and cannot exceed 64 characters in length.'."\n"
+ .'* If you retry an API request with the same client token and request parameters after it has completed successfully, the result of the original request is returned. The server status does not change.'."\n"
+ .'* You can initiate a retry when the operation times out or the error code is PROCESSING. The idempotence is valid. If HTTP status code 200 is returned, the client receives the same result as the last request. However, your server status is not affected. If HTTP status code 4xx is returned and error code is not PROCESSING, the idempotence is invalid.'."\n"
+ .'* A client token is valid for 10 minutes.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '26C28756-2586-17AF-B802-0DC50D8FDEBB',
+ ],
+ ],
+ [
+ 'name' => 'BillingCycle',
+ 'in' => 'query',
+ 'schema' => [
+ 'type' => 'string',
+ 'default' => 'Month',
+ 'enum' => [
+ 'Hour',
+ 'Month',
+ ],
+ ],
+ ],
+ [
+ 'name' => 'LoadBalancerType',
+ 'in' => 'query',
+ 'schema' => [
+ 'type' => 'string',
+ 'default' => 'CLB',
+ 'enum' => [
+ 'CLB',
+ 'InternetDR',
+ ],
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => '1ECC937A-AE0E-4626-BE51-DED1D6D1C888',
+ ],
+ 'LoadBalancerId' => [
+ 'description' => 'The ID of the ELB instance.'."\n",
+ 'type' => 'string',
+ 'example' => 'lb-5s7crik3yo3bp03gqrbp5****',
+ ],
+ 'VSwitchId' => [
+ 'description' => 'The ID of the vSwitch to which the ELB instance belongs.'."\n",
+ 'type' => 'string',
+ 'example' => 'vsw-5savh5ngxh8sbj14bu7n****',
+ ],
+ 'LoadBalancerName' => [
+ 'description' => 'The name of the ELB instance.'."\n",
+ 'type' => 'string',
+ 'example' => 'gcs-pre-websocket-****',
+ ],
+ 'NetworkId' => [
+ 'description' => 'The ID of the network.'."\n",
+ 'type' => 'string',
+ 'example' => 'n-5sax03dh2eyagujgsn7z9****',
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'SaleControl.VerificationFailed',
+ 'errorMessage' => 'You did not pass the salecontrol verification.Please contact the product.',
+ ],
+ [
+ 'errorCode' => 'CallInterface',
+ 'errorMessage' => 'Call Interface Happen Error.',
+ ],
+ [
+ 'errorCode' => 'OrderFailed',
+ 'errorMessage' => 'Order failed, please try again.',
+ ],
+ [
+ 'errorCode' => 'SystemUseCouponFailed',
+ 'errorMessage' => 'Failed to use coupon.',
+ ],
+ [
+ 'errorCode' => 'SystemUseStoredCardFailed',
+ 'errorMessage' => 'Failed to use stored value card.',
+ ],
+ [
+ 'errorCode' => 'System.SystemError',
+ 'errorMessage' => 'system error.',
+ ],
+ [
+ 'errorCode' => 'SystemCanRefundCheckFailed',
+ 'errorMessage' => 'The business rule check of the cloud product fails, and this order cannot be refunded.',
+ ],
+ [
+ 'errorCode' => 'SystemOtsSystem',
+ 'errorMessage' => 'ots storage error.',
+ ],
+ [
+ 'errorCode' => 'SystemQueryImmortalError',
+ 'errorMessage' => 'Failed to call Juxiange.',
+ ],
+ [
+ 'errorCode' => 'SystemQueryInstanceInfoFailed',
+ 'errorMessage' => 'Failed to find instance information.',
+ ],
+ [
+ 'errorCode' => 'SystemResellerPayCalRefundUnitError',
+ 'errorMessage' => 'Ecological payment channel calculation unsubscribe information error.',
+ ],
+ [
+ 'errorCode' => 'SystemSaleValidateFailed',
+ 'errorMessage' => 'Sales Expression Validation System Error.',
+ ],
+ [
+ 'errorCode' => 'SystemTransferDeleteOldResourceFailed',
+ 'errorMessage' => 'Failed to delete the transferred instance in the transfer order.',
+ ],
+ [
+ 'errorCode' => 'SystemUnSupportOperationType',
+ 'errorMessage' => 'Unsupported operation type.',
+ ],
+ [
+ 'errorCode' => 'RiskRiskControlRejection',
+ 'errorMessage' => 'Risk Control Rejection.',
+ ],
+ [
+ 'errorCode' => 'AuthRamAuthFailed',
+ 'errorMessage' => 'ram sub-account authentication failed.',
+ ],
+ [
+ 'errorCode' => 'CommodityInvalidComponent',
+ 'errorMessage' => 'The module you purchased is illegal, please re-select.',
+ ],
+ [
+ 'errorCode' => 'CommodityInvalidItemCode',
+ 'errorMessage' => 'Specification code illegal.',
+ ],
+ [
+ 'errorCode' => 'PriceHsfTimeoutError',
+ 'errorMessage' => 'Time out when calling the request for quotation interface.',
+ ],
+ [
+ 'errorCode' => 'PricePatingConfigError',
+ 'errorMessage' => 'Inquiry related goods configuration error.',
+ ],
+ [
+ 'errorCode' => 'PricePricingPlanResultNotFound',
+ 'errorMessage' => 'Pricing plan price result not found.',
+ ],
+ [
+ 'errorCode' => 'PriceRatingGetRatingpricingPlan',
+ 'errorMessage' => 'Obtain a valid pricing plan exception.',
+ ],
+ [
+ 'errorCode' => 'OrderAbnormalResourceStatusForRenew',
+ 'errorMessage' => 'Invalid resource status for renewal.',
+ ],
+ [
+ 'errorCode' => 'OrderAccountStatusIllegal',
+ 'errorMessage' => 'Illegal account status.',
+ ],
+ [
+ 'errorCode' => 'OrderArrearage',
+ 'errorMessage' => 'User Arrears.',
+ ],
+ [
+ 'errorCode' => 'OrderBidUserOrderForbidden',
+ 'errorMessage' => 'Bid users cannot buy on the official website.',
+ ],
+ [
+ 'errorCode' => 'OrderCaptureFailed',
+ 'errorMessage' => 'The paid order of the instance has not been deducted successfully.',
+ ],
+ [
+ 'errorCode' => 'OrderExistsReleasedInstances',
+ 'errorMessage' => 'There are already released instances.',
+ ],
+ [
+ 'errorCode' => 'OrderGroupOrderSizeOverflow',
+ 'errorMessage' => 'The quantity of bound combined payment order exceeds the limit.',
+ ],
+ [
+ 'errorCode' => 'OrderHomeCurrencyCanNotDowngrade',
+ 'errorMessage' => 'Users in current currency cannot downgrade.',
+ ],
+ [
+ 'errorCode' => 'OrderHomeCurrencyCanNotUpgradeByValueTransfer',
+ 'errorMessage' => 'Users of current currency cannot upgrade through residual value transfer.',
+ ],
+ [
+ 'errorCode' => 'OrderInstanceHasInactiveChange',
+ 'errorMessage' => 'Instances exist temporary upgrade.',
+ ],
+ [
+ 'errorCode' => 'OrderInstHasUnpaidOrder',
+ 'errorMessage' => 'The instance has an unpaid order.',
+ ],
+ [
+ 'errorCode' => 'OrderInstHasUnsettledBills',
+ 'errorMessage' => 'The instance has an unsettled bill.',
+ ],
+ [
+ 'errorCode' => 'OrderLatestOrderIsHandling',
+ 'errorMessage' => 'Recent order is being processed, please try again later.',
+ ],
+ [
+ 'errorCode' => 'OrderMainOrderSizeOverflow',
+ 'errorMessage' => 'The quantity of the main order exceeds the limit.',
+ ],
+ [
+ 'errorCode' => 'OrderMissingModuleInfoError',
+ 'errorMessage' => 'Module parameter not specified.',
+ ],
+ [
+ 'errorCode' => 'OrderNoRealNameAuthentication',
+ 'errorMessage' => 'No real-name authentication.',
+ ],
+ [
+ 'errorCode' => 'OrderNotFound',
+ 'errorMessage' => 'The specified order information is not found.',
+ ],
+ [
+ 'errorCode' => 'OrderOpend',
+ 'errorMessage' => 'You have activated this product.',
+ ],
+ [
+ 'errorCode' => 'OrderPeriodInvalid',
+ 'errorMessage' => 'Illegal order cycle.',
+ ],
+ [
+ 'errorCode' => 'OrderQuantityInvalid',
+ 'errorMessage' => 'Illegal quantity ordered.',
+ ],
+ [
+ 'errorCode' => 'OrderQueryInstanceError',
+ 'errorMessage' => 'Query instance error.',
+ ],
+ [
+ 'errorCode' => 'OrderQueryInstanceNotExists',
+ 'errorMessage' => 'Instance data does not exist.',
+ ],
+ [
+ 'errorCode' => 'OrderQueryOrderExchangeRateFail',
+ 'errorMessage' => 'Failed to query order exchange rate information.',
+ ],
+ [
+ 'errorCode' => 'OrderQueryUserSettleInfoFail',
+ 'errorMessage' => 'Failed to query user settlement information.',
+ ],
+ [
+ 'errorCode' => 'OrderQuotaExceeded',
+ 'errorMessage' => 'Quantity exceeds limit.',
+ ],
+ [
+ 'errorCode' => 'OrderSysConstraintInvalid',
+ 'errorMessage' => 'System constraint check failed.',
+ ],
+ [
+ 'errorCode' => 'OrderTradeCompleteSettleInfoFail',
+ 'errorMessage' => 'Failed to complete the order settlement currency amount information.',
+ ],
+ [
+ 'errorCode' => 'TradeTradeOrderAfterPayCheckError',
+ 'errorMessage' => 'You have already paid for the subsequent orders of this instance. The current order has been automatically voided and you cannot pay any more.',
+ ],
+ [
+ 'errorCode' => 'PurchaseExistRenewchangeProd',
+ 'errorMessage' => 'There is a renewal change subscription that has not yet taken effect.',
+ ],
+ [
+ 'errorCode' => 'PurchaseExistToBeValidProdRuleError',
+ 'errorMessage' => 'Currently, there are temporary orders that are not in effect, and the upgrade operation cannot be performed.',
+ ],
+ [
+ 'errorCode' => 'PurchaseExistToBeValidRenewChangeProdRuleError',
+ 'errorMessage' => 'Currently, there is an uneffective renewal change subscription, and temporary upgrade operation cannot be performed.',
+ ],
+ [
+ 'errorCode' => 'PurchaseExistValidProdRuleError',
+ 'errorMessage' => 'Currently, there is a temporary order in effect, and operations such as upgrade/downgrade/expansion/pre-transfer cannot be performed.',
+ ],
+ [
+ 'errorCode' => 'ProductInstanceReleased',
+ 'errorMessage' => 'Instance released.',
+ ],
+ [
+ 'errorCode' => 'ProductInstanceTypeNotSupported',
+ 'errorMessage' => 'The instance type is not supported.',
+ ],
+ [
+ 'errorCode' => 'PatRiskRejectForTradeData',
+ 'errorMessage' => 'Payment order problem leads to risk control rejection.',
+ ],
+ [
+ 'errorCode' => 'PayAccountBookNotExist',
+ 'errorMessage' => 'There is no insufficient account balance in the account book, please retry after recharging.',
+ ],
+ [
+ 'errorCode' => 'PayAmountLimitExceeded',
+ 'errorMessage' => 'Payment limit exceeded, please resubmit.',
+ ],
+ [
+ 'errorCode' => 'PayBeforePayRiskRuleValidateFailed',
+ 'errorMessage' => 'The payment was blocked by risk control, and the payment failed.',
+ ],
+ [
+ 'errorCode' => 'PayCounponNotExist',
+ 'errorMessage' => 'Counpon does not exist.',
+ ],
+ [
+ 'errorCode' => 'PayCouponAmountNotEnough',
+ 'errorMessage' => 'Insufficient voucher balance or expired.',
+ ],
+ [
+ 'errorCode' => 'PayCouponNotMeetConsumptionRule',
+ 'errorMessage' => 'The coupon does not meet the conditions for use.',
+ ],
+ [
+ 'errorCode' => 'PayCurrencyInconsistency',
+ 'errorMessage' => 'Currency mismatch.',
+ ],
+ [
+ 'errorCode' => 'PayCurrencyNotSupported',
+ 'errorMessage' => 'Currency not supported.',
+ ],
+ [
+ 'errorCode' => 'PayForbiddenNoReasonFefund',
+ 'errorMessage' => 'Banned five days no reason refund.',
+ ],
+ [
+ 'errorCode' => 'PayHsfTimeoutError',
+ 'errorMessage' => 'Call payment system timeout.',
+ ],
+ [
+ 'errorCode' => 'PayInsufficientBalance',
+ 'errorMessage' => 'Account balance is insufficient, please recharge and try again.',
+ ],
+ [
+ 'errorCode' => 'PayInvalidCreditCard',
+ 'errorMessage' => 'Invalid credit card.',
+ ],
+ [
+ 'errorCode' => 'PayInvalidPayMethod',
+ 'errorMessage' => 'Illegal payment method.',
+ ],
+ [
+ 'errorCode' => 'PayMegrePayOrderHasThanOneChagreChannel',
+ 'errorMessage' => 'Payment failed, please retry or submit work order feedback.',
+ ],
+ [
+ 'errorCode' => 'PayNoCreditCard',
+ 'errorMessage' => 'No valid payment method, please check the payment method and try again.',
+ ],
+ [
+ 'errorCode' => 'PayOrderPayTimeInvalid',
+ 'errorMessage' => 'Order effective time is invalid.',
+ ],
+ [
+ 'errorCode' => 'PayPartRefundNotSupport',
+ 'errorMessage' => 'Not Capture, no partial refund.',
+ ],
+ [
+ 'errorCode' => 'PayPayChannelPayOrderInvalidStatus',
+ 'errorMessage' => 'Illegal status of payment order in payment channel.',
+ ],
+ [
+ 'errorCode' => 'PayPayChannelPayOrderNotExist',
+ 'errorMessage' => 'Payment channel payment order does not exist.',
+ ],
+ [
+ 'errorCode' => 'PayPayerAccountIllegal',
+ 'errorMessage' => 'Illegal payment account.',
+ ],
+ [
+ 'errorCode' => 'PayPayFailedParentRelationchanged',
+ 'errorMessage' => 'If the financial custody relationship changes, please void the order and place a new order for payment.',
+ ],
+ [
+ 'errorCode' => 'PayPayForbidUserCoupon',
+ 'errorMessage' => 'Coupon prohibited for orders.',
+ ],
+ [
+ 'errorCode' => 'PayQueryAvailableAmountFailed',
+ 'errorMessage' => 'Failed to query user availability, please try again later.',
+ ],
+ [
+ 'errorCode' => 'PayQueryAvailableEnduserAmountFailed',
+ 'errorMessage' => 'Failed to query the availability of quota direct customer main user, please try again later.',
+ ],
+ [
+ 'errorCode' => 'PayQueryParentRelationshipFailed',
+ 'errorMessage' => 'Failed to query current user hosting relationship, please try again later.',
+ ],
+ [
+ 'errorCode' => 'PayQueryPayChangeChannelNotEqual',
+ 'errorMessage' => 'Multi-order payment channels are inconsistent, please check whether the original order data payment channel is correct.',
+ ],
+ [
+ 'errorCode' => 'PayRefundFailed',
+ 'errorMessage' => 'Accumulated refund amount exceeds payment order amount.',
+ ],
+ [
+ 'errorCode' => 'PayResellerPayGetUrlError',
+ 'errorMessage' => 'Order payment failed, please try again later.',
+ ],
+ [
+ 'errorCode' => 'PayRiskRejectForPayerAccount',
+ 'errorMessage' => 'Payment account problem leads to risk control rejection.',
+ ],
+ [
+ 'errorCode' => 'PayStoredCardNotExist',
+ 'errorMessage' => 'Stored value card does not exist.',
+ ],
+ [
+ 'errorCode' => 'PaySystemError',
+ 'errorMessage' => 'Error calling payment system.',
+ ],
+ [
+ 'errorCode' => 'PayTaxCalcFailed',
+ 'errorMessage' => 'Failed to get user tax address.',
+ ],
+ [
+ 'errorCode' => 'PayWithholdingAgreementIllegal',
+ 'errorMessage' => 'Withholding Agreement Status Illegal.',
+ ],
+ [
+ 'errorCode' => 'AccountAliyunAccountFrozen',
+ 'errorMessage' => 'Alibaba Cloud account is frozen.',
+ ],
+ [
+ 'errorCode' => 'AccountAliyunAccountNotExist',
+ 'errorMessage' => 'Alibaba Cloud account does not exist.',
+ ],
+ [
+ 'errorCode' => 'RefundRefundInstanceNotFound',
+ 'errorMessage' => 'Unable to find instance information.',
+ ],
+ [
+ 'errorCode' => 'RefundRefundNoValidProd',
+ 'errorMessage' => 'Refund is not available to unsubscribe.',
+ ],
+ [
+ 'errorCode' => 'RefundRefundParamInvalid',
+ 'errorMessage' => 'Abnormal refund parameter.',
+ ],
+ [
+ 'errorCode' => 'RefundRefundQueryOrderFail',
+ 'errorMessage' => 'Failed to query order for refund field.',
+ ],
+ [
+ 'errorCode' => 'SystemConcurrentOperate',
+ 'errorMessage' => 'Concurrent operation causes failure.',
+ ],
+ [
+ 'errorCode' => 'PricePricingPlanNotFound',
+ 'errorMessage' => 'Pricing plan tree not found.',
+ ],
+ [
+ 'errorCode' => 'OrderInstanceHasTempUpgrade',
+ 'errorMessage' => 'Instances exist temporary upgrade.',
+ ],
+ [
+ 'errorCode' => 'PayQueryParentRelationchangedFailed',
+ 'errorMessage' => 'The financial custody relationship may change, please refresh and pay again.',
+ ],
+ [
+ 'errorCode' => 'PayforCreditPayInsufficientBalance',
+ 'errorMessage' => 'Insufficient quota, please contact your channel partner to increase the quota.',
+ ],
+ [
+ 'errorCode' => 'PayforAccountMoneyValidateError',
+ 'errorMessage' => 'The available amount of your channel partner\'s account is insufficient, please contact your channel partner to recharge in time.',
+ ],
+ [
+ 'errorCode' => 'BasicInfoUncompleted',
+ 'errorMessage' => 'You have not completed your basic personal information. Please complete the information and re-operate it.',
+ ],
+ [
+ 'errorCode' => 'Processing',
+ 'errorMessage' => 'Request is in progress, please try again later.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"1ECC937A-AE0E-4626-BE51-DED1D6D1C888\\",\\n \\"LoadBalancerId\\": \\"lb-5s7crik3yo3bp03gqrbp5****\\",\\n \\"VSwitchId\\": \\"vsw-5savh5ngxh8sbj14bu7n****\\",\\n \\"LoadBalancerName\\": \\"gcs-pre-websocket-****\\",\\n \\"NetworkId\\": \\"n-5sax03dh2eyagujgsn7z9****\\"\\n}","errorExample":""},{"type":"xml","example":"<CreateLoadBalancerResponse>\\n <RequestId>1ECC937A-AE0E-4626-BE51-DED1D6D1C888</RequestId>\\n <LoadBalancerId>lb-5s7crik3yo3bp03gqrbp5****</LoadBalancerId>\\n <VSwitchId>vsw-5savh5ngxh8sbj14bu7n****</VSwitchId>\\n <LoadBalancerName>gcs-pre-websocket-****</LoadBalancerName>\\n <NetworkId>n-5sax03dh2eyagujgsn7z9****</NetworkId>\\n</CreateLoadBalancerResponse>","errorExample":""}]',
+ 'title' => 'CreateLoadBalancer',
+ 'description' => '* You can call this operation up to 100 times per second per account.'."\n"
+ .'* You can call this operation up to 5 times per second per user.'."\n",
+ ],
+ 'ModifyLoadBalancerAttribute' => [
+ 'summary' => 'Modifies the information about an Edge Load Balancer (ELB) instance.',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'update',
+ 'abilityTreeCode' => '16810',
+ 'abilityTreeNodes' => [
+ 'FEATUREensKQ0M0M',
+ ],
+ 'tenantRelevance' => 'tenant',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'LoadBalancerId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the ELB instance.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'lb-5q73cv04zeyh43lh74lp4gtm8',
+ ],
+ ],
+ [
+ 'name' => 'LoadBalancerName',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The name of the ELB instance. The name must be **2** to **128** characters in length.'."\n"
+ ."\n"
+ .'> The value cannot start with `http://` or `https://`.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'test',
+ 'maxLength' => 128,
+ 'minLength' => 2,
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'ens.interface.error',
+ 'errorMessage' => 'An error occurred while call the API.',
+ ],
+ [
+ 'errorCode' => 'LoadBalancerNotFound',
+ 'errorMessage' => 'The input parameter LoadBalancerId that is not found.',
+ ],
+ [
+ 'errorCode' => 'Invalid%s',
+ 'errorMessage' => 'The specified parameter %s is invalid.',
+ ],
+ [
+ 'errorCode' => 'Missing%s',
+ 'errorMessage' => 'You must specify the parameter %s.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E\\"\\n}","errorExample":""},{"type":"xml","example":"<ModifyLoadBalancerAttributeResponse>\\n <RequestId>473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E</RequestId>\\n</ModifyLoadBalancerAttributeResponse>","errorExample":""}]',
+ 'title' => 'ModifyLoadBalancerAttribute',
+ 'description' => '* You can call this operation up to 100 times per second per account.'."\n"
+ .'* You can call this operation up to 10 times per second per user.'."\n",
+ ],
+ 'SetLoadBalancerStatus' => [
+ 'summary' => 'Modifies the status of an Edge Load Balancer (ELB) instance.',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'update',
+ 'abilityTreeCode' => '16809',
+ 'abilityTreeNodes' => [
+ 'FEATUREensU6BJRP',
+ ],
+ 'tenantRelevance' => 'tenant',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'LoadBalancerId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the ELB instance.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'lb-5t18quoohsrc3xkf86spmnu77',
+ ],
+ ],
+ [
+ 'name' => 'LoadBalancerStatus',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The new instance status. Valid values:'."\n"
+ ."\n"
+ .'* **Active**'."\n"
+ .'* **InActive**'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'Active',
+ 'enum' => [
+ 'InActive',
+ 'Active',
+ ],
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'ens.interface.error',
+ 'errorMessage' => 'An error occurred while call the API.',
+ ],
+ [
+ 'errorCode' => 'Invalid%s',
+ 'errorMessage' => 'The specified parameter %s is invalid.',
+ ],
+ [
+ 'errorCode' => 'Missing%s',
+ 'errorMessage' => 'You must specify the parameter %s.',
+ ],
+ [
+ 'errorCode' => 'LoadBalancerNotFound',
+ 'errorMessage' => 'The input parameter loadBalancerId that is not found.',
+ ],
+ [
+ 'errorCode' => 'IncorrectInstanceStatus',
+ 'errorMessage' => 'The current status of the resource does not support this operation.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E\\"\\n}","errorExample":""},{"type":"xml","example":"<SetLoadBalancerStatusResponse>\\n <RequestId>473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E</RequestId>\\n</SetLoadBalancerStatusResponse>","errorExample":""}]',
+ 'title' => 'SetLoadBalancerStatus',
+ 'description' => '* You can call this operation up to 100 times per second per account.'."\n"
+ .'* You can call this operation up to 10 times per second per user.'."\n",
+ ],
+ 'DescribeLoadBalancerAttribute' => [
+ 'summary' => 'Queries detailed information about an Edge Load Balancer (ELB) instance.',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '14488',
+ 'abilityTreeNodes' => [
+ 'FEATUREensU6BJRP',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'LoadBalancerId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the ELB instance.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'lb-5rcvo1n1t3hykfhhjwjgq****',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E',
+ ],
+ 'LoadBalancerId' => [
+ 'description' => 'The ID of the ELB instance.'."\n",
+ 'type' => 'string',
+ 'example' => 'lb-5rcvo1n1t3hykfhhjwjgqp****',
+ ],
+ 'LoadBalancerName' => [
+ 'description' => 'The name of the ELB instance.'."\n",
+ 'type' => 'string',
+ 'example' => 'example',
+ ],
+ 'LoadBalancerStatus' => [
+ 'description' => 'The status of the ELB instance. Valid values:'."\n"
+ ."\n"
+ .'* **Active** (default): The listener for the instance can forward the received traffic based on the rule.'."\n"
+ .'* **InActive**: The listener for the instance does not forward the received traffic.'."\n",
+ 'type' => 'string',
+ 'example' => 'Active',
+ ],
+ 'EnsRegionId' => [
+ 'description' => 'The ID of the ENS node.'."\n",
+ 'type' => 'string',
+ 'example' => 'cn-chengdu-telecom',
+ ],
+ 'Address' => [
+ 'description' => 'The IP address that the Edge Load Balancer (ELB) instance uses to provide services.'."\n",
+ 'type' => 'string',
+ 'example' => '192.168XX.XX',
+ ],
+ 'NetworkId' => [
+ 'description' => 'The ID of the network.'."\n",
+ 'type' => 'string',
+ 'example' => 'n-5rwbi3g9zvgxcsiufwhw8****',
+ ],
+ 'VSwitchId' => [
+ 'description' => 'The ID of the vSwitch.'."\n",
+ 'type' => 'string',
+ 'example' => 'vsw-5s78m2pdr9osa0j64bn78****',
+ ],
+ 'Bandwidth' => [
+ 'description' => 'The peak bandwidth of the ELB. The default value is -1, which indicates that the bandwidth is unlimited.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '-1',
+ ],
+ 'LoadBalancerSpec' => [
+ 'description' => 'The specifications of the ELB instance.'."\n",
+ 'type' => 'string',
+ 'example' => 'elb.s2.medium',
+ ],
+ 'CreateTime' => [
+ 'description' => 'The time when the ELB instance was created. The time is displayed in UTC.'."\n",
+ 'type' => 'string',
+ 'example' => '2019-05-21T12:22:00Z',
+ ],
+ 'EndTime' => [
+ 'description' => 'The time when the ELB instance was disabled.'."\n",
+ 'type' => 'string',
+ 'example' => '2020-05-21T12:22:00Z',
+ ],
+ 'ListenerPorts' => [
+ 'description' => 'The frontend ports that are used by the ELB instance.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The frontend port that is used by the ELB instance.'."\n",
+ 'type' => 'string',
+ 'example' => '80',
+ ],
+ ],
+ 'BackendServers' => [
+ 'description' => 'The list of backend servers.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The list of backend servers.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'ServerId' => [
+ 'description' => 'The ID of the backend server.'."\n",
+ 'type' => 'string',
+ 'example' => 'i-5vb5h5njxiuhn48a****',
+ ],
+ 'Ip' => [
+ 'description' => 'The IP address of the backend server.'."\n",
+ 'type' => 'string',
+ 'example' => '192.168.XX.XX'."\n",
+ ],
+ 'Port' => [
+ 'description' => 'The port that is used by the backend server.'."\n",
+ 'type' => 'string',
+ 'example' => '0',
+ ],
+ 'Type' => [
+ 'description' => 'The type of backend server.'."\n",
+ 'type' => 'string',
+ 'example' => 'ens',
+ ],
+ 'Weight' => [
+ 'description' => 'The weight of the backend server.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '100',
+ ],
+ ],
+ ],
+ ],
+ 'ListenerPortsAndProtocols' => [
+ 'description' => 'The frontend ports and protocols that are used by the ELB instance.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The frontend port and protocol that are used by the ELB instance.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'ListenerPort' => [
+ 'description' => 'The listener port of the instance.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '8080',
+ ],
+ 'ListenerProtocol' => [
+ 'description' => 'The listener protocol of the instance.'."\n",
+ 'type' => 'string',
+ 'example' => 'tcp',
+ ],
+ 'Description' => [
+ 'description' => 'The description of the listener.'."\n",
+ 'type' => 'string',
+ 'example' => 'test',
+ ],
+ 'ListenerForward' => [
+ 'description' => 'Indicates whether the listener is enabled.'."\n",
+ 'type' => 'string',
+ 'example' => 'off',
+ ],
+ 'ForwardPort' => [
+ 'description' => 'The destination listening port to which requests are forwarded.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '0',
+ ],
+ 'BackendServerPort' => [
+ 'description' => 'The backend port that is used by the ELB instance. Valid values: **1** to **65535**.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '6000',
+ ],
+ ],
+ ],
+ ],
+ 'AddressIPVersion' => [
+ 'description' => 'The IP version of the ELB instance. Valid values: ipv4 and ipv6.'."\n",
+ 'type' => 'string',
+ 'example' => 'ipv4',
+ ],
+ 'PayType' => [
+ 'description' => 'The billing method. Valid values:'."\n"
+ ."\n"
+ .'* **PrePaid**: subscription.'."\n"
+ .'* **PostPaid**: pay-as-you-go. Only this billing method is supported.'."\n",
+ 'type' => 'string',
+ 'example' => 'PostPaid',
+ ],
+ 'LoadBalancerType' => [
+ 'type' => 'string',
+ ],
+ 'AddressType' => [
+ 'type' => 'string',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'ens.interface.error',
+ 'errorMessage' => 'Failed to call API.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'Invalid%s',
+ 'errorMessage' => 'The specified parameter %s is invalid.',
+ ],
+ [
+ 'errorCode' => 'Missing%s',
+ 'errorMessage' => 'You must specify the parameter %s.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E\\",\\n \\"LoadBalancerId\\": \\"lb-5rcvo1n1t3hykfhhjwjgqp****\\",\\n \\"LoadBalancerName\\": \\"example\\",\\n \\"LoadBalancerStatus\\": \\"Active\\",\\n \\"EnsRegionId\\": \\"cn-chengdu-telecom\\",\\n \\"Address\\": \\"192.168.XX.XX\\",\\n \\"NetworkId\\": \\"n-5rwbi3g9zvgxcsiufwhw8****\\",\\n \\"VSwitchId\\": \\"vsw-5s78m2pdr9osa0j64bn78****\\",\\n \\"Bandwidth\\": -1,\\n \\"LoadBalancerSpec\\": \\"elb.s2.medium\\",\\n \\"CreateTime\\": \\"2019-05-21T12:22:00Z\\",\\n \\"EndTime\\": \\"2020-05-21T12:22:00Z\\",\\n \\"ListenerPorts\\": [\\n \\"80\\"\\n ],\\n \\"BackendServers\\": [\\n {\\n \\"ServerId\\": \\"i-5vb5h5njxiuhn48a****\\",\\n \\"Ip\\": \\"192.168.XX.XX\\\\n\\",\\n \\"Port\\": \\"0\\",\\n \\"Type\\": \\"ens\\",\\n \\"Weight\\": 100\\n }\\n ],\\n \\"ListenerPortsAndProtocols\\": [\\n {\\n \\"ListenerPort\\": 8080,\\n \\"ListenerProtocol\\": \\"tcp\\",\\n \\"Description\\": \\"test\\",\\n \\"ListenerForward\\": \\"off\\",\\n \\"ForwardPort\\": 0,\\n \\"BackendServerPort\\": 6000\\n }\\n ],\\n \\"AddressIPVersion\\": \\"ipv4\\",\\n \\"PayType\\": \\"PostPaid\\",\\n \\"LoadBalancerType\\": \\"\\",\\n \\"AddressType\\": \\"\\"\\n}","errorExample":""},{"type":"xml","example":"<DescribeLoadBalancerAttributeResponse>\\n <RequestId>473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E</RequestId>\\n <LoadBalancerId>lb-5rcvo1n1t3hykfhhjwjgqp****</LoadBalancerId>\\n <LoadBalancerName>example</LoadBalancerName>\\n <LoadBalancerStatus>Active</LoadBalancerStatus>\\n <EnsRegionId>cn-chengdu-telecom</EnsRegionId>\\n <Address>192.168.0.1</Address>\\n <NetworkId>n-5rwbi3g9zvgxcsiufwhw8****</NetworkId>\\n <VSwitchId>vsw-5s78m2pdr9osa0j64bn78****</VSwitchId>\\n <Bandwidth>2000</Bandwidth>\\n <LoadBalancerSpec>elb.s2.medium</LoadBalancerSpec>\\n <CreateTime>2019-05-21T12:22:00Z</CreateTime>\\n <EndTime>2020-05-21T12:22:00Z</EndTime>\\n <ListenerPorts>80</ListenerPorts>\\n <BackendServers>\\n <ServerId>i-5vb5h5njxiuhn48a****</ServerId>\\n <Ip>192.168.0.5\\n</Ip>\\n <Port>0</Port>\\n <Type>ens</Type>\\n <Weight>100</Weight>\\n </BackendServers>\\n <ListenerPortsAndProtocols>\\n <ListenerPort>8080</ListenerPort>\\n <ListenerProtocol>tcp</ListenerProtocol>\\n <Description>test</Description>\\n <ListenerForward>off</ListenerForward>\\n <ForwardPort>0</ForwardPort>\\n </ListenerPortsAndProtocols>\\n <AddressIPVersion>ipv4</AddressIPVersion>\\n <PayType>PostPaid</PayType>\\n</DescribeLoadBalancerAttributeResponse>","errorExample":""}]',
+ 'title' => 'DescribeLoadBalancerAttribute',
+ 'description' => '* You can call this operation up to 100 times per second.'."\n"
+ .'* You can call this operation up to 10 times per second per account.'."\n",
+ ],
+ 'DescribeLoadBalancers' => [
+ 'summary' => 'Queries the Edge Load Balance (ELB) instances that you have created.',
+ 'methods' => [
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'list',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '14851',
+ 'abilityTreeNodes' => [
+ 'FEATUREensU6BJRP',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'EnsRegionId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the Edge Node Service (ENS) node.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'cn-guangzhou-10',
+ ],
+ ],
+ [
+ 'name' => 'ServerId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the backend server.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'i-5f67ffjc004wwz0t****',
+ ],
+ ],
+ [
+ 'name' => 'LoadBalancerStatus',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The status of the listener for the ELB instance. Valid values:'."\n"
+ ."\n"
+ .'* **Active**: The listener for the instance can forward the received traffic based on forwarding rules.'."\n"
+ .'* **InActive**: The listener for the instance does not forward the received traffic.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'InActive',
+ 'enum' => [
+ 'InActive',
+ 'Active',
+ 'Locked',
+ 'Releasing',
+ ],
+ ],
+ ],
+ [
+ 'name' => 'LoadBalancerId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the ELB instance.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'lb-5q73cv04zeyh43lh74lp4****',
+ ],
+ ],
+ [
+ 'name' => 'LoadBalancerName',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The name of the ELB instance.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'example',
+ 'maxLength' => 128,
+ ],
+ ],
+ [
+ 'name' => 'NetworkId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the network.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'n-5s9ayrxsd9hszrlt5fgv2****',
+ ],
+ ],
+ [
+ 'name' => 'VSwitchId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the vSwitch.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'vsw-5sy773iy25rulsmgskmba****',
+ ],
+ ],
+ [
+ 'name' => 'Address',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The IP address that the ELB instance uses to provide services.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '10.0.XX.XX'."\n",
+ ],
+ ],
+ [
+ 'name' => 'EnsRegionIds',
+ 'in' => 'query',
+ 'style' => 'flat',
+ 'schema' => [
+ 'description' => 'The IDs of the Edge Node Service (ENS) nodes.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The IDs of the Edge Node Service (ENS) nodes.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'cn-chengdu-telecom-4',
+ ],
+ 'required' => false,
+ 'maxItems' => 100,
+ ],
+ ],
+ [
+ 'name' => 'PageNumber',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The page number. Default value: 1.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'example' => '1',
+ 'default' => '1',
+ ],
+ ],
+ [
+ 'name' => 'PageSize',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The number of entries to return on each page. Default value: 10. Valid values: **10** to **100**.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'maximum' => '100',
+ 'minimum' => '1',
+ 'example' => '100',
+ 'default' => '10',
+ ],
+ ],
+ [
+ 'name' => 'LoadBalancerType',
+ 'in' => 'query',
+ 'schema' => [
+ 'type' => 'string',
+ 'enum' => [
+ 'CLB',
+ 'InternetDR',
+ ],
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E',
+ ],
+ 'PageNumber' => [
+ 'description' => 'The page number.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '1',
+ ],
+ 'PageSize' => [
+ 'description' => 'The number of entries per page. Default value: 10. Valid values: **10** to **100**.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '100',
+ ],
+ 'TotalCount' => [
+ 'description' => 'The number of entries returned.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '6',
+ ],
+ 'LoadBalancers' => [
+ 'type' => 'object',
+ 'itemNode' => true,
+ 'properties' => [
+ 'LoadBalancer' => [
+ 'description' => 'An array of ELB instances.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'An array of CLB instances.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'LoadBalancerId' => [
+ 'description' => 'The ID of the ELB instance.'."\n",
+ 'type' => 'string',
+ 'example' => 'lb-5snthcyu1x10g7tywj7iu****',
+ ],
+ 'LoadBalancerName' => [
+ 'description' => 'The name of the ELB instance.'."\n",
+ 'type' => 'string',
+ 'example' => 'example',
+ ],
+ 'LoadBalancerStatus' => [
+ 'description' => 'The status of the listener for the ELB instance. Valid values:'."\n"
+ ."\n"
+ .'* **Active**: The listener for the instance can forward the received traffic based on forwarding rules.'."\n"
+ .'* **InActive**: The listener for the instance does not forward the received traffic.'."\n",
+ 'type' => 'string',
+ 'example' => 'InActive',
+ ],
+ 'Address' => [
+ 'description' => 'The IP address that the ELB instance uses to provide services.'."\n",
+ 'type' => 'string',
+ 'example' => '10.10.XX.XX',
+ ],
+ 'EnsRegionId' => [
+ 'description' => 'The ID of the ENS node.'."\n",
+ 'type' => 'string',
+ 'example' => 'cn-wuhan-telecom',
+ ],
+ 'NetworkId' => [
+ 'description' => 'The ID of the network.'."\n",
+ 'type' => 'string',
+ 'example' => 'n-5rz0rj1caexauilpsjx0w****',
+ ],
+ 'VSwitchId' => [
+ 'description' => 'The ID of the vSwitch.'."\n",
+ 'type' => 'string',
+ 'example' => 'vsw-5rllcjb3ol6duzjdnbm1om****',
+ ],
+ 'CreateTime' => [
+ 'description' => 'The time when the ELB instance was created. The time is displayed in UTC.'."\n",
+ 'type' => 'string',
+ 'example' => '2021-05-06T11:13:41Z',
+ ],
+ 'AddressIPVersion' => [
+ 'description' => 'The IP version. Valid values: ipv4 and ipv6.'."\n",
+ 'type' => 'string',
+ 'example' => 'ipv4',
+ ],
+ 'PayType' => [
+ 'description' => 'The billing method. Valid values:'."\n"
+ ."\n"
+ .'* **PrePaid**: subscription.'."\n"
+ .'* **PostPaid**: pay-as-you-go. Only this billing method is supported.'."\n",
+ 'type' => 'string',
+ 'example' => 'PostPaid',
+ ],
+ 'LoadBalancerType' => [
+ 'type' => 'string',
+ 'default' => 'CLB',
+ ],
+ 'AddressType' => [
+ 'type' => 'string',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'ens.interface.error',
+ 'errorMessage' => 'Failed to call API.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'Invalid%s',
+ 'errorMessage' => 'The specified parameter %s is invalid.',
+ ],
+ [
+ 'errorCode' => 'Missing%s',
+ 'errorMessage' => 'You must specify the parameter %s.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E\\",\\n \\"PageNumber\\": 1,\\n \\"PageSize\\": 100,\\n \\"TotalCount\\": 1,\\n \\"LoadBalancers\\": {\\n \\"LoadBalancer\\": [\\n {\\n \\"LoadBalancerId\\": \\"lb-5snthcyu1x10g7tywj7iu****\\",\\n \\"LoadBalancerName\\": \\"example\\",\\n \\"LoadBalancerStatus\\": \\"InActive\\",\\n \\"Address\\": \\"10.10.XX.XX\\",\\n \\"EnsRegionId\\": \\"cn-wuhan-telecom\\",\\n \\"NetworkId\\": \\"n-5rz0rj1caexauilpsjx0w****\\",\\n \\"VSwitchId\\": \\"vsw-5rllcjb3ol6duzjdnbm1om****\\",\\n \\"CreateTime\\": \\"2021-05-06T11:13:41Z\\",\\n \\"AddressIPVersion\\": \\"ipv4\\",\\n \\"PayType\\": \\"PostPaid\\",\\n \\"LoadBalancerType\\": \\"\\",\\n \\"AddressType\\": \\"\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<DescribeLoadBalancersResponse>\\n <RequestId>473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E</RequestId>\\n <PageNumber>1</PageNumber>\\n <PageSize>100</PageSize>\\n <TotalCount>6</TotalCount>\\n <LoadBalancers>\\n <LoadBalancerId>lb-5snthcyu1x10g7tywj7iu****</LoadBalancerId>\\n <LoadBalancerName>example</LoadBalancerName>\\n <LoadBalancerStatus>InActive</LoadBalancerStatus>\\n <Address>10.10.10.10</Address>\\n <EnsRegionId>cn-wuhan-telecom</EnsRegionId>\\n <NetworkId>n-5rz0rj1caexauilpsjx0w****</NetworkId>\\n <VSwitchId>vsw-5rllcjb3ol6duzjdnbm1om****</VSwitchId>\\n <CreateTime>2021-05-06T11:13:41Z</CreateTime>\\n <AddressIPVersion>ipv4</AddressIPVersion>\\n <PayType>PostPaid</PayType>\\n </LoadBalancers>\\n</DescribeLoadBalancersResponse>","errorExample":""}]',
+ 'title' => 'DescribeLoadBalancers',
+ 'description' => '* You can call this operation up to 100 times per second per account.'."\n"
+ .'* You can call this operation up to 10 times per second per user.'."\n",
+ ],
+ 'CreateLoadBalancerUDPListener' => [
+ 'summary' => 'Creates a User Datagram Protocol (UDP) listener.',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'create',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '15376',
+ 'abilityTreeNodes' => [
+ 'FEATUREens6XC4W4',
+ ],
+ 'tenantRelevance' => 'tenant',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'LoadBalancerId',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '负载均衡实例的ID。',
+ 'description' => 'The ID of the Edge Load Balancer (ELB) instance.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'lb-5q73cv04zeyh43lh74lp4****',
+ ],
+ ],
+ [
+ 'name' => 'ListenerPort',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '负载均衡实例前端使用的端口。 取值:1-65535。',
+ 'description' => 'The listener port that is used by Edge Load Balancer (ELB) to receive requests and forward the requests to backend servers. Valid values: **1** to **65535**.'."\n"
+ ."\n"
+ .'> You cannot specify ports 250, 4789, or 4790 for UDP listeners. They are system reserved ports.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => true,
+ 'maximum' => '65535',
+ 'minimum' => '1',
+ 'example' => '80',
+ ],
+ ],
+ [
+ 'name' => 'Description',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '设置监听的描述信息。 长度限制为1-80个字符,允许包含字母、数字、“-”、“/”、“.”和“_”等字符。支持中文描述。',
+ 'description' => 'The name of the listener. The value must be **1** to **80** characters in length.'."\n"
+ ."\n"
+ .'> The value cannot start with `http://` or `https://`.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'example',
+ 'maxLength' => 80,
+ 'minLength' => 1,
+ ],
+ ],
+ [
+ 'name' => 'Scheduler',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '调度算法。取值: wrr(默认值):权重值越高的后端服务器,被轮询到的次数(概率)也越高。 wlc:除了根据每台后端服务器设定的权重值来进行轮询,同时还考虑后端服务器的实际负载(即连接数)。当权重值相同时,当前连接数越小的后端服务器被轮询到的次数(概率)也越高。 rr:按照访问顺序依次将外部请求依序分发到后端服务器。 sch:基于源IP地址的一致性hash,相同的源地址会调度到相同的后端服务器。',
+ 'description' => 'The scheduling algorithm. Valid values:'."\n"
+ ."\n"
+ .'* **wrr**: Backend servers with higher weights receive more requests than backend servers with lower weights. This is the default value.'."\n"
+ .'* **wlc**: Requests are distributed based on the weight and load of each backend server. The load refers to the number of connections on a backend server. If two backend servers have the same weight, the backend server that has fewer connections receives more requests.'."\n"
+ .'* **rr**: Requests are distributed to backend servers in sequence.'."\n"
+ .'* **sch**: Consistent hashing that is based on source IP addresses. Requests from the same source IP address are distributed to the same backend server.'."\n"
+ .'* **qch**: Consistent hashing based on Quick UDP Internet Connection (QUIC) IDs. Requests that contain the same QUIC ID are scheduled to the same backend server.'."\n"
+ .'* **iqch**: Consistent hashing based on three specific bytes of iQUIC CID. Requests with the same second, third, and forth bytes are scheduled to the same backend server.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'wrr',
+ 'enum' => [
+ 'wrr',
+ 'wlc',
+ 'rr',
+ 'sch',
+ 'qch',
+ 'iqch',
+ ],
+ ],
+ ],
+ [
+ 'name' => 'HealthyThreshold',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '健康检查连续成功多少次后,将后端服务器的健康检查状态由fail判定为success。 取值:2-10。',
+ 'description' => 'The number of consecutive successful health checks that must occur before an unhealthy and inaccessible backend server is declared healthy and accessible. Valid values: **2** to **10**. Default value: **3**.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'maximum' => '10',
+ 'minimum' => '2',
+ 'example' => '4',
+ ],
+ ],
+ [
+ 'name' => 'UnhealthyThreshold',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '健康检查连续失败多少次后,将后端服务器的健康检查状态由success判定为fail。 取值:2-10。',
+ 'description' => 'The number of consecutive failed health checks that must occur before a healthy and accessible backend server is declared unhealthy and inaccessible. Valid values: **2** to **10**. Default value: **3**.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'maximum' => '10',
+ 'minimum' => '2',
+ 'example' => '4',
+ ],
+ ],
+ [
+ 'name' => 'HealthCheckConnectTimeout',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '接收来自运行状况检查的响应需要等待的时间。 如果后端ENS在指定的时间内没有正确响应,则判定为健康检查失败。 取值:1-300(秒)。默认为5秒',
+ 'description' => 'The timeout period for a health check response. If a backend server does not respond within the specified timeout period, the server fails the health check.'."\n"
+ ."\n"
+ .'* Default value: 5.'."\n"
+ .'* Valid values: **1** to **300**.'."\n"
+ .'* Unit: seconds.'."\n"
+ ."\n"
+ .'> If the value of the HealthCheckConnectTimeout parameter is smaller than that of the HealthCheckInterval parameter, the timeout period specified by the HealthCheckConnectTimeout parameter becomes invalid and the value of the HealthCheckInterval parameter is used as the timeout period.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'maximum' => '300',
+ 'minimum' => '1',
+ 'example' => '100',
+ ],
+ ],
+ [
+ 'name' => 'HealthCheckInterval',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '健康检查的时间间隔。 取值:1-50(秒)。',
+ 'description' => 'The interval at which health checks are performed. Valid values: **1** to **50**. Default value: **2**. Unit: seconds.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'maximum' => '50',
+ 'minimum' => '1',
+ 'example' => '3',
+ ],
+ ],
+ [
+ 'name' => 'BackendServerPort',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '负载均衡实例后端使用的端口,取值:1~65535',
+ 'description' => 'The port used by the backend ELB server of the ELB instance. Valid values: **1** to **65535**.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'maximum' => '65535',
+ 'minimum' => '1',
+ 'example' => '8080',
+ ],
+ ],
+ [
+ 'name' => 'HealthCheckConnectPort',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '健康检查使用的端口。取值:1-65535 不设置此参数时,表示使用后端服务端口(BackendServerPort)',
+ 'description' => 'The port that is used for health checks. Valid values: **1** to **65535**. If you leave this parameter empty, the port specified by BackendServerPort is used for health checks.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'maximum' => '65535',
+ 'minimum' => '1',
+ 'example' => '8080',
+ ],
+ ],
+ [
+ 'name' => 'HealthCheckReq',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => 'UDP监听健康检查的请求串,只允许包含字母、数字,最大长度限制为64个字符。',
+ 'description' => 'The request string for UDP listener health checks. The string can be up to 64 characters in length and can contain only letters and digits.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'hello',
+ 'maxLength' => 64,
+ ],
+ ],
+ [
+ 'name' => 'HealthCheckExp',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => 'UDP监听健康检查的响应串,只允许包含字母、数字,最大长度限制为64个字符。',
+ 'description' => 'The response string for UDP listener health checks. The string can be up to 64 characters in length and can contain only letters and digits.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'ok',
+ 'maxLength' => 64,
+ ],
+ ],
+ [
+ 'name' => 'EipTransmit',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'Specifies whether to enable Elastic IP address (EIP) pass-through. Valid values:'."\n"
+ ."\n"
+ .'* **on**'."\n"
+ .'* **off** (default)'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'on',
+ 'enum' => [
+ 'on',
+ 'off',
+ ],
+ ],
+ ],
+ [
+ 'name' => 'EstablishedTimeout',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The timeout period of a connection. Valid values: **10** to **900**. Default value: **900**. Unit: seconds.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'maximum' => '900',
+ 'minimum' => '10',
+ 'example' => '500',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => '06F00FBB-3D9E-4CCE-9D43-1A6946A75456',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'Invalid%s',
+ 'errorMessage' => 'The specified parameter %s is invalid.',
+ ],
+ [
+ 'errorCode' => 'Missing%s',
+ 'errorMessage' => 'You must specify the parameter %s.',
+ ],
+ [
+ 'errorCode' => 'IncorrectInstanceStatus',
+ 'errorMessage' => 'The current status of the resource does not support this operation.',
+ ],
+ [
+ 'errorCode' => 'ens.interface.error',
+ 'errorMessage' => 'Failed to call API.',
+ ],
+ [
+ 'errorCode' => 'LoadBalancerNotFound',
+ 'errorMessage' => 'The input parameter LoadBalancerId that is not found.',
+ ],
+ [
+ 'errorCode' => 'ListenerAlreadyExists',
+ 'errorMessage' => 'The listenerPort already exists.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"06F00FBB-3D9E-4CCE-9D43-1A6946A75456\\"\\n}","errorExample":""},{"type":"xml","example":"<CreateLoadBalancerUDPListenerResponse>\\n <RequestId>06F00FBB-3D9E-4CCE-9D43-1A6946A75456</RequestId>\\n</CreateLoadBalancerUDPListenerResponse>","errorExample":""}]',
+ 'title' => 'CreateLoadBalancerUDPListener',
+ 'description' => '* You can call this operation up to 100 times per second per account.'."\n"
+ .'* You can call this operation up to 10 times per second per user.'."\n",
+ ],
+ 'SetLoadBalancerUDPListenerAttribute' => [
+ 'summary' => 'Modifies the configurations of a UDP listener.',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'update',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '15896',
+ 'abilityTreeNodes' => [
+ 'FEATUREensKQ0M0M',
+ ],
+ 'tenantRelevance' => 'tenant',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'LoadBalancerId',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '负载均衡实例的ID。',
+ 'description' => 'The ID of the Edge Load Balancer (ELB) instance.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'lb-5pzipr2fszqtl2xf64uy5****',
+ ],
+ ],
+ [
+ 'name' => 'ListenerPort',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '负载均衡实例前端使用的端口。 取值:1-65535。',
+ 'description' => 'The listener port whose attributes are to be modified. Valid values: **1** to **65535**.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => true,
+ 'maximum' => '65535',
+ 'minimum' => '1',
+ 'example' => '80',
+ ],
+ ],
+ [
+ 'name' => 'Description',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '设置监听的描述信息。 长度限制为1-80个字符,允许包含字母、数字、“-”、“/”、“.”和“_”等字符。支持中文描述。',
+ 'description' => 'The name of the listener. The valuemust be **1** to **80** characters in length.'."\n"
+ ."\n"
+ .'> The value cannot start with `http://` or `https://`.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'example',
+ 'maxLength' => 80,
+ 'minLength' => 1,
+ ],
+ ],
+ [
+ 'name' => 'Scheduler',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '调度算法。取值: wrr(默认值):权重值越高的后端服务器,被轮询到的次数(概率)也越高。 wlc:除了根据每台后端服务器设定的权重值来进行轮询,同时还考虑后端服务器的实际负载(即连接数)。当权重值相同时,当前连接数越小的后端服务器被轮询到的次数(概率)也越高。 rr:按照访问顺序依次将外部请求依序分发到后端服务器。 sch:基于源IP地址的一致性hash,相同的源地址会调度到相同的后端服务器。',
+ 'description' => 'The scheduling algorithm. Valid values:'."\n"
+ ."\n"
+ .'* **wrr**: Backend servers with higher weights receive more requests than those with lower weights.'."\n"
+ .'* **wlc**: Requests are distributed based on the weights and number of connections to backend servers. If two backend servers have the same weight, the backend server that has fewer connections receives more requests.'."\n"
+ .'* **rr**: Requests are distributed to backend servers in sequence.'."\n"
+ .'* **sch**: consistent hashing based on source IP addresses. Requests from the same source IP address are distributed to the same backend server.'."\n"
+ .'* **qch**: consistent hashing based on QUIC connection IDs (CIDs). Requests that contain the same QUIC CID are distributed to the same backend server.'."\n"
+ .'* **iqch**: consistent hashing based on three specific bytes of iQUIC CIDs. Requests with the same second, third, and fourth bytes are distributed to the same backend server.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'wrr',
+ 'enum' => [
+ 'wrr',
+ 'wlc',
+ 'rr',
+ 'sch',
+ 'qch',
+ 'iqch',
+ ],
+ ],
+ ],
+ [
+ 'name' => 'HealthyThreshold',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '健康检查连续成功多少次后,将后端服务器的健康检查状态由fail判定为success。 取值:2-10。',
+ 'description' => 'The number of consecutive successful health checks that must occur before an unhealthy and inaccessible backend server is declared healthy and accessible. Valid values: **2** to **10**.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'maximum' => '10',
+ 'minimum' => '2',
+ 'example' => '4',
+ ],
+ ],
+ [
+ 'name' => 'UnhealthyThreshold',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '健康检查连续失败多少次后,将后端服务器的健康检查状态由success判定为fail。 取值:2-10。',
+ 'description' => 'The number of consecutive failed health checks that must occur before a healthy and accessible backend server is declared unhealthy and inaccessible. Valid values: **2** to **10**.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'maximum' => '10',
+ 'minimum' => '2',
+ 'example' => '4',
+ ],
+ ],
+ [
+ 'name' => 'HealthCheckConnectTimeout',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '接收来自运行状况检查的响应需要等待的时间。 如果后端ENS在指定的时间内没有正确响应,则判定为健康检查失败。 取值:1-300(秒)。默认为5秒',
+ 'description' => 'The timeout period of a health check response. If the backend ENS does not respond within the specified time, the health check fails.'."\n"
+ ."\n"
+ .'* Default value: 5.'."\n"
+ .'* Valid values: **1** to **300**.'."\n"
+ .'* Unit: seconds.'."\n"
+ ."\n"
+ .'> If the value of the HealthCheckTimeout property is smaller than the value of the HealthCheckInterval property, the timeout period specified by the HealthCheckTimeout property becomes invalid and the value of the HealthCheckInterval property is used as the timeout period.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'maximum' => '300',
+ 'minimum' => '1',
+ 'example' => '100',
+ ],
+ ],
+ [
+ 'name' => 'HealthCheckInterval',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '健康检查的时间间隔。 取值:1-50(秒)。',
+ 'description' => 'The interval at which health checks are performed. Valid values: **1** to **50**. Unit: seconds.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'maximum' => '50',
+ 'minimum' => '1',
+ 'example' => '5',
+ ],
+ ],
+ [
+ 'name' => 'HealthCheckConnectPort',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '健康检查使用的端口。取值:1-65535 不设置此参数时,表示使用后端服务端口(BackendServerPort)',
+ 'description' => 'The port that is used for health checks. Valid values: **1** to **65535**. If you leave this parameter empty, the port specified for BackendServerPort is used for health checks.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'maximum' => '65535',
+ 'minimum' => '1',
+ 'example' => '8080',
+ ],
+ ],
+ [
+ 'name' => 'HealthCheckReq',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => 'UDP监听健康检查的请求串,只允许包含字母、数字,最大长度限制为64个字符。',
+ 'description' => 'The request string for UDP listener health checks. The string can be up to 64 characters in length and can contain only letters and digits.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'hello',
+ 'maxLength' => 64,
+ ],
+ ],
+ [
+ 'name' => 'HealthCheckExp',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => 'UDP监听健康检查的响应串,只允许包含字母、数字,最大长度限制为64个字符。',
+ 'description' => 'The response string for UDP listener health checks. The string can be up to 64 characters in length and can contain only letters and digits.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'ok',
+ 'maxLength' => 64,
+ ],
+ ],
+ [
+ 'name' => 'EipTransmit',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'Specifies whether to enable elastic IP address (EIP) pass-through. Valid values:'."\n"
+ ."\n"
+ .'* **on**'."\n"
+ .'* **off** (default)'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'on',
+ 'enum' => [
+ 'on',
+ 'off',
+ ],
+ ],
+ ],
+ [
+ 'name' => 'EstablishedTimeout',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The timeout period of a connection. Valid values: **10** to **900**. Default value: **900**. Unit: seconds.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'maximum' => '900',
+ 'minimum' => '10',
+ 'example' => '500',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => '06F00FBB-3D9E-4CCE-9D43-1A6946A75456',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'Invalid%s',
+ 'errorMessage' => 'The specified parameter %s is invalid.',
+ ],
+ [
+ 'errorCode' => 'Missing%s',
+ 'errorMessage' => 'You must specify the parameter %s.',
+ ],
+ [
+ 'errorCode' => 'IncorrectInstanceStatus',
+ 'errorMessage' => 'The current status of the resource does not support this operation.',
+ ],
+ [
+ 'errorCode' => 'ens.interface.error',
+ 'errorMessage' => 'Failed to call API.',
+ ],
+ [
+ 'errorCode' => 'LoadBalancerNotFound',
+ 'errorMessage' => 'The input parameter LoadBalancerId that is not found.',
+ ],
+ [
+ 'errorCode' => 'IncorrectListenerStatus',
+ 'errorMessage' => 'The current status of the resource does not support this operation.',
+ ],
+ [
+ 'errorCode' => 'ListenerNotFound',
+ 'errorMessage' => 'Listener is not found.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"06F00FBB-3D9E-4CCE-9D43-1A6946A75456\\"\\n}","errorExample":""},{"type":"xml","example":"<SetLoadBalancerUDPListenerAttributeResponse>\\n <RequestId>06F00FBB-3D9E-4CCE-9D43-1A6946A75456</RequestId>\\n</SetLoadBalancerUDPListenerAttributeResponse>","errorExample":""}]',
+ 'title' => 'SetLoadBalancerUDPListenerAttribute',
+ 'description' => '* You can call this operation up to 100 times per second.'."\n"
+ .'* You can call this operation up to 10 times per second per account.'."\n",
+ ],
+ 'DescribeLoadBalancerUDPListenerAttribute' => [
+ 'summary' => 'Queries the configuration of a User Datagram Protocol (UDP) listener.',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'get',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'ListenerPort',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The listening port that you want to query. Valid values: **1** to **65535**.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => true,
+ 'maximum' => '65535',
+ 'minimum' => '0',
+ 'example' => '80',
+ ],
+ ],
+ [
+ 'name' => 'LoadBalancerId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the ELB instance.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'lb-5pzipr2fszqtl2xf64uy5****',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => '5D7597CF-1630-54EC-A945-624A33F2E7E8',
+ ],
+ 'ListenerPort' => [
+ 'description' => 'The listener port.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '80',
+ ],
+ 'Status' => [
+ 'description' => 'The status of the listener. Valid values:'."\n"
+ ."\n"
+ .'* **Running**'."\n"
+ .'* **Stopped**'."\n"
+ .'* **Starting**'."\n"
+ .'* **Configuring**'."\n"
+ .'* **Stopping**'."\n",
+ 'type' => 'string',
+ 'example' => 'Stopped',
+ ],
+ 'Bandwidth' => [
+ 'description' => 'The peak bandwidth of the Edge Load Balancer (ELB) instance. The default value is -1, which indicates that the bandwidth is not limited.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '5',
+ ],
+ 'Scheduler' => [
+ 'description' => 'The routing algorithm. Valid values:'."\n"
+ ."\n"
+ .'* **wrr**: Backend servers with higher weights receive more requests than those with lower weights.'."\n"
+ .'* **wlc**: Requests are distributed based on the weight and load of each backend server. The load refers to the number of connections to a backend server. If two backend servers have the same weight, the backend server that has fewer connections receives more requests.'."\n"
+ .'* **rr**: Requests are distributed to backend servers in sequence.'."\n"
+ .'* **sch**: consistent hashing that is based on source IP addresses. Requests from the same source IP address are distributed to the same backend server.'."\n"
+ .'* **qch**: consistent hashing that is based on QUIC connection IDs. Requests that contain the same QUIC connection ID are distributed to the same backend server.'."\n"
+ .'* **iqch**: consistent hashing that is based on specific three bytes of the iQUIC CIDs. Requests whose second to fourth bytes are the same are distributed to the same backend server.'."\n",
+ 'type' => 'string',
+ 'example' => 'wrr',
+ ],
+ 'HealthCheck' => [
+ 'description' => 'Specifies whether to enable the health check feature. Valid values:'."\n"
+ ."\n"
+ .'* **on**'."\n"
+ .'* **off**'."\n",
+ 'type' => 'string',
+ 'example' => 'on',
+ ],
+ 'HealthyThreshold' => [
+ 'description' => 'The number of consecutive successful health checks that must occur before an unhealthy and inaccessible backend server is declared healthy and accessible. Valid values: **2** to **10**.'."\n"
+ ."\n"
+ .'> This parameter takes effect only if you set HealthCheck to on.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '4',
+ ],
+ 'UnhealthyThreshold' => [
+ 'description' => 'The number of consecutive failed health checks that must occur before a healthy and accessible backend server is declared unhealthy and inaccessible. Valid values: **2** to **10**.'."\n"
+ ."\n"
+ .'> This parameter takes effect only if you set HealthCheck to on.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '4',
+ ],
+ 'HealthCheckConnectTimeout' => [
+ 'description' => 'The timeout period for a health check response. If a backend server does not respond within the specified timeout period, the server fails the health check.'."\n"
+ ."\n"
+ .'* Default value: 5.'."\n"
+ .'* Valid values: **1** to **300**.'."\n"
+ .'* Unit: seconds.'."\n"
+ ."\n"
+ .'> '."\n"
+ ."\n"
+ .'* This parameter takes effect only if the HealthCheck parameter is set to on.'."\n"
+ ."\n"
+ .'* If the value of the HealthCheckTimeout property is smaller than the value of the HealthCheckInterval property, the timeout period specified by the HealthCheckTimeout property becomes invalid and the value of the HealthCheckInterval property is used as the timeout period.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '100',
+ ],
+ 'HealthCheckInterval' => [
+ 'description' => 'The interval at which health checks are performed. Valid values: **1** to **50**. Unit: seconds.'."\n"
+ ."\n"
+ .'> This parameter takes effect only if you set HealthCheck to on.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '5',
+ ],
+ 'Description' => [
+ 'description' => 'The name of the listener.'."\n",
+ 'type' => 'string',
+ 'example' => 'example',
+ ],
+ 'BackendServerPort' => [
+ 'description' => 'The port used by the backend ELB server of the ELB instance. Valid values: **1** to **65535**.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '8080',
+ ],
+ 'HealthCheckConnectPort' => [
+ 'description' => 'The port that is used for health checks. Valid values: **1** to **65535**. If you leave this parameter empty, the port specified by BackendServerPort is used for health checks.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '8000',
+ ],
+ 'HealthCheckReq' => [
+ 'description' => 'The request string for UDP listener health checks. The string can be up to 64 characters in length and can contain only letters and digits.'."\n",
+ 'type' => 'string',
+ 'example' => 'hello',
+ ],
+ 'HealthCheckExp' => [
+ 'description' => 'The response string for UDP listener health checks. The string can be up to 64 characters in length and can contain only letters and digits.'."\n",
+ 'type' => 'string',
+ 'example' => 'ok',
+ ],
+ 'EipTransmit' => [
+ 'description' => 'Indicates whether EIP pass-through is enabled. Valid values:'."\n"
+ ."\n"
+ .'* **on**'."\n"
+ .'* **off** (default)'."\n",
+ 'type' => 'string',
+ 'example' => 'on',
+ ],
+ 'EstablishedTimeout' => [
+ 'description' => 'The timeout period of a connection. Valid values: **10** to **900**. Unit: seconds.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '500',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'ListenerNotFound',
+ 'errorMessage' => 'Listener is not found.',
+ ],
+ [
+ 'errorCode' => 'LoadBalancerNotFound',
+ 'errorMessage' => 'The input parameter LoadBalancerId that is not found.',
+ ],
+ [
+ 'errorCode' => 'ens.interface.error',
+ 'errorMessage' => 'Failed to call API.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"5D7597CF-1630-54EC-A945-624A33F2E7E8\\",\\n \\"ListenerPort\\": 80,\\n \\"Status\\": \\"Stopped\\",\\n \\"Bandwidth\\": 5,\\n \\"Scheduler\\": \\"wrr\\",\\n \\"HealthCheck\\": \\"on\\",\\n \\"HealthyThreshold\\": 4,\\n \\"UnhealthyThreshold\\": 4,\\n \\"HealthCheckConnectTimeout\\": 100,\\n \\"HealthCheckInterval\\": 5,\\n \\"Description\\": \\"example\\",\\n \\"BackendServerPort\\": 8080,\\n \\"HealthCheckConnectPort\\": 8000,\\n \\"HealthCheckReq\\": \\"hello\\",\\n \\"HealthCheckExp\\": \\"ok\\",\\n \\"EipTransmit\\": \\"on\\",\\n \\"EstablishedTimeout\\": 500\\n}","errorExample":""},{"type":"xml","example":"<DescribeLoadBalancerUDPListenerAttributeResponse>\\n <RequestId>5D7597CF-1630-54EC-A945-624A33F2E7E8</RequestId>\\n <ListenerPort>80</ListenerPort>\\n <Status>Stopped</Status>\\n <Bandwidth>5</Bandwidth>\\n <Scheduler>wrr</Scheduler>\\n <HealthCheck>on</HealthCheck>\\n <HealthyThreshold>4</HealthyThreshold>\\n <UnhealthyThreshold>4</UnhealthyThreshold>\\n <HealthCheckConnectTimeout>100</HealthCheckConnectTimeout>\\n <HealthCheckInterval>5</HealthCheckInterval>\\n <Description>example</Description>\\n <BackendServerPort>8080</BackendServerPort>\\n <HealthCheckConnectPort>8000</HealthCheckConnectPort>\\n <HealthCheckReq>hello</HealthCheckReq>\\n <HealthCheckExp>ok</HealthCheckExp>\\n <EipTransmit>on</EipTransmit>\\n</DescribeLoadBalancerUDPListenerAttributeResponse>","errorExample":""}]',
+ 'title' => 'DescribeLoadBalancerUDPListenerAttribute',
+ 'description' => '* You can call this operation up to 100 times per second per account.'."\n"
+ .'* You can call this operation up to 10 times per second per user.'."\n",
+ ],
+ 'CreateLoadBalancerTCPListener' => [
+ 'summary' => 'Creates a Transmission Control Protocol (TCP) listener.',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'create',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '15797',
+ 'abilityTreeNodes' => [
+ 'FEATUREens6XC4W4',
+ ],
+ 'tenantRelevance' => 'tenant',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'LoadBalancerId',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '负载均衡实例的ID。',
+ 'description' => 'The ID of the Edge Load Balancer (ELB) instance.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'lb-5ovkn1piwqmoqrfjdyhq4****',
+ ],
+ ],
+ [
+ 'name' => 'ListenerPort',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '负载均衡实例前端使用的端口。 取值:1-65535。',
+ 'description' => 'The listener port that is used by Edge Load Balancer (ELB) to receive requests and forward the requests to backend servers. Valid values: **1** to **65535**.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => true,
+ 'maximum' => '65535',
+ 'minimum' => '1',
+ 'example' => '80',
+ ],
+ ],
+ [
+ 'name' => 'Description',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '设置监听的描述信息。 长度限制为1-80个字符,允许包含字母、数字、“-”、“/”、“.”和“_”等字符。支持中文描述。',
+ 'description' => 'The name of the listener. The value must be **1** to **80** characters in length.'."\n"
+ ."\n"
+ .'> The value cannot start with `http://` or `https://`.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'example',
+ 'maxLength' => 80,
+ 'minLength' => 1,
+ ],
+ ],
+ [
+ 'name' => 'Scheduler',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '度算法。取值: wrr(默认值):权重值越高的后端服务器,被轮询到的次数(概率)也越高。 wlc:除了根据每台后端服务器设定的权重值来进行轮询,同时还考虑后端服务器的实际负载(即连接数)。当权重值相同时,当前连接数越小的后端服务器被轮询到的次数(概率)也越高。 rr:按照访问顺序依次将外部请求依序分发到后端服务器。 sch:基于源IP地址的一致性hash,相同的源地址会调度到相同的后端服务器。',
+ 'description' => 'The scheduling algorithm. Valid values:'."\n"
+ ."\n"
+ .'* **wrr** (default): Backend servers with higher weights receive more requests than backend servers with lower weights.'."\n"
+ .'* **wlc**: Requests are distributed based on the weights and number of connections to backend servers. If two backend servers have the same weight, the backend server that has fewer connections receives more requests.'."\n"
+ .'* **rr**: Requests are distributed to backend servers in sequence.'."\n"
+ .'* **sch**: consistent hashing based on source IP addresses. Requests from the same source IP address are distributed to the same backend server.'."\n"
+ .'* **qch**: consistent hashing based on QUIC connection IDs (CIDs). Requests that contain the same QUIC CID are distributed to the same backend server.'."\n"
+ .'* **iqch**: consistent hashing based on three specific bytes of iQUIC CIDs. Requests with the same second, third, and fourth bytes are distributed to the same backend server.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'wrr',
+ 'enum' => [
+ 'wrr',
+ 'wlc',
+ 'rr',
+ 'sch',
+ ],
+ ],
+ ],
+ [
+ 'name' => 'PersistenceTimeout',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '会话保持的超时时间。 取值:0~3600(秒)。 默认值:0,表示关闭会话保持。',
+ 'description' => 'The timeout period of session persistence.'."\n"
+ ."\n"
+ .'* Default value: 0. If the default value is used, the system disables session persistence.'."\n"
+ .'* Valid values: **0** to **3600**.'."\n"
+ .'* Unit: seconds.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'maximum' => '3600',
+ 'minimum' => '0',
+ 'example' => '0',
+ ],
+ ],
+ [
+ 'name' => 'EstablishedTimeout',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '连接超时时间。 取值:10~900(秒)。',
+ 'description' => 'The timeout period of a connection. Valid values: **10** to **900**. Default value: **900**. Unit: seconds.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'maximum' => '900',
+ 'minimum' => '10',
+ 'example' => '500',
+ ],
+ ],
+ [
+ 'name' => 'HealthyThreshold',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '健康检查连续成功多少次后,将后端服务器的健康检查状态由fail判定为success。 取值: 2~10。',
+ 'description' => 'The number of consecutive successful health checks that must occur before an unhealthy and inaccessible backend server is declared healthy and accessible. Valid values: **2** to **10**. Default value: **3**.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'maximum' => '10',
+ 'minimum' => '2',
+ 'example' => '4',
+ ],
+ ],
+ [
+ 'name' => 'UnhealthyThreshold',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '健康检查连续失败多少次后,将后端服务器的健康检查状态由success判定为fail。 取值:2~10。',
+ 'description' => 'The number of consecutive failed health checks that must occur before a healthy and accessible backend server is declared unhealthy and inaccessible. Valid values: **2** to **10**. Default value: **3**.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'maximum' => '10',
+ 'minimum' => '2',
+ 'example' => '4',
+ ],
+ ],
+ [
+ 'name' => 'HealthCheckConnectTimeout',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '每次健康检查响应的最大超时时间。 取值:1~300(秒)。 默认值:5。',
+ 'description' => 'The timeout period of a health check response. If a backend server does not respond within the specified timeout period, the server fails the health check.'."\n"
+ ."\n"
+ .'* Default value: 5.'."\n"
+ .'* Valid values: **1** to **300**.'."\n"
+ .'* Unit: seconds.'."\n"
+ ."\n"
+ .'> If the value of the HealthCheckConnectTimeout parameter is smaller than that of the HealthCheckInterval parameter, the timeout period specified by the HealthCheckConnectTimeout parameter is ignored and the period of time specified by the HealthCheckInterval parameter is used as the timeout period.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'maximum' => '300',
+ 'minimum' => '1',
+ 'example' => '100',
+ ],
+ ],
+ [
+ 'name' => 'HealthCheckInterval',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '健康检查的时间间隔。 取值:1~50(秒)。',
+ 'description' => 'The interval at which health checks are performed. Valid values: **1** to **50**. Default value: **2**. Unit: seconds.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'maximum' => '50',
+ 'minimum' => '1',
+ 'example' => '3',
+ ],
+ ],
+ [
+ 'name' => 'HealthCheckDomain',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '用于健康检查的域名',
+ 'description' => 'The domain name that you want to use for health checks.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'www.aliyundoc.com',
+ 'maxLength' => 80,
+ 'minLength' => 1,
+ ],
+ ],
+ [
+ 'name' => 'HealthCheckURI',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '用于健康检查的URI。长度限制为1~80,只能使用字母、数字、短横线(-)、正斜杠(/)、点号(.)、百分号(%)、#和&amp;这些字符。 URL不能只为/,但必须以/开头。 当TCP监听需要使用HTTP健康检查时可配置此参数,如不配置则按TCP健康检查。',
+ 'description' => 'The Uniform Resource Identifier (URI) that you want to use for health checks. The URI must be **1** to **80** characters in length.'."\n"
+ ."\n"
+ .'> The URL must start with `/` and contain characters other than `/`.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '/checkpreload.htm',
+ 'maxLength' => 80,
+ 'minLength' => 1,
+ ],
+ ],
+ [
+ 'name' => 'HealthCheckHttpCode',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '健康检查正常的HTTP状态码,多个状态码用逗号(,)分割。 取值:http_2xx(默认值) | http_3xx | http_4xx | http_5xx。',
+ 'description' => 'The HTTP status codes for a successful health check. Valid values:'."\n"
+ ."\n"
+ .'* **http\\_2xx** (default)'."\n"
+ .'* **http\\_3xx**.'."\n"
+ .'* **http\\_4xx**'."\n"
+ .'* **http\\_5xx**'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'http_2xx',
+ ],
+ ],
+ [
+ 'name' => 'HealthCheckType',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '健康检查类型。 取值:tcp(默认值) | http。',
+ 'description' => 'The type of health checks. Valid values:'."\n"
+ ."\n"
+ .'* **tcp** (default)'."\n"
+ .'* **http**'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'tcp',
+ 'enum' => [
+ 'tcp',
+ 'http',
+ ],
+ ],
+ ],
+ [
+ 'name' => 'BackendServerPort',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '负载均衡实例后端使用的端口,取值:1~65535',
+ 'description' => 'The port used by the backend ELB server of the ELB instance. Valid values: **1** to **65535**.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'maximum' => '65535',
+ 'minimum' => '1',
+ 'example' => '8080',
+ ],
+ ],
+ [
+ 'name' => 'HealthCheckConnectPort',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '健康检查使用的端口。 取值:1~65535。 不设置此参数时,表示使用后端服务端口(BackendServerPort)。',
+ 'description' => 'The port that is used for health checks. Valid values: **1** to **65535**. If you leave this parameter empty, the port specified for BackendServerPort is used for health checks.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'maximum' => '65535',
+ 'minimum' => '1',
+ 'example' => '8080',
+ ],
+ ],
+ [
+ 'name' => 'EipTransmit',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'Specifies whether to enable elastic IP address (EIP) pass-through. Valid values:'."\n"
+ ."\n"
+ .'* **on**'."\n"
+ .'* **off** (default)'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'on',
+ 'enum' => [
+ 'on',
+ 'off',
+ ],
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => '06F00FBB-3D9E-4CCE-9D43-1A6946A75456',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'Invalid%s',
+ 'errorMessage' => 'The specified parameter %s is invalid.',
+ ],
+ [
+ 'errorCode' => 'Missing%s',
+ 'errorMessage' => 'You must specify the parameter %s.',
+ ],
+ [
+ 'errorCode' => 'LoadBalancerNotFound',
+ 'errorMessage' => 'The input parameter loadBalancerId that is not found.',
+ ],
+ [
+ 'errorCode' => 'IncorrectInstanceStatus',
+ 'errorMessage' => 'The current status of the resource does not support this operation.',
+ ],
+ [
+ 'errorCode' => 'ListenerAlreadyExists',
+ 'errorMessage' => 'The listener already exists.',
+ ],
+ [
+ 'errorCode' => 'ens.interface.error',
+ 'errorMessage' => 'Failed to call API.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"06F00FBB-3D9E-4CCE-9D43-1A6946A75456\\"\\n}","errorExample":""},{"type":"xml","example":"<CreateLoadBalancerTCPListenerResponse>\\n <RequestId>06F00FBB-3D9E-4CCE-9D43-1A6946A75456</RequestId>\\n</CreateLoadBalancerTCPListenerResponse>","errorExample":""}]',
+ 'title' => 'CreateLoadBalancerTCPListener',
+ 'description' => '* You can call this operation up to 100 times per second per account.'."\n"
+ .'* You can call this operation up to 10 times per second per user.'."\n",
+ ],
+ 'SetLoadBalancerTCPListenerAttribute' => [
+ 'summary' => 'Modifies the configurations of a TCP listener.',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'update',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '15899',
+ 'abilityTreeNodes' => [
+ 'FEATUREens6XC4W4',
+ ],
+ 'tenantRelevance' => 'tenant',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'LoadBalancerId',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '负载均衡实例的ID。',
+ 'description' => 'The ID of the Edge Load Balancer (ELB) instance.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'lb-5snthcyu1x10g7tywj7iu****',
+ ],
+ ],
+ [
+ 'name' => 'ListenerPort',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '负载均衡实例前端使用的端口。 取值:1-65535。',
+ 'description' => 'The listener port whose attributes are to be modified. Valid values: **1** to **65535**.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => true,
+ 'maximum' => '65535',
+ 'minimum' => '1',
+ 'example' => '80',
+ ],
+ ],
+ [
+ 'name' => 'Description',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '设置监听的描述信息。 长度限制为1-80个字符,允许包含字母、数字、“-”、“/”、“.”和“_”等字符。支持中文描述。',
+ 'description' => 'The description of the listener. The description must be **1** to **80** characters in length.'."\n"
+ ."\n"
+ .'> The value cannot start with `http://` or `https://`.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'example',
+ 'maxLength' => 80,
+ 'minLength' => 1,
+ ],
+ ],
+ [
+ 'name' => 'Scheduler',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '度算法。取值: wrr(默认值):权重值越高的后端服务器,被轮询到的次数(概率)也越高。 wlc:除了根据每台后端服务器设定的权重值来进行轮询,同时还考虑后端服务器的实际负载(即连接数)。当权重值相同时,当前连接数越小的后端服务器被轮询到的次数(概率)也越高。 rr:按照访问顺序依次将外部请求依序分发到后端服务器。 sch:基于源IP地址的一致性hash,相同的源地址会调度到相同的后端服务器。',
+ 'description' => 'The scheduling algorithm. Valid values:'."\n"
+ ."\n"
+ .'* **wrr**: Backend servers with higher weights receive more requests than those with lower weights.'."\n"
+ .'* **wlc**: Requests are distributed based on the weights and number of connections to backend servers. If two backend servers have the same weight, the backend server that has fewer connections receives more requests.'."\n"
+ .'* **rr**: Requests are distributed to backend servers in sequence.'."\n"
+ .'* **sch**: consistent hashing based on source IP addresses. Requests from the same source IP address are distributed to the same backend server.'."\n"
+ .'* **qch**: consistent hashing based on QUIC connection IDs (CIDs). Requests that contain the same QUIC CID are distributed to the same backend server.'."\n"
+ .'* **iqch**: consistent hashing based on three specific bytes of iQUIC CIDs. Requests with the same second, third, and fourth bytes are distributed to the same backend server.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'wrr',
+ 'enum' => [
+ 'wrr',
+ 'wlc',
+ 'rr',
+ 'sch',
+ ],
+ ],
+ ],
+ [
+ 'name' => 'PersistenceTimeout',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '会话保持的超时时间。 取值:0~3600(秒)。 默认值:0,表示关闭会话保持。',
+ 'description' => 'The timeout period of session persistence.'."\n"
+ ."\n"
+ .'* Default value: 0. If the default value is used, the system disables session persistence.'."\n"
+ .'* Valid values: **0** to **3600**.'."\n"
+ .'* Unit: seconds.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'maximum' => '3600',
+ 'minimum' => '0',
+ 'example' => '0',
+ ],
+ ],
+ [
+ 'name' => 'EstablishedTimeout',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '连接超时时间。 取值:10~900(秒)。',
+ 'description' => 'The timeout period of a connection. Valid values: **10** to **900**. Unit: seconds.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'maximum' => '900',
+ 'minimum' => '10',
+ 'example' => '500',
+ ],
+ ],
+ [
+ 'name' => 'HealthyThreshold',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '健康检查连续成功多少次后,将后端服务器的健康检查状态由fail判定为success。 取值: 2~10。',
+ 'description' => 'The number of consecutive successful health checks that must occur before an unhealthy and inaccessible backend server is declared healthy and accessible. Valid values: **2** to **10**.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'maximum' => '10',
+ 'minimum' => '2',
+ 'example' => '4',
+ ],
+ ],
+ [
+ 'name' => 'UnhealthyThreshold',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '健康检查连续失败多少次后,将后端服务器的健康检查状态由success判定为fail。 取值:2~10。',
+ 'description' => 'The number of consecutive failed health checks that must occur before a healthy and accessible backend server is declared unhealthy and inaccessible. Valid values: **2** to **10**.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'maximum' => '10',
+ 'minimum' => '2',
+ 'example' => '4',
+ ],
+ ],
+ [
+ 'name' => 'HealthCheckConnectTimeout',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '每次健康检查响应的最大超时时间。 取值:1~300(秒)。 默认值:5。',
+ 'description' => 'The timeout period for a health check response. If the value of HealthCheckTimeout is smaller than the value of HealthCheckInterval, the timeout period specified by HealthCheckTimeout becomes invalid, and the value of HealthCheckInterval is used as the timeout period.'."\n"
+ ."\n"
+ .'* Default value: 5.'."\n"
+ .'* Valid values: **1** to **300**.'."\n"
+ .'* Unit: seconds.'."\n"
+ ."\n"
+ .'> If the value of the HealthCheckConnectTimeout parameter is smaller than that of the HealthCheckInterval parameter, the timeout period specified by the HealthCheckConnectTimeout parameter is ignored and the period of time specified by the HealthCheckInterval parameter is used as the timeout period.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'maximum' => '300',
+ 'minimum' => '1',
+ 'example' => '100',
+ ],
+ ],
+ [
+ 'name' => 'HealthCheckConnectPort',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '健康检查使用的端口。 取值:1~65535。 不设置此参数时,表示使用后端服务端口(BackendServerPort)。',
+ 'description' => 'The port that is used for health checks. Valid values: **1** to **65535**. If you leave this parameter empty, the port specified by BackendServerPort is used for health checks.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'maximum' => '65535',
+ 'minimum' => '1',
+ 'example' => '8000',
+ ],
+ ],
+ [
+ 'name' => 'HealthCheckInterval',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '健康检查的时间间隔。 取值:1~50(秒)。',
+ 'description' => 'The interval at which health checks are performed. Valid values: **1** to **50**. Unit: seconds.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'maximum' => '50',
+ 'minimum' => '1',
+ 'example' => '5',
+ ],
+ ],
+ [
+ 'name' => 'HealthCheckDomain',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '用于健康检查的域名',
+ 'description' => 'The domain name that you want to use for health checks.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'www.aliyundoc.com',
+ 'maxLength' => 80,
+ 'minLength' => 1,
+ ],
+ ],
+ [
+ 'name' => 'HealthCheckURI',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '用于健康检查的URI。长度限制为1~80,只能使用字母、数字、短横线(-)、正斜杠(/)、点号(.)、百分号(%)、#和&amp;这些字符。 URL不能只为/,但必须以/开头。 当TCP监听需要使用HTTP健康检查时可配置此参数,如不配置则按TCP健康检查。',
+ 'description' => 'The Uniform Resource Identifier (URI) that you want to use for health checks. The URI must be **1** to **80** characters in length.'."\n"
+ ."\n"
+ .'> The URL must start with `/` and contain characters other than `/`.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '/aliyundoc/index.html',
+ 'maxLength' => 80,
+ 'minLength' => 1,
+ ],
+ ],
+ [
+ 'name' => 'HealthCheckHttpCode',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '健康检查正常的HTTP状态码,多个状态码用逗号(,)分割。 取值:http_2xx(默认值) | http_3xx | http_4xx | http_5xx。',
+ 'description' => 'The HTTP status code for a successful health check. Valid values:'."\n"
+ ."\n"
+ .'* **http\\_2xx** (default)'."\n"
+ .'* **http\\_3xx**.'."\n"
+ .'* **http\\_4xx**'."\n"
+ .'* **http\\_5xx**'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'http_2xx',
+ ],
+ ],
+ [
+ 'name' => 'HealthCheckType',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '健康检查类型。 取值:tcp(默认值) | http。',
+ 'description' => 'The type of health checks. Valid values:'."\n"
+ ."\n"
+ .'* **tcp** (default)'."\n"
+ .'* **http**'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'tcp',
+ 'enum' => [
+ 'tcp',
+ 'http',
+ ],
+ ],
+ ],
+ [
+ 'name' => 'EipTransmit',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'Specifies whether to enable elastic IP address (EIP) pass-through. Valid values:'."\n"
+ ."\n"
+ .'* **on**'."\n"
+ .'* **off** (default)'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'on',
+ 'enum' => [
+ 'on',
+ 'off',
+ ],
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => '06F00FBB-3D9E-4CCE-9D43-1A6946A75456',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'ens.interface.error',
+ 'errorMessage' => 'An error occurred while call the API.',
+ ],
+ [
+ 'errorCode' => 'Invalid%s',
+ 'errorMessage' => 'The specified parameter %s is invalid.',
+ ],
+ [
+ 'errorCode' => 'Missing%s',
+ 'errorMessage' => 'You must specify the parameter %s.',
+ ],
+ [
+ 'errorCode' => 'LoadBalancerNotFound',
+ 'errorMessage' => 'The input parameter loadBalancerId that is not found.',
+ ],
+ [
+ 'errorCode' => 'IncorrectInstanceStatus',
+ 'errorMessage' => 'The current status of the resource does not support this operation.',
+ ],
+ [
+ 'errorCode' => 'ListenerNotFound',
+ 'errorMessage' => 'The input parameter listener that is not found.',
+ ],
+ [
+ 'errorCode' => 'IncorrectListenerStatus',
+ 'errorMessage' => 'The current status of the resource does not support this operation.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"06F00FBB-3D9E-4CCE-9D43-1A6946A75456\\"\\n}","errorExample":""},{"type":"xml","example":"<SetLoadBalancerTCPListenerAttributeResponse>\\n <RequestId>06F00FBB-3D9E-4CCE-9D43-1A6946A75456</RequestId>\\n</SetLoadBalancerTCPListenerAttributeResponse>","errorExample":""}]',
+ 'title' => 'SetLoadBalancerTCPListenerAttribute',
+ 'description' => '* You can call this operation up to 100 times per second per account.'."\n"
+ .'* You can call this operation up to 10 times per second per user.'."\n",
+ ],
+ 'DescribeLoadBalancerTCPListenerAttribute' => [
+ 'summary' => 'Queries the configurations of a Transmission Control Protocol (TCP) listener.',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'get',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'ListenerPort',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The listening port that you want to query. Valid values: **1** to **65535**.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => true,
+ 'maximum' => '65535',
+ 'minimum' => '0',
+ 'example' => '80',
+ ],
+ ],
+ [
+ 'name' => 'LoadBalancerId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the ELB instance.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'lb-5snthcyu1x10g7tywj7iu****',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E',
+ ],
+ 'ListenerPort' => [
+ 'description' => 'The frontend port that is used by the ELB instance.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '80',
+ ],
+ 'Status' => [
+ 'description' => 'The status of the listener. Valid values:'."\n"
+ ."\n"
+ .'* **Running**'."\n"
+ .'* **Stopped**'."\n"
+ .'* **Starting**'."\n"
+ .'* **Configuring**'."\n"
+ .'* **Stopping**'."\n",
+ 'type' => 'string',
+ 'example' => 'Stopped',
+ ],
+ 'Bandwidth' => [
+ 'description' => 'The peak bandwidth of the Edge Load Balancer (ELB) instance. The default value is -1, which indicates that the bandwidth is not limited.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '5',
+ ],
+ 'Scheduler' => [
+ 'description' => 'The routing algorithm. Valid values:'."\n"
+ ."\n"
+ .'* **wrr**: Backend servers with higher weights receive more requests than those with lower weights.'."\n"
+ .'* **wlc**: Requests are distributed based on the weight and load of each backend server. The load refers to the number of connections to a backend server. If two backend servers have the same weight, the backend server that has fewer connections receives more requests.'."\n"
+ .'* **rr**: Requests are distributed to backend servers in sequence.'."\n"
+ .'* **sch**: consistent hashing that is based on source IP addresses. Requests from the same source IP address are distributed to the same backend server.'."\n"
+ .'* **qch**: consistent hashing that is based on QUIC connection IDs. Requests that contain the same QUIC connection ID are distributed to the same backend server.'."\n"
+ .'* **iqch**: consistent hashing that is based on specific three bytes of the iQUIC CIDs. Requests whose second to fourth bytes are the same are distributed to the same backend server.'."\n",
+ 'type' => 'string',
+ 'example' => 'wrr',
+ ],
+ 'PersistenceTimeout' => [
+ 'description' => 'The timeout period of session persistence.'."\n"
+ ."\n"
+ .'* Default value: 0. If the default value is used, the system disables session persistence.'."\n"
+ .'* Valid values: **0** to **3600**.'."\n"
+ .'* Unit: seconds.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '0',
+ ],
+ 'EstablishedTimeout' => [
+ 'description' => 'The timeout period of a connection. Valid values: **10** to **900**. Unit: seconds.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '500',
+ ],
+ 'HealthCheck' => [
+ 'description' => 'Indicates whether the health check feature is enabled. Valid values:'."\n"
+ ."\n"
+ .'* **on**'."\n"
+ .'* **off**'."\n",
+ 'type' => 'string',
+ 'example' => 'on',
+ ],
+ 'HealthyThreshold' => [
+ 'description' => 'The number of consecutive successful health checks that must occur before an unhealthy and inaccessible backend server is declared healthy and accessible. Valid values: **2** to **10**.'."\n"
+ ."\n"
+ .'> This parameter is returned only if you set HealthCheck to on.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '4',
+ ],
+ 'UnhealthyThreshold' => [
+ 'description' => 'The number of consecutive failed health checks that must occur before a healthy and accessible backend server is declared unhealthy and inaccessible. Valid values: **2** to **10**.'."\n"
+ ."\n"
+ .'> This parameter is returned only if you set HealthCheck to on.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '4',
+ ],
+ 'HealthCheckConnectTimeout' => [
+ 'description' => 'The timeout period for a health check response. If a backend server does not respond within the specified timeout period, the server fails the health check.'."\n"
+ ."\n"
+ .'* Default value: 5.'."\n"
+ .'* Valid values: **1** to **300**.'."\n"
+ .'* Unit: seconds.'."\n"
+ ."\n"
+ .'> '."\n"
+ ."\n"
+ .'* This parameter takes effect only if the HealthCheck parameter is set to on.'."\n"
+ ."\n"
+ .'* If the value of the HealthCheckTimeout property is smaller than the value of the HealthCheckInterval property, the timeout period specified by the HealthCheckTimeout property becomes invalid and the value of the HealthCheckInterval property is used as the timeout period.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '100',
+ ],
+ 'HealthCheckInterval' => [
+ 'description' => 'The interval at which health checks are performed. Valid values: **1** to **50**. Unit: seconds.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '5',
+ ],
+ 'Description' => [
+ 'description' => 'The name of the listener.'."\n",
+ 'type' => 'string',
+ 'example' => 'example',
+ ],
+ 'HealthCheckHttpCode' => [
+ 'description' => 'The HTTP status codes for a successful health check. Valid values:'."\n"
+ ."\n"
+ .'* **http\\_2xx** (default)'."\n"
+ .'* **http\\_3xx**'."\n"
+ .'* **http\\_4xx**'."\n"
+ .'* **http\\_5xx**'."\n"
+ ."\n"
+ .'> This parameter is returned only if you set HealthCheck to on.'."\n",
+ 'type' => 'string',
+ 'example' => 'http_2xx',
+ ],
+ 'HealthCheckDomain' => [
+ 'description' => 'The domain name that is used for health checks.'."\n"
+ ."\n"
+ .'> This parameter is returned only if you set HealthCheck to on.'."\n",
+ 'type' => 'string',
+ 'example' => 'example.com',
+ ],
+ 'HealthCheckURI' => [
+ 'description' => 'The URI used for health checks. The URI must be **1** to **80** characters in length.'."\n"
+ ."\n"
+ .'> '."\n"
+ ."\n"
+ .'* A URL must start with a forward slash (`/`) but cannot contain only forward slashes (`/`).'."\n"
+ ."\n"
+ .'* This parameter takes effect only if the HealthCheck parameter is set to on.'."\n",
+ 'type' => 'string',
+ 'example' => '/example/index.html',
+ ],
+ 'HealthCheckType' => [
+ 'description' => 'The type of health checks. Valid values:'."\n"
+ ."\n"
+ .'* **tcp** (default)'."\n"
+ .'* **http**'."\n",
+ 'type' => 'string',
+ 'example' => 'tcp',
+ ],
+ 'BackendServerPort' => [
+ 'description' => 'The port used by the backend server of the ELB instance. Valid values: **1** to **65535**.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '8080',
+ ],
+ 'HealthCheckConnectPort' => [
+ 'description' => 'The port that is used for health checks. Valid values: **1** to **65535**. If an empty string is returned for this parameter, the port specified by BackendServerPort is used for health checks.'."\n"
+ ."\n"
+ .'> This parameter is returned only if you set HealthCheck to on.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '8000',
+ ],
+ 'EipTransmit' => [
+ 'description' => 'Indicates whether EIP pass-through is enabled. Valid values:'."\n"
+ ."\n"
+ .'* **on**'."\n"
+ .'* **off** (default)'."\n",
+ 'type' => 'string',
+ 'example' => 'on',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'ens.interface.error',
+ 'errorMessage' => 'An error occurred while call the API.',
+ ],
+ [
+ 'errorCode' => 'LoadBalancerNotFound',
+ 'errorMessage' => 'The input parameter loadBalancerId that is not found. ',
+ ],
+ [
+ 'errorCode' => 'ListenerNotFound',
+ 'errorMessage' => 'Listener is not found.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E\\",\\n \\"ListenerPort\\": 80,\\n \\"Status\\": \\"Stopped\\",\\n \\"Bandwidth\\": -1,\\n \\"Scheduler\\": \\"wrr\\",\\n \\"PersistenceTimeout\\": 0,\\n \\"EstablishedTimeout\\": 500,\\n \\"HealthCheck\\": \\"on\\",\\n \\"HealthyThreshold\\": 4,\\n \\"UnhealthyThreshold\\": 4,\\n \\"HealthCheckConnectTimeout\\": 100,\\n \\"HealthCheckInterval\\": 5,\\n \\"Description\\": \\"example\\",\\n \\"HealthCheckHttpCode\\": \\"http_2xx\\",\\n \\"HealthCheckDomain\\": \\"example.com\\",\\n \\"HealthCheckURI\\": \\"/example/index.html\\",\\n \\"HealthCheckType\\": \\"tcp\\",\\n \\"BackendServerPort\\": 8080,\\n \\"HealthCheckConnectPort\\": 8000,\\n \\"EipTransmit\\": \\"on\\"\\n}","errorExample":""},{"type":"xml","example":"<DescribeLoadBalancerTCPListenerAttributeResponse>\\n <RequestId>473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E</RequestId>\\n <ListenerPort>80</ListenerPort>\\n <Status>Stopped</Status>\\n <Bandwidth>5</Bandwidth>\\n <Scheduler>wrr</Scheduler>\\n <PersistenceTimeout>0</PersistenceTimeout>\\n <EstablishedTimeout>500</EstablishedTimeout>\\n <HealthCheck>on</HealthCheck>\\n <HealthyThreshold>4</HealthyThreshold>\\n <UnhealthyThreshold>4</UnhealthyThreshold>\\n <HealthCheckConnectTimeout>100</HealthCheckConnectTimeout>\\n <HealthCheckInterval>5</HealthCheckInterval>\\n <Description>example</Description>\\n <HealthCheckHttpCode>http_2xx</HealthCheckHttpCode>\\n <HealthCheckDomain>example.com</HealthCheckDomain>\\n <HealthCheckURI>/example/index.html</HealthCheckURI>\\n <HealthCheckType>tcp</HealthCheckType>\\n <BackendServerPort>8080</BackendServerPort>\\n <HealthCheckConnectPort>8000</HealthCheckConnectPort>\\n <EipTransmit>on</EipTransmit>\\n</DescribeLoadBalancerTCPListenerAttributeResponse>","errorExample":""}]',
+ 'title' => 'DescribeLoadBalancerTCPListenerAttribute',
+ 'description' => '* You can call this operation up to 100 times per second per account.'."\n"
+ .'* You can call this operation up to 10 times per second per user.'."\n",
+ ],
+ 'CreateLoadBalancerHTTPListener' => [
+ 'summary' => 'Creates an HTTP listener.',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'create',
+ 'abilityTreeCode' => '15849',
+ 'abilityTreeNodes' => [
+ 'FEATUREens6XC4W4',
+ ],
+ 'tenantRelevance' => 'tenant',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'LoadBalancerId',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '负载均衡实例的ID。',
+ 'description' => 'The ID of the Edge Load Balancer (ELB) instance.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'lb-5s7crik3yo3bp03gqrbp5****',
+ ],
+ ],
+ [
+ 'name' => 'ListenerPort',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '负载均衡实例前端使用的端口。 取值:1-65535。',
+ 'description' => 'The listener port that is used by Edge Load Balancer (ELB) to receive requests and forward the requests to backend servers. Valid values: **1** to **65535**.'."\n"
+ ."\n"
+ .'> We recommend that you use port 80 for HTTP.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => true,
+ 'maximum' => '65535',
+ 'minimum' => '1',
+ 'example' => '8080',
+ ],
+ ],
+ [
+ 'name' => 'ListenerForward',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '是否开启HTTP至HTTPS的转发。取值:on | off。',
+ 'description' => 'Specifies whether to enable redirection from HTTP to HTTPS. Valid values:'."\n"
+ ."\n"
+ .'* **on**'."\n"
+ .'* **off** (default)'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'off',
+ 'enum' => [
+ 'on',
+ 'off',
+ ],
+ ],
+ ],
+ [
+ 'name' => 'ForwardPort',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => 'HTTP至HTTPS的监听转发端口。',
+ 'description' => 'The listener port that is used to redirect HTTP requests to HTTPS.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'maximum' => '65535',
+ 'minimum' => '0',
+ 'example' => '0',
+ ],
+ ],
+ [
+ 'name' => 'Description',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '设置监听的描述信息。 长度限制为1-80个字符,允许包含字母、数字、“-”、“/”、“.”和“_”等字符。支持中文描述。',
+ 'description' => 'The name of the listener. The value must be **1** to **80** characters in length.'."\n"
+ ."\n"
+ .'> The value cannot start with `http://` or `https://`.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'Monitoring instructions'."\n",
+ 'maxLength' => 80,
+ 'minLength' => 1,
+ ],
+ ],
+ [
+ 'name' => 'XForwardedFor',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '是否开启通过X-Forwarded-For头字段获取来访者真实 IP。 取值为on。',
+ 'description' => 'Specifies whether to use the X-Forwarded-For header to obtain the real IP address of the client. Valid values:'."\n"
+ ."\n"
+ .'* **on**'."\n"
+ .'* **off** (default)'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'off',
+ 'enum' => [
+ 'on',
+ 'off',
+ ],
+ ],
+ ],
+ [
+ 'name' => 'Scheduler',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '调度算法。取值: wrr(默认值):权重值越高的后端服务器,被轮询到的次数(概率)也越高。 wlc:除了根据每台后端服务器设定的权重值来进行轮询,同时还考虑后端服务器的实际负载(即连接数)。当权重值相同时,当前连接数越小的后端服务器被轮询到的次数(概率)也越高。 rr:按照访问顺序依次将外部请求依序分发到后端服务器。',
+ 'description' => 'The scheduling algorithm. Valid values:'."\n"
+ ."\n"
+ .'* **wrr** (default): Backend servers with higher weights receive more requests than backend servers with lower weights.'."\n"
+ .'* **wlc**: Requests are distributed based on the weights and number of connections to backend servers. If two backend servers have the same weight, the backend server that has fewer connections receives more requests.'."\n"
+ .'* **rr**: Requests are distributed to backend servers in sequence.'."\n"
+ .'* **sch**: consistent hashing based on source IP addresses. Requests from the same source IP address are distributed to the same backend server.'."\n"
+ .'* **qch**: consistent hashing based on QUIC connection IDs (CIDs). Requests that contain the same QUIC CID are distributed to the same backend server.'."\n"
+ .'* **iqch**: consistent hashing based on three specific bytes of iQUIC CIDs. Requests with the same second, third, and fourth bytes are distributed to the same backend server.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'wrr',
+ 'enum' => [
+ 'wrr',
+ 'wlc',
+ 'rr',
+ ],
+ ],
+ ],
+ [
+ 'name' => 'HealthCheck',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '是否开启健康检查。 取值:on | off。',
+ 'description' => 'Specifies whether to enable the health check feature. Valid values:'."\n"
+ ."\n"
+ .'* **on**'."\n"
+ .'* **off** (default)'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'on',
+ ],
+ ],
+ [
+ 'name' => 'HealthCheckDomain',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '用于健康检查的域名,取值: $_ip: 后端服务器的私网IP。当指定了IP或该参数未指定时,负载均衡会使用各后端服务器的私网IP当做健康检查使用的域名。是否要支持? domain:域名长度为1-80字符,只能包含字母、数字、点号(.)和连字符(-)。 说明 在HealthCheck值为on时才会有效。',
+ 'description' => 'The domain name that you want to use for health checks.'."\n"
+ ."\n"
+ .'> This parameter takes effect only if you set HealthCheck to on.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'www.aliyundoc.com',
+ 'maxLength' => 80,
+ 'minLength' => 1,
+ ],
+ ],
+ [
+ 'name' => 'HealthCheckURI',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '用于健康检查的URI。 长度限制为1~80,只能使用字母、数字和”-/.%?#&amp;“这些字符。 URL不能只为”/“,但必须以”/“开头。 说明 在HealthCheck值为on时才会有效。',
+ 'description' => 'The URI used for health checks. The URI must be **1** to **80** characters in length.'."\n"
+ ."\n"
+ .'> '."\n"
+ ."\n"
+ .'* A URL must start with a forward slash (`/`) but cannot contain only forward slashes (`/`).'."\n"
+ ."\n"
+ .'* This parameter takes effect only if the HealthCheck parameter is set to on.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '/checkpreload.htm',
+ 'maxLength' => 80,
+ 'minLength' => 1,
+ ],
+ ],
+ [
+ 'name' => 'HealthyThreshold',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '健康检查连续成功多少次后,将后端服务器的健康检查状态由fail判定为success。 取值:2~10。 说明 在HealthCheck值为on时才会有效。',
+ 'description' => 'The number of consecutive successful health checks that must occur before an unhealthy and inaccessible backend server is declared healthy and accessible. Valid values: **2** to **10**. Default value: **3**.'."\n"
+ ."\n"
+ .'> This parameter takes effect only if you set HealthCheck to on.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'maximum' => '10',
+ 'minimum' => '2',
+ 'example' => '3',
+ ],
+ ],
+ [
+ 'name' => 'UnhealthyThreshold',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '健康检查连续失败多少次后,将后端服务器的健康检查状态由success判定为fail。 取值:2~10。 说明 在HealthCheck值为on时才会有效。',
+ 'description' => 'The number of consecutive failed health checks that must occur before a healthy and accessible backend server is declared unhealthy and inaccessible. Valid values: **2** to **10**. Default value: **3**.'."\n"
+ ."\n"
+ .'> This parameter takes effect only if you set HealthCheck to on.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'maximum' => '10',
+ 'minimum' => '2',
+ 'example' => '3',
+ ],
+ ],
+ [
+ 'name' => 'HealthCheckTimeout',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '接收来自运行状况检查的响应需要等待的时间。如果后端ECS在指定的时间内没有正确响应,则判定为健康检查失败。在HealthCheck值为on时才会有效。 取值:1~300(秒)。 说明 如果HealthCHeckTimeout的值小于HealthCheckInterval的值,则HealthCHeckTimeout无效,超时时间为HealthCheckInterval的值。',
+ 'description' => 'The timeout period of a health check response. If a backend server does not respond within the specified timeout period, the server fails the health check.'."\n"
+ ."\n"
+ .'* Default value: 5.'."\n"
+ .'* Valid values: **1** to **300**.'."\n"
+ .'* Unit: seconds.'."\n"
+ ."\n"
+ .'> '."\n"
+ ."\n"
+ .'* This parameter takes effect only if the HealthCheck parameter is set to on.'."\n"
+ ."\n"
+ .'* If the value of HealthCheckTimeout is smaller than the value of HealthCheckInterval, the timeout period specified by HealthCheckTimeout becomes invalid, and the value of HealthCheckInterval is used as the timeout period.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'maximum' => '300',
+ 'minimum' => '1',
+ 'example' => '5',
+ ],
+ ],
+ [
+ 'name' => 'HealthCheckConnectPort',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '健康检查的后端服务器的端口。 取值: 1~65535。 说明 在HealthCheck值为on时才会有效。',
+ 'description' => 'The backend port that is used for health checks. Valid values: **1** to **65535**.'."\n"
+ ."\n"
+ .'> This parameter takes effect only if you set HealthCheck to on.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'maximum' => '65535',
+ 'minimum' => '1',
+ 'example' => '30040',
+ ],
+ ],
+ [
+ 'name' => 'HealthCheckInterval',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '健康检查的时间间隔。 取值: 1~50(秒)。 说明 在HealthCheck值为on时才会有效。',
+ 'description' => 'The interval at which health checks are performed. Valid values: **1** to **50**. Default value: **2**. Unit: seconds.'."\n"
+ ."\n"
+ .'> This parameter takes effect only if you set HealthCheck to on.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'maximum' => '50',
+ 'minimum' => '1',
+ 'example' => '2',
+ ],
+ ],
+ [
+ 'name' => 'HealthCheckHttpCode',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '健康检查正常的HTTP状态码,多个状态码用逗号分隔。 默认值为http_2xx。 取值:http_2xx | http_3xx | http_4xx | http_5xx。 说明 在HealthCheck值为on时才会有效。',
+ 'description' => 'The HTTP status code for a successful health check. Valid values:'."\n"
+ ."\n"
+ .'* **http\\_2xx** (default)'."\n"
+ .'* **http\\_3xx**'."\n"
+ .'* **http\\_4xx**'."\n"
+ .'* **http\\_5xx**'."\n"
+ ."\n"
+ .'> This parameter takes effect only if you set HealthCheck to on.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'http_2xx',
+ ],
+ ],
+ [
+ 'name' => 'IdleTimeout',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '指定连接空闲超时时间,取值范围为1~60秒,默认值为15秒。 在超时时间内一直没有访问请求,负载均衡会暂时中断当前连接,直到一下次请求来临时重新建立新的连接。',
+ 'description' => 'The timeout period for idle connections. Default value: 15. Valid values: **1** to **60**. Unit: seconds.'."\n"
+ ."\n"
+ .'> If no request is received within the specified timeout period, ELB closes the connection. When a request is received, ELB creates a new connection.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'maximum' => '60',
+ 'minimum' => '1',
+ 'example' => '15',
+ ],
+ ],
+ [
+ 'name' => 'RequestTimeout',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '指定请求超时时间,取值范围为1~180秒,默认值为60秒。 在超时时间内后端服务器一直没有响应,负载均衡将放弃等待,给客户端返回 HTTP 504 错误码。',
+ 'description' => 'The timeout period of a request. Default value: 60. Valid values: **1** to **180**. Unit: seconds.'."\n"
+ ."\n"
+ .'> If no response is received from the backend server within the specified timeout period, ALB returns an HTTP 504 error code to the client.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'maximum' => '180',
+ 'minimum' => '1',
+ 'example' => '60',
+ ],
+ ],
+ [
+ 'name' => 'HealthCheckMethod',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The HTTP request method for health checks. Valid values:'."\n"
+ ."\n"
+ .'* **head** (default)'."\n"
+ .'* **get**'."\n"
+ ."\n"
+ .'> This parameter takes effect only if the HealthCheck parameter is set to on.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'head',
+ 'enum' => [
+ 'head',
+ 'get',
+ ],
+ ],
+ ],
+ [
+ 'name' => 'BackendServerPort',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The port used by the backend server of the ELB instance. Valid values: **1** to **65535**.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'maximum' => '65535',
+ 'minimum' => '1',
+ 'example' => '8080',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'ens.interface.error',
+ 'errorMessage' => 'An error occurred while call the API.',
+ ],
+ [
+ 'errorCode' => 'Invalid%s',
+ 'errorMessage' => 'The specified parameter %s is invalid.',
+ ],
+ [
+ 'errorCode' => 'Missing%s',
+ 'errorMessage' => 'You must specify the parameter %s.',
+ ],
+ [
+ 'errorCode' => 'LoadBalancerNotFound',
+ 'errorMessage' => 'The input parameter loadBalancerId that is not found.',
+ ],
+ [
+ 'errorCode' => 'IncorrectInstanceStatus',
+ 'errorMessage' => 'The current status of the resource does not support this operation.',
+ ],
+ [
+ 'errorCode' => 'ListenerAlreadyExists',
+ 'errorMessage' => 'The listenerPort already exists.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E\\"\\n}","errorExample":""},{"type":"xml","example":"<CreateLoadBalancerHTTPListenerResponse>\\n <RequestId>473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E</RequestId>\\n</CreateLoadBalancerHTTPListenerResponse>","errorExample":""}]',
+ 'title' => 'CreateLoadBalancerHTTPListener',
+ 'description' => '* You can call this operation up to 100 times per second per account.'."\n"
+ .'* You can call this operation up to 10 times per second per user.'."\n",
+ ],
+ 'SetLoadBalancerHTTPListenerAttribute' => [
+ 'summary' => 'Modifies the configurations of an HTTP listener.',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'update',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '15900',
+ 'abilityTreeNodes' => [
+ 'FEATUREens6XC4W4',
+ ],
+ 'tenantRelevance' => 'tenant',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'LoadBalancerId',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '负载均衡实例的ID。',
+ 'description' => 'The ID of the Edge Load Balancer (ELB) instance.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'lb-5snthcyu1x10g7tywj7iu****',
+ ],
+ ],
+ [
+ 'name' => 'ListenerPort',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '负载均衡实例前端使用的端口。 取值:1-65535。',
+ 'description' => 'The listener port whose attributes are to be modified. Valid values: **1** to **65535**.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => true,
+ 'maximum' => '65535',
+ 'minimum' => '1',
+ 'example' => '8080',
+ ],
+ ],
+ [
+ 'name' => 'Description',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '设置监听的描述信息。 长度限制为1-80个字符,允许包含字母、数字、“-”、“/”、“.”和“_”等字符。支持中文描述。',
+ 'description' => 'The name of the listener. The value must be **1** to **80** characters in length.'."\n"
+ ."\n"
+ .'> The value cannot start with `http://` or `https://`.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'http_8080',
+ 'maxLength' => 80,
+ 'minLength' => 1,
+ ],
+ ],
+ [
+ 'name' => 'Scheduler',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '调度算法。取值: wrr(默认值):权重值越高的后端服务器,被轮询到的次数(概率)也越高。 wlc:除了根据每台后端服务器设定的权重值来进行轮询,同时还考虑后端服务器的实际负载(即连接数)。当权重值相同时,当前连接数越小的后端服务器被轮询到的次数(概率)也越高。 rr:按照访问顺序依次将外部请求依序分发到后端服务器。',
+ 'description' => 'The scheduling algorithm. Valid values:'."\n"
+ ."\n"
+ .'* **wrr**: Backend servers with higher weights receive more requests than those with lower weights.'."\n"
+ .'* **wlc**: Requests are distributed based on the weights and number of connections to backend servers. If two backend servers have the same weight, the backend server that has fewer connections receives more requests.'."\n"
+ .'* **rr**: Requests are distributed to backend servers in sequence.'."\n"
+ .'* **sch**: consistent hashing based on source IP addresses. Requests from the same source IP address are distributed to the same backend server.'."\n"
+ .'* **qch**: consistent hashing based on QUIC connection IDs (CIDs). Requests that contain the same QUIC CID are distributed to the same backend server.'."\n"
+ .'* **iqch**: consistent hashing based on three specific bytes of iQUIC CIDs. Requests with the same second, third, and fourth bytes are distributed to the same backend server.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'wrr',
+ 'enum' => [
+ 'wrr',
+ 'wlc',
+ 'rr',
+ ],
+ ],
+ ],
+ [
+ 'name' => 'HealthCheck',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '是否开启健康检查。 取值:on | off。',
+ 'description' => 'Specifies whether to enable the health check feature. Valid values:'."\n"
+ ."\n"
+ .'* **on**'."\n"
+ .'* **off**'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'on',
+ ],
+ ],
+ [
+ 'name' => 'HealthCheckDomain',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '用于健康检查的域名,取值: $_ip: 后端服务器的私网IP。当指定了IP或该参数未指定时,负载均衡会使用各后端服务器的私网IP当做健康检查使用的域名。是否要支持? domain:域名长度为1-80字符,只能包含字母、数字、点号(.)和连字符(-)。 说明 在HealthCheck值为on时才会有效。',
+ 'description' => 'The domain name that is used for health checks.'."\n"
+ ."\n"
+ .'> This parameter takes effect only if you set HealthCheck to on.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'www.aliyundoc.com',
+ 'maxLength' => 80,
+ 'minLength' => 1,
+ ],
+ ],
+ [
+ 'name' => 'HealthCheckURI',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '用于健康检查的URI。 长度限制为1~80,只能使用字母、数字和”-/.%?#&amp;“这些字符。 URL不能只为”/“,但必须以”/“开头。 说明 在HealthCheck值为on时才会有效。',
+ 'description' => 'The URI used for health checks. The URI must be **1** to **80** characters in length.'."\n"
+ ."\n"
+ .'> '."\n"
+ ."\n"
+ .'* A URL must start with a forward slash (`/`) but cannot contain only forward slashes (`/`).'."\n"
+ ."\n"
+ .'* This parameter takes effect only if the HealthCheck parameter is set to on.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '/checkpreload.htm',
+ 'maxLength' => 80,
+ 'minLength' => 1,
+ ],
+ ],
+ [
+ 'name' => 'HealthyThreshold',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '健康检查连续成功多少次后,将后端服务器的健康检查状态由fail判定为success。 取值:2~10。 说明 在HealthCheck值为on时才会有效。',
+ 'description' => 'The number of consecutive successful health checks that must occur before an unhealthy and inaccessible backend server is declared healthy and accessible. Valid values: **2** to **10**.'."\n"
+ ."\n"
+ .'> This parameter takes effect only if you set HealthCheck to on.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'maximum' => '10',
+ 'minimum' => '2',
+ 'example' => '3',
+ ],
+ ],
+ [
+ 'name' => 'UnhealthyThreshold',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '健康检查连续失败多少次后,将后端服务器的健康检查状态由success判定为fail。 取值:2~10。 说明 在HealthCheck值为on时才会有效。',
+ 'description' => 'The number of consecutive failed health checks that must occur before a healthy and accessible backend server is declared unhealthy and inaccessible. Valid values: **2** to **10**.'."\n"
+ ."\n"
+ .'> This parameter takes effect only if you set HealthCheck to on.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'maximum' => '10',
+ 'minimum' => '2',
+ 'example' => '3',
+ ],
+ ],
+ [
+ 'name' => 'HealthCheckTimeout',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '接收来自运行状况检查的响应需要等待的时间。如果后端ECS在指定的时间内没有正确响应,则判定为健康检查失败。在HealthCheck值为on时才会有效。 取值:1~300(秒)。 说明 如果HealthCHeckTimeout的值小于HealthCheckInterval的值,则HealthCHeckTimeout无效,超时时间为HealthCheckInterval的值。',
+ 'description' => 'The timeout period of a health check response. If a backend server does not respond within the specified timeout period, the server fails to pass the health check.'."\n"
+ ."\n"
+ .'* Default value: 5.'."\n"
+ .'* Valid values: **1** to **300**.'."\n"
+ .'* Unit: seconds.'."\n"
+ ."\n"
+ .'> '."\n"
+ ."\n"
+ .'* This parameter takes effect only if the HealthCheck parameter is set to on.'."\n"
+ ."\n"
+ .'* If the value of HealthCheckTimeout is smaller than the value of HealthCheckInterval, the timeout period specified by HealthCheckTimeout becomes invalid, and the value of HealthCheckInterval is used as the timeout period.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'maximum' => '300',
+ 'minimum' => '1',
+ 'example' => '5',
+ ],
+ ],
+ [
+ 'name' => 'HealthCheckConnectPort',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '健康检查的后端服务器的端口。 取值: 1~65535。 说明 在HealthCheck值为on时才会有效。',
+ 'description' => 'The port that is used for health checks. Valid values: **1** to **65535**. If you leave this parameter empty, the port specified by BackendServerPort is used for health checks.'."\n"
+ ."\n"
+ .'> This parameter takes effect only if you set HealthCheck to on.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'maximum' => '65535',
+ 'minimum' => '1',
+ 'example' => '65500',
+ ],
+ ],
+ [
+ 'name' => 'HealthCheckInterval',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '健康检查的时间间隔。 取值: 1~50(秒)。 说明 在HealthCheck值为on时才会有效。',
+ 'description' => 'The interval at which health checks are performed. Valid values: **1** to **50**. Unit: seconds.'."\n"
+ ."\n"
+ .'> This parameter takes effect only if you set HealthCheck to on.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'maximum' => '50',
+ 'minimum' => '1',
+ 'example' => '2',
+ ],
+ ],
+ [
+ 'name' => 'HealthCheckHttpCode',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '健康检查正常的HTTP状态码,多个状态码用逗号分隔。 默认值为http_2xx。 取值:http_2xx | http_3xx | http_4xx | http_5xx。 说明 在HealthCheck值为on时才会有效。',
+ 'description' => 'The HTTP status code for a successful health check. Valid values:'."\n"
+ ."\n"
+ .'* **http\\_2xx** (default)'."\n"
+ .'* **http\\_3xx**.'."\n"
+ .'* **http\\_4xx**'."\n"
+ .'* **http\\_5xx**'."\n"
+ ."\n"
+ .'> This parameter takes effect only if you set HealthCheck to on.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'http_2xx',
+ ],
+ ],
+ [
+ 'name' => 'IdleTimeout',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '指定连接空闲超时时间,取值范围为1~60秒,默认值为15秒。 在超时时间内一直没有访问请求,负载均衡会暂时中断当前连接,直到一下次请求来临时重新建立新的连接。',
+ 'description' => 'The timeout period for idle connections. Default value: 15. Valid values: **1** to **60**. Unit: seconds.'."\n"
+ ."\n"
+ .'> If no request is received within the specified timeout period, ELB closes the connection. When another request is received, CLB establishes a new connection.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'maximum' => '60',
+ 'minimum' => '1',
+ 'example' => '15',
+ ],
+ ],
+ [
+ 'name' => 'RequestTimeout',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '指定请求超时时间,取值范围为1~180秒,默认值为60秒。 在超时时间内后端服务器一直没有响应,负载均衡将放弃等待,给客户端返回 HTTP 504 错误码。',
+ 'description' => 'The timeout period of requests. Default value: 60. Valid values: **1** to **180**. Unit: seconds.'."\n"
+ ."\n"
+ .'> If no response is received from the backend server within the specified timeout period, ELB returns an HTTP 504 error code to the client.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'maximum' => '180',
+ 'minimum' => '1',
+ 'example' => '60',
+ ],
+ ],
+ [
+ 'name' => 'HealthCheckMethod',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The HTTP request method for health checks. Valid values:'."\n"
+ ."\n"
+ .'* **head**'."\n"
+ .'* **get**'."\n"
+ ."\n"
+ .'> This parameter takes effect only if the HealthCheck parameter is set to on.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'head',
+ 'enum' => [
+ 'head',
+ 'get',
+ ],
+ ],
+ ],
+ [
+ 'name' => 'XForwardedFor',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'Specifies whether to use the X-Forwarded-For header to obtain the real IP address of the client. Valid values:'."\n"
+ ."\n"
+ .'* **on** (default)'."\n"
+ .'* **off**'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'on',
+ 'enum' => [
+ 'on',
+ 'off',
+ ],
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'ens.interface.error',
+ 'errorMessage' => 'An error occurred while call the API.',
+ ],
+ [
+ 'errorCode' => 'Invalid%s',
+ 'errorMessage' => 'The specified parameter %s is invalid.',
+ ],
+ [
+ 'errorCode' => 'Missing%s',
+ 'errorMessage' => 'You must specify the parameter %s.',
+ ],
+ [
+ 'errorCode' => 'LoadBalancerNotFound',
+ 'errorMessage' => 'The input parameter loadBalancerId that is not found.',
+ ],
+ [
+ 'errorCode' => 'IncorrectInstanceStatus',
+ 'errorMessage' => 'The current status of the resource does not support this operation.',
+ ],
+ [
+ 'errorCode' => 'ListenerNotFound',
+ 'errorMessage' => 'The input parameter listener that is not found.',
+ ],
+ [
+ 'errorCode' => 'IncorrectListenerStatus',
+ 'errorMessage' => 'The current status of the resource does not support this operation.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E\\"\\n}","errorExample":""},{"type":"xml","example":"<SetLoadBalancerHTTPListenerAttributeResponse>\\n <RequestId>473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E</RequestId>\\n</SetLoadBalancerHTTPListenerAttributeResponse>","errorExample":""}]',
+ 'title' => 'SetLoadBalancerHTTPListenerAttribute',
+ 'description' => '* You can call this operation up to 100 times per second per account.'."\n"
+ .'* You can call this operation up to 10 times per second per user.'."\n",
+ ],
+ 'DescribeLoadBalancerHTTPListenerAttribute' => [
+ 'summary' => 'Queries the configuration of an HTTP listener.',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'ListenerPort',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The listener port that you want to query. Valid values: **1 to 65535**.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => true,
+ 'maximum' => '65535',
+ 'minimum' => '0',
+ 'example' => '8080',
+ ],
+ ],
+ [
+ 'name' => 'LoadBalancerId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the ELB instance.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'lb-5snthcyu1x10g7tywj7iu****',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E',
+ ],
+ 'ListenerPort' => [
+ 'description' => 'The listener port.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '80',
+ ],
+ 'Status' => [
+ 'description' => 'The status of the listener. Valid values:'."\n"
+ ."\n"
+ .'* **Running**'."\n"
+ .'* **Stopped**'."\n"
+ .'* **Starting**'."\n"
+ .'* **Configuring**'."\n"
+ .'* **Stopping**'."\n",
+ 'type' => 'string',
+ 'example' => 'Running',
+ ],
+ 'Bandwidth' => [
+ 'description' => 'The peak bandwidth of the Edge Load Balancer (ELB) instance. The default value is -1, which indicates that the bandwidth is not limited.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '-1',
+ ],
+ 'Scheduler' => [
+ 'description' => 'The routing algorithm. Valid values:'."\n"
+ ."\n"
+ .'* **wrr**: Backend servers with higher weights receive more requests than those with lower weights.'."\n"
+ .'* **wlc**: Requests are distributed based on the weight and load of each backend server. The load refers to the number of connections to a backend server. If two backend servers have the same weight, the backend server that has fewer connections receives more requests.'."\n"
+ .'* **rr**: Requests are distributed to backend servers in sequence.'."\n"
+ .'* **sch**: consistent hashing that is based on source IP addresses. Requests from the same source IP address are distributed to the same backend server.'."\n"
+ .'* **qch**: consistent hashing that is based on QUIC connection IDs. Requests that contain the same QUIC connection ID are distributed to the same backend server.'."\n"
+ .'* **iqch**: consistent hashing that is based on specific three bytes of the iQUIC CIDs. Requests whose second to fourth bytes are the same are distributed to the same backend server.'."\n",
+ 'type' => 'string',
+ 'example' => 'wrr',
+ ],
+ 'HealthCheck' => [
+ 'description' => 'Indicates whether the health check feature is enabled. Valid values:'."\n"
+ ."\n"
+ .'* **on**'."\n"
+ .'* **off**'."\n",
+ 'type' => 'string',
+ 'example' => 'on',
+ ],
+ 'HealthyThreshold' => [
+ 'description' => 'The number of consecutive successful health checks that must occur before an unhealthy and inaccessible backend server is declared healthy and accessible. Valid values: **2** to **10**.'."\n"
+ ."\n"
+ .'> This parameter is returned only if you set HealthCheck to on.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '3',
+ ],
+ 'UnhealthyThreshold' => [
+ 'description' => 'The number of consecutive failed health checks that must occur before a healthy and accessible backend server is declared unhealthy and inaccessible. Valid values: **2** to **10**.'."\n"
+ ."\n"
+ .'> This parameter is returned only if you set HealthCheck to on.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '3',
+ ],
+ 'HealthCheckTimeout' => [
+ 'description' => 'The timeout period of a health check response. If a backend server does not respond within the specified timeout period, the server fails the health check.'."\n"
+ ."\n"
+ .'* Default value: 5.'."\n"
+ .'* Valid values: **1** to **300**.'."\n"
+ .'* Unit: seconds.'."\n"
+ ."\n"
+ .'> '."\n"
+ ."\n"
+ .'* This parameter takes effect only if the HealthCheck parameter is set to on.'."\n"
+ ."\n"
+ .'* If the value of HealthCheckTimeout is smaller than the value of HealthCheckInterval, the timeout period specified by HealthCheckTimeout becomes invalid, and the value of HealthCheckInterval is used as the timeout period.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '10',
+ ],
+ 'HealthCheckConnectPort' => [
+ 'description' => 'The port that is used for health checks. Valid values: **1** to **65535**. If you leave this parameter empty, the port specified by BackendServerPort is used for health checks.'."\n"
+ ."\n"
+ .'> This parameter is returned only if you set HealthCheck to on.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '5000',
+ ],
+ 'HealthCheckInterval' => [
+ 'description' => 'The interval at which health checks are performed. Valid values: **1** to **50**. Unit: seconds.'."\n"
+ ."\n"
+ .'> This parameter is returned only if you set HealthCheck to on.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '5',
+ ],
+ 'Description' => [
+ 'description' => 'The description of the listener. The description must be **1** to **80** characters in length.'."\n"
+ ."\n"
+ .'> The value cannot start with `http://` or `https://`.'."\n",
+ 'type' => 'string',
+ 'example' => 'abc',
+ ],
+ 'ListenerForward' => [
+ 'description' => 'Indicates whether HTTP-to-HTTPS redirection is enabled. Valid values:'."\n"
+ ."\n"
+ .'* **on**: HTTP-to-HTTPS redirection is enabled.'."\n"
+ .'* **off** (default)'."\n",
+ 'type' => 'string',
+ 'example' => 'off',
+ ],
+ 'ForwardPort' => [
+ 'description' => 'The listener port that is used to redirect HTTP requests to HTTPS.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '10002',
+ ],
+ 'RequestTimeout' => [
+ 'description' => 'The timeout period of requests. Default value: 60. Valid values: **1** to **180**. Unit: seconds.'."\n"
+ ."\n"
+ .'> If no response is received from the backend server within the specified timeout period, ELB returns an HTTP 504 error code to the client.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '60',
+ ],
+ 'IdleTimeout' => [
+ 'description' => 'The timeout period for idle connections. Default value: 15. Valid values: **1** to **60**. Unit: seconds.'."\n"
+ ."\n"
+ .'> If no request is received within the specified timeout period, ELB closes the connection. When another request is received, ELB establishes a new connection.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '15',
+ ],
+ 'HealthCheckHttpCode' => [
+ 'description' => 'The HTTP status codes for a successful health check. Valid values:'."\n"
+ ."\n"
+ .'* **http\\_2xx** (default)'."\n"
+ .'* **http\\_3xx**.'."\n"
+ .'* **http\\_4xx**'."\n"
+ .'* **http\\_5xx**'."\n"
+ ."\n"
+ .'> This parameter is returned only if you set HealthCheck to on.'."\n",
+ 'type' => 'string',
+ 'example' => 'http_2xx',
+ ],
+ 'HealthCheckDomain' => [
+ 'description' => 'The domain name that is used for health checks.'."\n"
+ ."\n"
+ .'> This parameter is returned only if you set HealthCheck to on.'."\n",
+ 'type' => 'string',
+ 'example' => 'www.example.com',
+ ],
+ 'HealthCheckURI' => [
+ 'description' => 'The URI used for health checks. The URI must be **1** to **80** characters in length.'."\n"
+ ."\n"
+ .'> '."\n"
+ ."\n"
+ .'* A URL must start with a forward slash (`/`) but cannot contain only forward slashes (`/`).'."\n"
+ ."\n"
+ .'* This parameter takes effect only if the HealthCheck parameter is set to on.'."\n",
+ 'type' => 'string',
+ 'example' => '/checkpreload.htm',
+ ],
+ 'ServerCertificateId' => [
+ 'description' => 'The ID of the server certificate.'."\n",
+ 'type' => 'string',
+ 'example' => '6027667',
+ ],
+ 'HealthCheckMethod' => [
+ 'description' => 'The health check method used in HTTP health checks. Valid values:'."\n"
+ ."\n"
+ .'* **head**: requests the head of the page.'."\n"
+ .'* **get**: requests the specified part of the page and returns the entity body.'."\n"
+ ."\n"
+ .'> This parameter is returned only if you set HealthCheck to on.'."\n",
+ 'type' => 'string',
+ 'example' => 'head',
+ ],
+ 'XForwardedFor' => [
+ 'description' => 'Indicates whether the X-Forwarded-For header is used to obtain the real IP address of the client. Valid values:'."\n"
+ ."\n"
+ .'* **on** (default)'."\n"
+ .'* **off**'."\n",
+ 'type' => 'string',
+ 'example' => 'on'."\n",
+ ],
+ 'BackendServerPort' => [
+ 'description' => 'The port used by the backend server of the ELB instance. Valid values: **1** to **65535**.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '8080',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'LoadBalancerNotFound',
+ 'errorMessage' => 'The input parameter loadBalancerId that is not found.',
+ ],
+ [
+ 'errorCode' => 'ListenerNotFound',
+ 'errorMessage' => 'Listener is not found.',
+ ],
+ [
+ 'errorCode' => 'ens.interface.error',
+ 'errorMessage' => 'Failed to call API.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E\\",\\n \\"ListenerPort\\": 80,\\n \\"Status\\": \\"Running\\",\\n \\"Bandwidth\\": -1,\\n \\"Scheduler\\": \\"wrr\\",\\n \\"HealthCheck\\": \\"on\\",\\n \\"HealthyThreshold\\": 3,\\n \\"UnhealthyThreshold\\": 3,\\n \\"HealthCheckTimeout\\": 10,\\n \\"HealthCheckConnectPort\\": 5000,\\n \\"HealthCheckInterval\\": 5,\\n \\"Description\\": \\"abc\\",\\n \\"ListenerForward\\": \\"off\\",\\n \\"ForwardPort\\": 10002,\\n \\"RequestTimeout\\": 60,\\n \\"IdleTimeout\\": 15,\\n \\"HealthCheckHttpCode\\": \\"http_2xx\\",\\n \\"HealthCheckDomain\\": \\"www.example.com\\",\\n \\"HealthCheckURI\\": \\"/checkpreload.htm\\",\\n \\"ServerCertificateId\\": \\"6027667\\",\\n \\"HealthCheckMethod\\": \\"head\\",\\n \\"XForwardedFor\\": \\"on\\\\n\\",\\n \\"BackendServerPort\\": 8080\\n}","errorExample":""},{"type":"xml","example":"<DescribeLoadBalancerHTTPListenerAttributeResponse>\\n <RequestId>473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E</RequestId>\\n <ListenerPort>8080</ListenerPort>\\n <Status>Running</Status>\\n <Bandwidth>50</Bandwidth>\\n <Scheduler>wrr</Scheduler>\\n <HealthCheck>on</HealthCheck>\\n <HealthyThreshold>3</HealthyThreshold>\\n <UnhealthyThreshold>3</UnhealthyThreshold>\\n <HealthCheckTimeout>10</HealthCheckTimeout>\\n <HealthCheckConnectPort>5000</HealthCheckConnectPort>\\n <HealthCheckInterval>5</HealthCheckInterval>\\n <Description>abc</Description>\\n <ListenerForward>off</ListenerForward>\\n <ForwardPort>10002</ForwardPort>\\n <RequestTimeout>60</RequestTimeout>\\n <IdleTimeout>15</IdleTimeout>\\n <HealthCheckHttpCode>http_2xx</HealthCheckHttpCode>\\n <HealthCheckDomain>www.example.com</HealthCheckDomain>\\n <HealthCheckURI>/checkpreload.htm</HealthCheckURI>\\n <ServerCertificateId>6027667</ServerCertificateId>\\n <HealthCheckMethod>head</HealthCheckMethod>\\n</DescribeLoadBalancerHTTPListenerAttributeResponse>","errorExample":""}]',
+ 'title' => 'DescribeLoadBalancerHTTPListenerAttribute',
+ 'description' => '* You can call this operation up to 100 times per second per account.'."\n"
+ .'* You can call this operation up to 10 times per second per user.'."\n",
+ ],
+ 'CreateLoadBalancerHTTPSListener' => [
+ 'summary' => 'Creates an HTTPS listener.',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'create',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'LoadBalancerId',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '负载均衡实例的ID。',
+ 'description' => 'The ID of the Edge Load Balancer (ELB) instance.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'lb-5s8w63yydi59w7klaikam****',
+ ],
+ ],
+ [
+ 'name' => 'ListenerPort',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '负载均衡实例前端使用的端口。 取值:1-65535。',
+ 'description' => 'The listening port that is used by Edge Load Balancer (ELB) to receive requests and forward the requests to backend servers. Valid values: **1** to **65535**.'."\n"
+ ."\n"
+ .'> We recommend that you use port 443 for HTTPS.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => true,
+ 'maximum' => '65535',
+ 'minimum' => '1',
+ 'example' => '8080',
+ ],
+ ],
+ [
+ 'name' => 'ListenerForward',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '是否开启HTTP至HTTPS的转发。取值:on | off。',
+ 'description' => 'Specifies whether to enable redirection from HTTP to HTTPS. Valid values:'."\n"
+ ."\n"
+ .'* **on**'."\n"
+ .'* **off** (default)'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'off',
+ 'enum' => [
+ 'on',
+ 'off',
+ ],
+ ],
+ ],
+ [
+ 'name' => 'ForwardPort',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => 'HTTP至HTTPS的监听转发端口。',
+ 'description' => 'The listener port that is used to redirect HTTP requests to HTTPS.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'maximum' => '65535',
+ 'minimum' => '1',
+ 'example' => '0',
+ ],
+ ],
+ [
+ 'name' => 'Description',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '设置监听的描述信息。 长度限制为1-80个字符,允许包含字母、数字、“-”、“/”、“.”和“_”等字符。支持中文描述。',
+ 'description' => 'The description of the listener. The description must be **1** to **80** characters in length.'."\n"
+ ."\n"
+ .'> The value cannot start with `http://` or `https://`.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'https_80',
+ 'maxLength' => 80,
+ 'minLength' => 1,
+ ],
+ ],
+ [
+ 'name' => 'Scheduler',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '调度算法。取值: wrr(默认值):权重值越高的后端服务器,被轮询到的次数(概率)也越高。 wlc:除了根据每台后端服务器设定的权重值来进行轮询,同时还考虑后端服务器的实际负载(即连接数)。当权重值相同时,当前连接数越小的后端服务器被轮询到的次数(概率)也越高。 rr:按照访问顺序依次将外部请求依序分发到后端服务器。',
+ 'description' => 'The scheduling algorithm. Valid values:'."\n"
+ ."\n"
+ .'* **wrr** (default): Backend servers with higher weights receive more requests than backend servers with lower weights.'."\n"
+ .'* **wlc**: Requests are distributed based on the weight and load of each backend server. The load refers to the number of connections on a backend server. If two backend servers have the same weight, the backend server that has fewer connections receives more requests.'."\n"
+ .'* **rr**: Requests are distributed to backend servers in sequence.'."\n"
+ .'* **sch**: consistent hashing based on source IP addresses. Requests from the same source IP address are distributed to the same backend server.'."\n"
+ .'* **qch**: consistent hashing based on QUIC connection IDs (CIDs). Requests that contain the same QUIC CID are distributed to the same backend server.'."\n"
+ .'* **iqch**: consistent hashing based on three specific bytes of iQUIC CIDs. Requests with the same second, third, and fourth bytes are distributed to the same backend server.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'wrr',
+ 'enum' => [
+ 'wrr',
+ 'wlc',
+ 'rr',
+ ],
+ ],
+ ],
+ [
+ 'name' => 'StickySessionType',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => 'cookie的处理方式。取值: insert:植入Cookie。 客户端第一次访问时,负载均衡会在返回请求中植入Cookie(即在HTTP/HTTPS响应报文中插入SERVERID),下次客户端携带此Cookie访问,负载均衡服务会将请求定向转发给之前记录到的后端服务器上。 server:重写Cookie。 负载均衡发现用户自定义了Cookie,将会对原来的Cookie进行重写,下次客户端携带新的Cookie访问,负载均衡服务会将请求定向转发给之前记录到的后端服务器。 说明 当StickySession的值为on时,必须指定该参数。',
+ 'description' => 'The method that is used to handle cookies. Valid values:'."\n"
+ ."\n"
+ .'* **insert**: inserts a cookie. ELB inserts a session cookie (SERVERID) into the first HTTP or HTTPS response that is sent to a client. Subsequent requests to ELB carry this cookie, and ELB determines the destination servers of the requests based on the cookies.'."\n"
+ .'* **server**: rewrites the original cookie. SLB rewrites the custom cookies in requests from a client. Subsequent requests from the client that carry the new cookie are forwarded to the same backend server as the first request.'."\n"
+ ."\n"
+ .'> This parameter is required when the StickySession parameter is set to on.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'insert',
+ 'enum' => [
+ 'insert',
+ 'server',
+ ],
+ ],
+ ],
+ [
+ 'name' => 'CookieTimeout',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => 'Cookie超时时间。 取值:1~86400(秒)。 说明 当StickySession为on且StickySessionType为insert时,该参数必选。',
+ 'description' => 'The timeout period of a cookie. Valid values: **1** to **86400**. Unit: seconds.'."\n"
+ ."\n"
+ .'> This parameter is required if you set StickySession to on and StickySessionType to insert.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'maximum' => '86400',
+ 'minimum' => '1',
+ 'example' => '100',
+ ],
+ ],
+ [
+ 'name' => 'Cookie',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '服务器上配置的Cookie。 长度为1-200,只能包含ASCII英文字母和数字字符,不能包含逗号、分号或空格,也不能以$开头。 说明 当StickySession为on且StickySessionType为server时,该参数必选。',
+ 'description' => 'The cookie that is configured on the server. The cookie must be **1** to **200** characters in length and contain only ASCII characters and digits.'."\n"
+ ."\n"
+ .'> This parameter is required if you set StickySession to on and StickySessionType to server.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'example',
+ ],
+ ],
+ [
+ 'name' => 'HealthCheck',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '是否开启健康检查。 取值:on | off。',
+ 'description' => 'Indicates whether the health check feature is enabled. Valid values:'."\n"
+ ."\n"
+ .'* **on**'."\n"
+ .'* **off**'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'on',
+ 'enum' => [
+ 'on',
+ 'off',
+ ],
+ ],
+ ],
+ [
+ 'name' => 'HealthCheckDomain',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '用于健康检查的域名,取值: $_ip: 后端服务器的私网IP。当指定了IP或该参数未指定时,负载均衡会使用各后端服务器的私网IP当做健康检查使用的域名。是否要支持? domain:域名长度为1-80字符,只能包含字母、数字、点号(.)和连字符(-)。 说明 在HealthCheck值为on时才会有效。',
+ 'description' => 'The domain name that you want to use for health checks.'."\n"
+ ."\n"
+ .'> This parameter takes effect only if you set HealthCheck to on.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'example.com',
+ 'maxLength' => 80,
+ 'minLength' => 1,
+ ],
+ ],
+ [
+ 'name' => 'HealthCheckURI',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '用于健康检查的URI。 长度限制为1~80,只能使用字母、数字和”-/.%?#&amp;“这些字符。 URL不能只为”/“,但必须以”/“开头。 说明 在HealthCheck值为on时才会有效。',
+ 'description' => 'The URI used for health checks. The URI must be **1** to **80** characters in length.'."\n"
+ ."\n"
+ .'> A URL must start with a forward slash (`/`) but cannot contain only forward slashes (`/`).'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '/checkpreload.htm',
+ 'maxLength' => 80,
+ 'minLength' => 1,
+ ],
+ ],
+ [
+ 'name' => 'HealthyThreshold',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '健康检查连续成功多少次后,将后端服务器的健康检查状态由fail判定为success。 取值:2~10。 说明 在HealthCheck值为on时才会有效。',
+ 'description' => 'The number of consecutive successful health checks that must occur before an unhealthy and inaccessible backend server is declared healthy and accessible. Valid values: **2** to **10**. Default value: **3**.'."\n"
+ ."\n"
+ .'> This parameter takes effect only if you set HealthCheck to on.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'maximum' => '10',
+ 'minimum' => '2',
+ 'example' => '3',
+ ],
+ ],
+ [
+ 'name' => 'UnhealthyThreshold',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '健康检查连续失败多少次后,将后端服务器的健康检查状态由success判定为fail。 取值:2~10。 说明 在HealthCheck值为on时才会有效。',
+ 'description' => 'The number of consecutive failed health checks that must occur before a healthy and accessible backend server is declared unhealthy and inaccessible. Valid values: **2** to **10**. Default value: **3**.'."\n"
+ ."\n"
+ .'> This parameter takes effect only if you set HealthCheck to on.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'maximum' => '10',
+ 'minimum' => '2',
+ 'example' => '3',
+ ],
+ ],
+ [
+ 'name' => 'HealthCheckTimeout',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '接收来自运行状况检查的响应需要等待的时间。如果后端ECS在指定的时间内没有正确响应,则判定为健康检查失败。在HealthCheck值为on时才会有效。 取值:1~300(秒)。 说明 如果HealthCHeckTimeout的值小于HealthCheckInterval的值,则HealthCHeckTimeout无效,超时时间为HealthCheckInterval的值。',
+ 'description' => 'The timeout period of a health check response. If a backend server does not respond within the specified timeout period, the server fails to pass the health check.'."\n"
+ ."\n"
+ .'* Default value: 5.'."\n"
+ .'* Valid values: **1** to **300**.'."\n"
+ .'* Unit: seconds.'."\n"
+ ."\n"
+ .'> '."\n"
+ ."\n"
+ .'* This parameter takes effect only if the HealthCheck parameter is set to on.'."\n"
+ ."\n"
+ .'* If the value of HealthCheckTimeout is smaller than the value of HealthCheckInterval, the timeout period specified by HealthCheckTimeout becomes invalid, and the value of HealthCheckInterval is used as the timeout period.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'maximum' => '300',
+ 'minimum' => '1',
+ 'example' => '5',
+ ],
+ ],
+ [
+ 'name' => 'HealthCheckConnectPort',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '健康检查的后端服务器的端口。 取值: 1~65535。 说明 在HealthCheck值为on时才会有效。',
+ 'description' => 'The port that is used for health checks. Valid values: **1** to **65535**. If you leave this parameter empty, the port specified by BackendServerPort is used for health checks.'."\n"
+ ."\n"
+ .'> This parameter takes effect only if you set HealthCheck to on.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'maximum' => '65535',
+ 'minimum' => '1',
+ 'example' => '11',
+ ],
+ ],
+ [
+ 'name' => 'HealthCheckInterval',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '健康检查的时间间隔。 取值: 1~50(秒)。 说明 在HealthCheck值为on时才会有效。',
+ 'description' => 'The interval at which health checks are performed. Valid values: **1** to **50**. Default value: **2**. Unit: seconds.'."\n"
+ ."\n"
+ .'> This parameter takes effect only if you set HealthCheck to on.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'maximum' => '50',
+ 'minimum' => '1',
+ 'example' => '2',
+ ],
+ ],
+ [
+ 'name' => 'HealthCheckHttpCode',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '健康检查正常的HTTP状态码,多个状态码用逗号分隔。 默认值为http_2xx。 取值:http_2xx | http_3xx | http_4xx | http_5xx。 说明 在HealthCheck值为on时才会有效。',
+ 'description' => 'The HTTP status code for a successful health check. Valid values:'."\n"
+ ."\n"
+ .'* **http\\_2xx** (default)'."\n"
+ .'* **http\\_3xx**'."\n"
+ .'* **http\\_4xx**'."\n"
+ .'* **http\\_5xx**'."\n"
+ ."\n"
+ .'> This parameter takes effect only if you set HealthCheck to on.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'http_2xx',
+ ],
+ ],
+ [
+ 'name' => 'IdleTimeout',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '指定连接空闲超时时间,取值范围为1~60秒,默认值为15秒。 在超时时间内一直没有访问请求,负载均衡会暂时中断当前连接,直到一下次请求来临时重新建立新的连接。',
+ 'description' => 'The timeout period for idle connections. Default value: 15. Valid values: **1** to **60**. Unit: seconds.'."\n"
+ ."\n"
+ .'> If no request is received within the specified timeout period, ELB closes the connection. When another request is received, ELB establishes a new connection.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'maximum' => '60',
+ 'minimum' => '1',
+ 'example' => '15',
+ ],
+ ],
+ [
+ 'name' => 'RequestTimeout',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '指定请求超时时间,取值范围为1~180秒,默认值为60秒。 在超时时间内后端服务器一直没有响应,负载均衡将放弃等待,给客户端返回 HTTP 504 错误码。',
+ 'description' => 'The timeout period of requests. Default value: 60. Valid values: **1** to **180**. Unit: seconds.'."\n"
+ ."\n"
+ .'> If no response is received from the backend server within the specified timeout period, ELB returns an HTTP 504 error code to the client.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'maximum' => '180',
+ 'minimum' => '1',
+ 'example' => '60',
+ ],
+ ],
+ [
+ 'name' => 'ServerCertificateId',
+ 'in' => 'query',
+ 'allowEmptyValue' => false,
+ 'schema' => [
+ 'title' => '服务器证书的ID。',
+ 'description' => 'The ID of the server certificate.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => '60276**',
+ ],
+ ],
+ [
+ 'name' => 'HealthCheckMethod',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The HTTP request method for health checks. Valid values:'."\n"
+ ."\n"
+ .'* **head** (default): requests the head of the page.'."\n"
+ .'* **get**: requests the specified part of the page and returns the entity body.'."\n"
+ ."\n"
+ .'> This parameter takes effect only if the HealthCheck parameter is set to on.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'head',
+ 'enum' => [
+ 'get',
+ 'head',
+ ],
+ ],
+ ],
+ [
+ 'name' => 'BackendServerPort',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The backend port that is used by the ELB instance. Valid values: **1** to **65535**.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'maximum' => '65535',
+ 'minimum' => '1',
+ 'example' => '8080',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'Invalid%s',
+ 'errorMessage' => 'The specified parameter %s is invalid.',
+ ],
+ [
+ 'errorCode' => 'Missing%s',
+ 'errorMessage' => 'You must specify the parameter %s.',
+ ],
+ [
+ 'errorCode' => 'LoadBalancerNotFound',
+ 'errorMessage' => 'The input parameter loadBalancerId that is not found. ',
+ ],
+ [
+ 'errorCode' => 'IncorrectInstanceStatus',
+ 'errorMessage' => 'The current status of the resource does not support this operation.',
+ ],
+ [
+ 'errorCode' => 'ServerCertificateNotFound',
+ 'errorMessage' => 'The input parameter serverCertificateId that is not found.',
+ ],
+ [
+ 'errorCode' => 'ens.interface.error',
+ 'errorMessage' => 'Failed to call API.',
+ ],
+ [
+ 'errorCode' => 'ListenerAlreadyExists',
+ 'errorMessage' => 'The listener already exists.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E\\"\\n}","errorExample":""},{"type":"xml","example":"<CreateLoadBalancerHTTPSListenerResponse>\\n <RequestId>473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E</RequestId>\\n</CreateLoadBalancerHTTPSListenerResponse>","errorExample":""}]',
+ 'title' => 'CreateLoadBalancerHTTPSListener',
+ 'description' => '* You can call this operation up to 100 times per second per account.'."\n"
+ .'* You can call this operation up to 10 times per second per user.'."\n",
+ ],
+ 'SetLoadBalancerHTTPSListenerAttribute' => [
+ 'summary' => 'Modifies the configurations of an HTTPS listener.',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'update',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'LoadBalancerId',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '负载均衡实例的ID。',
+ 'description' => 'The ID of the Edge Load Balancer (ELB) instance.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'lb-5snthcyu1x10g7tywj7iu****',
+ ],
+ ],
+ [
+ 'name' => 'ListenerPort',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '负载均衡实例前端使用的端口。 取值:1-65535。',
+ 'description' => 'The listener port whose attributes are to be modified. Valid values: **1** to **65535**.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => true,
+ 'maximum' => '65535',
+ 'minimum' => '1',
+ 'example' => '10002',
+ ],
+ ],
+ [
+ 'name' => 'Description',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '设置监听的描述信息。 长度限制为1-80个字符,允许包含字母、数字、“-”、“/”、“.”和“_”等字符。支持中文描述。',
+ 'description' => 'The name of the listener. The value must be **1** to **80** characters in length.'."\n"
+ ."\n"
+ .'> The value cannot start with `http://` or `https://`.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'Monitoring instructions',
+ 'maxLength' => 80,
+ 'minLength' => 1,
+ ],
+ ],
+ [
+ 'name' => 'Scheduler',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '调度算法。取值: wrr(默认值):权重值越高的后端服务器,被轮询到的次数(概率)也越高。 wlc:除了根据每台后端服务器设定的权重值来进行轮询,同时还考虑后端服务器的实际负载(即连接数)。当权重值相同时,当前连接数越小的后端服务器被轮询到的次数(概率)也越高。 rr:按照访问顺序依次将外部请求依序分发到后端服务器。',
+ 'description' => 'The scheduling algorithm. Valid values:'."\n"
+ ."\n"
+ .'* **wrr**: Backend servers with higher weights receive more requests than those with lower weights.'."\n"
+ .'* **wlc**: Requests are distributed based on the weights and number of connections to backend servers. If two backend servers have the same weight, the backend server that has fewer connections receives more requests.'."\n"
+ .'* **rr**: Requests are distributed to backend servers in sequence.'."\n"
+ .'* **sch**: consistent hashing based on source IP addresses. Requests from the same source IP address are distributed to the same backend server.'."\n"
+ .'* **qch**: consistent hashing based on QUIC connection IDs (CIDs). Requests that contain the same QUIC CID are distributed to the same backend server.'."\n"
+ .'* **iqch**: consistent hashing based on three specific bytes of iQUIC CIDs. Requests with the same second, third, and fourth bytes are distributed to the same backend server.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'wrr',
+ 'enum' => [
+ 'wrr',
+ 'wlc',
+ 'rr',
+ ],
+ ],
+ ],
+ [
+ 'name' => 'HealthCheck',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '是否开启健康检查。 取值:on | off。',
+ 'description' => 'Specifies whether to enable the health check feature. Valid values:'."\n"
+ ."\n"
+ .'* **on**'."\n"
+ .'* **off**'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'on',
+ ],
+ ],
+ [
+ 'name' => 'HealthCheckDomain',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '用于健康检查的域名,取值: $_ip: 后端服务器的私网IP。当指定了IP或该参数未指定时,负载均衡会使用各后端服务器的私网IP当做健康检查使用的域名。是否要支持? domain:域名长度为1-80字符,只能包含字母、数字、点号(.)和连字符(-)。 说明 在HealthCheck值为on时才会有效。',
+ 'description' => 'The domain name that you want to use for health checks.'."\n"
+ ."\n"
+ .'> This parameter takes effect only if you set HealthCheck to on.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'www.example.com',
+ 'maxLength' => 80,
+ 'minLength' => 1,
+ ],
+ ],
+ [
+ 'name' => 'HealthCheckURI',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '用于健康检查的URI。 长度限制为1~80,只能使用字母、数字和”-/.%?#&amp;“这些字符。 URL不能只为”/“,但必须以”/“开头。 说明 在HealthCheck值为on时才会有效。',
+ 'description' => 'The URI used for health checks. The URI must be **1** to **80** characters in length.'."\n"
+ ."\n"
+ .'> '."\n"
+ ."\n"
+ .'* A URL must start with a forward slash (`/`) but cannot contain only forward slashes (`/`).'."\n"
+ ."\n"
+ .'* This parameter takes effect only if the HealthCheck parameter is set to on.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '/checkpreload.htm',
+ 'maxLength' => 80,
+ 'minLength' => 1,
+ ],
+ ],
+ [
+ 'name' => 'HealthyThreshold',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '健康检查连续成功多少次后,将后端服务器的健康检查状态由fail判定为success。 取值:2~10。 说明 在HealthCheck值为on时才会有效。',
+ 'description' => 'The number of consecutive successful health checks that must occur before an unhealthy and inaccessible backend server is declared healthy and accessible. Valid values: **2** to **10**.'."\n"
+ ."\n"
+ .'> This parameter takes effect only if you set HealthCheck to on.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'maximum' => '10',
+ 'minimum' => '2',
+ 'example' => '3',
+ ],
+ ],
+ [
+ 'name' => 'UnhealthyThreshold',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '健康检查连续失败多少次后,将后端服务器的健康检查状态由success判定为fail。 取值:2~10。 说明 在HealthCheck值为on时才会有效。',
+ 'description' => 'The number of consecutive failed health checks that must occur before a healthy and accessible backend server is declared unhealthy and inaccessible. Valid values: **2** to **10**.'."\n"
+ ."\n"
+ .'> This parameter takes effect only if you set HealthCheck to on.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'maximum' => '10',
+ 'minimum' => '2',
+ 'example' => '3',
+ ],
+ ],
+ [
+ 'name' => 'HealthCheckTimeout',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '接收来自运行状况检查的响应需要等待的时间。如果后端ECS在指定的时间内没有正确响应,则判定为健康检查失败。在HealthCheck值为on时才会有效。 取值:1~300(秒)。 说明 如果HealthCHeckTimeout的值小于HealthCheckInterval的值,则HealthCHeckTimeout无效,超时时间为HealthCheckInterval的值。',
+ 'description' => 'The timeout period of a health check response. If the backend ENS does not respond within the specified time, the health check fails.'."\n"
+ ."\n"
+ .'* Default value: 5.'."\n"
+ .'* Valid values: **1** to **300**.'."\n"
+ .'* Unit: seconds.'."\n"
+ ."\n"
+ .'> '."\n"
+ ."\n"
+ .'* This parameter takes effect only if the HealthCheck parameter is set to on.'."\n"
+ ."\n"
+ .'* If the value of the HealthCheckTimeout property is smaller than the value of the HealthCheckInterval property, the timeout period specified by the HealthCheckTimeout property becomes invalid and the value of the HealthCheckInterval property is used as the timeout period.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'maximum' => '300',
+ 'minimum' => '1',
+ 'example' => '9',
+ ],
+ ],
+ [
+ 'name' => 'HealthCheckConnectPort',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '健康检查的后端服务器的端口。 取值: 1~65535。 说明 在HealthCheck值为on时才会有效。',
+ 'description' => 'The port that is used for health checks. Valid values: **1** to **65535**. If you leave this parameter empty, the port specified by BackendServerPort is used for health checks.'."\n"
+ ."\n"
+ .'> This parameter takes effect only if you set HealthCheck to on.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'maximum' => '65535',
+ 'minimum' => '1',
+ 'example' => '7001',
+ ],
+ ],
+ [
+ 'name' => 'HealthCheckInterval',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '健康检查的时间间隔。 取值: 1~50(秒)。 说明 在HealthCheck值为on时才会有效。',
+ 'description' => 'The interval at which health checks are performed. Valid values: **1** to **50**. Unit: seconds.'."\n"
+ ."\n"
+ .'> This parameter takes effect only if you set HealthCheck to on.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'maximum' => '50',
+ 'minimum' => '1',
+ 'example' => '2',
+ ],
+ ],
+ [
+ 'name' => 'HealthCheckHttpCode',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '健康检查正常的HTTP状态码,多个状态码用逗号分隔。 默认值为http_2xx。 取值:http_2xx | http_3xx | http_4xx | http_5xx。 说明 在HealthCheck值为on时才会有效。',
+ 'description' => 'The HTTP status code for a successful health check. Valid values:'."\n"
+ ."\n"
+ .'* **http\\_2xx** (default)'."\n"
+ .'* **http\\_3xx**.'."\n"
+ .'* **http\\_4xx**'."\n"
+ .'* **http\\_5xx**'."\n"
+ ."\n"
+ .'> This parameter takes effect only if you set HealthCheck to on.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'http_2xx',
+ ],
+ ],
+ [
+ 'name' => 'IdleTimeout',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '指定连接空闲超时时间,取值范围为1~60秒,默认值为15秒。 在超时时间内一直没有访问请求,负载均衡会暂时中断当前连接,直到一下次请求来临时重新建立新的连接。',
+ 'description' => 'The timeout period for idle connections. Default value: 15. Valid values: **1** to **60**. Unit: seconds.'."\n"
+ ."\n"
+ .'> If no request is received within the specified timeout period, ELB closes the connection. When another request is received, ELB establishes a new connection.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'maximum' => '60',
+ 'minimum' => '1',
+ 'example' => '15',
+ ],
+ ],
+ [
+ 'name' => 'RequestTimeout',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '指定请求超时时间,取值范围为1~180秒,默认值为60秒。 在超时时间内后端服务器一直没有响应,负载均衡将放弃等待,给客户端返回 HTTP 504 错误码。',
+ 'description' => 'The timeout period of requests. Default value: 60. Valid values: **1** to **180**. Unit: seconds.'."\n"
+ ."\n"
+ .'> If no response is received from the backend server within the specified timeout period, ELB returns an HTTP 504 error code to the client.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'maximum' => '180',
+ 'minimum' => '1',
+ 'example' => '60',
+ ],
+ ],
+ [
+ 'name' => 'ServerCertificateId',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '服务器证书的ID。',
+ 'description' => 'The ID of the server certificate.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '6027667',
+ ],
+ ],
+ [
+ 'name' => 'HealthCheckMethod',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The HTTP request method for health checks. Valid values:'."\n"
+ ."\n"
+ .'* **head** (default): requests the head of the page.'."\n"
+ .'* **get**: requests the specified part of the page and returns the entity body.'."\n"
+ ."\n"
+ .'> This parameter takes effect only if the HealthCheck parameter is set to on.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'get',
+ 'enum' => [
+ 'head',
+ 'get',
+ ],
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'ens.interface.error',
+ 'errorMessage' => 'An error occurred while call the API.',
+ ],
+ [
+ 'errorCode' => 'Invalid%s',
+ 'errorMessage' => 'The specified parameter %s is invalid.',
+ ],
+ [
+ 'errorCode' => 'Missing%s',
+ 'errorMessage' => 'You must specify the parameter %s.',
+ ],
+ [
+ 'errorCode' => 'LoadBalancerNotFound',
+ 'errorMessage' => 'The input parameter loadBalancerId that is not found.',
+ ],
+ [
+ 'errorCode' => 'ListenerNotFound',
+ 'errorMessage' => 'The input parameter listener that is not found.',
+ ],
+ [
+ 'errorCode' => 'IncorrectListenerStatus',
+ 'errorMessage' => 'The current status of the resource does not support this operation.',
+ ],
+ [
+ 'errorCode' => 'ServerCertificateNotFound',
+ 'errorMessage' => 'The input parameter serverCertificateId that is not found.',
+ ],
+ [
+ 'errorCode' => 'IncorrectInstanceStatus',
+ 'errorMessage' => 'The current status of the resource does not support this operation.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E\\"\\n}","errorExample":""},{"type":"xml","example":"<SetLoadBalancerHTTPSListenerAttributeResponse>\\n <RequestId>473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E</RequestId>\\n</SetLoadBalancerHTTPSListenerAttributeResponse>","errorExample":""}]',
+ 'title' => 'SetLoadBalancerHTTPSListenerAttribute',
+ 'description' => '* You can call this operation up to 100 times per second per account.'."\n"
+ .'* You can call this operation up to 10 times per second per user.'."\n",
+ ],
+ 'DescribeLoadBalancerHTTPSListenerAttribute' => [
+ 'summary' => 'Queries the configurations of an HTTPS listener.',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'get',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'ListenerPort',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The listening port that you want to query. Valid values: **1** to **65535**.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => true,
+ 'maximum' => '65535',
+ 'minimum' => '0',
+ 'example' => '443',
+ ],
+ ],
+ [
+ 'name' => 'LoadBalancerId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the ELB instance.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'lb-5qoxu2rsr0ytanpn4r3i****',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E',
+ ],
+ 'ListenerPort' => [
+ 'description' => 'The frontend port that is used by the ELB instance. Valid values: **1** to **65535**.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '8080',
+ ],
+ 'Status' => [
+ 'description' => 'The status of the listener. Valid values:'."\n"
+ ."\n"
+ .'* **Running**'."\n"
+ .'* **Stopped**'."\n"
+ .'* **Starting**'."\n"
+ .'* **Configuring**'."\n"
+ .'* **Stopping**'."\n",
+ 'type' => 'string',
+ 'example' => 'Running',
+ ],
+ 'Bandwidth' => [
+ 'description' => 'The peak bandwidth of the Edge Load Balancer (ELB). The default value is -1, which indicates that the bandwidth is not limited.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '50',
+ ],
+ 'Scheduler' => [
+ 'description' => 'The routing algorithm. Valid values:'."\n"
+ ."\n"
+ .'* **wrr**: Backend servers with higher weights receive more requests than those with lower weights.'."\n"
+ .'* **wlc**: Requests are distributed based on the weight and load of each backend server. The load refers to the number of connections to a backend server. If two backend servers have the same weight, the backend server that has fewer connections receives more requests.'."\n"
+ .'* **rr**: Requests are distributed to backend servers in sequence.'."\n"
+ .'* **sch**: consistent hashing that is based on source IP addresses. Requests from the same source IP address are distributed to the same backend server.'."\n"
+ .'* **qch**: consistent hashing that is based on QUIC connection IDs. Requests that contain the same QUIC connection ID are distributed to the same backend server.'."\n"
+ .'* **iqch**: consistent hashing that is based on specific three bytes of the iQUIC CIDs. Requests whose second to fourth bytes are the same are distributed to the same backend server.'."\n",
+ 'type' => 'string',
+ 'example' => 'wrr',
+ ],
+ 'HealthCheck' => [
+ 'description' => 'Indicates whether the health check feature is enabled. Valid values:'."\n"
+ ."\n"
+ .'* **on**'."\n"
+ .'* **off**'."\n",
+ 'type' => 'string',
+ 'example' => 'on',
+ ],
+ 'HealthyThreshold' => [
+ 'description' => 'The number of consecutive successful health checks that must occur before an unhealthy and inaccessible backend server is declared healthy and accessible. Valid values: **2** to **10**.'."\n"
+ ."\n"
+ .'> This parameter is returned only if the HealthCheck parameter is set to on.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '3',
+ ],
+ 'UnhealthyThreshold' => [
+ 'description' => 'The number of consecutive failed health checks that must occur before a healthy and accessible backend server is declared unhealthy and inaccessible. Valid values: **2** to **10**.'."\n"
+ ."\n"
+ .'> This parameter is returned only if the HealthCheck parameter is set to on.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '3',
+ ],
+ 'HealthCheckTimeout' => [
+ 'description' => 'The timeout period of a health check response. If a backend server does not respond within the specified timeout period, the server fails the health check.'."\n"
+ ."\n"
+ .'* Default value: 5.'."\n"
+ .'* Valid values: **1** to **300**.'."\n"
+ .'* Unit: seconds.'."\n"
+ ."\n"
+ .'> '."\n"
+ ."\n"
+ .'* This parameter takes effect only if the HealthCheck parameter is set to on.'."\n"
+ ."\n"
+ .'* If the value of HealthCheckTimeout is smaller than the value of HealthCheckInterval, the timeout period specified by HealthCheckTimeout becomes invalid, and the value of HealthCheckInterval is used as the timeout period.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '5',
+ ],
+ 'HealthCheckConnectPort' => [
+ 'description' => 'The port that is used for health checks. Valid values: **1** to **65535**. If an empty string is returned for this parameter, the port specified by BackendServerPort is used for health checks.'."\n"
+ ."\n"
+ .'> This parameter is returned only if the HealthCheck parameter is set to on.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '9902',
+ ],
+ 'HealthCheckInterval' => [
+ 'description' => 'The interval at which health checks are performed. Valid values: **1** to **50**. Unit: seconds.'."\n"
+ ."\n"
+ .'> This parameter is returned only if the HealthCheck parameter is set to on.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '5',
+ ],
+ 'Description' => [
+ 'description' => 'The description of the listener. The description must be **1** to **80** characters in length.'."\n",
+ 'type' => 'string',
+ 'example' => 'abc',
+ ],
+ 'ListenerForward' => [
+ 'description' => 'Indicates whether HTTP-to-HTTPS redirection is enabled. Valid values:'."\n"
+ ."\n"
+ .'* on'."\n"
+ .'* off'."\n",
+ 'type' => 'string',
+ 'example' => 'off',
+ ],
+ 'ForwardPort' => [
+ 'description' => 'The listener port that is used to redirect HTTP requests to HTTPS.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '0',
+ ],
+ 'RequestTimeout' => [
+ 'description' => 'The timeout period of requests. Default value: 60. Valid values: **1** to **180**. Unit: seconds.'."\n"
+ ."\n"
+ .'> If no response is received from the backend server within the specified timeout period, ELB returns an HTTP 504 error code to the client.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '60',
+ ],
+ 'IdleTimeout' => [
+ 'description' => 'The timeout period for idle connections. Default value: 15. Valid values: **1** to **60**. Unit: seconds.'."\n"
+ ."\n"
+ .'> If no request is received within the specified timeout period, ELB closes the connection. When another request is received, CLB establishes a new connection.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '15',
+ ],
+ 'HealthCheckHttpCode' => [
+ 'description' => 'The HTTP status code for a successful health check. Valid values:'."\n"
+ ."\n"
+ .'* **http\\_2xx** (default)'."\n"
+ .'* **http\\_3xx**.'."\n"
+ .'* **http\\_4xx**'."\n"
+ .'* **http\\_5xx**'."\n"
+ ."\n"
+ .'> This parameter is returned only if the HealthCheck parameter is set to on.'."\n",
+ 'type' => 'string',
+ 'example' => 'http_2xx',
+ ],
+ 'HealthCheckDomain' => [
+ 'description' => 'The domain name that is used for health checks.'."\n"
+ ."\n"
+ .'> This parameter is returned only if the HealthCheck parameter is set to on.'."\n",
+ 'type' => 'string',
+ 'example' => 'www.test.com',
+ ],
+ 'HealthCheckURI' => [
+ 'description' => 'The URI that is used for health checks. The URI must be **1** to **80** characters in length.'."\n"
+ ."\n"
+ .'* The URL must start with `/` and contain characters other than `/`.'."\n"
+ .'* This parameter is returned only if the HealthCheck parameter is set to on.'."\n",
+ 'type' => 'string',
+ 'example' => '/checkpreload.htm',
+ ],
+ 'ServerCertificateId' => [
+ 'description' => 'The ID of the server certificate.'."\n",
+ 'type' => 'string',
+ 'example' => '60276**',
+ ],
+ 'HealthCheckMethod' => [
+ 'description' => 'The health check method used in HTTP health checks. Valid values:'."\n"
+ ."\n"
+ .'* **head**: requests the head of the page.'."\n"
+ .'* **get**: requests the specified part of the page and returns the entity body.'."\n"
+ ."\n"
+ .'> This parameter is returned only if the HealthCheck parameter is set to on.'."\n",
+ 'type' => 'string',
+ 'example' => 'head',
+ ],
+ 'BackendServerPort' => [
+ 'description' => 'The port used by the backend server of the ELB instance. Valid values: **1** to **65535**.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '8080',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'LoadBalancerNotFound',
+ 'errorMessage' => 'The input parameter loadBalancerId that is not found.',
+ ],
+ [
+ 'errorCode' => 'ens.interface.error',
+ 'errorMessage' => 'An error occurred while call the API.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E\\",\\n \\"ListenerPort\\": 8080,\\n \\"Status\\": \\"Running\\",\\n \\"Bandwidth\\": 50,\\n \\"Scheduler\\": \\"wrr\\",\\n \\"HealthCheck\\": \\"on\\",\\n \\"HealthyThreshold\\": 3,\\n \\"UnhealthyThreshold\\": 3,\\n \\"HealthCheckTimeout\\": 5,\\n \\"HealthCheckConnectPort\\": 9902,\\n \\"HealthCheckInterval\\": 5,\\n \\"Description\\": \\"abc\\",\\n \\"ListenerForward\\": \\"off\\",\\n \\"ForwardPort\\": 0,\\n \\"RequestTimeout\\": 60,\\n \\"IdleTimeout\\": 15,\\n \\"HealthCheckHttpCode\\": \\"http_2xx\\",\\n \\"HealthCheckDomain\\": \\"www.test.com\\",\\n \\"HealthCheckURI\\": \\"/checkpreload.htm\\",\\n \\"ServerCertificateId\\": \\"60276**\\",\\n \\"HealthCheckMethod\\": \\"head\\",\\n \\"BackendServerPort\\": 8080\\n}","errorExample":""},{"type":"xml","example":"<DescribeLoadBalancerHTTPSListenerAttributeResponse>\\n <RequestId>473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E</RequestId>\\n <ListenerPort>8080</ListenerPort>\\n <Status>Running</Status>\\n <Bandwidth>50</Bandwidth>\\n <Scheduler>wrr</Scheduler>\\n <HealthCheck>on</HealthCheck>\\n <HealthyThreshold>3</HealthyThreshold>\\n <UnhealthyThreshold>3</UnhealthyThreshold>\\n <HealthCheckTimeout>5</HealthCheckTimeout>\\n <HealthCheckConnectPort>9902</HealthCheckConnectPort>\\n <HealthCheckInterval>5</HealthCheckInterval>\\n <Description>abc</Description>\\n <ListenerForward>off</ListenerForward>\\n <ForwardPort>0</ForwardPort>\\n <RequestTimeout>60</RequestTimeout>\\n <IdleTimeout>15</IdleTimeout>\\n <HealthCheckHttpCode>http_2xx</HealthCheckHttpCode>\\n <HealthCheckDomain>www.test.com</HealthCheckDomain>\\n <HealthCheckURI>/checkpreload.htm</HealthCheckURI>\\n <ServerCertificateId>6027667</ServerCertificateId>\\n <HealthCheckMethod>head</HealthCheckMethod>\\n</DescribeLoadBalancerHTTPSListenerAttributeResponse>","errorExample":""}]',
+ 'title' => 'DescribeLoadBalancerHTTPSListenerAttribute',
+ 'description' => '* You can call this operation up to 100 times per second per account.'."\n"
+ .'* You can call this operation up to 10 times per second per user.'."\n",
+ ],
+ 'StartLoadBalancerListener' => [
+ 'summary' => 'Enables a listener.',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'update',
+ 'abilityTreeCode' => '15345',
+ 'abilityTreeNodes' => [
+ 'FEATUREensO1PAP3',
+ ],
+ 'tenantRelevance' => 'tenant',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'ListenerPort',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The listener port to be enabled. Valid values: **1** to **65535**.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => true,
+ 'maximum' => '65535',
+ 'minimum' => '0',
+ 'example' => '8080',
+ ],
+ ],
+ [
+ 'name' => 'LoadBalancerId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the ELB instance.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'lb-5saivuir6b1mupxjfbhmk****',
+ ],
+ ],
+ [
+ 'name' => 'ListenerProtocol',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The frontend protocol that is used by the ELB instance. Valid values:'."\n"
+ ."\n"
+ .'* tcp'."\n"
+ .'* udp'."\n"
+ .'* http'."\n"
+ .'* https'."\n"
+ ."\n"
+ .'> This parameter is required if the same port is used by listeners that use different protocols.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'tcp',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'ens.interface.error',
+ 'errorMessage' => 'An error occurred while call the API.',
+ ],
+ [
+ 'errorCode' => 'Invalid%s',
+ 'errorMessage' => 'The specified parameter %s is invalid.',
+ ],
+ [
+ 'errorCode' => 'Missing%s',
+ 'errorMessage' => 'You must specify the parameter %s.',
+ ],
+ [
+ 'errorCode' => 'LoadBalancerNotFound',
+ 'errorMessage' => 'The input parameter loadBalancerId that is not found.',
+ ],
+ [
+ 'errorCode' => 'IncorrectInstanceStatus',
+ 'errorMessage' => 'The current status of the resource does not support this operation.',
+ ],
+ [
+ 'errorCode' => 'ListenerNotFound',
+ 'errorMessage' => 'The input parameter listener that is not found.',
+ ],
+ [
+ 'errorCode' => 'IncorrectListenerStatus',
+ 'errorMessage' => 'The current status of the resource does not support this operation.',
+ ],
+ [
+ 'errorCode' => 'TooManyListeners',
+ 'errorMessage' => 'More than 1 listener is found, please be more specified.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E\\"\\n}","errorExample":""},{"type":"xml","example":"<StartLoadBalancerListenerResponse>\\n <RequestId>473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E</RequestId>\\n</StartLoadBalancerListenerResponse>","errorExample":""}]',
+ 'title' => 'StartLoadBalancerListener',
+ 'description' => '* You can call this operation up to 100 times per second per account.'."\n"
+ .'* You can call this operation up to 10 times per second per user.'."\n",
+ ],
+ 'StopLoadBalancerListener' => [
+ 'summary' => 'Disables a listener.',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'update',
+ 'abilityTreeCode' => '15346',
+ 'abilityTreeNodes' => [
+ 'FEATUREensHUSGFJ',
+ ],
+ 'tenantRelevance' => 'tenant',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'ListenerPort',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The listener port that you want to disable. Valid values: **1** to **65535**.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => true,
+ 'maximum' => '65535',
+ 'minimum' => '0',
+ 'example' => '8080',
+ ],
+ ],
+ [
+ 'name' => 'LoadBalancerId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the ELB instance.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'lb-5sc1s9zrui8lpb8u7cl4f****',
+ ],
+ ],
+ [
+ 'name' => 'ListenerProtocol',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The frontend protocol that is used by the ELB instance.'."\n"
+ ."\n"
+ .'> This parameter is required if the same port is used by listeners that use different protocols.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'tcp',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'ens.interface.error',
+ 'errorMessage' => 'An error occurred while call the API.',
+ ],
+ [
+ 'errorCode' => 'Invalid%s',
+ 'errorMessage' => 'The specified parameter %s is invalid.',
+ ],
+ [
+ 'errorCode' => 'Missing%s',
+ 'errorMessage' => 'You must specify the parameter %s.',
+ ],
+ [
+ 'errorCode' => 'LoadBalancerNotFound',
+ 'errorMessage' => 'The input parameter loadBalancerId that is not found.',
+ ],
+ [
+ 'errorCode' => 'IncorrectInstanceStatus',
+ 'errorMessage' => 'The current status of the resource does not support this operation.',
+ ],
+ [
+ 'errorCode' => 'ListenerNotFound',
+ 'errorMessage' => 'The input parameter listener that is not found.',
+ ],
+ [
+ 'errorCode' => 'IncorrectListenerStatus',
+ 'errorMessage' => 'The current status of the resource does not support this operation.',
+ ],
+ [
+ 'errorCode' => 'TooManyListeners',
+ 'errorMessage' => 'More than 1 listener is found, please be more specified.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E\\"\\n}","errorExample":""},{"type":"xml","example":"<StopLoadBalancerListenerResponse>\\n <RequestId>473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E</RequestId>\\n</StopLoadBalancerListenerResponse>","errorExample":""}]',
+ 'title' => 'StopLoadBalancerListener',
+ 'description' => '* You can call this operation up to 100 times per second per account.'."\n"
+ .'* You can call this operation up to 10 times per second per user.'."\n",
+ ],
+ 'DeleteLoadBalancerListener' => [
+ 'summary' => 'Deletes a listener.',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'delete',
+ 'abilityTreeCode' => '15344',
+ 'abilityTreeNodes' => [
+ 'FEATUREensU6BJRP',
+ ],
+ 'tenantRelevance' => 'tenant',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'ListenerPort',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The frontend port that is used by the Edge Load Balance (ELB) instance. Valid values: **1** to **65535**.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => true,
+ 'maximum' => '65535',
+ 'minimum' => '1',
+ 'example' => '8080',
+ ],
+ ],
+ [
+ 'name' => 'LoadBalancerId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the ELB instance.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'lb-5snthcyu1x10g7tywj7iu****',
+ ],
+ ],
+ [
+ 'name' => 'ListenerProtocol',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The frontend protocol that is used by the ELB instance.'."\n"
+ ."\n"
+ .'> This parameter is required if the same port is used by listeners that use different protocols.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'tcp',
+ 'enum' => [
+ 'tcp',
+ 'udp',
+ 'http',
+ 'https',
+ ],
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'ens.interface.error',
+ 'errorMessage' => 'An error occurred while call the API.',
+ ],
+ [
+ 'errorCode' => 'Invalid%s',
+ 'errorMessage' => 'The specified parameter %s is invalid.',
+ ],
+ [
+ 'errorCode' => 'Missing%s',
+ 'errorMessage' => 'You must specify the parameter %s.',
+ ],
+ [
+ 'errorCode' => 'LoadBalancerNotFound',
+ 'errorMessage' => 'The input parameter loadBalancerId that is not found.',
+ ],
+ [
+ 'errorCode' => 'IncorrectInstanceStatus',
+ 'errorMessage' => 'The current status of the resource does not support this operation.',
+ ],
+ [
+ 'errorCode' => 'ListenerNotFound',
+ 'errorMessage' => 'The input parameter listener that is not found.',
+ ],
+ [
+ 'errorCode' => 'IncorrectListenerStatus',
+ 'errorMessage' => 'The current status of the resource does not support this operation.',
+ ],
+ [
+ 'errorCode' => 'TooManyListeners',
+ 'errorMessage' => 'More than 1 listener is found, please be more specified.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E\\"\\n}","errorExample":""},{"type":"xml","example":"<DeleteLoadBalancerListenerResponse>\\n <RequestId>473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E</RequestId>\\n</DeleteLoadBalancerListenerResponse>","errorExample":""}]',
+ 'title' => 'DeleteLoadBalancerListener',
+ 'description' => '* You can call this operation up to 100 times per second per account.'."\n"
+ .'* You can call this operation up to 10 times per second per user.'."\n",
+ ],
+ 'DescribeLoadBalancerListeners' => [
+ 'summary' => 'Queries listeners of Edge Load Balancer (ELB) instances.',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'list',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '35626',
+ 'abilityTreeNodes' => [
+ 'FEATUREensRH3EFN',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'LoadBalancerId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the ELB instance.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'lb-5s7crik3yo3p5****',
+ ],
+ ],
+ [
+ 'name' => 'PageNumber',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The page number.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'example' => '1',
+ 'default' => '1',
+ ],
+ ],
+ [
+ 'name' => 'PageSize',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The number of entries per page.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'maximum' => '100',
+ 'minimum' => '1',
+ 'example' => '10',
+ 'default' => '10',
+ ],
+ ],
+ [
+ 'name' => 'ListenerPort',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The listener port.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'maximum' => '65535',
+ 'minimum' => '1',
+ 'example' => '80',
+ ],
+ ],
+ [
+ 'name' => 'Description',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The description of the image.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'test',
+ 'maxLength' => 256,
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response.',
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => 'F3B261DD-3858-4D3C-877D-303ADF374600',
+ ],
+ 'PageNumber' => [
+ 'description' => 'The page number.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '1',
+ ],
+ 'PageSize' => [
+ 'description' => 'The number of entries per page.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '10',
+ ],
+ 'TotalCount' => [
+ 'description' => 'The total number of entries.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '49',
+ ],
+ 'Listeners' => [
+ 'type' => 'object',
+ 'itemNode' => true,
+ 'properties' => [
+ 'Listener' => [
+ 'description' => 'The listeners of the ELB instance.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The listener of the ELB instance.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'LoadBalancerId' => [
+ 'description' => 'The ID of the ELB instance.'."\n",
+ 'type' => 'string',
+ 'example' => 'lb-51a5fhou****',
+ ],
+ 'ListenerPort' => [
+ 'description' => 'The listening port.'."\n",
+ 'type' => 'string',
+ 'example' => '8080',
+ ],
+ 'Protocol' => [
+ 'description' => 'The network transmission protocol that is used by the listener.'."\n"
+ ."\n"
+ .'* **tcp**'."\n"
+ .'* **udp**'."\n"
+ .'* **http**'."\n"
+ .'* **https**'."\n",
+ 'type' => 'string',
+ 'example' => 'tcp',
+ ],
+ 'Description' => [
+ 'description' => 'The description of the listener.'."\n",
+ 'type' => 'string',
+ 'example' => 'test',
+ ],
+ 'Status' => [
+ 'description' => 'The status of the listener. Valid values:'."\n"
+ ."\n"
+ .'* **running**'."\n"
+ .'* **stopped**'."\n",
+ 'type' => 'string',
+ 'example' => 'running',
+ ],
+ 'ListenerForward' => [
+ 'description' => 'Indicates whether HTTP-to-HTTPS redirection is enabled for the listener. Valid values:'."\n"
+ ."\n"
+ .'* **on**'."\n"
+ .'* **off**'."\n",
+ 'type' => 'string',
+ 'example' => 'off',
+ ],
+ 'ForwardPort' => [
+ 'description' => 'The listener port that is used for HTTP-to-HTTPS redirection.'."\n",
+ 'type' => 'string',
+ 'example' => '443',
+ ],
+ 'CreateTime' => [
+ 'description' => 'The timestamp when the listener was created.'."\n",
+ 'type' => 'string',
+ 'example' => '2022-08-15T08:42:57Z',
+ ],
+ 'BackendServerPort' => [
+ 'description' => 'The backend port that is used by the ELB instance. Valid values: **1** to **65535**.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '3306',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'ens.interface.error',
+ 'errorMessage' => 'Failed to call API.',
+ ],
+ [
+ 'errorCode' => 'LoadBalancerNotFound',
+ 'errorMessage' => 'The input parameter LoadBalancerId that is not found.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"F3B261DD-3858-4D3C-877D-303ADF374600\\",\\n \\"PageNumber\\": 1,\\n \\"PageSize\\": 10,\\n \\"TotalCount\\": 49,\\n \\"Listeners\\": {\\n \\"Listener\\": [\\n {\\n \\"LoadBalancerId\\": \\"lb-51a5fhou****\\",\\n \\"ListenerPort\\": \\"8080\\",\\n \\"Protocol\\": \\"tcp\\",\\n \\"Description\\": \\"test\\",\\n \\"Status\\": \\"running\\",\\n \\"ListenerForward\\": \\"off\\",\\n \\"ForwardPort\\": \\"443\\",\\n \\"CreateTime\\": \\"2022-08-15T08:42:57Z\\",\\n \\"BackendServerPort\\": 3306\\n }\\n ]\\n }\\n}","type":"json"}]',
+ 'title' => 'DescribeLoadBalancerListeners',
+ ],
+ 'AddBackendServers' => [
+ 'summary' => 'Adds backend servers.',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'create',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '15320',
+ 'abilityTreeNodes' => [
+ 'FEATUREensCRU0VL',
+ ],
+ 'tenantRelevance' => 'tenant',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'LoadBalancerId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The frontend port that is used by the Edge Load Balance (ELB) instance. Valid values: **1** to **65535**.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'lb-5qzdmxefgrpxd7oz2mefonvtx',
+ ],
+ ],
+ [
+ 'name' => 'BackendServers',
+ 'in' => 'query',
+ 'style' => 'json',
+ 'schema' => [
+ 'description' => 'The list of backend servers that you want to add to the Edge Load Balancer (ELB) instance. You can add up to 20 backend servers at a time.'."\n"
+ ."\n"
+ .'> Only Edge Node Service (ENS) instances that are in the running state can be added to the ELB instance as backend servers.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The list of backend servers that you want to add to the ELB instance. You can add up to 20 backend servers at a time.'."\n"
+ ."\n"
+ .'> Only ENS instances that are in the running state can be added to the ELB instance as backend servers.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'ServerId' => [
+ 'description' => 'The ID of the ENS instance.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'i-5uf6dwyzch3wly790****',
+ ],
+ 'Weight' => [
+ 'title' => '后端服务器的权重。 取值:0~100 默认值为100,如果值为0,则不会将请求转发给该后端服务器。',
+ 'description' => 'The weight of the backend server. Default value: 100. Valid values: **0** to **100**.'."\n"
+ ."\n"
+ .'> The value 0 indicates that requests are not forwarded to the backend server.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'maximum' => '100',
+ 'minimum' => '0',
+ 'example' => '100',
+ ],
+ 'Type' => [
+ 'title' => '后端服务器类型。 ens:ENS实例(默认)',
+ 'description' => 'The type of the backend server. Valid values:'."\n"
+ ."\n"
+ .'* **ens**: ENS instance'."\n"
+ .'* **eni**: elastic network interface (ENI)'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'ens',
+ 'enum' => [
+ 'ens',
+ 'eni',
+ ],
+ ],
+ 'Ip' => [
+ 'description' => 'The IP address of the backend server.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '192.168.X.X',
+ 'pattern' => '((25[0-5]|2[0-4]\\d|((1\\d{2})|([1-9]?\\d)))\\.){3}(25[0-5]|2[0-4]\\d|((1\\d{2})|([1-9]?\\d)))',
+ ],
+ 'Port' => [
+ 'title' => '端口',
+ 'description' => 'The backend port that is used by the ELB instance.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'maximum' => '0',
+ 'minimum' => '0',
+ 'example' => '3309',
+ ],
+ ],
+ 'required' => true,
+ ],
+ 'required' => true,
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E',
+ ],
+ 'BackendServers' => [
+ 'type' => 'object',
+ 'itemNode' => true,
+ 'properties' => [
+ 'BackendServer' => [
+ 'description' => 'The list of backend servers that you want to add. You can add at most 20 backend servers.'."\n"
+ ."\n"
+ .'> Only ENS instances that are in the running state can be attached to the ELB instance as backend servers.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => '',
+ 'type' => 'object',
+ 'properties' => [
+ 'ServerId' => [
+ 'description' => 'The ID of the instance that is used as the backend server.'."\n",
+ 'type' => 'string',
+ 'example' => 'i-5uf6hj58zvml4ali8****',
+ ],
+ 'Weight' => [
+ 'description' => 'The weight of the backend server. Default value: 100. Valid values: **0** to **100**.'."\n"
+ ."\n"
+ .'> The value 0 indicates that requests are not forwarded to the backend server.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '100',
+ ],
+ 'Type' => [
+ 'description' => 'The type of the backend server. Valid values:'."\n"
+ ."\n"
+ .'* **ens**: ENS instance.'."\n"
+ .'* **eni**: ENI.'."\n",
+ 'type' => 'string',
+ 'example' => 'ens',
+ ],
+ 'Ip' => [
+ 'description' => 'The IP address of the backend server.'."\n",
+ 'type' => 'string',
+ 'example' => '192.168.0.1',
+ ],
+ 'Port' => [
+ 'description' => 'The backend port that is used by the ELB instance.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '0',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'ens.interface.error',
+ 'errorMessage' => 'An error occurred while call the API.',
+ ],
+ [
+ 'errorCode' => 'LoadBalancerNotFound',
+ 'errorMessage' => 'The input parameter loadBalancerId that is not found.',
+ ],
+ [
+ 'errorCode' => 'IncorrectInstanceStatus',
+ 'errorMessage' => 'The current status of the resource does not support this operation.',
+ ],
+ [
+ 'errorCode' => 'InstanceNotFound',
+ 'errorMessage' => 'The input parameter instanceId that is not found.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.Mismatch',
+ 'errorMessage' => 'Specified loadbalancer and backendServer are not in the same network.',
+ ],
+ [
+ 'errorCode' => 'QuotaExceed.BackendServer',
+ 'errorMessage' => 'Backend servers quota exceeded in this loadbalancer.',
+ ],
+ [
+ 'errorCode' => 'Missing%s',
+ 'errorMessage' => 'You must specify the parameter %s.',
+ ],
+ [
+ 'errorCode' => 'Invalid%s',
+ 'errorMessage' => 'The specified parameter %s is invalid.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.EniType',
+ 'errorMessage' => 'The type of eni is invalid',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.EniStatus',
+ 'errorMessage' => 'The status of eni is invalid',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.EniServiceManaged',
+ 'errorMessage' => 'The eni is managed by service',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E\\",\\n \\"BackendServers\\": {\\n \\"BackendServer\\": [\\n {\\n \\"ServerId\\": \\"i-5uf6hj58zvml4ali8****\\",\\n \\"Weight\\": 100,\\n \\"Type\\": \\"ens\\",\\n \\"Ip\\": \\"192.168.0.1\\",\\n \\"Port\\": 0\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<AddBackendServersResponse>\\n <RequestId>473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E</RequestId>\\n <BackendServers>\\n <ServerId>i-5uf6hj58zvml4ali8****</ServerId>\\n <Weight>100</Weight>\\n <Type>ens</Type>\\n <Ip>192.168.0.1</Ip>\\n <Port>0</Port>\\n </BackendServers>\\n</AddBackendServersResponse>","errorExample":""}]',
+ 'title' => 'AddBackendServers',
+ 'description' => '* You can call this operation up to 100 times per second.'."\n"
+ .'* You can call this operation up to 10 times per second per account.'."\n",
+ ],
+ 'RemoveBackendServers' => [
+ 'summary' => 'Removes backend servers.',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'update',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '15321',
+ 'abilityTreeNodes' => [
+ 'FEATUREens8LAX68',
+ ],
+ 'tenantRelevance' => 'tenant',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'LoadBalancerId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the Edge Load Balancer (ELB) instance.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'lb-5ovkn1piwqmoqrfjdyhq4****',
+ ],
+ ],
+ [
+ 'name' => 'BackendServers',
+ 'in' => 'query',
+ 'style' => 'json',
+ 'schema' => [
+ 'description' => 'The list of backend servers that you want to remove. You can remove up to 20 backend servers at a time.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The list of backend servers that you want to remove. You can remove up to 20 backend servers at a time.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'ServerId' => [
+ 'description' => 'The instance ID of the backend server.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'i-5uf68ts0fqexe1a4n****',
+ ],
+ 'Weight' => [
+ 'title' => '后端服务器的权重。 取值:0~100 默认值为100,如果值为0,则不会将请求转发给该后端服务器。',
+ 'description' => 'The weight of the backend server.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'maximum' => '100',
+ 'minimum' => '0',
+ 'example' => '100',
+ ],
+ 'Type' => [
+ 'title' => '后端服务器类型。 ens:ENS实例(默认)',
+ 'description' => 'The type of backend server. Valid values:'."\n"
+ ."\n"
+ .'* **ens**: an Edge Node Service (ENS) instance.'."\n"
+ .'* **eni**: an Elastic Network Interface (ENI).'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'ens',
+ 'enum' => [
+ 'ens',
+ 'eni',
+ ],
+ ],
+ 'Ip' => [
+ 'description' => 'The IP address of the backend server.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '192.XXX.X.X',
+ 'pattern' => '((25[0-5]|2[0-4]\\d|((1\\d{2})|([1-9]?\\d)))\\.){3}(25[0-5]|2[0-4]\\d|((1\\d{2})|([1-9]?\\d)))',
+ ],
+ 'Port' => [
+ 'title' => '端口',
+ 'description' => 'The backend port that is used by the Edge Load Balancer (ELB) instance.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'maximum' => '65535',
+ 'minimum' => '0',
+ 'example' => '0',
+ ],
+ ],
+ 'required' => false,
+ ],
+ 'required' => true,
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E',
+ ],
+ 'BackendServers' => [
+ 'type' => 'object',
+ 'itemNode' => true,
+ 'properties' => [
+ 'BackendServer' => [
+ 'description' => 'The list of backend servers that you want to add to the SLB instance.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => '',
+ 'type' => 'object',
+ 'properties' => [
+ 'ServerId' => [
+ 'description' => 'The instance ID of the backend server.'."\n",
+ 'type' => 'string',
+ 'example' => 'i-5vb5h5njxiuhn48a****',
+ ],
+ 'Weight' => [
+ 'description' => 'The weight of the backend server.'."\n"
+ ."\n"
+ .'> The value 0 indicates that requests are not forwarded to the backend server.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '50',
+ ],
+ 'Type' => [
+ 'description' => 'The type of the backend server. Valid values:'."\n"
+ ."\n"
+ .'* **ens**: an ENS instance.'."\n"
+ .'* **eni**: an ENI.'."\n",
+ 'type' => 'string',
+ 'example' => 'ens',
+ ],
+ 'Ip' => [
+ 'description' => 'The IP address of the backend server.'."\n",
+ 'type' => 'string',
+ 'example' => '192.1XX.X.X',
+ ],
+ 'Port' => [
+ 'description' => 'The backend port that is used by the ELB instance.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '0',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'ens.interface.error',
+ 'errorMessage' => 'An error occurred while call the API.',
+ ],
+ [
+ 'errorCode' => 'LoadBalancerNotFound',
+ 'errorMessage' => 'The input parameter LoadBalancerId that is not found.',
+ ],
+ [
+ 'errorCode' => 'IncorrectInstanceStatus',
+ 'errorMessage' => 'The current status of the resource does not support this operation.',
+ ],
+ [
+ 'errorCode' => 'Missing%s',
+ 'errorMessage' => 'You must specify the parameter %s.',
+ ],
+ [
+ 'errorCode' => 'Invalid%s',
+ 'errorMessage' => 'The specified parameter %s is invalid.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E\\",\\n \\"BackendServers\\": {\\n \\"BackendServer\\": [\\n {\\n \\"ServerId\\": \\"i-5vb5h5njxiuhn48a****\\",\\n \\"Weight\\": 50,\\n \\"Type\\": \\"ens\\",\\n \\"Ip\\": \\"192.168.0.1\\",\\n \\"Port\\": 0\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<RemoveBackendServersResponse>\\n <RequestId>473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E</RequestId>\\n <BackendServers>\\n <ServerId>i-5vb5h5njxiuhn48a****</ServerId>\\n <Weight>50</Weight>\\n <Type>ens</Type>\\n <Ip>192.168.0.1</Ip>\\n <Port>0</Port>\\n </BackendServers>\\n</RemoveBackendServersResponse>","errorExample":""}]',
+ 'title' => 'RemoveBackendServers',
+ 'description' => '* You can call this operation up to 100 times per second.'."\n"
+ .'* You can call this operation up to 10 times per second per account.'."\n",
+ ],
+ 'SetBackendServers' => [
+ 'summary' => 'Sets the weights of backend servers.',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'update',
+ 'abilityTreeCode' => '19478',
+ 'abilityTreeNodes' => [
+ 'FEATUREensWDN2MU',
+ ],
+ 'tenantRelevance' => 'tenant',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'LoadBalancerId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the Edge Load Balancer (ELB) instance.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'lb-5s7crik3yo3bp03gqrbp5****',
+ ],
+ ],
+ [
+ 'name' => 'BackendServers',
+ 'in' => 'query',
+ 'style' => 'json',
+ 'schema' => [
+ 'description' => 'The list of backend servers that you added. You can modify the weights of up to 20 backend servers in each request.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The list of backend servers.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'ServerId' => [
+ 'description' => 'The ID of the instance that you use as the backend server.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'i-5ze0o05xccvbljtn****',
+ ],
+ 'Weight' => [
+ 'title' => '后端服务器的权重。 取值:0~100 默认值为100,如果值为0,则不会将请求转发给该后端服务器。',
+ 'description' => 'The weight of the backend server. Default value: 100. Valid values: **0** to **100**.'."\n"
+ ."\n"
+ .'> The value 0 indicates that requests are not forwarded to the backend server.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => true,
+ 'maximum' => '100',
+ 'minimum' => '0',
+ 'example' => '20',
+ ],
+ 'Type' => [
+ 'title' => '后端服务器类型。 ens:ENS实例(默认)',
+ 'description' => 'The type of the backend server. Valid values:'."\n"
+ ."\n"
+ .'* **ens**: ENS instance'."\n"
+ .'* **eni**: elastic network interface (ENI)'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'ens',
+ 'enum' => [
+ 'ens',
+ 'eni',
+ ],
+ ],
+ ],
+ 'required' => false,
+ ],
+ 'required' => true,
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E',
+ ],
+ 'BackendServers' => [
+ 'type' => 'object',
+ 'itemNode' => true,
+ 'properties' => [
+ 'BackendServer' => [
+ 'description' => 'The backend servers.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => '',
+ 'type' => 'object',
+ 'properties' => [
+ 'ServerId' => [
+ 'description' => 'The ID of the instance that you want to use as the backend server.'."\n",
+ 'type' => 'string',
+ 'example' => 'i-5uf6hj58zvml4ali8****',
+ ],
+ 'Weight' => [
+ 'description' => 'The weight of the backend server. Default value: 100. Valid values: **0** to **100**.'."\n"
+ ."\n"
+ .'> The value 0 indicates that requests are not forwarded to the backend server.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '100',
+ ],
+ 'Type' => [
+ 'description' => 'The type of the backend server. Valid values:'."\n"
+ ."\n"
+ .'* **ens**: ENS instance.'."\n"
+ .'* **eni**: ENI instance.'."\n",
+ 'type' => 'string',
+ 'example' => 'ens',
+ ],
+ 'Ip' => [
+ 'description' => 'The IP address of the backend server.'."\n",
+ 'type' => 'string',
+ 'example' => '192.168.0.1',
+ ],
+ 'Port' => [
+ 'description' => 'The backend port that is used by the ELB instance.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '0',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'ens.interface.error',
+ 'errorMessage' => 'An error occurred while call the API.',
+ ],
+ [
+ 'errorCode' => 'LoadBalancerNotFound',
+ 'errorMessage' => 'The input parameter loadBalancerId that is not found. ',
+ ],
+ [
+ 'errorCode' => 'IncorrectInstanceStatus',
+ 'errorMessage' => 'The current status of the resource does not support this operation.',
+ ],
+ [
+ 'errorCode' => 'BackendServerNotFound',
+ 'errorMessage' => 'The input parameter serverId that is not found.',
+ ],
+ [
+ 'errorCode' => 'Invalid%s',
+ 'errorMessage' => 'The specified parameter %s is invalid.',
+ ],
+ [
+ 'errorCode' => 'Missing%s',
+ 'errorMessage' => 'You must specify the parameter %s.',
+ ],
+ [
+ 'errorCode' => 'InstanceNotFound',
+ 'errorMessage' => 'The input parameter instanceId that is not found.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E\\",\\n \\"BackendServers\\": {\\n \\"BackendServer\\": [\\n {\\n \\"ServerId\\": \\"i-5uf6hj58zvml4ali8****\\",\\n \\"Weight\\": 100,\\n \\"Type\\": \\"ens\\",\\n \\"Ip\\": \\"192.168.0.1\\",\\n \\"Port\\": 0\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<SetBackendServersResponse>\\n <RequestId>473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E</RequestId>\\n <BackendServers>\\n <ServerId>i-5uf6hj58zvml4ali8****</ServerId>\\n <Weight>100</Weight>\\n <Type>ens</Type>\\n <Ip>192.168.0.1</Ip>\\n <Port>0</Port>\\n </BackendServers>\\n</SetBackendServersResponse>","errorExample":""}]',
+ 'title' => 'SetBackendServers',
+ 'description' => '* You can call this operation up to 100 times per second.'."\n"
+ .'* You can call this operation up to 10 times per second per account.'."\n",
+ ],
+ 'DescribeLoadBalancerListenMonitor' => [
+ 'summary' => 'Queries monitoring data of an edge load balancer (ELB) instance.',
+ 'methods' => [
+ 'get',
+ ],
+ 'schemes' => [
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'none',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'StartTime',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '开始时间',
+ 'description' => 'The beginning of the time range to query.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => '2024-01-15 16:00:00',
+ ],
+ ],
+ [
+ 'name' => 'EndTime',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '截止时间',
+ 'description' => 'The end of the time range to query.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => '2024-01-30 08:00:00',
+ ],
+ ],
+ [
+ 'name' => 'LoadBalancerId',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => 'LB实例ID',
+ 'description' => 'The ID of the ELB instance.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'lb-5q73cv04zeyh43lh74lp4****',
+ ],
+ ],
+ [
+ 'name' => 'VPort',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => 'LB实例vip端口',
+ 'description' => 'The virtual IP address (VIP) port of the ELB instance.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => '80',
+ ],
+ ],
+ [
+ 'name' => 'Proto',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '网络协议。tcp,udp等',
+ 'description' => 'The network protocol, such as tcp or udp.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'tcp',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'Id of the request.'."\n",
+ 'type' => 'string',
+ 'example' => 'C0003E8B-B930-4F59-ADC0-0E209A9012A8',
+ ],
+ 'LoadBalancerMonitorListenData' => [
+ 'description' => 'The TCP/UDP monitoring data of the ELB instance.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The monitoring data.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'LoadBalancerId' => [
+ 'title' => '负载均衡实力',
+ 'description' => 'The ID of the ELB instance.'."\n",
+ 'type' => 'string',
+ 'example' => 'lb-5q73cv04zeyh43lh74lp4****',
+ ],
+ 'EnsRegionId' => [
+ 'title' => '所属节点ID',
+ 'description' => 'The ID of the node to which the ELB instance belongs.'."\n",
+ 'type' => 'string',
+ 'example' => 'cn-dongguan-9',
+ ],
+ 'Vip' => [
+ 'title' => '实例VIP',
+ 'description' => 'The virtual IP address (VIP) of the instance.'."\n",
+ 'type' => 'string',
+ 'example' => '10.8.*.*',
+ ],
+ 'Vni' => [
+ 'title' => 'tunnelId隧道标识符',
+ 'description' => 'The ID of the tunnel.'."\n",
+ 'type' => 'string',
+ 'example' => '53284',
+ ],
+ 'VPort' => [
+ 'title' => '实例VIP端口',
+ 'description' => 'The VIP port of the ELB instance.'."\n",
+ 'type' => 'string',
+ 'example' => '80',
+ ],
+ 'Proto' => [
+ 'title' => '网络协议',
+ 'description' => 'The network protocol.'."\n",
+ 'type' => 'string',
+ 'example' => 'tcp',
+ ],
+ 'Conns' => [
+ 'title' => '新建连接数',
+ 'description' => 'The number of new connections.'."\n",
+ 'type' => 'string',
+ 'example' => '37150',
+ ],
+ 'ActConns' => [
+ 'title' => '活跃连接数',
+ 'description' => 'The number of active connections.'."\n",
+ 'type' => 'string',
+ 'example' => '80285',
+ ],
+ 'InActConns' => [
+ 'title' => '非活跃连接数',
+ 'description' => 'The number of inactive connections.'."\n",
+ 'type' => 'string',
+ 'example' => '16322',
+ ],
+ 'DropConns' => [
+ 'title' => '丢弃连接数',
+ 'description' => 'The number of dropped connections.'."\n",
+ 'type' => 'string',
+ 'example' => '10',
+ ],
+ 'InPkts' => [
+ 'title' => '流入数据包数',
+ 'description' => 'The number of inbound packets.'."\n",
+ 'type' => 'string',
+ 'example' => '12',
+ ],
+ 'OutPkts' => [
+ 'title' => '流出数据包数',
+ 'description' => 'The number of outbound packets.'."\n",
+ 'type' => 'string',
+ 'example' => '34',
+ ],
+ 'InDropPkts' => [
+ 'title' => '丢弃流入数据包',
+ 'description' => 'The number of dropped inbound packets.'."\n",
+ 'type' => 'string',
+ 'example' => '27',
+ ],
+ 'OutDropPkts' => [
+ 'title' => '丢弃流出数据包',
+ 'description' => 'The number of dropped outbound packets.'."\n",
+ 'type' => 'string',
+ 'example' => '76',
+ ],
+ 'InBytes' => [
+ 'title' => '流入流量',
+ 'description' => 'The inbound traffic.'."\n",
+ 'type' => 'string',
+ 'example' => '67532',
+ ],
+ 'OutBytes' => [
+ 'title' => '流出流量',
+ 'description' => 'The outbound traffic.'."\n",
+ 'type' => 'string',
+ 'example' => '5155487',
+ ],
+ 'InDropBytes' => [
+ 'title' => '丢弃入流量',
+ 'description' => 'The dropped inbound traffic.'."\n",
+ 'type' => 'string',
+ 'example' => '324',
+ ],
+ 'OutDropBytes' => [
+ 'title' => '丢弃出流量',
+ 'description' => 'The dropped outbound traffic.'."\n",
+ 'type' => 'string',
+ 'example' => '0',
+ ],
+ 'ValidRsNum' => [
+ 'title' => '监听实例下挂的处于服务可用状态的server 数量',
+ 'description' => 'The number of available servers that are attached to the monitored ELB instance.'."\n",
+ 'type' => 'string',
+ 'example' => '2',
+ ],
+ 'InValidRsNum' => [
+ 'title' => '监听实例下挂的处于服务不可用状态的server 数量',
+ 'description' => 'The number of unavailable servers that are attached to the monitored ELB instance.'."\n",
+ 'type' => 'string',
+ 'example' => '0',
+ ],
+ 'BizTime' => [
+ 'title' => '业务时间',
+ 'description' => 'The business time.'."\n",
+ 'type' => 'string',
+ 'example' => '2024-01-15 16:03:00',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"C0003E8B-B930-4F59-ADC0-0E209A9012A8\\",\\n \\"LoadBalancerMonitorListenData\\": [\\n {\\n \\"LoadBalancerId\\": \\"lb-5q73cv04zeyh43lh74lp4****\\",\\n \\"EnsRegionId\\": \\"cn-dongguan-9\\",\\n \\"Vip\\": \\"10.8.****\\",\\n \\"Vni\\": \\"53284\\",\\n \\"VPort\\": \\"80\\",\\n \\"Proto\\": \\"tcp\\",\\n \\"Conns\\": \\"37150\\",\\n \\"ActConns\\": \\"80285\\",\\n \\"InActConns\\": \\"16322\\",\\n \\"DropConns\\": \\"10\\",\\n \\"InPkts\\": \\"12\\",\\n \\"OutPkts\\": \\"34\\",\\n \\"InDropPkts\\": \\"27\\",\\n \\"OutDropPkts\\": \\"76\\",\\n \\"InBytes\\": \\"67532\\",\\n \\"OutBytes\\": \\"5155487\\",\\n \\"InDropBytes\\": \\"324\\",\\n \\"OutDropBytes\\": \\"0\\",\\n \\"ValidRsNum\\": \\"2\\",\\n \\"InValidRsNum\\": \\"0\\",\\n \\"BizTime\\": \\"2024-01-15 16:03:00\\"\\n }\\n ]\\n}","type":"json"}]',
+ 'title' => 'DescribeLoadBalancerListenMonitor',
+ 'description' => '* You can call this operation up to 100 times per second per account.'."\n"
+ .'* You can call this operation up to 10 times per second per user.'."\n",
+ ],
+ 'DescribeServerLoadBalancerMonitor' => [
+ 'summary' => 'Queries the request monitoring data of an edge load balancer (ELB) instance.',
+ 'methods' => [
+ 'get',
+ ],
+ 'schemes' => [
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'list',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'StartTime',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '开始时间, 格式: yyyy-MM-dd HH:mm:ss',
+ 'description' => 'The beginning of the time range to query. Specify the time in the yyyy-MM-ddTHH:mm:ssZ format.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => '2024-09-15 16:00:00',
+ ],
+ ],
+ [
+ 'name' => 'EndTime',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '截止时间,StartTime, EndTime时间最大区间不超过 24小时',
+ 'description' => 'The end of the time range to query. The maximum range between StartTime and EndTime is 24 hours.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => '2024-09-15 17:00:00',
+ ],
+ ],
+ [
+ 'name' => 'LoadBalancerId',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '负载均衡实例ID',
+ 'description' => 'The ID of the ELB instance.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'lb-5sc1s9zrui8lpb8u7cl4f****',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response.',
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => 'AAE90880-4970-4D81-A534-A6C0F3631F74',
+ ],
+ 'ServerLoadBalancerMonitorData' => [
+ 'description' => 'The array of the monitoring data.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The monitoring data.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'LoadBalancerId' => [
+ 'title' => '负载均衡实例ID',
+ 'description' => 'The ID of the ELB instance.'."\n",
+ 'type' => 'string',
+ 'example' => 'lb-5sc1s9zrui8lpb8u7cl4f****',
+ ],
+ 'LoadBalancerName' => [
+ 'title' => '负载均衡实例名',
+ 'description' => 'The name of the ELB instance.'."\n",
+ 'type' => 'string',
+ 'example' => 'esk-edge-service-lb-a34****',
+ ],
+ 'EnsRegionId' => [
+ 'title' => '所属节点ID',
+ 'description' => 'The ID of the node to which the ELB instance belongs.'."\n",
+ 'type' => 'string',
+ 'example' => 'cn-wuxi-10',
+ ],
+ 'LoadBalancerSpec' => [
+ 'title' => '负载均衡实例规格',
+ 'description' => 'The specification of the ELB instance.'."\n",
+ 'type' => 'string',
+ 'example' => 'elb.s2.medium',
+ ],
+ 'Vip' => [
+ 'title' => '实例VIP',
+ 'description' => 'The virtual IP address (VIP) of the instance.'."\n",
+ 'type' => 'string',
+ 'example' => '10.0****',
+ ],
+ 'Vni' => [
+ 'title' => 'tunnelId隧道标识符',
+ 'description' => 'The ID of the tunnel.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '3018',
+ ],
+ 'Acc' => [
+ 'title' => '总请求数',
+ 'description' => 'The total number of requests.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '30',
+ ],
+ 'Reqs2xx' => [
+ 'title' => '请求网络状态2xx数',
+ 'description' => 'The number of requests with HTTP 2xx status code returned.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '25',
+ ],
+ 'Reqs3xx' => [
+ 'title' => '请求网络状态3xx数',
+ 'description' => 'The number of requests with HTTP 3xx status code returned.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '0',
+ ],
+ 'Reqs4xx' => [
+ 'title' => '请求网络状态4xx数',
+ 'description' => 'The number of requests with HTTP 4xx status code returned.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '5',
+ ],
+ 'Reqs5xx' => [
+ 'title' => '请求网络状态5xx数',
+ 'description' => 'The number of requests with HTTP 5xx status code returned.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '0',
+ ],
+ 'RtAvg' => [
+ 'title' => '请求平均耗时,单位毫秒',
+ 'description' => 'The average response time. Unit: milliseconds.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '1404',
+ ],
+ 'BizTime' => [
+ 'title' => '日志业务时间,日志采集粒度1分钟',
+ 'description' => 'The business time of the log. Logs are collected every minute.'."\n",
+ 'type' => 'string',
+ 'example' => '2024-09-15 16:00:00'."\n",
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'IdempotentParameterMismatch',
+ 'errorMessage' => 'The request uses the same client token as a previous, but non-identical request. Do not reuse a client token with different requests, unless the requests are identical.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ 'eventInfo' => [
+ 'enable' => false,
+ 'eventNames' => [],
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"AAE90880-4970-4D81-A534-A6C0F3631F74\\",\\n \\"ServerLoadBalancerMonitorData\\": [\\n {\\n \\"LoadBalancerId\\": \\"lb-5sc1s9zrui8lpb8u7cl4f****\\",\\n \\"LoadBalancerName\\": \\"esk-edge-service-lb-a34****\\",\\n \\"EnsRegionId\\": \\"cn-wuxi-10\\",\\n \\"LoadBalancerSpec\\": \\"elb.s2.medium\\",\\n \\"Vip\\": \\"10.0****\\",\\n \\"Vni\\": 3018,\\n \\"Acc\\": 30,\\n \\"Reqs2xx\\": 25,\\n \\"Reqs3xx\\": 0,\\n \\"Reqs4xx\\": 5,\\n \\"Reqs5xx\\": 0,\\n \\"RtAvg\\": 1404,\\n \\"BizTime\\": \\"2024-09-15 16:00:00\\\\n\\"\\n }\\n ]\\n}","type":"json"}]',
+ 'title' => 'DescribeServerLoadBalancerMonitor',
+ 'description' => '* You can call this operation up to 100 times per second per account.'."\n"
+ .'* You can call this operation up to 10 times per second per user.'."\n",
+ ],
+ 'DescribeServerLoadBalancerListenMonitor' => [
+ 'summary' => 'Queries the monitoring data of an edge load balancer (ELB) instance based on the listener.',
+ 'methods' => [
+ 'get',
+ ],
+ 'schemes' => [
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'list',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'StartTime',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '开始时间, 格式: yyyy-MM-dd HH:mm:ss',
+ 'description' => 'The beginning of the time range to query. Specify the time in the yyyy-MM-ddTHH:mm:ssZ format.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => '2024-05-16 15:00:00',
+ ],
+ ],
+ [
+ 'name' => 'EndTime',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '截止时间,StartTime, EndTime时间最大区间不超过 24小时',
+ 'description' => 'The end of the time range to query. The maximum range between StartTime and EndTime is 24 hours.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => '2024-05-16 16:00:00',
+ ],
+ ],
+ [
+ 'name' => 'LoadBalancerId',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '负载均衡实例ID',
+ 'description' => 'The ID of the ELB instance.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'lb-5rcvo1n1t3hykfhhjwjgqp****',
+ ],
+ ],
+ [
+ 'name' => 'VPort',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => 'VIP端口,如80、8080和443等',
+ 'description' => 'The virtual IP address (VIP) port, such as 80, 8080, or 443.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '80',
+ ],
+ ],
+ [
+ 'name' => 'Proto',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '请求协议,http/https/tcp等',
+ 'description' => 'The request protocol, such as http, https, or tcp.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'tcp',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response.',
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => '125B04C7-3D0D-4245-AF96-14E3758E3F06',
+ ],
+ 'ServerLoadBalancerMonitorData' => [
+ 'description' => 'The array of the monitoring data.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The monitoring data.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'LoadBalancerId' => [
+ 'title' => '负载均衡实例ID',
+ 'description' => 'The ID of the ELB instance.'."\n",
+ 'type' => 'string',
+ 'example' => 'lb-5rcvo1n1t3hykfhhjwjgqp****',
+ ],
+ 'LoadBalancerName' => [
+ 'title' => '负载均衡实例名',
+ 'description' => 'The name of the ELB instance.'."\n",
+ 'type' => 'string',
+ 'example' => 'esk-edge-service-lb-8377****',
+ ],
+ 'EnsRegionId' => [
+ 'title' => '所属节点ID',
+ 'description' => 'The ID of the node to which the ELB instance belongs.'."\n",
+ 'type' => 'string',
+ 'example' => 'cn-fuzhou-7',
+ ],
+ 'LoadBalancerSpec' => [
+ 'title' => '负载均衡实例规格',
+ 'description' => 'The specification of the ELB instance.'."\n",
+ 'type' => 'string',
+ 'example' => 'elb.s2.medium',
+ ],
+ 'Vip' => [
+ 'title' => '实例VIP',
+ 'description' => 'The VIP of the instance.'."\n",
+ 'type' => 'string',
+ 'example' => '10.0****',
+ ],
+ 'Vni' => [
+ 'title' => 'tunnelId隧道标识符',
+ 'description' => 'The ID of the tunnel.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '52497',
+ ],
+ 'Vport' => [
+ 'title' => 'VIP端口,如80、8080和443等',
+ 'description' => 'The VIP port, such as 80, 8080, or 443.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '80',
+ ],
+ 'Proto' => [
+ 'title' => '请求协议,http/https/tcp等',
+ 'description' => 'The request protocol, such as http, https, or tcp.'."\n",
+ 'type' => 'string',
+ 'example' => 'tcp',
+ ],
+ 'Acc' => [
+ 'title' => '总请求数',
+ 'description' => 'The total number of requests.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '20',
+ ],
+ 'Reqs2xx' => [
+ 'title' => '请求网络状态2xx数',
+ 'description' => 'The number of requests with HTTP 2xx status code returned.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '10',
+ ],
+ 'Reqs3xx' => [
+ 'title' => '请求网络状态3xx数',
+ 'description' => 'The number of requests with HTTP 3xx status code returned.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '0',
+ ],
+ 'Reqs4xx' => [
+ 'title' => '请求网络状态4xx数',
+ 'description' => 'The number of requests with HTTP 4xx status code returned.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '0',
+ ],
+ 'Reqs5xx' => [
+ 'title' => '请求网络状态5xx数',
+ 'description' => 'The number of requests with HTTP 5xx status code returned.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '10',
+ ],
+ 'RtAvg' => [
+ 'title' => '请求平均耗时,单位毫秒',
+ 'description' => 'The average response time. Unit: milliseconds.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '1037',
+ ],
+ 'BizTime' => [
+ 'title' => '日志业务时间,日志采集粒度1分钟',
+ 'description' => 'The business time of the log. Logs are collected every minute.'."\n",
+ 'type' => 'string',
+ 'example' => '2024-05-16 15:00:00',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'IdempotentParameterMismatch',
+ 'errorMessage' => 'The request uses the same client token as a previous, but non-identical request. Do not reuse a client token with different requests, unless the requests are identical.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ 'eventInfo' => [
+ 'enable' => false,
+ 'eventNames' => [],
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"125B04C7-3D0D-4245-AF96-14E3758E3F06\\",\\n \\"ServerLoadBalancerMonitorData\\": [\\n {\\n \\"LoadBalancerId\\": \\"lb-5rcvo1n1t3hykfhhjwjgqp****\\",\\n \\"LoadBalancerName\\": \\"esk-edge-service-lb-8377****\\",\\n \\"EnsRegionId\\": \\"cn-fuzhou-7\\",\\n \\"LoadBalancerSpec\\": \\"elb.s2.medium\\",\\n \\"Vip\\": \\"10.0****\\",\\n \\"Vni\\": 52497,\\n \\"Vport\\": 80,\\n \\"Proto\\": \\"tcp\\",\\n \\"Acc\\": 20,\\n \\"Reqs2xx\\": 10,\\n \\"Reqs3xx\\": 0,\\n \\"Reqs4xx\\": 0,\\n \\"Reqs5xx\\": 10,\\n \\"RtAvg\\": 1037,\\n \\"BizTime\\": \\"2024-05-16 15:00:00\\"\\n }\\n ]\\n}","type":"json"}]',
+ 'title' => 'DescribeServerLoadBalancerListenMonitor',
+ 'description' => '* You can call this operation up to 100 times per second per account.'."\n"
+ .'* You can call this operation up to 10 times per second per user.'."\n",
+ ],
+ 'CreateNetworkInterface' => [
+ 'summary' => 'Create an Elastic Network Interface (ENI).',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'create',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'VSwitchId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'vSwitch ID.',
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'vsw-5****',
+ ],
+ ],
+ [
+ 'name' => 'SecurityGroupIds',
+ 'in' => 'query',
+ 'style' => 'json',
+ 'schema' => [
+ 'description' => 'Security group ID.',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'Security group ID.',
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'sg-test',
+ ],
+ 'required' => true,
+ 'maxItems' => 5,
+ 'minItems' => 1,
+ ],
+ ],
+ [
+ 'name' => 'Name',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'ENI name.',
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'name',
+ 'maxLength' => 128,
+ ],
+ ],
+ [
+ 'name' => 'Description',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'Description of the ENI.',
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'example',
+ 'maxLength' => 256,
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => '',
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'Request ID.',
+ 'type' => 'string',
+ 'example' => 'F3B261DD-3858-4D3C-877D-303ADF374600',
+ ],
+ 'NetworkInterfaceIds' => [
+ 'description' => 'A list of ENI IDs.',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'A list of ENI IDs.',
+ 'type' => 'string',
+ 'example' => 'eni-2zef19ff3v3i2yhe8vyk',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"F3B261DD-3858-4D3C-877D-303ADF374600\\",\\n \\"NetworkInterfaceIds\\": [\\n \\"eni-2zef19ff3v3i2yhe8vyk\\"\\n ]\\n}","type":"json"}]',
+ 'title' => 'CreateNetworkInterface',
+ 'translator' => 'machine',
+ ],
+ 'DeleteNetworkInterfaces' => [
+ 'summary' => 'Deletes an elastic network interface (ENI).',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'none',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'NetworkInterfaceIds',
+ 'in' => 'query',
+ 'style' => 'json',
+ 'schema' => [
+ 'description' => 'The IDs of the elastic network interfaces (ENIs).'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The ID of the ENI.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'eni-gw85i6jmetcnyucnyfjm',
+ ],
+ 'required' => true,
+ 'maxItems' => 10,
+ 'minItems' => 1,
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'The response parameters.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '125B04C7-3D0D-4245-AF96-14E3758E3F06',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"125B04C7-3D0D-4245-AF96-14E3758E3F06\\"\\n}","type":"json"}]',
+ 'title' => 'DeleteNetworkInterfaces',
+ ],
+ 'AttachNetworkInterface' => [
+ 'summary' => 'Attaches an Elastic Network Interface (ENI) to an Edge Node Service (ECS) instance.',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'update',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'InstanceId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the instance'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'i-5p67acfmxazb4p****',
+ ],
+ ],
+ [
+ 'name' => 'NetworkInterfaceId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the ENI.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'eni-58z57orgmt6d1****',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'ens.interface.error',
+ 'errorMessage' => 'An error occurred while call the API. ',
+ ],
+ [
+ 'errorCode' => 'InvalidEniId.NotFound',
+ 'errorMessage' => 'The specified NetworkInterfaceId does not exist.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.EniServiceManaged',
+ 'errorMessage' => 'The eni is managed by service.',
+ ],
+ [
+ 'errorCode' => 'InvalidOperation.InvalidEniStatus',
+ 'errorMessage' => 'Current eni status does not support this operation. ',
+ ],
+ [
+ 'errorCode' => 'InstanceNotFound',
+ 'errorMessage' => 'The input parameter instancdId that is not found.',
+ ],
+ [
+ 'errorCode' => 'InvalidOperation.InvalidEnsStatus',
+ 'errorMessage' => 'Current instance status does not support this operation. ',
+ ],
+ [
+ 'errorCode' => 'InvalidOperation.InstanceNotSupport',
+ 'errorMessage' => 'The specified instance does not support this operation.',
+ ],
+ [
+ 'errorCode' => 'InvalidOperation.NetworkMismatch',
+ 'errorMessage' => 'Specified eni and instance are not in the same network.',
+ ],
+ [
+ 'errorCode' => 'EniPerInstanceLimitExceeded',
+ 'errorMessage' => 'EniPerInstanceLimitExceeded.',
+ ],
+ [
+ 'errorCode' => 'InvalidOperation.InvalidEniType',
+ 'errorMessage' => 'The type of eni does not support this operation. ',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E\\"\\n}","type":"json"}]',
+ 'title' => 'AttachNetworkInterface',
+ 'description' => 'When you call this operation, take note of the following limits:'."\n"
+ ."\n"
+ .'* The ENI must be in the Available state.'."\n"
+ .'* An ENI can be attached to only one instance that is the same zone and the same Virtual Private Cloud (VPC).'."\n"
+ .'* The instance must be in the Stopped state.'."\n"
+ .'* A maximum of 10 ENIs can be attached to an instance.'."\n"
+ .'* This operation is an asynchronous operation. After you call this operation to attach an ENI, you can view the status of the ENI to check whether the ENI is attached.'."\n",
+ ],
+ 'DetachNetworkInterface' => [
+ 'summary' => 'Detach an elastic network interface (ENI) from an instance.',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'update',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'NetworkInterfaceId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the ENI.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'eni-58z57orgmt6d1****',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => 'BE1B8ECF-9507-4C78-B197-5DE9FED344AF',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'ens.interface.error',
+ 'errorMessage' => 'An error occurred while call the API. ',
+ ],
+ [
+ 'errorCode' => 'InvalidEniId.NotFound',
+ 'errorMessage' => 'The specified NetworkInterfaceId does not exist.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.EniServiceManaged',
+ 'errorMessage' => 'The eni is managed by service.',
+ ],
+ [
+ 'errorCode' => 'InvalidOperation.InvalidEniStatus',
+ 'errorMessage' => 'Current eni status does not support this operation. ',
+ ],
+ [
+ 'errorCode' => 'InvalidOperation.InvalidEniType',
+ 'errorMessage' => 'The type of eni does not support this operation.',
+ ],
+ [
+ 'errorCode' => 'InvalidOperation.InvalidEnsStatus',
+ 'errorMessage' => 'Current instance status does not support this operation. ',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"BE1B8ECF-9507-4C78-B197-5DE9FED344AF\\"\\n}","type":"json"}]',
+ 'title' => 'DetachNetworkInterface',
+ 'description' => 'Before you call this operation, take note of the following items:'."\n"
+ ."\n"
+ .'* You cannot detach a primary ENI from an instance.'."\n"
+ .'* The ENI must be in the InUse state.'."\n"
+ .'* The instances are in the Stopped state.'."\n"
+ .'* This operation is an asynchronous operation. After this operation is called to detach an ENI, you can check the state of the ENI to determine whether the ENI is detached.'."\n",
+ ],
+ 'ModifyNetworkInterfaceAttribute' => [
+ 'summary' => 'Modifies the attributes of an elastic network interface (ENI), such as its name and description.',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'update',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'NetworkInterfaceId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the ENI.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'eni-5f6533jbifugr5fo***',
+ ],
+ ],
+ [
+ 'name' => 'NetworkInterfaceName',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The name of the ENI. The name must be 1 to 128 characters in length, The name cannot start with http:// or https://.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'test-01',
+ 'maxLength' => 128,
+ 'minLength' => 1,
+ ],
+ ],
+ [
+ 'name' => 'Description',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The description. The description must be 1 to 256 characters in length and cannot start with http:// or https://.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'testDescription',
+ 'maxLength' => 256,
+ 'minLength' => 1,
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'ens.interface.error',
+ 'errorMessage' => 'An error occurred while call the API. ',
+ ],
+ [
+ 'errorCode' => 'InvalidEniId.NotFound',
+ 'errorMessage' => 'The specified NetworkInterfaceId does not exist.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.EniServiceManaged',
+ 'errorMessage' => 'The eni is managed by service.',
+ ],
+ [
+ 'errorCode' => 'InvalidOperation.InvalidEniStatus',
+ 'errorMessage' => 'Current eni status does not support this operation. ',
+ ],
+ [
+ 'errorCode' => 'InvalidOperation.InvalidEniType',
+ 'errorMessage' => 'The type of eni does not support this operation.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E\\"\\n}","type":"json"}]',
+ 'title' => 'ModifyNetworkInterfaceAttribute',
+ ],
+ 'DescribeSecondaryPublicIpAddresses' => [
+ 'summary' => 'Queries created secondary public IP addresses.',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'list',
+ 'riskType' => 'none',
+ 'abilityTreeCode' => '166854',
+ 'abilityTreeNodes' => [
+ 'FEATUREensYDMBHU',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'EnsRegionId',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => 'ENS节点ID',
+ 'description' => 'The ID of the edge node.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'cn-hangzhou-44',
+ ],
+ ],
+ [
+ 'name' => 'SecondaryPublicIpId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the secondary public IP address.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'spi-5wys0pio93c9f9ukzj2f2fwyr',
+ ],
+ ],
+ [
+ 'name' => 'SecondaryPublicIpAddress',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '要查询的EIP实例的ID。 最多支持输入50个EIP实例ID,实例ID之间用逗号(,)分隔。',
+ 'description' => 'The secondary IP address.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '12.XXX.XXX.4',
+ ],
+ ],
+ [
+ 'name' => 'Isp',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '要查询的EIP的IP地址。 最多支持输入50个EIP的IP地址,IP地址之间用逗号(,)分隔。',
+ 'description' => 'The Internet service provider. Valid values:'."\n"
+ ."\n"
+ .'* cmcc: China Mobile.'."\n"
+ .'* unicom: China Unicom.'."\n"
+ .'* telecom: China Telecom.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'unicom',
+ ],
+ ],
+ [
+ 'name' => 'EnsRegionIds',
+ 'in' => 'query',
+ 'style' => 'flat',
+ 'schema' => [
+ 'description' => '',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => '',
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'cn-chengdu-telecom-4',
+ ],
+ 'required' => false,
+ 'maxItems' => 100,
+ ],
+ ],
+ [
+ 'name' => 'PageNumber',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '列表的页码,默认值为1。',
+ 'description' => 'The number of the page to return. Default value: 1.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'example' => '1',
+ ],
+ ],
+ [
+ 'name' => 'PageSize',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '分页查询时每页的行数,最大值为100,默认值为10。',
+ 'description' => 'The number of entries to return on each page. Valid values: 1 to 100. Default value: 10.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'maximum' => '100',
+ 'example' => '50',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E',
+ ],
+ 'PageNumber' => [
+ 'description' => 'The page number returned.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '1',
+ ],
+ 'PageSize' => [
+ 'description' => 'The number of entries per page.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '50',
+ ],
+ 'TotalCount' => [
+ 'description' => 'The total number of entries returned.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '13',
+ ],
+ 'SecondaryPublicIpAddresses' => [
+ 'description' => 'The array of returned secondary IP addresses.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => '',
+ 'type' => 'object',
+ 'properties' => [
+ 'CidrMask' => [
+ 'description' => 'The subnet mask of the CIDR block.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '24',
+ ],
+ 'Gateway' => [
+ 'description' => 'The gateway.'."\n",
+ 'type' => 'string',
+ 'example' => '12.XXX.XXX.1',
+ ],
+ 'SecondaryPublicIpAddress' => [
+ 'description' => 'The secondary public IP address.'."\n",
+ 'type' => 'string',
+ 'example' => '12.XXX.XXX.4',
+ ],
+ 'Isp' => [
+ 'description' => 'The Internet service provider. Valid values:'."\n"
+ ."\n"
+ .'* cmcc: China Mobile.'."\n"
+ .'* unicom: China Unicom.'."\n"
+ .'* telecom: China Telecom.'."\n",
+ 'type' => 'string',
+ 'example' => 'telecom',
+ ],
+ 'SecondaryPublicIpId' => [
+ 'description' => 'The ID of the secondary public IP address.'."\n",
+ 'type' => 'string',
+ 'example' => 'spi-5wys0pio93c9f9ukzj2f2fwyr',
+ ],
+ 'EnsRegionId' => [
+ 'description' => 'The ID of the edge node.'."\n",
+ 'type' => 'string',
+ 'example' => 'cn-beijing-15',
+ ],
+ 'CreationTime' => [
+ 'description' => 'The time when the secondary public IP address was created. The time is displayed in UTC.'."\n",
+ 'type' => 'string',
+ 'example' => '2023-07-25T09:43:49Z',
+ ],
+ 'IpVersion' => [
+ 'description' => 'The version of the IP address. Valid values:'."\n"
+ ."\n"
+ .'* **ipv4**'."\n"
+ .'* **ipv6**'."\n",
+ 'type' => 'string',
+ 'example' => 'ipv4',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'ens.interface.error',
+ 'errorMessage' => 'Failed to call API.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E\\",\\n \\"PageNumber\\": 1,\\n \\"PageSize\\": 50,\\n \\"TotalCount\\": 13,\\n \\"SecondaryPublicIpAddresses\\": [\\n {\\n \\"CidrMask\\": 24,\\n \\"Gateway\\": \\"12.XXX.XXX.1\\",\\n \\"SecondaryPublicIpAddress\\": \\"12.XXX.XXX.4\\",\\n \\"Isp\\": \\"telecom\\",\\n \\"SecondaryPublicIpId\\": \\"spi-5wys0pio93c9f9ukzj2f2fwyr\\",\\n \\"EnsRegionId\\": \\"cn-beijing-15\\",\\n \\"CreationTime\\": \\"2023-07-25T09:43:49Z\\",\\n \\"IpVersion\\": \\"ipv4\\"\\n }\\n ]\\n}","type":"json"}]',
+ 'title' => 'DescribeSecondaryPublicIpAddresses',
+ ],
+ 'CreateHaVip' => [
+ 'summary' => 'Creates a high-availability virtual IP address (HAVIP).',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'create',
+ 'tenantRelevance' => 'tenant',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'Description',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The description of the HAVIP.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'testDescription',
+ 'maxLength' => 128,
+ ],
+ ],
+ [
+ 'name' => 'Name',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The name of the HAVIP.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'yourName',
+ 'maxLength' => 256,
+ ],
+ ],
+ [
+ 'name' => 'VSwitchId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The vSwitch ID of the HAVIP.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'vsw-5****',
+ 'maxLength' => 256,
+ ],
+ ],
+ [
+ 'name' => 'IpAddress',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The IP address of the HAVIP.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '120.24.243.91',
+ 'pattern' => '^(\\d{0,3}\\.){3}\\d{0,3}$',
+ ],
+ ],
+ [
+ 'name' => 'Amount',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The number of HAVIPs that you want to create. Valid values: 1 to 10. The value can be only 1 if you specify an IP address.'."\n"
+ ."\n"
+ .'Default value: 1.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'maximum' => '10',
+ 'minimum' => '1',
+ 'example' => '6',
+ 'default' => '1',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'The response parameters.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'Request ID.'."\n",
+ 'type' => 'string',
+ 'example' => 'AAE90880-4970-4D81-A534-A6C0F3631F74',
+ ],
+ 'HaVipIds' => [
+ 'description' => 'The IDs of the HAVIPs.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The ID of the HAVIP.'."\n",
+ 'type' => 'string',
+ 'example' => 'havpid-id',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ 'eventInfo' => [
+ 'enable' => false,
+ 'eventNames' => [],
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"AAE90880-4970-4D81-A534-A6C0F3631F74\\",\\n \\"HaVipIds\\": [\\n \\"havpid-id\\"\\n ]\\n}","type":"json"}]',
+ 'title' => 'CreateHaVip',
+ ],
+ 'ModifyHaVipAttribute' => [
+ 'summary' => 'Modifies the name of a high-availability virtual IP address (HAVIP).',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'update',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'HaVipId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the HAVIP that you want to modify.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'havip-52y28****',
+ ],
+ ],
+ [
+ 'name' => 'Name',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The name of the HAVIP. The name must be 1 to 128 characters in length and cannot start with http:// or https://.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'test',
+ 'maxLength' => 128,
+ 'minLength' => 1,
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => 'F3B261DD-3858-4D3C-877D-303ADF374600',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'Invalid%s',
+ 'errorMessage' => 'The specified parameter %s is invalid.',
+ ],
+ [
+ 'errorCode' => 'Missing%s',
+ 'errorMessage' => 'You must specify the parameter %s.',
+ ],
+ [
+ 'errorCode' => 'SystemError',
+ 'errorMessage' => 'Interface call error, please re-match, or contact the product.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"F3B261DD-3858-4D3C-877D-303ADF374600\\"\\n}","type":"json"}]',
+ 'title' => 'ModifyHaVipAttribute',
+ ],
+ 'DescribeHaVips' => [
+ 'summary' => 'Queries high-availability virtual IP addresses (HAVIPs).',
+ 'methods' => [
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'list',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '203849',
+ 'abilityTreeNodes' => [
+ 'FEATUREensMFQVWK',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'NetworkId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the network.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'n-57gqcdfvx6n****',
+ ],
+ ],
+ [
+ 'name' => 'VSwitchId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the vSwitch.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'vsw-5****',
+ ],
+ ],
+ [
+ 'name' => 'HaVipId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the HAVIP.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'havip-5p14t****',
+ ],
+ ],
+ [
+ 'name' => 'HaVipAddress',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The IP address of the HAVIP.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '10.5.XX.XX'."\n",
+ ],
+ ],
+ [
+ 'name' => 'EnsRegionId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the region.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'cn-beijing-cmcc',
+ ],
+ ],
+ [
+ 'name' => 'Name',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The name of the HAVIP.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'test',
+ ],
+ ],
+ [
+ 'name' => 'Status',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The status of the HAVIP. Valid values:'."\n"
+ ."\n"
+ .'* Creating'."\n"
+ .'* Available'."\n"
+ .'* InUse'."\n"
+ .'* Deleting'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'Available',
+ 'enum' => [
+ 'Creating',
+ 'Available',
+ 'InUse',
+ 'Deleting',
+ ],
+ ],
+ ],
+ [
+ 'name' => 'EnsRegionIds',
+ 'in' => 'query',
+ 'style' => 'flat',
+ 'schema' => [
+ 'description' => 'The IDs of edge nodes. You can specify 1 to 100 IDs.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The ID of the edge node.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'cn-chengdu-telecom-4',
+ ],
+ 'required' => false,
+ ],
+ ],
+ [
+ 'name' => 'PageNumber',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The page number.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '1',
+ ],
+ ],
+ [
+ 'name' => 'PageSize',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The number of entries per page.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '10',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => 'AAE90880-4970-4D81-A534-A6C0F3631F74',
+ ],
+ 'TotalCount' => [
+ 'description' => 'The total number of entries returned.'."\n",
+ 'type' => 'string',
+ 'example' => '49',
+ ],
+ 'PageSize' => [
+ 'description' => 'The number of entries per page.'."\n",
+ 'type' => 'string',
+ 'example' => '10',
+ ],
+ 'PageNumber' => [
+ 'description' => 'The page number.'."\n",
+ 'type' => 'string',
+ 'example' => '1',
+ ],
+ 'HaVips' => [
+ 'description' => 'Details of the HAVIPs.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'Details of the HAVIP.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'Status' => [
+ 'description' => 'The status of the HAVIP. Valid values:'."\n"
+ ."\n"
+ .'* Creating'."\n"
+ .'* Available'."\n"
+ .'* InUse'."\n"
+ .'* Deleting'."\n",
+ 'type' => 'string',
+ 'example' => 'Available',
+ ],
+ 'CreationTime' => [
+ 'description' => 'The time when the HAVIP was created.'."\n",
+ 'type' => 'string',
+ 'example' => '2023-03-29T11:17:38Z',
+ ],
+ 'Description' => [
+ 'description' => 'The description of the HAVIP.'."\n",
+ 'type' => 'string',
+ 'example' => 'test',
+ ],
+ 'HaVipId' => [
+ 'description' => 'The ID of the HAVIP.'."\n",
+ 'type' => 'string',
+ 'example' => 'havip-52y28****',
+ ],
+ 'Name' => [
+ 'description' => 'The name of the HAVIP.'."\n",
+ 'type' => 'string',
+ 'example' => 'test',
+ ],
+ 'EnsRegionId' => [
+ 'description' => 'The ID of the region.'."\n",
+ 'type' => 'string',
+ 'example' => 'cn-guiyang-14',
+ ],
+ 'NetworkId' => [
+ 'description' => 'The ID of the network.'."\n",
+ 'type' => 'string',
+ 'example' => 'n-5wtkyrk****',
+ ],
+ 'VSwitchId' => [
+ 'description' => 'The ID of the vSwitch.'."\n",
+ 'type' => 'string',
+ 'example' => 'vsw-5yc8d****',
+ ],
+ 'IpAddress' => [
+ 'description' => 'The IP address of the HAVIP.'."\n",
+ 'type' => 'string',
+ 'example' => '192.XX.XX.5'."\n",
+ ],
+ 'AssociatedEipAddresses' => [
+ 'description' => 'The elastic IP addresses (EIPs) that are associated with the HAVIP.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The EIP that is associated with the HAVIP.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'EipId' => [
+ 'description' => 'The ID of the EIP.'."\n",
+ 'type' => 'string',
+ 'example' => 'eip-5p1wz****',
+ ],
+ 'Eip' => [
+ 'description' => 'The EIP.'."\n",
+ 'type' => 'string',
+ 'example' => '47.XX.XX.40',
+ ],
+ ],
+ ],
+ ],
+ 'AssociatedInstances' => [
+ 'description' => 'The information about instances that are associated with the HAVIP.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The information about the instance that is associated with the HAVIP.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'InstanceId' => [
+ 'description' => 'The ID of the instance.'."\n",
+ 'type' => 'string',
+ 'example' => 'i-51p****',
+ ],
+ 'InstanceType' => [
+ 'description' => 'The type of the instance that is associated with the HAVIP. Valid values:'."\n"
+ ."\n"
+ .'* EnsInstance: ENS instance'."\n"
+ .'* NetworkInterface: elastic network interface (ENI)'."\n",
+ 'type' => 'string',
+ 'example' => 'EnsInstance',
+ ],
+ 'IpAddress' => [
+ 'description' => 'The private IP address of the instance that is associated with the HAVIP. Valid values:'."\n",
+ 'type' => 'string',
+ 'example' => '192.XX.XX.9',
+ ],
+ 'Status' => [
+ 'description' => 'The association status of the HAVIP. Valid values:'."\n"
+ ."\n"
+ .'* Associating'."\n"
+ .'* InUse'."\n"
+ .'* Unassociating'."\n",
+ 'type' => 'string',
+ 'example' => 'InUse',
+ ],
+ 'CreationTime' => [
+ 'description' => 'The time when the instance was created.'."\n",
+ 'type' => 'string',
+ 'example' => '2023-01-05T07:09:28Z',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'SystemError',
+ 'errorMessage' => 'Interface call error, please re-match, or contact the product.',
+ ],
+ [
+ 'errorCode' => 'Invalid%s',
+ 'errorMessage' => 'The specified parameter %s is invalid.',
+ ],
+ [
+ 'errorCode' => 'Missing%s',
+ 'errorMessage' => 'You must specify the parameter %s.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"AAE90880-4970-4D81-A534-A6C0F3631F74\\",\\n \\"TotalCount\\": \\"49\\",\\n \\"PageSize\\": \\"10\\",\\n \\"PageNumber\\": \\"1\\",\\n \\"HaVips\\": [\\n {\\n \\"Status\\": \\"Available\\",\\n \\"CreationTime\\": \\"2023-03-29T11:17:38Z\\",\\n \\"Description\\": \\"test\\",\\n \\"HaVipId\\": \\"havip-52y28****\\",\\n \\"Name\\": \\"test\\",\\n \\"EnsRegionId\\": \\"cn-guiyang-14\\",\\n \\"NetworkId\\": \\"n-5wtkyrk****\\",\\n \\"VSwitchId\\": \\"vsw-5yc8d****\\",\\n \\"IpAddress\\": \\"192.XX.XX.5\\\\n\\",\\n \\"AssociatedEipAddresses\\": [\\n {\\n \\"EipId\\": \\"eip-5p1wz****\\",\\n \\"Eip\\": \\"47.XX.XX.40\\"\\n }\\n ],\\n \\"AssociatedInstances\\": [\\n {\\n \\"InstanceId\\": \\"i-51p****\\",\\n \\"InstanceType\\": \\"EnsInstance\\",\\n \\"IpAddress\\": \\"192.XX.XX.9\\",\\n \\"Status\\": \\"InUse\\",\\n \\"CreationTime\\": \\"2023-01-05T07:09:28Z\\"\\n }\\n ]\\n }\\n ]\\n}","type":"json"}]',
+ 'title' => 'DescribeHaVips',
+ ],
+ 'AssociateHaVip' => [
+ 'summary' => 'Associates a high-availability virtual IP address (HAVIP) with an Edge Node Service (ENS) instance or elastic network interface (ENI).',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'update',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '203842',
+ 'abilityTreeNodes' => [
+ 'FEATUREensWB9R7U',
+ ],
+ 'tenantRelevance' => 'tenant',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'HaVipId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the HAVIP.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'havip-5p14t****',
+ ],
+ ],
+ [
+ 'name' => 'InstanceId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the instance.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'i-50c4****',
+ ],
+ ],
+ [
+ 'name' => 'InstanceType',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The type of the instance to be associated with the HAVIP. Valid values:'."\n"
+ ."\n"
+ .'* EnsInstance (default): ENS instance'."\n"
+ .'* NetworkInterface: elastic network interface (ENI)'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'EnsInstance',
+ 'default' => 'EnsInstance',
+ 'enum' => [
+ 'EnsInstance',
+ 'NetworkInterface',
+ ],
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'InstanceNotFound',
+ 'errorMessage' => 'The input parameter instancdId that is not found.',
+ ],
+ [
+ 'errorCode' => 'Invalid%s',
+ 'errorMessage' => 'The specified parameter %s is invalid.',
+ ],
+ [
+ 'errorCode' => 'Missing%s',
+ 'errorMessage' => 'You must specify the parameter %s.',
+ ],
+ [
+ 'errorCode' => 'HaVipNotFound',
+ 'errorMessage' => 'The input parameter haVipId that is not found.',
+ ],
+ [
+ 'errorCode' => 'IncorrectHaVipStatus',
+ 'errorMessage' => 'The status of the haVip is invalid.',
+ ],
+ [
+ 'errorCode' => 'SystemError',
+ 'errorMessage' => 'Interface call error, please re-match, or contact the product.',
+ ],
+ [
+ 'errorCode' => 'InstanceAlreadyAssociated',
+ 'errorMessage' => 'The instance is already bound.',
+ ],
+ [
+ 'errorCode' => 'IncorrectNetworkInterfaceStatus',
+ 'errorMessage' => 'The operation could not be completed because the status of the specified network interface is invalid for this action.',
+ ],
+ [
+ 'errorCode' => 'NetworkInterfaceNotFound',
+ 'errorMessage' => 'The specified network interface does not exist.',
+ ],
+ [
+ 'errorCode' => 'NetworkInterfaceTypeNotSupported',
+ 'errorMessage' => 'This network interface type cannot be used with the current operation.',
+ ],
+ [
+ 'errorCode' => 'IncorrectInstanceVSwitch',
+ 'errorMessage' => 'The binding instance must be under the same VSwitch.',
+ ],
+ [
+ 'errorCode' => 'IncorrectInstanceStatus',
+ 'errorMessage' => 'The current status of the instance does not support this operation.',
+ ],
+ [
+ 'errorCode' => 'CountLimitExceed.HaVipOnInstance',
+ 'errorMessage' => 'The amount of HaVip associated with the specified Instance reach its limits.',
+ ],
+ [
+ 'errorCode' => 'CountLimitExceed.InstanceOnHaVip',
+ 'errorMessage' => 'The number of instances bound to HaVip has reached the limit.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\"\\n}","type":"json"}]',
+ 'title' => 'AssociateHaVip',
+ 'description' => 'When you call this operation to associate an HAVIP, take note of the following items:'."\n"
+ ."\n"
+ .'* An HAVIP immediately takes effect after it is associated. You do not need to restart the ENS instance. However, you need to associate the HAVIP with the ENI of the ENS instance.'."\n"
+ ."\n"
+ .'* The HAVIP and ENS instance must belong to the same vSwitch.'."\n"
+ ."\n"
+ .'* The ENS instance must be in the Running or Stopped state.'."\n"
+ ."\n"
+ .'* The HAVIP must be in the Available or InUse state.'."\n"
+ ."\n"
+ .'* AssociateHaVip is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call the DescribeHaVips operation to query the status of an HAVIP:'."\n"
+ ."\n"
+ .' * If the HAVIP is in the Associating state, the HAVIP is being associated.'."\n"
+ ."\n"
+ .' <!---->'."\n"
+ ."\n"
+ .' * If the HAVIP is in the InUse state, the HAVIP is associated.'."\n",
+ ],
+ 'UnassociateHaVip' => [
+ 'summary' => 'Disassociates a high-availability virtual IP address (HAVIP) from an Edge Node Service (ENS) instance or Elastic Network Interface (ENI).',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'update',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '203845',
+ 'abilityTreeNodes' => [
+ 'FEATUREens5WGMNC',
+ ],
+ 'tenantRelevance' => 'tenant',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'HaVipId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the HAVIP that you want to disassociate.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'havip-5p14t****',
+ ],
+ ],
+ [
+ 'name' => 'InstanceId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the ENS instance or ENI that you want to disassociate from the HAVIP.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'i-5ecpqvk****',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => 'C0003E8B-B930-4F59-ADC0-0E209A9012A8',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'InstanceNotFound',
+ 'errorMessage' => 'The input parameter instancdId that is not found.',
+ ],
+ [
+ 'errorCode' => 'Invalid%s',
+ 'errorMessage' => 'The specified parameter %s is invalid.',
+ ],
+ [
+ 'errorCode' => 'Missing%s',
+ 'errorMessage' => 'You must specify the parameter %s.',
+ ],
+ [
+ 'errorCode' => 'SystemError',
+ 'errorMessage' => 'Interface call error, please re-match, or contact the product.',
+ ],
+ [
+ 'errorCode' => 'HaVipNotFound',
+ 'errorMessage' => 'The input parameter haVipId that is not found.',
+ ],
+ [
+ 'errorCode' => 'InstanceNotAssociated',
+ 'errorMessage' => 'The instance is not associated.',
+ ],
+ [
+ 'errorCode' => 'IncorrectInstanceAssociationStatus',
+ 'errorMessage' => 'The status of the instance association is incorrect.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"C0003E8B-B930-4F59-ADC0-0E209A9012A8\\"\\n}","type":"json"}]',
+ 'title' => 'UnassociateHaVip',
+ ],
+ 'CreateNetworkAcl' => [
+ 'summary' => 'Creates a network access control list (ACL).',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'readAndWrite',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'create',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '150434',
+ 'abilityTreeNodes' => [
+ 'FEATUREensGUJDF4',
+ ],
+ 'tenantRelevance' => 'publicInformation',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'NetworkAclName',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'Enter a name for the network ACL.'."\n"
+ ."\n"
+ .'The name must be 1 to 128 characters in length and cannot start with http:// or https://.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'acl-1',
+ ],
+ ],
+ [
+ 'name' => 'Description',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The description of the network ACL.'."\n"
+ ."\n"
+ .'The description must be 1 to 256 characters in length and cannot start with http:// or https://.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'This is my NetworkAcl.',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984',
+ ],
+ 'NetworkAclId' => [
+ 'description' => 'The ID of the network ACL.'."\n",
+ 'type' => 'string',
+ 'example' => 'nacl-5p1fg655nh68xyz9i****',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'InvalidParameter',
+ 'errorMessage' => 'The errorMessage is %s. Please check it again.',
+ ],
+ [
+ 'errorCode' => 'ens.interface.error',
+ 'errorMessage' => 'An error occurred while calling the API.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\",\\n \\"NetworkAclId\\": \\"nacl-5p1fg655nh68xyz9i****\\"\\n}","errorExample":""},{"type":"xml","example":"<CreateNetworkAclResponse>\\n <RequestId>CEF72CEB-54B6-4AE8-B225-F876FF7BA984</RequestId>\\n <NetworkAclId>String\\tnacl-5p1fg655nh68xyz9i****</NetworkAclId>\\n</CreateNetworkAclResponse>","errorExample":""}]',
+ 'title' => 'CreateNetworkAcl',
+ ],
+ 'DeleteNetworkAcl' => [
+ 'summary' => 'Deletes a network access control list (ACL).',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'readAndWrite',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'create',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeNodes' => [
+ 'FEATUREensRPFZ7X',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'NetworkAclId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the network ACL.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'nacl-bp1lhl0taikrbgnh****',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'InvalidParameter',
+ 'errorMessage' => 'The errorMessage is %s. Please check it again.',
+ ],
+ [
+ 'errorCode' => 'NetworkAclIdNotFound',
+ 'errorMessage' => 'The specified instance does not exist. Please check whether the instance ID is correct.',
+ ],
+ [
+ 'errorCode' => 'DependencyNetworkViolation',
+ 'errorMessage' => 'A bound network can be deleted only after it is unbound',
+ ],
+ [
+ 'errorCode' => 'ens.interface.error',
+ 'errorMessage' => 'An error occurred while calling the API.',
+ ],
+ [
+ 'errorCode' => 'MissingParameter',
+ 'errorMessage' => 'The input parameter that is mandatory for processing this request is not supplied. ',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\"\\n}","errorExample":""},{"type":"xml","example":"<DeleteNetworkAclResponse>\\n <RequestId>CEF72CEB-54B6-4AE8-B225-F876FF7BA984</RequestId>\\n</DeleteNetworkAclResponse>","errorExample":""}]',
+ 'title' => 'DeleteNetworkAcl',
+ ],
+ 'DescribeNetworkAcls' => [
+ 'summary' => 'Queries network access control lists (ACLs).',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'list',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeNodes' => [
+ 'FEATUREensF94XEF',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'NetworkAclId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the network ACL.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'nacl-bp1lhl0taikrbgnh****',
+ ],
+ ],
+ [
+ 'name' => 'NetworkAclName',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The name of the network ACL.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'acl-1',
+ ],
+ ],
+ [
+ 'name' => 'ResourceId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the associated instance.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'n-5****',
+ ],
+ ],
+ [
+ 'name' => 'PageNumber',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The page number. Pages start from page **1**. Default value: **1**.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '1',
+ ],
+ ],
+ [
+ 'name' => 'PageSize',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The number of entries per page. Maximum value: **50**. Default value: **10**.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '10',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => 'A1707FC0-430C-423A-B624-284046B20399',
+ ],
+ 'TotalCount' => [
+ 'description' => 'The total number of entries returned.'."\n",
+ 'type' => 'string',
+ 'example' => '3',
+ ],
+ 'PageSize' => [
+ 'description' => 'The number of entries per page.'."\n",
+ 'type' => 'string',
+ 'example' => '2',
+ ],
+ 'PageNumber' => [
+ 'description' => 'The page number.'."\n",
+ 'type' => 'string',
+ 'example' => '1',
+ ],
+ 'NetworkAcls' => [
+ 'description' => 'Details of the network ACLs.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'Status' => [
+ 'description' => 'The status of the network ACL. Valid values:'."\n"
+ ."\n"
+ .'* **Available**: The network ACL is available.'."\n"
+ .'* **Modifying**: The network ACL is being configured.'."\n",
+ 'type' => 'string',
+ 'example' => 'Available',
+ ],
+ 'CreationTime' => [
+ 'description' => 'The time when the network ACL was created. The time follows the ISO 8601 standard in the `yyyy-MM-ddTHH:mm:ssZ` format. The time is displayed in UTC.'."\n",
+ 'type' => 'string',
+ 'example' => '2019-11-01T06:08:46Z',
+ ],
+ 'Description' => [
+ 'description' => 'The description of the network ACL.'."\n",
+ 'type' => 'string',
+ 'example' => 'This is my NetworkAcl.',
+ ],
+ 'NetworkAclId' => [
+ 'description' => 'The ID of the network ACL.'."\n",
+ 'type' => 'string',
+ 'example' => 'nacl-a2do9e413e0spxscd****',
+ ],
+ 'NetworkAclName' => [
+ 'description' => 'The name of the network ACL.'."\n",
+ 'type' => 'string',
+ 'example' => 'acl-8',
+ ],
+ 'IngressAclEntries' => [
+ 'description' => 'Details of the inbound rules.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'Policy' => [
+ 'description' => 'The action that is performed on network traffic that matches the rule. Valid values:'."\n"
+ ."\n"
+ .'* **accept**: allows the network traffic.'."\n"
+ .'* **drop**: blocks the network traffic.'."\n",
+ 'type' => 'string',
+ 'example' => 'accept',
+ ],
+ 'NetworkAclEntryId' => [
+ 'description' => 'The ID of the inbound rule.'."\n",
+ 'type' => 'string',
+ 'example' => 'nae-5dk86arlydmezasw****',
+ ],
+ 'NetworkAclEntryName' => [
+ 'description' => 'The name of the inbound rule.'."\n",
+ 'type' => 'string',
+ 'example' => 'acl-3',
+ ],
+ 'CidrBlock' => [
+ 'description' => 'The source CIDR block.'."\n",
+ 'type' => 'string',
+ 'example' => '10.0.0.0/24',
+ ],
+ 'Protocol' => [
+ 'description' => 'The protocol type. Valid values:'."\n"
+ ."\n"
+ .'* **icmp**: ICMP.'."\n"
+ .'* **tcp**: TCP.'."\n"
+ .'* **udp**: UDP.'."\n"
+ .'* **all**: all protocols.'."\n",
+ 'type' => 'string',
+ 'example' => 'all',
+ ],
+ 'PortRange' => [
+ 'description' => 'The destination port range of the inbound rule.'."\n"
+ ."\n"
+ .'* If **Protocol** of the inbound rule is set to **all** or **icmp**, the port range is **-1/-1**, which indicates all ports.'."\n"
+ .'* If **Protocol** of the inbound rule is set to **tcp** or **udp**, the port range is in the following format: **1/200** or **80/80**. 1/200 indicates port 1 to port 200. 80/80 indicates port 80. Valid values for a port: **1 to 65535**.'."\n",
+ 'type' => 'string',
+ 'example' => '-1/-1',
+ ],
+ 'Priority' => [
+ 'description' => 'The priority of the rule. Valid values: **1 to 100**. Default value: **1**.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '1',
+ ],
+ 'Type' => [
+ 'description' => 'The type of the rule. Valid values:'."\n"
+ ."\n"
+ .'* **system**: The rule is created by the system.'."\n"
+ .'* **custom**: The rule is created by a user.'."\n",
+ 'type' => 'string',
+ 'example' => 'system',
+ ],
+ 'Description' => [
+ 'description' => 'The description of the inbound rule.'."\n",
+ 'type' => 'string',
+ 'example' => 'This is IngressAclEntries.',
+ ],
+ 'DestinationCidrBlock' => [
+ 'type' => 'string',
+ ],
+ ],
+ ],
+ ],
+ 'EgressAclEntries' => [
+ 'description' => 'Details of the outbound rules.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'Policy' => [
+ 'description' => 'The action that is performed on network traffic that matches the rule. Valid values:'."\n"
+ ."\n"
+ .'* **accept**: allows the network traffic.'."\n"
+ .'* **drop**: blocks the network traffic.'."\n",
+ 'type' => 'string',
+ 'example' => 'accept',
+ ],
+ 'NetworkAclEntryId' => [
+ 'description' => 'The ID of the outbound rule.'."\n",
+ 'type' => 'string',
+ 'example' => 'nae-a2d447uw4tillfvgb****',
+ ],
+ 'NetworkAclEntryName' => [
+ 'description' => 'The name of the outbound rule.'."\n",
+ 'type' => 'string',
+ 'example' => 'acl-2',
+ ],
+ 'CidrBlock' => [
+ 'description' => 'The destination CIDR block.'."\n",
+ 'type' => 'string',
+ 'example' => '10.0.0.0/24',
+ ],
+ 'Protocol' => [
+ 'description' => 'The protocol type. Valid values:'."\n"
+ ."\n"
+ .'* **icmp**: ICMP.'."\n"
+ .'* **tcp**: TCP.'."\n"
+ .'* **udp**: UDP.'."\n"
+ .'* **all**: all protocols.'."\n",
+ 'type' => 'string',
+ 'example' => 'all',
+ ],
+ 'PortRange' => [
+ 'description' => 'The destination port range of the outbound rule.'."\n"
+ ."\n"
+ .'* If **Protocol** of the outbound rule is set to **all** or **icmp** the port range is **-1/-1**, which indicates all ports.'."\n"
+ .'* If **Protocol** of the outbound rule is set to **tcp** or **udp**, the port range is in the following format: **1/200** or **80/80**. 1/200 indicates port 1 to port 200. 80/80 indicates port 80. Valid values for a port: **1 to 65535**.'."\n",
+ 'type' => 'string',
+ 'example' => '-1/-1',
+ ],
+ 'Priority' => [
+ 'description' => 'The priority of the rule. Valid values: **1 to 100**. Default value: **1**.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '1',
+ ],
+ 'Type' => [
+ 'description' => 'The type of the rule. Valid values:'."\n"
+ ."\n"
+ .'* **system**: The rule is created by the system.'."\n"
+ .'* **custom**: The rule is created by a user.'."\n",
+ 'type' => 'string',
+ 'example' => 'system',
+ ],
+ 'Description' => [
+ 'description' => 'The description of the outbound rule.'."\n",
+ 'type' => 'string',
+ 'example' => 'This is EgressAclEntries.',
+ ],
+ ],
+ ],
+ ],
+ 'Resources' => [
+ 'description' => 'Details of the associated resources.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'Status' => [
+ 'description' => 'The association status of the resource. Valid values:'."\n"
+ ."\n"
+ .'* **BINDED**: The resource is associated with the network ACL.'."\n"
+ .'* **BINDING**: The resource is being associated with the network ACL.'."\n"
+ .'* **UNBINDING**: The resource is being disassociated from the network ACL.'."\n",
+ 'type' => 'string',
+ 'example' => 'BINDING',
+ ],
+ 'ResourceType' => [
+ 'description' => 'The type of the associated resource.'."\n",
+ 'type' => 'string',
+ 'example' => 'Network',
+ ],
+ 'ResourceId' => [
+ 'description' => 'The ID of the associated resource.'."\n",
+ 'type' => 'string',
+ 'example' => 'n-****',
+ ],
+ 'EnsRegionId' => [
+ 'description' => 'The ID of the edge node.'."\n",
+ 'type' => 'string',
+ 'example' => 'cn-fuzhou-telecom',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'ens.interface.error',
+ 'errorMessage' => 'Failed to call API.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"A1707FC0-430C-423A-B624-284046B20399\\",\\n \\"TotalCount\\": \\"3\\",\\n \\"PageSize\\": \\"2\\",\\n \\"PageNumber\\": \\"1\\",\\n \\"NetworkAcls\\": [\\n {\\n \\"Status\\": \\"Available\\",\\n \\"CreationTime\\": \\"2019-11-01T06:08:46Z\\",\\n \\"Description\\": \\"This is my NetworkAcl.\\",\\n \\"NetworkAclId\\": \\"nacl-a2do9e413e0spxscd****\\",\\n \\"NetworkAclName\\": \\"acl-8\\",\\n \\"IngressAclEntries\\": [\\n {\\n \\"Policy\\": \\"accept\\",\\n \\"NetworkAclEntryId\\": \\"nae-5dk86arlydmezasw****\\",\\n \\"NetworkAclEntryName\\": \\"acl-3\\",\\n \\"CidrBlock\\": \\"10.0.0.0/24\\",\\n \\"Protocol\\": \\"all\\",\\n \\"PortRange\\": \\"-1/-1\\",\\n \\"Priority\\": 1,\\n \\"Type\\": \\"system\\",\\n \\"Description\\": \\"This is IngressAclEntries.\\",\\n \\"DestinationCidrBlock\\": \\"10.0.0.0/24\\"\\n }\\n ],\\n \\"EgressAclEntries\\": [\\n {\\n \\"Policy\\": \\"accept\\",\\n \\"NetworkAclEntryId\\": \\"nae-a2d447uw4tillfvgb****\\",\\n \\"NetworkAclEntryName\\": \\"acl-2\\",\\n \\"CidrBlock\\": \\"10.0.0.0/24\\",\\n \\"Protocol\\": \\"all\\",\\n \\"PortRange\\": \\"-1/-1\\",\\n \\"Priority\\": 1,\\n \\"Type\\": \\"system\\",\\n \\"Description\\": \\"This is EgressAclEntries.\\"\\n }\\n ],\\n \\"Resources\\": [\\n {\\n \\"Status\\": \\"BINDING\\",\\n \\"ResourceType\\": \\"Network\\",\\n \\"ResourceId\\": \\"n-****\\",\\n \\"EnsRegionId\\": \\"cn-fuzhou-telecom\\"\\n }\\n ]\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"<DescribeNetworkAclsResponse>\\n <RequestId>A1707FC0-430C-423A-B624-284046B20399</RequestId>\\n <TotalCount>3</TotalCount>\\n <PageSize>2</PageSize>\\n <PageNumber>1</PageNumber>\\n <NetworkAcls>\\n <Status>Available</Status>\\n <CreationTime>2019-11-01T06:08:46Z</CreationTime>\\n <Description>This is my NetworkAcl.</Description>\\n <NetworkAclId>nacl-a2do9e413e0spxscd****</NetworkAclId>\\n <NetworkAclName>acl-8</NetworkAclName>\\n <IngressAclEntries>\\n <Policy>accept</Policy>\\n <NetworkAclEntryId>nae-5dk86arlydmezasw****</NetworkAclEntryId>\\n <NetworkAclEntryName>acl-3</NetworkAclEntryName>\\n <CidrBlock>10.0.0.0/24</CidrBlock>\\n <Protocol>all</Protocol>\\n <PortRange>-1/-1</PortRange>\\n <Priority>1</Priority>\\n <Type>system</Type>\\n <Description>This is IngressAclEntries.</Description>\\n </IngressAclEntries>\\n <EgressAclEntries>\\n <Policy>accept</Policy>\\n <NetworkAclEntryId>nae-a2d447uw4tillfvgb****</NetworkAclEntryId>\\n <NetworkAclEntryName>acl-2</NetworkAclEntryName>\\n <CidrBlock>10.0.0.0/24</CidrBlock>\\n <Protocol>all</Protocol>\\n <PortRange>-1/-1</PortRange>\\n <Priority>1</Priority>\\n <Type>system</Type>\\n <Description>This is EgressAclEntries.</Description>\\n </EgressAclEntries>\\n <Resources>\\n <Status>BINDING</Status>\\n <ResourceType>Network</ResourceType>\\n <ResourceId>n-****</ResourceId>\\n <EnsRegionId>cn-fuzhou-telecom</EnsRegionId>\\n </Resources>\\n </NetworkAcls>\\n</DescribeNetworkAclsResponse>","errorExample":""}]',
+ 'title' => 'DescribeNetworkAcls',
+ ],
+ 'AccosicateNetworkAcl' => [
+ 'summary' => 'Associates a network access control list (ACL) with a network.',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'update',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'NetworkAclId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the network ACL.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'nacl-a2do9e413e0sp****',
+ ],
+ ],
+ [
+ 'name' => 'Resource',
+ 'in' => 'query',
+ 'style' => 'flat',
+ 'schema' => [
+ 'description' => 'The type of resource with which you want to associate the network ACL.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'ResourceType' => [
+ 'description' => 'The type of the associated resource. Set the value to **Network**.'."\n"
+ ."\n"
+ .'Valid values of **N**: 0 to 29. You can associate a network ACL with at most 30 resources.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'Network',
+ 'enum' => [
+ 'Network',
+ ],
+ ],
+ 'ResourceId' => [
+ 'description' => 'The ID of the associated resource.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'n-5****',
+ ],
+ ],
+ 'required' => false,
+ 'description' => '',
+ ],
+ 'required' => true,
+ 'maxItems' => 30,
+ 'minItems' => 1,
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'Missing%s',
+ 'errorMessage' => 'You must specify the parameter %s.',
+ ],
+ [
+ 'errorCode' => 'Invalid%s',
+ 'errorMessage' => 'The specified parameter %s is invalid.',
+ ],
+ [
+ 'errorCode' => 'ens.interface.error',
+ 'errorMessage' => 'An error occurred while call the API.',
+ ],
+ [
+ 'errorCode' => 'InvalidNetworkAcl.NotFound',
+ 'errorMessage' => 'The special Network Acl is not found.',
+ ],
+ [
+ 'errorCode' => 'InvalidResource.NotFound',
+ 'errorMessage' => 'The binding instance is not found.',
+ ],
+ [
+ 'errorCode' => 'InvalidResource.Associated',
+ 'errorMessage' => 'This instance has already associated network acl.',
+ ],
+ [
+ 'errorCode' => 'RegionAccessDenied',
+ 'errorMessage' => 'Could not operate this region\'s resource.',
+ ],
+ [
+ 'errorCode' => 'InvalidResource.NotSupport',
+ 'errorMessage' => 'Network type not support.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\"\\n}","errorExample":""},{"type":"xml","example":"<AccosicateNetworkAclResponse>\\n <RequestId>CEF72CEB-54B6-4AE8-B225-F876FF7BA984</RequestId>\\n</AccosicateNetworkAclResponse>","errorExample":""}]',
+ 'title' => 'AccosicateNetworkAcl',
+ ],
+ 'UnassociateNetworkAcl' => [
+ 'summary' => 'Disassociates a network access control list (ACL) from a network.',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'update',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'NetworkAclId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the network ACL that you want to disassociate from a resource.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'nacl-a2do9e413e0sp****',
+ ],
+ ],
+ [
+ 'name' => 'Resource',
+ 'in' => 'query',
+ 'style' => 'flat',
+ 'schema' => [
+ 'description' => 'Resources that you want to disassociate. Valid values of **N**: 0 to 29. A maximum of 30 resources can be unbound.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The resources that you want to disassociate.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'ResourceType' => [
+ 'description' => 'The type of the resource that you want to disassociate. Valid values:'."\n"
+ ."\n"
+ .'* Network'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'Network',
+ 'enum' => [
+ 'Network',
+ ],
+ ],
+ 'ResourceId' => [
+ 'description' => 'The ID of the resource that you want to disassociate.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'n-5***',
+ ],
+ ],
+ 'required' => false,
+ ],
+ 'required' => true,
+ 'maxItems' => 30,
+ 'minItems' => 1,
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'Missing%s',
+ 'errorMessage' => 'You must specify the parameter %s.',
+ ],
+ [
+ 'errorCode' => 'Invalid%s',
+ 'errorMessage' => 'The specified parameter %s is invalid.',
+ ],
+ [
+ 'errorCode' => 'ens.interface.error',
+ 'errorMessage' => 'An error occurred while call the API.',
+ ],
+ [
+ 'errorCode' => 'InvalidNetworkAcl.NotFound',
+ 'errorMessage' => 'The special Network Acl is not found.',
+ ],
+ [
+ 'errorCode' => 'RegionAccessDenied',
+ 'errorMessage' => 'Could not operate this region\'s resource',
+ ],
+ [
+ 'errorCode' => 'InvalidResource.NotBond',
+ 'errorMessage' => 'The special Network Acl and the Resource are not bound.',
+ ],
+ [
+ 'errorCode' => 'IncorrectResourceBondStatus',
+ 'errorMessage' => 'The resource\'s bond status is invalid.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\"\\n}","errorExample":""},{"type":"xml","example":"<UnassociateNetworkAclResponse>\\n <RequestId>CEF72CEB-54B6-4AE8-B225-F876FF7BA984</RequestId>\\n</UnassociateNetworkAclResponse>","errorExample":""}]',
+ 'title' => 'UnassociateNetworkAcl',
+ ],
+ 'CreateNetworkAclEntry' => [
+ 'summary' => 'Creates a network access control list (ACL) rule.',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'create',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeNodes' => [
+ 'FEATUREens41BYFG',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'NetworkAclId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the network ACL.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'nacl-bp1lhl0taikrbgnh****',
+ ],
+ ],
+ [
+ 'name' => 'NetworkAclEntryName',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The name of the rule.'."\n"
+ ."\n"
+ .'The name must be 1 to 128 characters in length and cannot start with http:// or https://.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'acl-1',
+ 'maxLength' => 128,
+ ],
+ ],
+ [
+ 'name' => 'Description',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The description of the network ACL.'."\n"
+ ."\n"
+ .'The description must be 1 to 256 characters in length and cannot start with http:// or https://.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'This is my NetworkAcl.',
+ 'maxLength' => 256,
+ ],
+ ],
+ [
+ 'name' => 'Direction',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The direction in which the rule is applied. Valid values:'."\n"
+ ."\n"
+ .'* **ingress**'."\n"
+ .'* **egress**'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'ingress',
+ 'enum' => [
+ 'egress',
+ 'ingress',
+ ],
+ ],
+ ],
+ [
+ 'name' => 'Policy',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The action that is performed on network traffic that matches the rule. Valid values:'."\n"
+ ."\n"
+ .'* **accept**: allows network traffic.'."\n"
+ .'* **drop**: blocks network traffic.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'accept',
+ 'enum' => [
+ 'accept',
+ 'drop',
+ ],
+ ],
+ ],
+ [
+ 'name' => 'CidrBlock',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The source CIDR block.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => '10.0.0.0/24',
+ ],
+ ],
+ [
+ 'name' => 'Protocol',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The type of the protocol. Valid values:'."\n"
+ ."\n"
+ .'* **icmp**: ICMP'."\n"
+ .'* **tcp**: TCP'."\n"
+ .'* **udp**: UDP'."\n"
+ .'* **all**: all protocols'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'all',
+ 'enum' => [
+ 'icmp',
+ 'tcp',
+ 'udp',
+ 'all',
+ 'gre',
+ ],
+ ],
+ ],
+ [
+ 'name' => 'PortRange',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The port range.'."\n"
+ ."\n"
+ .'* If you set **Protocol** to **all** or **icmp**, set this parameter to -1/-1, which specifies all ports.'."\n"
+ .'* If you set **Protocol** to **tcp** or **udp**, the port can be **1 to 65535**. You can set this parameter to **1/200** or **80/80**, which specifies ports 1 to 200 or port 80.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => '-1/-1',
+ ],
+ ],
+ [
+ 'name' => 'Priority',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The priority of the rule. Valid values: **1 to 100**. Default value: **1**.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => true,
+ 'maximum' => '100',
+ 'minimum' => '1',
+ 'example' => '1',
+ ],
+ ],
+ [
+ 'name' => 'DestinationCidrBlock',
+ 'in' => 'query',
+ 'schema' => [
+ 'type' => 'string',
+ 'maxLength' => 100,
+ 'minLength' => 1,
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984',
+ ],
+ 'NetworkAclEntryId' => [
+ 'description' => 'The ID of the network ACL.'."\n",
+ 'type' => 'string',
+ 'example' => 'nae-5****',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'Invalid%s',
+ 'errorMessage' => 'The specified parameter %s is invalid.',
+ ],
+ [
+ 'errorCode' => 'Missing%s',
+ 'errorMessage' => 'You must specify the parameter %s.',
+ ],
+ [
+ 'errorCode' => 'InvalidParam.DuplicateRule',
+ 'errorMessage' => 'This rule already exists',
+ ],
+ [
+ 'errorCode' => 'RuleLimitExceed',
+ 'errorMessage' => 'The maximum number of network acl rule is reached.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'ens.interface.error',
+ 'errorMessage' => 'Failed to call API.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\",\\n \\"NetworkAclEntryId\\": \\"nae-5****\\"\\n}","errorExample":""},{"type":"xml","example":"<CreateNetworkAclEntryResponse>\\n <RequestId>CEF72CEB-54B6-4AE8-B225-F876FF7BA984</RequestId>\\n <NetworkAclEntryId>nae-5****</NetworkAclEntryId>\\n</CreateNetworkAclEntryResponse>","errorExample":""}]',
+ 'title' => 'CreateNetworkAclEntry',
+ ],
+ 'DeleteNetworkAclEntry' => [
+ 'summary' => 'Deletes a network access control list (ACL) rule.',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'deprecated' => false,
+ 'systemTags' => [],
+ 'parameters' => [
+ [
+ 'name' => 'NetworkAclEntryId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the network ACL for which you want to delete a rule.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'nae-5****',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'ens.interface.error',
+ 'errorMessage' => 'An error occurred while call the API.',
+ ],
+ [
+ 'errorCode' => 'InvalidNetworkAclEntryId.NotFound',
+ 'errorMessage' => 'The special Network Acl Entry is not found. ',
+ ],
+ [
+ 'errorCode' => 'Missing%s',
+ 'errorMessage' => 'You must specify the parameter %s.',
+ ],
+ [
+ 'errorCode' => 'Invalid%s',
+ 'errorMessage' => 'The specified parameter %s is invalid.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\"\\n}","errorExample":""},{"type":"xml","example":"<DeleteNetworkAclEntryResponse>\\n <RequestId>CEF72CEB-54B6-4AE8-B225-F876FF7BA984</RequestId>\\n</DeleteNetworkAclEntryResponse>","errorExample":""}]',
+ 'title' => 'DeleteNetworkAclEntry',
+ ],
+ 'CreateFileSystem' => [
+ 'summary' => 'Creates a NAS file system.',
+ 'methods' => [
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'create',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeNodes' => [
+ 'FEATUREensBO90KZ',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'OrderDetails',
+ 'in' => 'query',
+ 'style' => 'json',
+ 'schema' => [
+ 'description' => 'The information about the orders.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'OrderType' => [
+ 'description' => 'The type of the order. Set the value to BUY.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'BUY',
+ ],
+ 'ChargeType' => [
+ 'description' => 'The billing method of the NAS file system. Valid values:'."\n"
+ ."\n"
+ .'* PrePaid: subscription. This billing method is not supported.'."\n"
+ .'* PostPaid: pay-as-you-go.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'PostPaid',
+ ],
+ 'FileSystemName' => [
+ 'description' => 'The name of the file system. The name must be 1 to 80 characters in length and can contain letters, digits, hyphens (-), and underscores (\\_).'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'nasFile',
+ ],
+ 'EnsRegionId' => [
+ 'description' => 'The ID of the edge node.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'cn-suzhou-telecom',
+ ],
+ 'StorgeType' => [
+ 'description' => 'The storage type. Valid values:'."\n"
+ ."\n"
+ .'* Capacity.'."\n"
+ .'* Performance.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'capacity',
+ 'enum' => [
+ 'capacity',
+ 'performance',
+ ],
+ ],
+ 'ProtocolType' => [
+ 'description' => 'The storage protocol. Set the value to nfs.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'enumValueTitles' => [
+ 'nfs' => 'nfs',
+ ],
+ 'example' => 'nfs',
+ 'enum' => [
+ 'nfs',
+ 'smb',
+ ],
+ ],
+ 'NetworkId' => [
+ 'description' => 'The ID of the VPC.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'vpc-xxx',
+ ],
+ 'MountTargetDomain' => [
+ 'description' => 'The name of the mount target. The name must be 1 to 80 characters in length and can contain letters, digits, hyphens (-), and underscores (\\_).'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'nasMount',
+ ],
+ ],
+ 'required' => true,
+ 'description' => '',
+ ],
+ 'required' => true,
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => '4EC47282-1B74-4534-BD0E-403F3EE64CAF',
+ ],
+ 'AllocationId' => [
+ 'description' => 'The information about the file system that was created.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => '* InstanceId: the ID of the instance.'."\n"
+ .'* EnsRegionId: the ID of the node.'."\n",
+ 'type' => 'string',
+ 'example' => '{"InstanceId":"e426409223","EnsRegionId":"cn-chengdu-telecom-4"}',
+ ],
+ ],
+ 'BizStatusCode' => [
+ 'description' => 'The status code for successful operations. Valid values:'."\n"
+ ."\n"
+ .'* PartSuccess: The operation is partially successful.'."\n"
+ .'* AllSuccess: The operation is successful.'."\n",
+ 'type' => 'string',
+ 'example' => 'PartSuccess',
+ ],
+ 'UnAllocationId' => [
+ 'description' => 'The information about the file system that failed to be created.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => '* InstanceId: the ID of the system.'."\n"
+ .'* EnsRegionId: the ID of the node.'."\n",
+ 'type' => 'string',
+ 'example' => '{"InstanceId":"e4264066666","EnsRegionId":"cn-hangzhou-26"}',
+ ],
+ ],
+ 'AllocationIds' => [
+ 'type' => 'array',
+ 'items' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'EnsRegionId' => [
+ 'type' => 'string',
+ ],
+ 'InstanceId' => [
+ 'type' => 'string',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'Parameter.Invalid.%s',
+ 'errorMessage' => 'The parameter %s is invalid.Please check your parameters and try it again.',
+ ],
+ [
+ 'errorCode' => 'Stock.NotEnough',
+ 'errorMessage' => 'The inventory of the specified zone is insufficient.Please contact the product.',
+ ],
+ [
+ 'errorCode' => 'UserStatus.Abnormal',
+ 'errorMessage' => 'The user status is abnormal.Please contact the product.',
+ ],
+ [
+ 'errorCode' => 'Service.NotOpen',
+ 'errorMessage' => 'You have not activated the service.Please activate the service first.',
+ ],
+ [
+ 'errorCode' => 'Order.CreateFailed',
+ 'errorMessage' => 'Failed to create order. Please check your parameters and try it again.',
+ ],
+ [
+ 'errorCode' => 'SaleControl.VerificationFailed',
+ 'errorMessage' => 'You did not pass the salecontrol verification.Please contact the product.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"4EC47282-1B74-4534-BD0E-403F3EE64CAF\\",\\n \\"AllocationId\\": [\\n \\"{\\\\\\"InstanceId\\\\\\":\\\\\\"e426409223\\\\\\", \\\\\\"EnsRegionId\\\\\\":\\\\\\"cn-chengdu-telecom-4\\\\\\"}\\"\\n ],\\n \\"BizStatusCode\\": \\"PartSuccess\\",\\n \\"UnAllocationId\\": [\\n \\"{\\\\\\"InstanceId\\\\\\":\\\\\\"e4264066666\\\\\\",\\\\\\"EnsRegionId\\\\\\":\\\\\\"cn-hangzhou-26\\\\\\"}\\"\\n ],\\n \\"AllocationIds\\": [\\n {\\n \\"EnsRegionId\\": \\"\\",\\n \\"InstanceId\\": \\"\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"<CreateFileSystemResponse>\\n <RequestId>EA3758E0-8899-17D3-9526-5F62CF33A586</RequestId>\\n <BizStatusCode>AllSuccess</BizStatusCode>\\n <AllocationId>\\n <InstanceId>e426409223</InstanceId>\\n <EnsRegionId>cn-chengdu-telecom-4</EnsRegionId>\\n </AllocationId>\\n <UnAllocationId>\\n <InstanceId>fff426409223</InstanceId>\\n <EnsRegionId>cn-chengdu-telecom-5</EnsRegionId>\\n </UnAllocationId>\\n</CreateFileSystemResponse>","errorExample":""}]',
+ 'title' => 'CreateFileSystem',
+ ],
+ 'DeleteFileSystem' => [
+ 'summary' => 'Deletes a File Storage NAS file system.',
+ 'methods' => [
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'deprecated' => false,
+ 'systemTags' => [],
+ 'parameters' => [
+ [
+ 'name' => 'EnsRegionId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the edge node.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'cn-chengdu-telecom-4',
+ ],
+ ],
+ [
+ 'name' => 'FileSystemId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the file system that you want to delete.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'e42640****',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => '4EC47282-1B74-4534-BD0E-403F3EE64CAF',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'Instance.NotFound',
+ 'errorMessage' => 'The instance was not found.Please confirm whether the instance exists.',
+ ],
+ [
+ 'errorCode' => 'Parameter.Invalid',
+ 'errorMessage' => 'The parameter is invalid.Please check your parameters and try it again.',
+ ],
+ [
+ 'errorCode' => 'Nas.Mount.Tatget.Entity.Not.Null',
+ 'errorMessage' => 'There are still mount points under the file system.Please delete the mount point first',
+ ],
+ [
+ 'errorCode' => 'Interface.Call.Error',
+ 'errorMessage' => 'The interface call error',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"4EC47282-1B74-4534-BD0E-403F3EE64CAF\\"\\n}","errorExample":""},{"type":"xml","example":"<DeleteFileSystemResponse>\\n <RequestId>4EC47282-1B74-4534-BD0E-403F3EE64CAF</RequestId>\\n</DeleteFileSystemResponse>","errorExample":""}]',
+ 'title' => 'DeleteFileSystem',
+ ],
+ 'ModifyFileSystem' => [
+ 'summary' => 'Modifies the description of a NAS file system.',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'readAndWrite',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'create',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeNodes' => [
+ 'FEATUREensYZKPLX',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'FileSystemId',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '文件系统ID。',
+ 'description' => 'The ID of the file system.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'c50f8*****',
+ ],
+ ],
+ [
+ 'name' => 'EnsRegionId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the edge node.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'cn-beijing-cmcc',
+ ],
+ ],
+ [
+ 'name' => 'Description',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '文件系统描述符。',
+ 'description' => 'The description of the file system.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'fileSystemTest',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => '4EC47282-1B74-4534-BD0E-403F3EE64CAF',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'Missing%s',
+ 'errorMessage' => 'You must specify the parameter %s.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"4EC47282-1B74-4534-BD0E-403F3EE64CAF\\"\\n}","errorExample":""},{"type":"xml","example":"<ModifyFileSystemResponse>\\n <RequestId>4EC47282-1B74-4534-BD0E-403F3EE64CAF</RequestId>\\n</ModifyFileSystemResponse>","errorExample":""}]',
+ 'title' => 'ModifyFileSystem',
+ ],
+ 'DescribeFileSystems' => [
+ 'summary' => 'Queries the information about Apsara File Storage NAS (NAS) file systems.',
+ 'methods' => [
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'list',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeNodes' => [
+ 'FEATUREensW91M6J',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'EnsRegionId',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '地域ID。',
+ 'description' => 'The ID of the region.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'cn-beijing-cmcc',
+ ],
+ ],
+ [
+ 'name' => 'FileSystemId',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '文件系统ID。',
+ 'description' => 'The ID of the file system.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'c50f8*****',
+ ],
+ ],
+ [
+ 'name' => 'FileSystemName',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '文件系统名称。'."\n"
+ .'参与挂载点路径,创建后不允许修改。'."\n"
+ .'LB:/fileSystemName/mountTargetName',
+ 'description' => 'The name of the file system.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'FileSystem1',
+ ],
+ ],
+ [
+ 'name' => 'PageNumber',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '页码,起始值为1。'."\n"
+ .'默认值:1。',
+ 'description' => 'The page number. Pages start from page **1**. Default value: **1**.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'maximum' => '100',
+ 'minimum' => '1',
+ 'example' => '1',
+ 'default' => '1',
+ ],
+ ],
+ [
+ 'name' => 'PageSize',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '每页行数,最大值为100行。'."\n"
+ .'默认值:10。',
+ 'description' => 'The number of entries per page. Maximum value: **100**. Default value: **10**.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'maximum' => '100',
+ 'minimum' => '1',
+ 'example' => '10',
+ 'default' => '10',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'PageNumber' => [
+ 'title' => '页码。',
+ 'description' => 'The page number.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '1',
+ ],
+ 'PageSize' => [
+ 'title' => '单页行数。',
+ 'description' => 'The number of entries per page.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '2',
+ ],
+ 'TotalCount' => [
+ 'title' => '总数。',
+ 'description' => 'The total number of entries returned.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '1',
+ ],
+ 'FileSystems' => [
+ 'title' => '文件系统信息集合。',
+ 'description' => 'The information about the file systems.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'title' => '',
+ 'description' => '',
+ 'type' => 'object',
+ 'properties' => [
+ 'FileSystemId' => [
+ 'title' => '文件系统ID。',
+ 'description' => 'The ID of the file system.'."\n",
+ 'type' => 'string',
+ 'example' => 'c50f8*****',
+ ],
+ 'FileSystemName' => [
+ 'title' => '文件系统名称。',
+ 'description' => 'The name of the file system.'."\n",
+ 'type' => 'string',
+ 'example' => 'FileSystem1',
+ ],
+ 'EnsRegionId' => [
+ 'title' => '地域ID。',
+ 'description' => 'The ID of the region.'."\n",
+ 'type' => 'string',
+ 'example' => 'cn-beijing-cmcc',
+ ],
+ 'StorageType' => [
+ 'title' => '存储类型'."\n"
+ .'capacity:容量型',
+ 'description' => 'The storage type. Valid values:'."\n"
+ ."\n"
+ .'* capacity: Capacity NAS file systems'."\n"
+ .'* performance: Performance NAS file systems'."\n",
+ 'type' => 'string',
+ 'example' => 'capacity',
+ ],
+ 'ProtocolType' => [
+ 'title' => '文件系统协议类型。'."\n"
+ .'包括:'."\n"
+ .'nfs:nfs文件协议'."\n"
+ .'smb:smb文件协议',
+ 'description' => 'The protocol type of the file system. Valid values:'."\n"
+ ."\n"
+ .'* NFS: Network File System (NFS)'."\n"
+ .'* SMB: Server Message Block (SMB)'."\n",
+ 'type' => 'string',
+ 'example' => 'NFS',
+ ],
+ 'Capacity' => [
+ 'title' => '容量。'."\n"
+ .'单位:GIB。',
+ 'description' => 'The capacity of the file system. Unit: MiB.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int64',
+ 'example' => '100000',
+ ],
+ 'MeteredSize' => [
+ 'title' => '文件系统的使用量。'."\n"
+ .'非实时使用量,为上一小时最大使用量,单位:Byte。',
+ 'description' => 'The storage usage of the file system. The value of this parameter is the maximum storage usage of the file system over the last hour. Unit: bytes.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int64',
+ 'example' => '102400',
+ ],
+ 'Status' => [
+ 'title' => '文件系统状态'."\n"
+ .'pending:当前文件系统正在处理任务中。'."\n"
+ .'running:当前文件系统可用,当状态为running时才可以进行后续操作(例如:创建挂载点等)。'."\n"
+ .'stopped:当前文件系统不可用。'."\n"
+ .'extending:当前文件系统扩容中。'."\n"
+ .'stopping:当前文件系统停机中。'."\n"
+ .'deleting:当前文件系统删除中。',
+ 'description' => 'The status of the file system. Valid values:'."\n"
+ ."\n"
+ .'* pending: The file system is being created or modified.'."\n"
+ .'* running: The file system is available. Before you create a mount target for the file system, make sure that the file system is in the running state.'."\n"
+ .'* stopped: The file system is unavailable.'."\n"
+ .'* extending: The file system is being scaled out.'."\n"
+ .'* stopping: The file system is being disabled.'."\n"
+ .'* deleting: The file system is being deleted.'."\n",
+ 'type' => 'string',
+ 'example' => 'running',
+ ],
+ 'PayType' => [
+ 'title' => '付费类型'."\n"
+ .'PostPaid:后付费',
+ 'description' => 'The billing method. PostPaid is returned. PostPaid indicates the pay-as-you-go billing method.'."\n",
+ 'type' => 'string',
+ 'example' => 'PostPaid',
+ ],
+ 'CreationTime' => [
+ 'title' => '文件系统创建时间。',
+ 'description' => 'The time when the file system was created.'."\n",
+ 'type' => 'string',
+ 'example' => '2022-08-31 12:00:00',
+ ],
+ 'MountTargets' => [
+ 'title' => '挂载点信息集合',
+ 'description' => 'The information about mount targets.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'MountTargetDomain' => [
+ 'title' => '挂载点路径。',
+ 'description' => 'The path of the mount target.'."\n",
+ 'type' => 'string',
+ 'example' => '*.*.*.*:/${FileSystemName}/{MountTargetName}',
+ ],
+ 'MountTargetName' => [
+ 'title' => '挂载点名称。',
+ 'description' => 'The name of the mount target.'."\n",
+ 'type' => 'string',
+ 'example' => 'target1',
+ ],
+ 'NetWorkId' => [
+ 'title' => '网络ID。',
+ 'description' => 'The ID of the network.'."\n",
+ 'type' => 'string',
+ 'example' => 'n-****',
+ ],
+ 'Status' => [
+ 'title' => '挂载点状态。'."\n"
+ .'包括:'."\n"
+ .'active:可用'."\n"
+ .'inactive:不可用'."\n"
+ .'pending:任务处理中'."\n"
+ .'deleting:删除中',
+ 'description' => 'The status of the mount target. Valid values:'."\n"
+ ."\n"
+ .'* active: The mount target is available.'."\n"
+ .'* inactive: The mount target is unavailable.'."\n"
+ .'* pending: The task is running.'."\n"
+ .'* deleting: The mount target is being deleted.'."\n",
+ 'type' => 'string',
+ 'example' => 'active',
+ ],
+ ],
+ ],
+ ],
+ 'Description' => [
+ 'type' => 'string',
+ ],
+ ],
+ ],
+ ],
+ 'RequestId' => [
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => '762DD527-358B-1E48-8005-CCE3ED4EB9E0',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'ens.interface.error',
+ 'errorMessage' => 'Failed to call API.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"PageNumber\\": 1,\\n \\"PageSize\\": 2,\\n \\"TotalCount\\": 1,\\n \\"FileSystems\\": [\\n {\\n \\"FileSystemId\\": \\"c50f8*****\\",\\n \\"FileSystemName\\": \\"FileSystem1\\",\\n \\"EnsRegionId\\": \\"cn-beijing-cmcc\\",\\n \\"StorageType\\": \\"capacity\\",\\n \\"ProtocolType\\": \\"NFS\\",\\n \\"Capacity\\": 100000,\\n \\"MeteredSize\\": 102400,\\n \\"Status\\": \\"running\\",\\n \\"PayType\\": \\"PostPaid\\",\\n \\"CreationTime\\": \\"2022-08-31 12:00:00\\",\\n \\"MountTargets\\": [\\n {\\n \\"MountTargetDomain\\": \\"*.*.*.*:/${FileSystemName}/{MountTargetName}\\",\\n \\"MountTargetName\\": \\"target1\\",\\n \\"NetWorkId\\": \\"n-****\\",\\n \\"Status\\": \\"active\\"\\n }\\n ],\\n \\"Description\\": \\"test\\"\\n }\\n ],\\n \\"RequestId\\": \\"762DD527-358B-1E48-8005-CCE3ED4EB9E0\\"\\n}","errorExample":""},{"type":"xml","example":"<DescribeFileSystemsResponse>\\n <PageNumber>1</PageNumber>\\n <PageSize>2</PageSize>\\n <TotalCount>1</TotalCount>\\n <FileSystems>\\n <FileSystemId>c50f8*****</FileSystemId>\\n <FileSystemName>FileSystem1</FileSystemName>\\n <EnsRegionId>cn-beijing-cmcc</EnsRegionId>\\n <StorageType>capacity</StorageType>\\n <ProtocolType>NFS</ProtocolType>\\n <Capacity>100000</Capacity>\\n <MeteredSize>102400</MeteredSize>\\n <Status>running</Status>\\n <PayType>PostPaid</PayType>\\n <CreationTime>2022-08-31 12:00:00</CreationTime>\\n <MountTargets>\\n <MountTargetDomain>*.*.*.*:/${FileSystemName}/{MountTargetName}</MountTargetDomain>\\n <MountTargetName>target1</MountTargetName>\\n <NetWorkId>n-****</NetWorkId>\\n <Status>active</Status>\\n </MountTargets>\\n </FileSystems>\\n <RequestId>762DD527-358B-1E48-8005-CCE3ED4EB9E0</RequestId>\\n</DescribeFileSystemsResponse>","errorExample":""}]',
+ 'title' => 'DescribeFileSystems',
+ ],
+ 'CreateMountTarget' => [
+ 'summary' => 'Creates a mount target.',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'create',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'FileSystemId',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '文件系统ID。',
+ 'description' => 'The ID of the file system.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'c50f8*****',
+ ],
+ ],
+ [
+ 'name' => 'EnsRegionId',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '地域ID。',
+ 'description' => 'The ID of the region.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'cn-beijing-cmcc',
+ ],
+ ],
+ [
+ 'name' => 'NetWorkId',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '网络ID。',
+ 'description' => 'The ID of the network.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'n-*****',
+ ],
+ ],
+ [
+ 'name' => 'MountTargetName',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '挂载点名称。',
+ 'description' => 'The name of the mount target.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'TestMountPath',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => '70EACC9C-D07A-4A34-ADA4-A3DC0DE3C83E',
+ ],
+ 'Status' => [
+ 'description' => 'The state of the mount target. Valid values:'."\n"
+ ."\n"
+ .'* active'."\n"
+ .'* inactive'."\n"
+ .'* pending'."\n"
+ .'* deleting'."\n",
+ 'type' => 'string',
+ 'example' => 'pending',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.FileSystem.NotExisted',
+ 'errorMessage' => 'The specified file system does not exist. ',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"70EACC9C-D07A-4A34-ADA4-A3DC0DE3C83E\\",\\n \\"Status\\": \\"pending\\"\\n}","errorExample":""},{"type":"xml","example":"<CreateMountTargetResponse>\\n <RequestId>70EACC9C-D07A-4A34-ADA4-A3DC0DE3C83E</RequestId>\\n <Status>pending</Status>\\n</CreateMountTargetResponse>","errorExample":""}]',
+ 'title' => 'CreateMountTarget',
+ 'description' => '## [](#)Precautions'."\n"
+ ."\n"
+ .'After you call this operation, a mount target is not immediately created. Therefore, we recommend that you call the DescribeMountTargets operation to query the status of the mount target. If the mount target is in the Active state, you can then mount the file system. Otherwise, the file system may fail to be mounted.'."\n",
+ ],
+ 'DeleteMountTarget' => [
+ 'summary' => 'Deletes a mount target.',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'deprecated' => false,
+ 'systemTags' => [],
+ 'parameters' => [
+ [
+ 'name' => 'FileSystemId',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '文件系统ID。',
+ 'description' => 'The ID of the file system.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'c50f8*****',
+ ],
+ ],
+ [
+ 'name' => 'EnsRegionId',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '地域ID。',
+ 'description' => 'The ID of the edge node.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'cn-beijing-cmcc',
+ ],
+ ],
+ [
+ 'name' => 'MountTargetName',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '挂载点名称。',
+ 'description' => 'The name of the mount target.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'TestMountPath',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => '4EC47282-1B74-4534-BD0E-403F3EE64CAF',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ [
+ 'errorCode' => 'InvalidMountTarget.NotExisted',
+ 'errorMessage' => 'The specified mount target does not exist. ',
+ ],
+ [
+ 'errorCode' => 'EdgeNasError',
+ 'errorMessage' => 'EdgeNasError',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"4EC47282-1B74-4534-BD0E-403F3EE64CAF\\"\\n}","errorExample":""},{"type":"xml","example":"<DeleteMountTargetResponse>\\n <RequestId>4EC47282-1B74-4534-BD0E-403F3EE64CAF</RequestId>\\n</DeleteMountTargetResponse>","errorExample":""}]',
+ 'title' => 'DeleteMountTarget',
+ 'description' => 'After you delete a mount target, the mount target cannot be restored. Proceed with caution.'."\n",
+ ],
+ 'DescribeMountTargets' => [
+ 'summary' => 'Queries the information about mount targets.',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'deprecated' => false,
+ 'systemTags' => [],
+ 'parameters' => [
+ [
+ 'name' => 'EnsRegionId',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '地域ID。',
+ 'description' => 'The ID of the region.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'cn-beijing-cmcc',
+ ],
+ ],
+ [
+ 'name' => 'FileSystemId',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '文件系统ID。',
+ 'description' => 'The ID of the file system.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'c50f8*****',
+ ],
+ ],
+ [
+ 'name' => 'MountTargetName',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '挂载点名称。',
+ 'description' => 'The name of the mount target.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'TestMountPath',
+ ],
+ ],
+ [
+ 'name' => 'PageNumber',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '页码,起始值为1。'."\n"
+ .'默认值:1。',
+ 'description' => 'The number of the page to return. Pages start from page 1. Default value: 1'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'minimum' => '1',
+ 'example' => '1',
+ 'default' => '1',
+ ],
+ ],
+ [
+ 'name' => 'PageSize',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '每页行数,最大值为100行。'."\n"
+ .'默认值:10。',
+ 'description' => 'The number of entries returned per page. Maximum value: 100. Default value: 10.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'maximum' => '100',
+ 'minimum' => '1',
+ 'example' => '10',
+ 'default' => '10',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'PageNumber' => [
+ 'title' => '页码。',
+ 'description' => 'The page number.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '1',
+ ],
+ 'PageSize' => [
+ 'title' => '单页行数。',
+ 'description' => 'The number of entries per page.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '2',
+ ],
+ 'TotalCount' => [
+ 'title' => '总数。',
+ 'description' => 'The total number of mount targets.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '1',
+ ],
+ 'MountTargets' => [
+ 'title' => '挂载点信息集合。',
+ 'description' => 'The information about mount targets.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'title' => '',
+ 'description' => '',
+ 'type' => 'object',
+ 'properties' => [
+ 'MountTargetDomain' => [
+ 'title' => '挂载点路径。'."\n"
+ .'LB:/fileSystemName/mountTargetName',
+ 'description' => 'The path of the mount target.'."\n",
+ 'type' => 'string',
+ 'example' => 'LB:/fileSystemName/mountTargetName',
+ ],
+ 'MountTargetName' => [
+ 'title' => '挂载点名称',
+ 'description' => 'The name of the mount target.'."\n",
+ 'type' => 'string',
+ 'example' => 'TestMountPath',
+ ],
+ 'NetWorkId' => [
+ 'title' => '网络ID。'."\n"
+ .'n-***',
+ 'description' => 'The ID of the network.'."\n",
+ 'type' => 'string',
+ 'example' => 'n-***',
+ ],
+ 'Status' => [
+ 'title' => '状态。'."\n"
+ .'包括:'."\n"
+ .'active:可用'."\n"
+ .'inactive:不可用'."\n"
+ .'pending:任务排队中'."\n"
+ .'deleting:删除中',
+ 'description' => 'The state of the mount target. Valid values:'."\n"
+ ."\n"
+ .'* active: The mount target is available.'."\n"
+ .'* inactive: The mount target is unavailable.'."\n"
+ .'* pending: A task is being queued for the mount target.'."\n"
+ .'* deleting: The mount target is being deleted.'."\n",
+ 'type' => 'string',
+ 'example' => 'active',
+ ],
+ 'EnsRegionId' => [
+ 'title' => '地域ID。',
+ 'description' => 'The ID of the region.'."\n",
+ 'type' => 'string',
+ 'example' => 'cn-beijing-cmcc',
+ ],
+ 'FileSystemId' => [
+ 'title' => '文件系统ID。',
+ 'description' => 'The ID of the file system.'."\n",
+ 'type' => 'string',
+ 'example' => 'c50f8*****',
+ ],
+ ],
+ ],
+ ],
+ 'RequestId' => [
+ 'title' => '请求ID',
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => '762DD527-358B-1E48-8005-CCE3ED4EB9E0',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"PageNumber\\": 1,\\n \\"PageSize\\": 2,\\n \\"TotalCount\\": 1,\\n \\"MountTargets\\": [\\n {\\n \\"MountTargetDomain\\": \\"LB:/fileSystemName/mountTargetName\\",\\n \\"MountTargetName\\": \\"TestMountPath\\",\\n \\"NetWorkId\\": \\"n-***\\",\\n \\"Status\\": \\"active\\",\\n \\"EnsRegionId\\": \\"cn-beijing-cmcc\\",\\n \\"FileSystemId\\": \\"c50f8*****\\"\\n }\\n ],\\n \\"RequestId\\": \\"762DD527-358B-1E48-8005-CCE3ED4EB9E0\\"\\n}","errorExample":""},{"type":"xml","example":"<DescribeMountTargetsResponse>\\n <PageNumber>1</PageNumber>\\n <PageSize>2</PageSize>\\n <TotalCount>1</TotalCount>\\n <MountTargets>\\n <MountTargetDomain>LB:/fileSystemName/mountTargetName</MountTargetDomain>\\n <MountTargetName>TestMountPath</MountTargetName>\\n <NetWorkId>n-***</NetWorkId>\\n <Status>active</Status>\\n <EnsRegionId>cn-beijing-cmcc</EnsRegionId>\\n <FileSystemId>c50f8*****</FileSystemId>\\n </MountTargets>\\n <RequestId>762DD527-358B-1E48-8005-CCE3ED4EB9E0</RequestId>\\n</DescribeMountTargetsResponse>","errorExample":""}]',
+ 'title' => 'DescribeMountTargets',
+ ],
+ 'PutBucket' => [
+ 'summary' => 'Creates an Edge Object Storage (EOS) bucket.',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'create',
+ 'abilityTreeCode' => '119478',
+ 'abilityTreeNodes' => [
+ 'FEATUREens8BRN2W',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'BucketName',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => 'Bucket名称。'."\n"
+ .'3~50 个字符,只允许小写字母、数字、短横线(-),且不能以短横线开头或结尾。',
+ 'description' => 'The name of the bucket. This parameter can contain 3 to 50 characters in length and can contain only lowercase letters, digits, and hyphens (-). The name cannot start or end with a hyphen (-).'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'test',
+ ],
+ ],
+ [
+ 'name' => 'LogicalBucketType',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '否 逻辑bucket类型,取值范围:'."\n"
+ .'sink: 下沉(指定节点)'."\n"
+ .'standard:标准(全局)(默认值)',
+ 'description' => 'The type of the logical bucket. Valid values: sink standard (default)'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'sink',
+ ],
+ ],
+ [
+ 'name' => 'Comment',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '备注。长度为0-128个字符、汉字或表情符等。',
+ 'description' => 'The description. The description can be 0 to 128 characters in length, and can contain Chinese characters and emoticons.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'numb',
+ ],
+ ],
+ [
+ 'name' => 'BucketAcl',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => 'Bucket权限类型:'."\n"
+ .'private:私有(默认值)'."\n"
+ .'public-read-write:公共读写'."\n"
+ .'public-read:公共读',
+ 'description' => 'The access control list (ACL) of the bucket. private public-read-write public-read'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'private',
+ ],
+ ],
+ [
+ 'name' => 'EnsRegionId',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '节点区域id,不指定时为全局默认节点',
+ 'description' => 'The ID of the region where the node is located. If this parameter is not specified, the node is the global default node.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'cn-beijing-15',
+ ],
+ ],
+ [
+ 'name' => 'DispatchScope',
+ 'in' => 'query',
+ 'schema' => [
+ 'type' => 'string',
+ 'required' => false,
+ 'description' => 'The scheduling scope. This parameter takes effect only when the value of the LogicalBucketType parameter is standard. Valid values:'."\n"
+ ."\n"
+ .'* **domestic**: Chinese mainland.'."\n"
+ .'* **oversea**: outside the Chinese mainland.'."\n",
+ 'example' => 'domestic',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => '85123E71-7710-4620-8AAB-133CCE49EC83',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'TooManyBuckets',
+ 'errorMessage' => 'The number of buckets created exceeds the limit.',
+ ],
+ [
+ 'errorCode' => 'Invalid%s',
+ 'errorMessage' => 'Specified parameter %s is not valid.',
+ ],
+ [
+ 'errorCode' => 'UnSupportedCity',
+ 'errorMessage' => 'The city is not supported.',
+ ],
+ [
+ 'errorCode' => 'BucketAlreadyExists',
+ 'errorMessage' => 'The bucket already exists or is occupied by other users.',
+ ],
+ [
+ 'errorCode' => 'InvalidEngineId',
+ 'errorMessage' => 'The engineId does not belong to the city.',
+ ],
+ [
+ 'errorCode' => 'InvalidBucketName',
+ 'errorMessage' => 'Specified parameter BucketName is not valid.',
+ ],
+ [
+ 'errorCode' => 'InvalidComment',
+ 'errorMessage' => 'Specified parameter Comment is not valid.',
+ ],
+ [
+ 'errorCode' => 'InvalidDataRedundancyType',
+ 'errorMessage' => 'Specified parameter DataRedundancyType is not valid.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ 403 => [
+ [
+ 'errorCode' => 'AccessDenied',
+ 'errorMessage' => 'auth is not valid',
+ ],
+ [
+ 'errorCode' => 'OperationDenied',
+ 'errorMessage' => 'The current ens region has not been purchased',
+ ],
+ [
+ 'errorCode' => 'UserDisable',
+ 'errorMessage' => 'The user has been disabled due to arrears.',
+ ],
+ ],
+ [
+ [
+ 'errorCode' => 'NoSuchEnsRegion',
+ 'errorMessage' => 'The ens region does not exist',
+ ],
+ [
+ 'errorCode' => 'NoSuchStorageDomain',
+ 'errorMessage' => 'The specified storageDomain does not exist.',
+ ],
+ ],
+ 500 => [
+ [
+ 'errorCode' => 'InternalError',
+ 'errorMessage' => 'The request processing has failed due to some unknown error.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"85123E71-7710-4620-8AAB-133CCE49EC83\\"\\n}","errorExample":""},{"type":"xml","example":"<PutBucketResponse>\\n <RequestId>85123E71-7710-4620-8AAB-133CCE49EC83</RequestId>\\n</PutBucketResponse>","errorExample":""}]',
+ 'title' => 'PutBucket',
+ ],
+ 'DeleteBucket' => [
+ 'summary' => 'Deletes a bucket.',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'delete',
+ 'abilityTreeCode' => '119370',
+ 'abilityTreeNodes' => [
+ 'FEATUREens8BRN2W',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'BucketName',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => 'bucket名称',
+ 'description' => 'The name of the bucket that you want to delete. You can delete only one bucket at a time.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'test',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => '2180AB96-57CF-1C68-9FEE-D60E547FD79C',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'InvalidBucketName',
+ 'errorMessage' => 'Specified parameter BucketName is not valid.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ 403 => [
+ [
+ 'errorCode' => 'AccessDenied',
+ 'errorMessage' => 'auth is not valid',
+ ],
+ [
+ 'errorCode' => 'UserDisable',
+ 'errorMessage' => 'The user has been disabled due to arrears.',
+ ],
+ ],
+ [
+ [
+ 'errorCode' => 'NoSuchBucket',
+ 'errorMessage' => 'The specified bucket does not exist.',
+ ],
+ ],
+ 409 => [
+ [
+ 'errorCode' => 'BucketNotEmpty',
+ 'errorMessage' => 'The bucket you tried to delete is not empty.',
+ ],
+ ],
+ 500 => [
+ [
+ 'errorCode' => 'InternalError',
+ 'errorMessage' => 'The request processing has failed due to some unknown error.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"2180AB96-57CF-1C68-9FEE-D60E547FD79C\\"\\n}","errorExample":""},{"type":"xml","example":"<DeleteBucketResponse>\\n <RequestId>2180AB96-57CF-1C68-9FEE-D60E547FD79C</RequestId>\\n</DeleteBucketResponse>","errorExample":""}]',
+ 'title' => 'DeleteBucket',
+ 'description' => '* Only the Alibaba Cloud Account ID owner of a bucket can delete the bucket from the account.'."\n"
+ .'* You cannot delete buckets that store objects. You can only delete empty buckets.'."\n",
+ ],
+ 'GetBucketInfo' => [
+ 'summary' => 'Queries the detailed information about a bucket.',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'abilityTreeCode' => '119506',
+ 'abilityTreeNodes' => [
+ 'FEATUREensK8PUWN',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'BucketName',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The name of the bucket.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'test',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => 'C5831388-2D4B-46F4-A96B-D4E6BD06E7521',
+ ],
+ 'BucketInfo' => [
+ 'description' => 'The list of bucket information.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'BucketAcl' => [
+ 'description' => 'The ACL of the bucket.'."\n"
+ ."\n"
+ .'* **public-read-write**'."\n"
+ .'* **public-read**'."\n"
+ .'* **private** (default)'."\n",
+ 'type' => 'string',
+ 'example' => 'private',
+ ],
+ 'BucketName' => [
+ 'description' => 'The name of the bucket.'."\n",
+ 'type' => 'string',
+ 'example' => 'test',
+ ],
+ 'Comment' => [
+ 'description' => 'The remarks.'."\n",
+ 'type' => 'string',
+ 'example' => 'das',
+ ],
+ 'CreateTime' => [
+ 'description' => 'The time when the bucket was created. The time follows the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time is displayed in UTC.'."\n",
+ 'type' => 'string',
+ 'example' => '2022-10-12T05:45:00Z',
+ ],
+ 'LogicalBucketType' => [
+ 'description' => 'Single-node storage. Set the value to sink.'."\n",
+ 'type' => 'string',
+ 'example' => 'sink',
+ ],
+ 'ModifyTime' => [
+ 'description' => 'The time when the bucket was modified. The time follows the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time is displayed in UTC.'."\n",
+ 'type' => 'string',
+ 'example' => '2022-10-12T06:45:00Z',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'Invalid%s',
+ 'errorMessage' => 'Specified parameter %s is not valid.',
+ ],
+ [
+ 'errorCode' => 'InvalidBucketName',
+ 'errorMessage' => 'Specified parameter BucketName is not valid.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ 403 => [
+ [
+ 'errorCode' => 'AccessDenied',
+ 'errorMessage' => 'auth is not valid',
+ ],
+ [
+ 'errorCode' => 'UserDisable',
+ 'errorMessage' => 'The user has been disabled due to arrears.',
+ ],
+ ],
+ [
+ [
+ 'errorCode' => 'NoSuchBucket',
+ 'errorMessage' => 'The specified bucket does not exist.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"C5831388-2D4B-46F4-A96B-D4E6BD06E7521\\",\\n \\"BucketInfo\\": {\\n \\"BucketAcl\\": \\"private\\",\\n \\"BucketName\\": \\"test\\",\\n \\"Comment\\": \\"das\\",\\n \\"CreateTime\\": \\"2022-10-12T05:45:00Z\\",\\n \\"LogicalBucketType\\": \\"sink\\",\\n \\"ModifyTime\\": \\"2022-10-12T06:45:00Z\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"<GetBucketInfoResponse>\\n <RequestId>C5831388-2D4B-46F4-A96B-D4E6BD06E7521</RequestId>\\n <BucketInfo>\\n <BucketAcl>private</BucketAcl>\\n <BucketName>test</BucketName>\\n <Comment>das</Comment>\\n <CreateTime>2022-10-12T05:45:00Z</CreateTime>\\n <LogicalBucketType>sink</LogicalBucketType>\\n <ModifyTime>2022-10-12T06:45:00Z</ModifyTime>\\n </BucketInfo>\\n</GetBucketInfoResponse>","errorExample":""}]',
+ 'title' => 'GetBucketInfo',
+ ],
+ 'PutBucketAcl' => [
+ 'summary' => 'Modifies the access control list (ACL) of a bucket.',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'readAndWrite',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'none',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '125217',
+ 'abilityTreeNodes' => [
+ 'FEATUREens44HZEV',
+ ],
+ 'tenantRelevance' => 'publicInformation',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'BucketName',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => 'Bucket名称',
+ 'description' => 'The name of the bucket.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'test',
+ ],
+ ],
+ [
+ 'name' => 'BucketAcl',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => 'Bucket读写权限类型:'."\n"
+ .'public-read-write:公共读写'."\n"
+ .'public-read:公共读'."\n"
+ .'private:私有(默认值)',
+ 'description' => 'The access control list (ACL) of the bucket.'."\n"
+ ."\n"
+ .'* **public-read-write**'."\n"
+ .'* **public-read**'."\n"
+ .'* **private** (default)'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'private',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => 'C0066F05-3116-4BAA-B588-52EB2E7F5D23',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'Invalid%s',
+ 'errorMessage' => 'Specified parameter %s is not valid.',
+ ],
+ [
+ 'errorCode' => 'InvalidBucketName',
+ 'errorMessage' => 'Specified parameter BucketName is not valid.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ [
+ 'errorCode' => 'InvalidBucketAcl',
+ 'errorMessage' => 'Specified parameter BucketAcl is not valid.',
+ ],
+ ],
+ 403 => [
+ [
+ 'errorCode' => 'AccessDenied',
+ 'errorMessage' => 'auth is not valid',
+ ],
+ [
+ 'errorCode' => 'UserDisable',
+ 'errorMessage' => 'The user has been disabled due to arrears.',
+ ],
+ ],
+ [
+ [
+ 'errorCode' => 'NoSuchBucket',
+ 'errorMessage' => 'The specified bucket does not exist.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"C0066F05-3116-4BAA-B588-52EB2E7F5D23\\"\\n}","errorExample":""},{"type":"xml","example":"<PutBucketAclResponse>\\n <RequestId>C0066F05-3116-4BAA-B588-52EB2E7F5D23</RequestId>\\n</PutBucketAclResponse>","errorExample":""}]',
+ 'title' => 'PutBucketAcl',
+ ],
+ 'GetBucketAcl' => [
+ 'summary' => 'Queries the access control list (ACL) of a bucket.',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '187121',
+ 'abilityTreeNodes' => [
+ 'FEATUREens44HZEV',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'BucketName',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The name of the bucket.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'test',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response.',
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => '5C881388-2D4B-46F4-A96B-D4E6BD0886A2',
+ ],
+ 'BucketAcl' => [
+ 'description' => 'The ACL of the bucket.'."\n",
+ 'type' => 'string',
+ 'example' => 'private',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'Invalid%s',
+ 'errorMessage' => 'Specified parameter %s is not valid.',
+ ],
+ [
+ 'errorCode' => 'InvalidBucketName',
+ 'errorMessage' => 'Specified parameter BucketName is not valid.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ 403 => [
+ [
+ 'errorCode' => 'AccessDenied',
+ 'errorMessage' => 'auth is not valid',
+ ],
+ [
+ 'errorCode' => 'UserDisable',
+ 'errorMessage' => 'The user has been disabled due to arrears.',
+ ],
+ ],
+ [
+ [
+ 'errorCode' => 'NoSuchBucket',
+ 'errorMessage' => 'The specified bucket does not exist.',
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"5C881388-2D4B-46F4-A96B-D4E6BD0886A2\\",\\n \\"BucketAcl\\": \\"private\\"\\n}","errorExample":""},{"type":"xml","example":"<GetBucketAclResponse>\\n <RequestId>5C881388-2D4B-46F4-A96B-D4E6BD0886A2</RequestId>\\n <BucketAcl>private</BucketAcl>\\n</GetBucketAclResponse>","errorExample":""}]',
+ 'title' => 'GetBucketAcl',
+ ],
+ 'PrepareUpload' => [
+ 'summary' => 'Prepares the upload and obtains the location of the bucket.',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'readAndWrite',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'none',
+ 'abilityTreeCode' => '120703',
+ 'abilityTreeNodes' => [
+ 'FEATUREensK8PUWN',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'BucketName',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => 'bucket名称',
+ 'description' => 'The name of the bucket.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'test',
+ ],
+ ],
+ [
+ 'name' => 'ClientIp',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '指定ip,适用于用户ip与接口调用IP不一致的情况,如服务端获取授权后下发给客户端',
+ 'description' => 'The specified IP address. This parameter is applicable to scenarios where the user IP address is inconsistent with the operation calling IP address, such as the scenario where the server obtains authorization and sends the authorization to the client.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '180.166.XX.XXX',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response.',
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => '请求ID',
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '6666C5A5-75ED-422E-A022-7121FA18C968',
+ ],
+ 'BucketName' => [
+ 'title' => '物理存储名称,使用oss sdk时传入',
+ 'description' => 'The name of the bucket. This parameter is available only when the OSS SDK is used.'."\n",
+ 'type' => 'string',
+ 'example' => 'test-xxxxxx',
+ ],
+ 'Endpoint' => [
+ 'title' => 'endpoint,使用oss sdk时传入',
+ 'description' => 'The endpoint. This parameter is available only when the OSS SDK is used.'."\n",
+ 'type' => 'string',
+ 'example' => 'eos.aliyuncs.com',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'Invalid%s',
+ 'errorMessage' => 'Specified parameter %s is not valid',
+ ],
+ [
+ 'errorCode' => 'InvalidaliUid',
+ 'errorMessage' => 'Specified parameter aliUid is not valid',
+ ],
+ [
+ 'errorCode' => 'InvalidBucketName',
+ 'errorMessage' => 'Specified parameter BucketName is not valid',
+ ],
+ [
+ 'errorCode' => 'InvalidClientIp',
+ 'errorMessage' => 'Specified parameter ClientIp is not valid',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ 403 => [
+ [
+ 'errorCode' => 'AccessDenied',
+ 'errorMessage' => 'Auth is not valid.',
+ ],
+ [
+ 'errorCode' => 'UserDisable',
+ 'errorMessage' => 'The user has been disabled due to arrears.',
+ ],
+ ],
+ [
+ [
+ 'errorCode' => 'NoSuchBucket',
+ 'errorMessage' => 'The specified bucket does not exist.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"6666C5A5-75ED-422E-A022-7121FA18C968\\",\\n \\"BucketName\\": \\"test-xxxxxx\\",\\n \\"Endpoint\\": \\"eos.aliyuncs.com\\"\\n}","type":"json"}]',
+ 'title' => 'PrepareUpload',
+ ],
+ 'DeleteObject' => [
+ 'summary' => 'Deletes an object.',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'readAndWrite',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'delete',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '120837',
+ 'abilityTreeNodes' => [
+ 'FEATUREens4K3NWA',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'ObjectKey',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '文件名称',
+ 'description' => 'The name of the file.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'image5',
+ ],
+ ],
+ [
+ 'name' => 'BucketName',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => 'Bucket名称',
+ 'description' => 'The name of the bucket.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'tets',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => 'A5626B44-0189-443E-9816-D951F596CC89',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ 403 => [
+ [
+ 'errorCode' => 'AccessDenied',
+ 'errorMessage' => 'Auth is not valid.',
+ ],
+ [
+ 'errorCode' => 'UserDisable',
+ 'errorMessage' => 'The user has been disabled due to arrears.',
+ ],
+ ],
+ [
+ [
+ 'errorCode' => 'NoSuchBucket',
+ 'errorMessage' => 'The specified bucket does not exist.',
+ ],
+ [
+ 'errorCode' => 'NoSuchKey',
+ 'errorMessage' => 'The specified key does not exist.',
+ ],
+ ],
+ 500 => [
+ [
+ 'errorCode' => 'InternalError',
+ 'errorMessage' => 'The request processing has failed due to some unknown error',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"A5626B44-0189-443E-9816-D951F596CC89\\"\\n}","errorExample":""},{"type":"xml","example":"<DeleteObjectResponse>\\n <RequestId>A5626B44-0189-443E-9816-D951F596CC89</RequestId>\\n</DeleteObjectResponse>","errorExample":""}]',
+ 'title' => 'DeleteObject',
+ ],
+ 'ListObjects' => [
+ 'summary' => 'Queries the information about all objects in a bucket.',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'list',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '119378',
+ 'abilityTreeNodes' => [
+ 'FEATUREensTK769B',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'BucketName',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => 'Bucket名称',
+ 'description' => 'The name of the bucket.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'test',
+ ],
+ ],
+ [
+ 'name' => 'EncodingType',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '请求响应体中文件名称采用的编码方式,目前仅支持URL',
+ 'description' => 'The encoding type of the object names in the response. Only URL encoding is supported.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'url',
+ ],
+ ],
+ [
+ 'name' => 'Marker',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '否 此次列举文件的起点。设定从Marker之后按字母排序开始返回Object。Marker用来实现分页显示效果,参数的长度必须小于1024字节。'."\n"
+ .'做条件查询时,即使Marker在列表中不存在,也会从符合Marker字母排序的下一个开始打印。',
+ 'description' => 'The position from which the list operation starts. If this parameter is specified, objects whose names are alphabetically greater than value of Marker are returned. The Marker parameter is used to list the returned objects by page, and its value must be smaller than 1,024 bytes in length.'."\n"
+ ."\n"
+ .'Even if the value specified for Marker does not exist in the list during a conditional query, the list starts from the object whose name is alphabetically greater than the value of Marker.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'a',
+ ],
+ ],
+ [
+ 'name' => 'MaxKeys',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '限定此次列举文件的最大个数。'."\n"
+ .'取值范围 (0, 1000],默认值为100。',
+ 'description' => 'The maximum number of objects to return. Valid values: 0 to 1000. Default value: 100.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int64',
+ 'required' => false,
+ 'example' => '100',
+ ],
+ ],
+ [
+ 'name' => 'Prefix',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '限定返回的文件必须以prefix作为前缀。'."\n"
+ .'参数的长度必须小于1024字节。'."\n"
+ .'使用Prefix查询时,返回的Key中仍会包含Prefix。',
+ 'description' => 'The prefix that must be included in the names of objects you want to list. If you specify a prefix to query objects, the returned object names contain the prefix.'."\n"
+ ."\n"
+ .'The value of the parameter must be less than 1,000 bytes in length.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'b',
+ ],
+ ],
+ [
+ 'name' => 'ContinuationToken',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '否 此次列举文件使用的continuationToken。如果Max-keys的设定无法一次完成列举,返回结果会附加NextContinuationToken作为下一次列举的ContinuationToken。',
+ 'description' => 'The token used in this list operation. If the number of objects exceeds the value of MaxKeys, the NextContinuationToken is included in the response as the token for the next list operation.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'test1.txt',
+ ],
+ ],
+ [
+ 'name' => 'StartAfter',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '此次列举文件的起点。设定从Start-after之后按字母排序开始返回Object。Start-after用来实现分页显示效果,参数的长度必须小于1024字节。'."\n"
+ .'做条件查询时,即使Start-after在列表中不存在,也会从符合Start-after字母排序的下一个开始打印。',
+ 'description' => 'The position from which the list operation starts. If this parameter is specified, objects whose names are alphabetically greater than the value of StartAfter are returned. The StartAfter parameter is used to list the returned objects by page, and its value must be less than 1,000 bytes in length. Even if the value specified for StartAfter does not exist in the list during a conditional query, the list starts from the object whose name is alphabetically greater than the value of StartAfter.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'b',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'CommonPrefixes' => [
+ 'title' => '如果请求中指定了Delimiter参数,则会在返回的响应中包含CommonPrefixes元素。该元素表明以Delimiter结尾,并有共同前缀的Object名称的集合。',
+ 'description' => 'If the delimiter parameter is specified in the request, the response contains CommonPrefixes. Objects whose names contain the same string from the prefix to the next occurrence of the delimiter are grouped as a single result element in CommonPrefixes.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'If the delimiter parameter is specified in the request, the response contains CommonPrefixes. Objects whose names contain the same string from the prefix to the next occurrence of the delimiter are grouped as a single result element in CommonPrefixes.'."\n",
+ 'type' => 'string',
+ 'example' => 'N/A',
+ ],
+ ],
+ 'NextContinuationToken' => [
+ 'title' => '下次列举文件的ContinuationToken。',
+ 'description' => 'The token used in the next list operation.'."\n",
+ 'type' => 'string',
+ 'example' => 'CgJiYw--',
+ ],
+ 'ContinuationToken' => [
+ 'title' => '此次列举文件操作使用ContinuationToken',
+ 'description' => 'The token used in this list operation.'."\n",
+ 'type' => 'string',
+ 'example' => 'test1.txt',
+ ],
+ 'Delimiter' => [
+ 'title' => '对文件名称进行分组的字符',
+ 'description' => 'The character used to group objects by name.'."\n",
+ 'type' => 'string',
+ 'example' => '/',
+ ],
+ 'EncodingType' => [
+ 'title' => '指明返回结果中编码使用的类型。',
+ 'description' => 'The encoding type of the object names in the response.'."\n",
+ 'type' => 'string',
+ 'example' => 'N/A',
+ ],
+ 'Prefix' => [
+ 'title' => '本次查询结果的前缀',
+ 'description' => 'The prefix contained in the names of returned objects.'."\n",
+ 'type' => 'string',
+ 'example' => 'b',
+ ],
+ 'Marker' => [
+ 'title' => '标明本次列举文件的起点',
+ 'description' => 'The position from which the list operation starts.'."\n",
+ 'type' => 'string',
+ 'example' => 'ceshi.txt1617853707991',
+ ],
+ 'BucketName' => [
+ 'title' => 'Bucket名称',
+ 'description' => 'The name of the bucket.'."\n",
+ 'type' => 'string',
+ 'example' => 'test',
+ ],
+ 'Contents' => [
+ 'title' => 'Object元信息列表',
+ 'description' => 'The list of object metadata.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'Key' => [
+ 'title' => 'Object名称',
+ 'description' => 'The name of the object.'."\n",
+ 'type' => 'string',
+ 'example' => 'ceshi.txt1617853706546',
+ ],
+ 'LastModified' => [
+ 'title' => 'Object最后被修改的时间。'."\n"
+ .'(格式:yyyy-mm-ddThh:mm:ss.timezone, 例如 2011-12-01T12:27:13.000Z)',
+ 'description' => 'The time when the object was last modified.'."\n",
+ 'type' => 'string',
+ 'example' => '2021-04-08T03:48:47.488Z',
+ ],
+ 'ETag' => [
+ 'title' => '否 ETag在每个Object生成时创建,用于标识一个Object的内容。'."\n"
+ .'对于PutObject请求创建的Object,ETag值是其内容的MD5值。'."\n"
+ .'对于其他方式创建的Object,ETag值是其内容的UUID。'."\n"
+ .'ETag值可以用于检查Object内容是否发生变化。不建议使用ETag值作为Object内容的MD5校验数据完整性的依据。',
+ 'description' => 'The entity tag (ETag). When an object is created, an ETag is created to identify the content of the object.'."\n"
+ ."\n"
+ .'* For an object that is created by calling the PutObject operation, the ETag value of the object is the MD5 hash of the object content.'."\n"
+ .'* For an object that is not created by calling the PutObject operation, the ETag value of the object is the UUID of the object content.'."\n"
+ .'* The ETag of an object can be used to check whether the object content is modified. However, we recommend that you use the MD5 hash of an object rather than the ETag value of the object to verify data integrity.'."\n",
+ 'type' => 'string',
+ 'example' => '5B3C1A2E053D763E1B002CC607C5****',
+ ],
+ 'Size' => [
+ 'title' => 'Object的字节数',
+ 'description' => 'The size of the returned object. Unit: bytes.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int64',
+ 'example' => '15',
+ ],
+ ],
+ ],
+ ],
+ 'IsTruncated' => [
+ 'title' => '指明列举文件是否被截断。'."\n"
+ .'列举完没有截断,返回值为false。'."\n"
+ .'没列举完就有截断,返回值为true。',
+ 'description' => 'Indicates whether the listed objects are truncated. Valid values:'."\n"
+ ."\n"
+ .'* **false**'."\n"
+ .'* **true**'."\n",
+ 'type' => 'boolean',
+ 'example' => 'true',
+ ],
+ 'KeyCount' => [
+ 'description' => 'The number of keys returned for this request.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int64',
+ 'example' => '10',
+ ],
+ 'NextMarker' => [
+ 'title' => '下一次列举文件的起点。',
+ 'description' => 'The position from which the next list operation starts.'."\n",
+ 'type' => 'string',
+ 'example' => 'ceshi.txt1617853707991',
+ ],
+ 'MaxKeys' => [
+ 'title' => '列举文件的最大个数,默认值为100',
+ 'description' => 'The maximum number of objects returned.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int64',
+ 'example' => '10',
+ ],
+ 'RequestId' => [
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => '4833C4AC-9396-458C-8F25-1D701334E560',
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'Invalid%s',
+ 'errorMessage' => 'Specified parameter %s is not valid',
+ ],
+ [
+ 'errorCode' => 'InvalidBucketName',
+ 'errorMessage' => 'Specified parameter BucketName is not valid.',
+ ],
+ [
+ 'errorCode' => 'InvalidPrefix',
+ 'errorMessage' => 'Specified parameter Prefix is not valid.',
+ ],
+ [
+ 'errorCode' => 'InvalidStartAfter',
+ 'errorMessage' => 'Specified parameter StartAfter is not valid.',
+ ],
+ [
+ 'errorCode' => 'InvalidMarker',
+ 'errorMessage' => 'Specified parameter Marker is not valid.',
+ ],
+ [
+ 'errorCode' => 'InvalidDelimiter',
+ 'errorMessage' => 'Specified parameter Delimiter is not valid.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ [
+ 'errorCode' => 'InvalidArgument',
+ 'errorMessage' => 'Specified parameter ContinuationToken is incorrect.',
+ ],
+ ],
+ 403 => [
+ [
+ 'errorCode' => 'AccessDenied',
+ 'errorMessage' => 'auth is not valid',
+ ],
+ [
+ 'errorCode' => 'UserDisable',
+ 'errorMessage' => 'The user has been disabled due to arrears.',
+ ],
+ ],
+ [
+ [
+ 'errorCode' => 'NoSuchBucket',
+ 'errorMessage' => 'The specified bucket does not exist.',
+ ],
+ ],
+ 500 => [
+ [
+ 'errorCode' => 'InternalError',
+ 'errorMessage' => 'The request processing has failed due to some unknown error.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"CommonPrefixes\\": [\\n \\"不涉及\\"\\n ],\\n \\"NextContinuationToken\\": \\"CgJiYw--\\",\\n \\"ContinuationToken\\": \\"test1.txt\\",\\n \\"Delimiter\\": \\"/\\",\\n \\"EncodingType\\": \\"不涉及\\",\\n \\"Prefix\\": \\"b\\",\\n \\"Marker\\": \\"ceshi.txt1617853707991\\",\\n \\"BucketName\\": \\"test\\",\\n \\"Contents\\": [\\n {\\n \\"Key\\": \\"ceshi.txt1617853706546\\",\\n \\"LastModified\\": \\"2021-04-08T03:48:47.488Z\\",\\n \\"ETag\\": \\"5B3C1A2E053D763E1B002CC607C5****\\",\\n \\"Size\\": 15\\n }\\n ],\\n \\"IsTruncated\\": true,\\n \\"KeyCount\\": 10,\\n \\"NextMarker\\": \\"ceshi.txt1617853707991\\",\\n \\"MaxKeys\\": 10,\\n \\"RequestId\\": \\"4833C4AC-9396-458C-8F25-1D701334E560\\"\\n}","errorExample":""},{"type":"xml","example":"<ListObjectsResponse>\\n <RequestId>4833C4AC-9396-458C-8F25-1D701334E560</RequestId>\\n <BucketName>test</BucketName>\\n <Prefix>b</Prefix>\\n <MaxKeys>10</MaxKeys>\\n <KeyCount>10</KeyCount>\\n <Marker>ceshi.txt1617853707991</Marker>\\n <NextMarker>ceshi.txt1617853707991</NextMarker>\\n <Contents>\\n <Key>ceshi.txt1617853706546</Key>\\n <LastModified>2021-04-08T03:48:47.488Z</LastModified>\\n <Size>15</Size>\\n </Contents>\\n <IsTruncated>true</IsTruncated>\\n</ListObjectsResponse>","errorExample":""}]',
+ 'title' => 'ListObjects',
+ ],
+ 'PutBucketLifecycle' => [
+ 'summary' => 'Configures lifecycle rules for objects.',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'readAndWrite',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'none',
+ 'abilityTreeCode' => '130573',
+ 'abilityTreeNodes' => [
+ 'FEATUREensN79QUI',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'BucketName',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The name of the bucket.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'test',
+ ],
+ ],
+ [
+ 'name' => 'RuleId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The unique ID of the rule. The ID of a lifecycle rule can be up to 255 bytes in length.'."\n"
+ ."\n"
+ .'* You do not need to configure this parameter when you create a rule. The system automatically generates a unique ID.'."\n"
+ .'* When you update a rule, you need to specify this parameter. Make sure that the rule specified by RuleId exists. Otherwise, an error occurs.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '1',
+ ],
+ ],
+ [
+ 'name' => 'Status',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The status of the rule. Valid values:'."\n"
+ ."\n"
+ .'* **Enabled**'."\n"
+ .'* **Disabled**'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'Enabled',
+ ],
+ ],
+ [
+ 'name' => 'Prefix',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The prefix of a object name. The prefix must be unique.'."\n"
+ ."\n"
+ .'* If you specify a prefix, the rule applies only to objects in the bucket that match the prefix.'."\n"
+ .'* If you do not specify a prefix, the rule applies to all objects in the bucket.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'image',
+ ],
+ ],
+ [
+ 'name' => 'CreatedBeforeDate',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The expiration time. EOS executes a lifecycle rule for objects that were last updated before the expiration time.'."\n"
+ ."\n"
+ .'Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n"
+ ."\n"
+ .'> ExpirationDays and CreateBeforeDate are mutually exclusive.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '2023-10-12T05:45:00Z',
+ ],
+ ],
+ [
+ 'name' => 'ExpirationDays',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The number of days from when the objects were last modified to when the lifecycle rule takes effect. The value must be a positive integer that is greater than 0.'."\n"
+ ."\n"
+ .'> ExpirationDays and CreateBeforeDate are mutually exclusive.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int64',
+ 'required' => false,
+ 'example' => '5',
+ ],
+ ],
+ [
+ 'name' => 'AllowSameActionOverlap',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'Specifies whether to allow overlapped prefixes. Valid values:'."\n"
+ ."\n"
+ .'* **true**'."\n"
+ .'* **false** (default)'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'false',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => '62373E71-5521-4620-8AAB-133CCE49357A',
+ ],
+ 'RuleId' => [
+ 'description' => 'The ID of the rule.'."\n",
+ 'type' => 'string',
+ 'example' => 'b8f93xxxxx4881xxxxxc71d991',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'Invalid%s',
+ 'errorMessage' => 'The specified parameter %s is invalid.',
+ ],
+ [
+ 'errorCode' => 'InvalidArgument',
+ 'errorMessage' => 'Days and createBeforeDate can only choose one',
+ ],
+ [
+ 'errorCode' => 'InvalidBucketName',
+ 'errorMessage' => 'Specified parameter BucketName is not valid.',
+ ],
+ [
+ 'errorCode' => 'InvalidLifecycleScheme',
+ 'errorMessage' => 'Specified parameter LifecycleScheme is not valid.',
+ ],
+ [
+ 'errorCode' => 'InvalidType',
+ 'errorMessage' => 'Specified parameter Type is not valid.',
+ ],
+ [
+ 'errorCode' => 'OperationDenied',
+ 'errorMessage' => 'Engine lifecycle scheme does\'t support replication lifecycle rule configuration.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ 403 => [
+ [
+ 'errorCode' => 'AccessDenied',
+ 'errorMessage' => 'auth is not valid',
+ ],
+ [
+ 'errorCode' => 'UserDisable',
+ 'errorMessage' => 'The user has been disabled due to arrears.',
+ ],
+ ],
+ [
+ [
+ 'errorCode' => 'NoSuchBucket',
+ 'errorMessage' => 'The specified bucket does not exist.',
+ ],
+ [
+ 'errorCode' => 'NoSuchLifecycle',
+ 'errorMessage' => 'The bucket lifecycle does not exist.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"62373E71-5521-4620-8AAB-133CCE49357A\\",\\n \\"RuleId\\": \\"b8f93xxxxx4881xxxxxc71d991\\"\\n}","errorExample":""},{"type":"xml","example":"<PutBucketLifecycleResponse>\\n <RequestId>62373E71-5521-4620-8AAB-133CCE49357A</RequestId>\\n</PutBucketLifecycleResponse>","errorExample":""}]',
+ 'title' => 'PutBucketLifecycle',
+ 'description' => '* You can configure up to 1,000 rules.'."\n"
+ .'* If an object meets multiple rules, the rule that has the earliest expiration time prevails.'."\n",
+ ],
+ 'DeleteBucketLifecycle' => [
+ 'summary' => 'Deletes the lifecycle rules for objects in a bucket.',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'readAndWrite',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'delete',
+ 'abilityTreeCode' => '130575',
+ 'abilityTreeNodes' => [
+ 'FEATUREensN79QUI',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'BucketName',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The name of the bucket.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'test',
+ ],
+ ],
+ [
+ 'name' => 'RuleId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the rule. If this parameter is not specified, all rules are removed.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '1',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => 'C6583E8B-B930-4F59-ADC0-0E209A45E860',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'InvalidBucketName',
+ 'errorMessage' => 'Specified parameter BucketName is not valid.',
+ ],
+ [
+ 'errorCode' => 'AccessDenied',
+ 'errorMessage' => 'auth is not valid',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ 403 => [
+ [
+ 'errorCode' => 'UserDisable',
+ 'errorMessage' => 'The user has been disabled due to arrears.',
+ ],
+ ],
+ [
+ [
+ 'errorCode' => 'NoSuchBucket',
+ 'errorMessage' => 'The specified bucket does not exist.',
+ ],
+ [
+ 'errorCode' => 'NoSuchLifecycle',
+ 'errorMessage' => 'The bucket lifecycle does not exist.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"C6583E8B-B930-4F59-ADC0-0E209A45E860\\"\\n}","errorExample":""},{"type":"xml","example":"<DeleteBucketLifecycleResponse>\\n <RequestId>C6583E8B-B930-4F59-ADC0-0E209A45E860</RequestId>\\n</DeleteBucketLifecycleResponse>","errorExample":""}]',
+ 'title' => 'DeleteBucketLifecycle',
+ ],
+ 'GetBucketLifecycle' => [
+ 'summary' => 'Queries lifecycle rules.',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'abilityTreeCode' => '130574',
+ 'abilityTreeNodes' => [
+ 'FEATUREensN79QUI',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'BucketName',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The name of the bucket.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'tese',
+ ],
+ ],
+ [
+ 'name' => 'RuleId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the rule that you want to query. If this parameter is not specified, all rules are returned.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '1',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => 'A2583E8B-B930-4F59-ADC0-0E209A90C46E',
+ ],
+ 'Rule' => [
+ 'description' => 'The detailed information about the rule.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'ID' => [
+ 'description' => 'The unique ID of the rule.'."\n",
+ 'type' => 'string',
+ 'example' => '1',
+ ],
+ 'Expiration' => [
+ 'description' => 'The expiration time.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'Days' => [
+ 'description' => 'The validity period, in days.'."\n",
+ 'type' => 'string',
+ 'example' => '5',
+ ],
+ 'CreatedBeforeDate' => [
+ 'description' => 'The expiration date.'."\n",
+ 'type' => 'string',
+ 'example' => 'yyy-MM-DDThh:mm:ssZ',
+ ],
+ ],
+ ],
+ 'Prefix' => [
+ 'description' => 'The prefix that is applied to the rule.'."\n",
+ 'type' => 'string',
+ 'example' => 'image',
+ ],
+ 'Status' => [
+ 'description' => 'The status of the rule. Valid values:'."\n"
+ ."\n"
+ .'* **Enabled**: The rule is periodically executed.'."\n"
+ .'* **Disabled**: The rule is ignored.'."\n",
+ 'type' => 'string',
+ 'example' => 'Enabled',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'InvalidBucketName',
+ 'errorMessage' => 'Specified parameter BucketName is not valid.',
+ ],
+ [
+ 'errorCode' => 'AccessDenied',
+ 'errorMessage' => 'auth is not valid',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ 403 => [
+ [
+ 'errorCode' => 'UserDisable',
+ 'errorMessage' => 'The user has been disabled due to arrears.',
+ ],
+ ],
+ [
+ [
+ 'errorCode' => 'NoSuchBucket',
+ 'errorMessage' => 'The specified bucket does not exist.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"A2583E8B-B930-4F59-ADC0-0E209A90C46E\\",\\n \\"Rule\\": [\\n {\\n \\"ID\\": \\"1\\",\\n \\"Expiration\\": {\\n \\"Days\\": \\"5\\",\\n \\"CreatedBeforeDate\\": \\"yyy-MM-DDThh:mm:ssZ\\"\\n },\\n \\"Prefix\\": \\"image\\",\\n \\"Status\\": \\"Enabled\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"<GetBucketLifecycleResponse>\\n <RequestId>A2583E8B-B930-4F59-ADC0-0E209A90C46E</RequestId>\\n <Rule>\\n <ID>1</ID>\\n <Expiration>\\n <CreatedBeforeDate>yyy-MM-DDThh:mm:ssZ</CreatedBeforeDate>\\n </Expiration>\\n <Prefix>image</Prefix>\\n <Status>Enabled</Status>\\n </Rule>\\n</GetBucketLifecycleResponse>","errorExample":""}]',
+ 'title' => 'GetBucketLifecycle',
+ ],
+ 'ListBuckets' => [
+ 'summary' => 'Queries all buckets of a user.',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'list',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '119373',
+ 'abilityTreeNodes' => [
+ 'FEATUREensXAKQAP',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'Prefix',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '限定返回的bucket name必须以prefix作为前缀,可以不设定。不设定时则不过滤前缀信息。'."\n"
+ .'默认值:无',
+ 'description' => 'The prefix that returned bucket names must contain. If this parameter is not specified, prefix information will not be used as a filter.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'image',
+ ],
+ ],
+ [
+ 'name' => 'PageNumber',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '',
+ 'description' => 'The page number. Pages start from page 1.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '1',
+ 'pattern' => '^\\d+$',
+ ],
+ ],
+ [
+ 'name' => 'PageSize',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '',
+ 'description' => 'The maximum number of returned buckets. You can leave this parameter empty. The default value is 10. The value cannot be greater than 100.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '5',
+ 'pattern' => '^\\d+$',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => '435769C7-AA6F-4DC5-B3DB-A3DC0DE7E853',
+ ],
+ 'BucketInfos' => [
+ 'title' => 'Bucket信息列表',
+ 'description' => 'The list of bucket information.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'BucketAcl' => [
+ 'description' => 'The access control list (ACL) of the bucket.'."\n"
+ ."\n"
+ .'* **public-read-write**'."\n"
+ .'* **public-read**'."\n"
+ .'* **private** (default)'."\n",
+ 'type' => 'string',
+ 'example' => 'private',
+ ],
+ 'BucketName' => [
+ 'description' => 'The name of the bucket.'."\n",
+ 'type' => 'string',
+ 'example' => 'test',
+ ],
+ 'Comment' => [
+ 'description' => 'The remarks.'."\n",
+ 'type' => 'string',
+ 'example' => 'numb',
+ ],
+ 'CreateTime' => [
+ 'description' => 'The time when the bucket was created. The time follows the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time is displayed in UTC.'."\n",
+ 'type' => 'string',
+ 'example' => '2022-10-12T05:45:00Z',
+ ],
+ 'LogicalBucketType' => [
+ 'description' => 'The type of the single-node storage. Set the value to sink.'."\n",
+ 'type' => 'string',
+ 'example' => 'sink',
+ ],
+ 'ModifyTime' => [
+ 'description' => 'The time when the bucket was modified. The time follows the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time is displayed in UTC.'."\n",
+ 'type' => 'string',
+ 'example' => '2022-10-12T06:45:00Z',
+ ],
+ 'EnsRegionId' => [
+ 'description' => 'The ID of the region where the node is located.'."\n",
+ 'type' => 'string',
+ 'example' => 'cn-dalian-unicom',
+ ],
+ ],
+ ],
+ ],
+ 'TotalCount' => [
+ 'title' => '命中条件Bucket总数',
+ 'description' => 'The total number of buckets that match the conditions.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int64',
+ 'example' => '1',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'MissingParameter',
+ 'errorMessage' => 'MissingParameter',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ 403 => [
+ [
+ 'errorCode' => 'AccessDenied',
+ 'errorMessage' => 'auth is not valid',
+ ],
+ [
+ 'errorCode' => 'UserDisable',
+ 'errorMessage' => 'The user has been disabled due to arrears.',
+ ],
+ ],
+ [
+ [
+ 'errorCode' => 'NoSuchBucket',
+ 'errorMessage' => 'The specified bucket does not exist',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"435769C7-AA6F-4DC5-B3DB-A3DC0DE7E853\\",\\n \\"BucketInfos\\": [\\n {\\n \\"BucketAcl\\": \\"private\\",\\n \\"BucketName\\": \\"test\\",\\n \\"Comment\\": \\"numb\\",\\n \\"CreateTime\\": \\"2022-10-12T05:45:00Z\\",\\n \\"LogicalBucketType\\": \\"sink\\",\\n \\"ModifyTime\\": \\"2022-10-12T06:45:00Z\\",\\n \\"EnsRegionId\\": \\"cn-dalian-unicom\\"\\n }\\n ],\\n \\"TotalCount\\": 1\\n}","errorExample":""},{"type":"xml","example":"<ListBucketsResponse>\\n <RequestId>435769C7-AA6F-4DC5-B3DB-A3DC0DE7E853</RequestId>\\n <BucketInfos>\\n <BucketAcl>private</BucketAcl>\\n <BucketName>test</BucketName>\\n <Comment>numb</Comment>\\n <CreateTime>2022-10-12T05:45:00Z</CreateTime>\\n <LogicalBucketType>sink</LogicalBucketType>\\n <ModifyTime>2022-10-12T06:45:00Z</ModifyTime>\\n <EnsRegionId>cn-dalian-unicom</EnsRegionId>\\n </BucketInfos>\\n <TotalCount>1</TotalCount>\\n</ListBucketsResponse>","errorExample":""}]',
+ 'title' => 'ListBuckets',
+ ],
+ 'GetOssUsageData' => [
+ 'summary' => 'Queries the storage and bandwidth usage within a specific time range.',
+ 'methods' => [
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'deprecated' => false,
+ 'systemTags' => [],
+ 'parameters' => [
+ [
+ 'name' => 'StartTime',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The beginning of the time range to query. The time must be in UTC. Format: 2010-01-21T09:50:23Z.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => '2022-01-11T00:00:00Z',
+ ],
+ ],
+ [
+ 'name' => 'EndTime',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The end of the time range to query. The time must be in UTC. Format: 2010-01-21T09:50:23Z.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'enumValueTitles' => [],
+ 'example' => '2022-01-12T00:00:00Z',
+ ],
+ ],
+ [
+ 'name' => 'Bucket',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The name of the logical Object Storage Service (OSS) bucket.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'ens-sink-bucketzyp1656903494',
+ ],
+ ],
+ [
+ 'name' => 'Period',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The aggregation granularity. Unit: minutes.'."\n"
+ ."\n"
+ .'Default value: 5. Valid values: 5 to 1440.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '10',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '2A8CCD48-14F9-0309-B957-7B1D74A8119D',
+ ],
+ 'UsageList' => [
+ 'description' => 'The array of usage data.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => '',
+ 'type' => 'object',
+ 'properties' => [
+ 'LanRxBw' => [
+ 'description' => 'The inbound bandwidth over the internal network. Unit: bit/s.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int64',
+ 'example' => '37865147',
+ ],
+ 'LanTxBw' => [
+ 'description' => 'The outbound bandwidth over the internal network. Unit: bit/s.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int64',
+ 'example' => '22012187890',
+ ],
+ 'Point' => [
+ 'description' => 'The number of time points within a day.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int64',
+ 'example' => '144',
+ ],
+ 'PointTs' => [
+ 'description' => 'The point in time, in UTC. Format: 2010-01-21T09:50:23Z.'."\n",
+ 'type' => 'string',
+ 'example' => '2022-01-12T00:00:00Z',
+ ],
+ 'StorageUsageByte' => [
+ 'description' => 'The storage usage. Unit: bytes.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int64',
+ 'example' => '85462146217',
+ ],
+ 'WanRxBw' => [
+ 'description' => 'The outbound bandwidth over the Internet. Unit: bit/s.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int64',
+ 'example' => '542155715',
+ ],
+ 'WanTxBw' => [
+ 'description' => 'The outbound bandwidth over the Internet. Unit: bit/s.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int64',
+ 'example' => '547126175217',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'ParamNotEnough',
+ 'errorMessage' => '参数不足',
+ ],
+ [
+ 'errorCode' => 'ParamScopeError',
+ 'errorMessage' => '参数值错误',
+ ],
+ [
+ 'errorCode' => 'ParamTypeError',
+ 'errorMessage' => '参数类型错误',
+ ],
+ [
+ 'errorCode' => 'SqlError',
+ 'errorMessage' => '数据库操作异常',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"2A8CCD48-14F9-0309-B957-7B1D74A8119D\\",\\n \\"UsageList\\": [\\n {\\n \\"LanRxBw\\": 37865147,\\n \\"LanTxBw\\": 22012187890,\\n \\"Point\\": 144,\\n \\"PointTs\\": \\"2022-01-12T00:00:00Z\\",\\n \\"StorageUsageByte\\": 85462146217,\\n \\"WanRxBw\\": 542155715,\\n \\"WanTxBw\\": 547126175217\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"<GetOssUsageDataResponse>\\n <RequestId>2A8CCD48-14F9-0309-B957-7B1D74A8119D</RequestId>\\n <UsageList>\\n <LanRxBw>37865147</LanRxBw>\\n <LanTxBw>22012187890</LanTxBw>\\n <Point>144</Point>\\n <PointTs>2022-01-12T00:00:00Z</PointTs>\\n <StorageUsageByte>85462146217</StorageUsageByte>\\n <WanRxBw>542155715</WanRxBw>\\n <WanTxBw>547126175217</WanTxBw>\\n </UsageList>\\n</GetOssUsageDataResponse>","errorExample":""}]',
+ 'title' => 'GetOssUsageData',
+ 'description' => 'The query and aggregation granularity of bandwidth and storage usage cannot exceed one day. Data aggregation is to collect the maximum values of usage data within a period of time.'."\n",
+ ],
+ 'GetOssStorageAndAccByBuckets' => [
+ 'summary' => 'Queries the storage usage in the previous billing cycle and the cumulative number of calls in this month.',
+ 'methods' => [
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'deprecated' => false,
+ 'systemTags' => [],
+ 'parameters' => [
+ [
+ 'name' => 'BucketList',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The information about the bucket.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'my-bucket',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '112F4860-F1B2-58DD-8FC0-75F19DA1C4BF',
+ ],
+ 'BucketList' => [
+ 'description' => 'The information about the bucket.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => '',
+ 'type' => 'object',
+ 'properties' => [
+ 'Acc' => [
+ 'description' => 'The number of times that the bucket is accessed.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int64',
+ 'example' => '1000',
+ ],
+ 'Bucket' => [
+ 'description' => 'The name of the bucket.'."\n",
+ 'type' => 'string',
+ 'example' => 'my-bucket',
+ ],
+ 'StorageUsageByte' => [
+ 'description' => 'The storage usage of the bucket. Unit: bytes.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int64',
+ 'example' => '1024',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'ParamNotEnough',
+ 'errorMessage' => '参数不足',
+ ],
+ [
+ 'errorCode' => 'ParamScopeError',
+ 'errorMessage' => '参数值错误',
+ ],
+ [
+ 'errorCode' => 'ParamTypeError',
+ 'errorMessage' => '参数类型错误',
+ ],
+ [
+ 'errorCode' => 'SqlError',
+ 'errorMessage' => '数据库操作异常',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"112F4860-F1B2-58DD-8FC0-75F19DA1C4BF\\",\\n \\"BucketList\\": [\\n {\\n \\"Acc\\": 1000,\\n \\"Bucket\\": \\"my-bucket\\",\\n \\"StorageUsageByte\\": 1024\\n }\\n ]\\n}","type":"json"}]',
+ 'title' => 'GetOssStorageAndAccByBuckets',
+ ],
+ 'DescribeStorageGateway' => [
+ 'summary' => 'Queries storage gateways.',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'list',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'EnsRegionId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the node.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'cn-beijing-cmcc',
+ ],
+ ],
+ [
+ 'name' => 'GatewayId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the gateway.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'sgw-****',
+ ],
+ ],
+ [
+ 'name' => 'GatewayType',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The type of the gateway. Set this parameter to **1**. **1** indicates iSCSI.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '1',
+ ],
+ ],
+ [
+ 'name' => 'VpcId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the virtual private cloud (VPC).'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'n-***',
+ ],
+ ],
+ [
+ 'name' => 'PageNumber',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The page number. Default value: 1.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '1',
+ ],
+ ],
+ [
+ 'name' => 'PageSize',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The number of entries per page.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '10',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'Id of the request'."\n",
+ 'type' => 'string',
+ 'example' => '6666C5A5-75ED-422E-A022-7121FA18C968',
+ ],
+ 'StorageGateways' => [
+ 'description' => 'The list information.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The information about the storage gateway.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'EnsRegionId' => [
+ 'description' => 'The ID of the node.'."\n",
+ 'type' => 'string',
+ 'example' => 'cn-beijing-cmcc'."\n",
+ ],
+ 'StorageGatewayId' => [
+ 'description' => 'The ID of the storage gateway.'."\n",
+ 'type' => 'string',
+ 'example' => 'sgw-***',
+ ],
+ 'StorageGatewayName' => [
+ 'description' => 'The name of the storage gateway.'."\n",
+ 'type' => 'string',
+ 'example' => 'testGateway',
+ ],
+ 'StorageGatewayType' => [
+ 'description' => 'The type of the storage gateway. Default value: 1, which indicates iSCSI.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '1',
+ ],
+ 'ServiceIp' => [
+ 'description' => 'The IP address of the service.'."\n",
+ 'type' => 'string',
+ 'example' => '*.*.*.*',
+ ],
+ 'CreationTime' => [
+ 'description' => 'The time when the storage gateway was created. The time is displayed in UTC.'."\n",
+ 'type' => 'string',
+ 'example' => '2024-05-14T03:07:47Z',
+ ],
+ 'Status' => [
+ 'description' => 'The status of the storage gateway. Valid values:'."\n"
+ ."\n"
+ .'* creating'."\n"
+ .'* available'."\n"
+ .'* deleting'."\n"
+ .'* deleted'."\n",
+ 'type' => 'string',
+ 'example' => 'available',
+ ],
+ 'Description' => [
+ 'description' => 'The description of the storage gateway.'."\n",
+ 'type' => 'string',
+ 'example' => 'testDescription',
+ ],
+ 'VpcId' => [
+ 'description' => 'The ID of the VPC.'."\n",
+ 'type' => 'string',
+ 'example' => 'n-***',
+ ],
+ 'CidrBlock' => [
+ 'description' => 'The internal CIDR block.'."\n",
+ 'type' => 'string',
+ 'example' => '192.168.2.0/24',
+ ],
+ ],
+ ],
+ ],
+ 'PageNumber' => [
+ 'description' => 'The page number. Default value: 1.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '1',
+ ],
+ 'PageSize' => [
+ 'description' => 'The number of entries per page.'."\n"
+ ."\n"
+ .'Default value: 10.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '10',
+ ],
+ 'TotalCount' => [
+ 'description' => 'The total number of entries returned.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '16',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ 'eventInfo' => [
+ 'enable' => false,
+ 'eventNames' => [],
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"6666C5A5-75ED-422E-A022-7121FA18C968\\",\\n \\"StorageGateways\\": [\\n {\\n \\"EnsRegionId\\": \\"cn-beijing-cmcc\\\\n\\",\\n \\"StorageGatewayId\\": \\"sgw-***\\",\\n \\"StorageGatewayName\\": \\"testGateway\\",\\n \\"StorageGatewayType\\": 1,\\n \\"ServiceIp\\": \\"*.*.*.*\\",\\n \\"CreationTime\\": \\"2024-05-14T03:07:47Z\\",\\n \\"Status\\": \\"available\\",\\n \\"Description\\": \\"testDescription\\",\\n \\"VpcId\\": \\"n-***\\",\\n \\"CidrBlock\\": \\"192.168.2.0/24\\"\\n }\\n ],\\n \\"PageNumber\\": 1,\\n \\"PageSize\\": 10,\\n \\"TotalCount\\": 16\\n}","type":"json"}]',
+ 'title' => 'DescribeStorageGateway',
+ ],
+ 'CreateStorageGateway' => [
+ 'summary' => 'Creates a storage gateway.',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'create',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'OrderDetails',
+ 'in' => 'query',
+ 'style' => 'json',
+ 'schema' => [
+ 'description' => 'The array of orders.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'EnsRegionId' => [
+ 'description' => 'The ID of the node.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'cn-shenzhen-3',
+ ],
+ 'GatewayType' => [
+ 'description' => 'The type of the gateway. Set this parameter to **1**. **1** indicates iSCSI.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => '1',
+ ],
+ 'VpcId' => [
+ 'description' => 'The ID of the VPC.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'n-123',
+ ],
+ 'GatewayName' => [
+ 'description' => 'The name of the gateway. 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 letters, digits, colons (.), underscores (\\_), and hyphens (-).'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'testGatewayName',
+ ],
+ 'Description' => [
+ 'description' => 'The description of the gateway. The description must be 2 to 256 characters in length and cannot start with `http://` or `https://`.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'testDescription',
+ ],
+ ],
+ 'required' => true,
+ ],
+ 'required' => true,
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => 'EA3758E0-8899-17D3-9526-5F62CF33A586',
+ ],
+ 'AllocationId' => [
+ 'description' => 'The list of created nodes.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'InstanceId' => [
+ 'description' => 'The ID of the instance.'."\n",
+ 'type' => 'string',
+ 'example' => 'e426409223',
+ ],
+ 'EnsRegionId' => [
+ 'description' => 'The ID of the node.'."\n",
+ 'type' => 'string',
+ 'example' => 'cn-chengdu-telecom-4',
+ ],
+ ],
+ ],
+ ],
+ 'BizStatusCode' => [
+ 'description' => 'The success status code.'."\n"
+ ."\n"
+ .'* **PartSuccess**: partially succeeded.'."\n"
+ .'* **AllSuccess**: all succeeded.'."\n",
+ 'type' => 'string',
+ 'example' => 'AllSuccess',
+ ],
+ 'UnAllocationId' => [
+ 'description' => 'The list of nodes that are not created.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'InstanceId' => [
+ 'description' => 'The ID of the instance.'."\n",
+ 'type' => 'string',
+ 'example' => 'e426409258',
+ ],
+ 'EnsRegionId' => [
+ 'description' => 'The ID of the node.'."\n",
+ 'type' => 'string',
+ 'example' => 'cn-chengdu-26',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'OrderFailed',
+ 'errorMessage' => '订单失败',
+ ],
+ [
+ 'errorCode' => 'SaleControl.VerificationFailed',
+ 'errorMessage' => 'You did not pass the salecontrol verification.Please contact the product.',
+ ],
+ [
+ 'errorCode' => 'Invalid%s',
+ 'errorMessage' => 'The specified parameter %s is invalid.',
+ ],
+ [
+ 'errorCode' => 'SaleControlVerificationFailedStock',
+ 'errorMessage' => 'Inventory sales constraint verification failed, please re-match, or contact the product.',
+ ],
+ [
+ 'errorCode' => 'SaleControlVerificationFailedRegion',
+ 'errorMessage' => 'The node sales constraint verification failed, please re-select or contact the product.',
+ ],
+ [
+ 'errorCode' => '%s',
+ 'errorMessage' => 'Some of the bulk orders failed, please try again:%s.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"EA3758E0-8899-17D3-9526-5F62CF33A586\\",\\n \\"AllocationId\\": [\\n {\\n \\"InstanceId\\": \\"e426409223\\",\\n \\"EnsRegionId\\": \\"cn-chengdu-telecom-4\\"\\n }\\n ],\\n \\"BizStatusCode\\": \\"AllSuccess\\",\\n \\"UnAllocationId\\": [\\n {\\n \\"InstanceId\\": \\"e426409258\\",\\n \\"EnsRegionId\\": \\"cn-chengdu-26\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"<CreateStorageGatewayResponse>\\n <RequestId>EA3758E0-8899-17D3-9526-5F62CF33A586</RequestId>\\n <AllocationId>\\n <InstanceId>e426409223</InstanceId>\\n <EnsRegionId>cn-chengdu-telecom-4</EnsRegionId>\\n </AllocationId>\\n <BizStatusCode>AllSuccess</BizStatusCode>\\n <UnAllocationId>\\n <InstanceId>e426409258</InstanceId>\\n <EnsRegionId>cn-chengdu-26</EnsRegionId>\\n </UnAllocationId>\\n</CreateStorageGatewayResponse>","errorExample":""}]',
+ 'title' => 'CreateStorageGateway',
+ ],
+ 'DeleteStorageGateway' => [
+ 'summary' => 'Deletes a storage gateway.',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'delete',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeNodes' => [
+ 'FEATUREensEFSRBY',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'GatewayId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the gateway.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'sgw-****',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '853D6E71-E087-1557-B65C-32BFBEE5CD97',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'IncorrectInstanceStatus',
+ 'errorMessage' => 'The current status of the resource does not support this operation',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ [
+ 'errorCode' => 'VolumeBind',
+ 'errorMessage' => 'Storage volumes bound to the instance.',
+ ],
+ [
+ 'errorCode' => 'InstanceIdNotFound',
+ 'errorMessage' => 'No instance ID found. Enter a valid instance ID.',
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"853D6E71-E087-1557-B65C-32BFBEE5CD97\\"\\n}","errorExample":""},{"type":"xml","example":"<DeleteStorageGatewayResponse>\\n <RequestId>853D6E71-E087-1557-B65C-32BFBEE5CD97</RequestId>\\n</DeleteStorageGatewayResponse>","errorExample":""}]',
+ 'title' => 'DeleteStorageGateway',
+ ],
+ 'DescribeStorageVolume' => [
+ 'summary' => 'Queries volumes.',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'list',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'EnsRegionId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the node.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'cn-shenzhen-3',
+ ],
+ ],
+ [
+ 'name' => 'VolumeId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the volume.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'sv-***',
+ ],
+ ],
+ [
+ 'name' => 'GatewayId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the gateway.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'sgw-****',
+ ],
+ ],
+ [
+ 'name' => 'StorageId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the storage medium.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'd-***',
+ ],
+ ],
+ [
+ 'name' => 'IsEnable',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'Specifies whether to enable the volume. Valid values:'."\n"
+ ."\n"
+ .'* **1** (default): enables the volume.'."\n"
+ .'* **0**: disables the volume.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'example' => '1',
+ ],
+ ],
+ [
+ 'name' => 'PageNumber',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The page number. Default value: **1**.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'example' => '1',
+ ],
+ ],
+ [
+ 'name' => 'PageSize',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The number of entries per page.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'example' => '10',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'StorageVolumes' => [
+ 'description' => 'The list of returned results.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The information about the volume.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'StorageVolumeId' => [
+ 'description' => 'The ID of the volume.'."\n",
+ 'type' => 'string',
+ 'example' => 'sv-***',
+ ],
+ 'StorageVolumeName' => [
+ 'description' => 'The name of the volume.'."\n",
+ 'type' => 'string',
+ 'example' => 'testVolumeName',
+ ],
+ 'StorageGatewayId' => [
+ 'description' => 'The ID of the storage gateway.'."\n",
+ 'type' => 'string',
+ 'example' => 'sgw-***',
+ ],
+ 'StorageId' => [
+ 'description' => 'The ID of the storage medium.'."\n",
+ 'type' => 'string',
+ 'example' => 'd-***',
+ ],
+ 'CreationTime' => [
+ 'description' => 'The time when the volume was created. The time is displayed in UTC.'."\n",
+ 'type' => 'string',
+ 'example' => '2024-03-14T09:35:32Z',
+ ],
+ 'IsEnable' => [
+ 'description' => 'Indicates whether the volume is enabled. Valid values:'."\n"
+ ."\n"
+ .'* **1** (default): The volume is enabled.'."\n"
+ .'* **0**: The volume is disabled.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '1',
+ ],
+ 'IsAuth' => [
+ 'description' => 'Indicates whether authentication is enabled. Valid values:'."\n"
+ ."\n"
+ .'* **1**: Authentication is enabled.'."\n"
+ .'* **0** (default): Authentication is disabled.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '0',
+ ],
+ 'Description' => [
+ 'description' => 'The description of the volume.'."\n",
+ 'type' => 'string',
+ 'example' => 'testDescription',
+ ],
+ 'TargetName' => [
+ 'description' => 'The destination of the volume.'."\n",
+ 'type' => 'string',
+ 'example' => 'iqn.*.*.*:*',
+ ],
+ 'Status' => [
+ 'description' => 'The status of the volume. Valid values:'."\n"
+ ."\n"
+ .'* creating'."\n"
+ .'* available'."\n"
+ .'* deleting'."\n"
+ .'* deleted'."\n",
+ 'type' => 'string',
+ 'example' => 'available',
+ ],
+ 'AuthProtocol' => [
+ 'description' => 'The authentication protocol. The value is set to **CHAP**.'."\n",
+ 'type' => 'string',
+ 'example' => 'CHAP',
+ ],
+ 'EnsRegionId' => [
+ 'description' => 'The ID of the node.'."\n",
+ 'type' => 'string',
+ 'example' => 'cn-shenzhen-3',
+ ],
+ ],
+ ],
+ ],
+ 'RequestId' => [
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => 'AAE90880-4970-4D81-A534-A6C0F3631F74',
+ ],
+ 'PageNumber' => [
+ 'description' => 'The page number. Default value: **1**.'."\n",
+ 'type' => 'string',
+ 'example' => '1',
+ ],
+ 'PageSize' => [
+ 'description' => 'The number of entries per page.'."\n",
+ 'type' => 'string',
+ 'example' => '10',
+ ],
+ 'TotalCount' => [
+ 'description' => 'The total number of entries returned.'."\n",
+ 'type' => 'string',
+ 'example' => '15',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ 'eventInfo' => [
+ 'enable' => false,
+ 'eventNames' => [],
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"StorageVolumes\\": [\\n {\\n \\"StorageVolumeId\\": \\"sv-***\\",\\n \\"StorageVolumeName\\": \\"testVolumeName\\",\\n \\"StorageGatewayId\\": \\"sgw-***\\",\\n \\"StorageId\\": \\"d-***\\",\\n \\"CreationTime\\": \\"2024-03-14T09:35:32Z\\",\\n \\"IsEnable\\": 1,\\n \\"IsAuth\\": 0,\\n \\"Description\\": \\"testDescription\\",\\n \\"TargetName\\": \\"iqn.*.*.*:*\\",\\n \\"Status\\": \\"available\\",\\n \\"AuthProtocol\\": \\"CHAP\\",\\n \\"EnsRegionId\\": \\"cn-shenzhen-3\\"\\n }\\n ],\\n \\"RequestId\\": \\"AAE90880-4970-4D81-A534-A6C0F3631F74\\",\\n \\"PageNumber\\": \\"1\\",\\n \\"PageSize\\": \\"10\\",\\n \\"TotalCount\\": \\"15\\"\\n}","type":"json"}]',
+ 'title' => 'DescribeStorageVolume',
+ ],
+ 'CreateStorageVolume' => [
+ 'summary' => 'Creates a storage volume.',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'create',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'GatewayId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the gateway.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'sgw-****',
+ ],
+ ],
+ [
+ 'name' => 'StorageId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the storage medium.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'si-****',
+ ],
+ ],
+ [
+ 'name' => 'EnsRegionId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the node.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'cn-shenzhen-3',
+ ],
+ ],
+ [
+ 'name' => 'IsEnable',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'Indicates whether the volume is enabled. Valid values:'."\n"
+ ."\n"
+ .'* **1** (default): The volume is enabled.'."\n"
+ .'* **0**: The volume is disabled.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '1',
+ 'enum' => [
+ '0',
+ '1',
+ ],
+ ],
+ ],
+ [
+ 'name' => 'IsAuth',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'Specifies whether to enable authentication. Valid values:'."\n"
+ ."\n"
+ .'* **1**: Authentication is enabled.'."\n"
+ .'* **0** (default): Authentication is disabled.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '0',
+ 'enum' => [
+ '0',
+ '1',
+ ],
+ ],
+ ],
+ [
+ 'name' => 'AuthProtocol',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The authentication protocol. Set the value to **CHAP**.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'CHAP',
+ 'enum' => [
+ 'CHAP',
+ ],
+ ],
+ ],
+ [
+ 'name' => 'AuthUser',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The username of the CHAP protocol.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'User',
+ ],
+ ],
+ [
+ 'name' => 'AuthPassword',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The password of the CHAP protocol.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'Password',
+ ],
+ ],
+ [
+ 'name' => 'VolumeName',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The name of the volume. The name must be 2 to 128 characters in length. The name cannot start with `http://` or `https://`. The name can contain letters, digits, colons (:), underscores (\\_), and hyphens (-).'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'testVolumeName',
+ ],
+ ],
+ [
+ 'name' => 'Description',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The description of the volume. The description must be 2 to 128 characters in length. The description cannot start with `http://` or `https://`.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'testDescription',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '7030AB96-57CF-1C68-9FEE-D60E547FD79C',
+ ],
+ 'VolumeId' => [
+ 'description' => 'An array of volume IDs.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The ID of the created volume.'."\n",
+ 'type' => 'string',
+ 'example' => '["sv-***"]',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'OrderFailed',
+ 'errorMessage' => '订单失败',
+ ],
+ [
+ 'errorCode' => 'SaleControl.VerificationFailed',
+ 'errorMessage' => 'You did not pass the salecontrol verification.Please contact the product.',
+ ],
+ [
+ 'errorCode' => 'ERROR_VOLUME_STORAGE_STATUS',
+ 'errorMessage' => 'The cloud disk cannot be operated',
+ ],
+ [
+ 'errorCode' => 'ERROR_VOLUME_STORAGE_BINDED',
+ 'errorMessage' => 'The cloud disk has been bound',
+ ],
+ [
+ 'errorCode' => 'ERROR_VOLUME_PROTOCOL',
+ 'errorMessage' => 'The wrong protocol',
+ ],
+ [
+ 'errorCode' => 'ERROR.STORAGE.BINDED',
+ 'errorMessage' => 'The storageId has been bound.',
+ ],
+ [
+ 'errorCode' => 'ens.interface.error',
+ 'errorMessage' => 'Failed to call API.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"7030AB96-57CF-1C68-9FEE-D60E547FD79C\\",\\n \\"VolumeId\\": [\\n \\"[\\\\\\"sv-***\\\\\\"]\\"\\n ]\\n}","errorExample":""},{"type":"xml","example":"<CreateStorageVolumeResponse>\\n <RequestId>7030AB96-57CF-1C68-9FEE-D60E547FD79C</RequestId>\\n <VolumeId>[\\"sv-***\\"]</VolumeId>\\n</CreateStorageVolumeResponse>","errorExample":""}]',
+ 'title' => 'CreateStorageVolume',
+ ],
+ 'DeleteStorageVolume' => [
+ 'summary' => 'Deletes a storage volume.',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'delete',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'VolumeId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the volume.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'sv-***',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '853D6E71-E087-1557-B65C-32BFBEE5CD97',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'INSTANCE_ID_NOT_FOUND',
+ 'errorMessage' => 'The input parameter instancdId that is not found.',
+ ],
+ [
+ 'errorCode' => 'IncorrectInstanceStatus',
+ 'errorMessage' => 'The current status of the resource does not support this operation',
+ ],
+ [
+ 'errorCode' => 'ERROR_VOLUME_STATUS',
+ 'errorMessage' => 'The storage volume status is unavailable',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"853D6E71-E087-1557-B65C-32BFBEE5CD97\\"\\n}","errorExample":""},{"type":"xml","example":"<DeleteStorageVolumeResponse>\\n <RequestId>853D6E71-E087-1557-B65C-32BFBEE5CD97</RequestId>\\n</DeleteStorageVolumeResponse>","errorExample":""}]',
+ 'title' => 'DeleteStorageVolume',
+ ],
+ 'AssignPrivateIpAddresses' => [
+ 'summary' => 'Assigns secondary private IP addresses to an elastic network interface (ENI).',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'create',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'NetworkInterfaceId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the ENI.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'eni-uf6533jbifugr5fo2j1w',
+ ],
+ ],
+ [
+ 'name' => 'VSwitchId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the vSwitch.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'vsw-5rllcjb3ol6duzjdnbm1ombn7',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E',
+ ],
+ 'AssignedPrivateIpAddressesSet' => [
+ 'description' => 'Details about the ENI and the secondary private IP addresses that are assigned to the ENI.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'NetworkInterfaceId' => [
+ 'description' => 'The ID of the ENI.'."\n",
+ 'type' => 'string',
+ 'example' => 'eni-uf620pb4d19ljnu4a64m',
+ ],
+ 'PrivateIpSet' => [
+ 'description' => 'The assigned private IP addresses.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The assigned private IP address.'."\n",
+ 'type' => 'string',
+ 'example' => '10.0.0.5',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'Invalid%s',
+ 'errorMessage' => 'The specified parameter %s is invalid.',
+ ],
+ [
+ 'errorCode' => 'Missing%s',
+ 'errorMessage' => 'You must specify the parameter %s.',
+ ],
+ [
+ 'errorCode' => 'ens.interface.error',
+ 'errorMessage' => 'An error occurred while calling the API.',
+ ],
+ [
+ 'errorCode' => 'InvalidEniId.NotFound',
+ 'errorMessage' => 'The specified NetworkInterfaceId does not exist. ',
+ ],
+ [
+ 'errorCode' => 'IncorrectInstanceStatus',
+ 'errorMessage' => 'The current status of the resource does not support this operation.',
+ ],
+ [
+ 'errorCode' => 'InvalidOperation.InstanceNotSupport',
+ 'errorMessage' => 'The specified instance does not support this operation. ',
+ ],
+ [
+ 'errorCode' => 'InvalidVSwitchId.NotFound',
+ 'errorMessage' => 'The specified VSwitchId does not exist.',
+ ],
+ [
+ 'errorCode' => 'InvalidVSwitchId.NotBelongNetwork',
+ 'errorMessage' => 'The specified VSwitch is not bound to instance\'s network.',
+ ],
+ [
+ 'errorCode' => 'MaxEniPrivateIpsCountExceeded',
+ 'errorMessage' => 'The maximum number of privateIp in a eni is exceeded.',
+ ],
+ [
+ 'errorCode' => 'InvalidVSwitchId.IpNotEnough',
+ 'errorMessage' => 'Don\'t have enough private IPs in this switch.',
+ ],
+ [
+ 'errorCode' => 'IncorrectEniStatus',
+ 'errorMessage' => 'Current eni status does not support this operation. ',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.EniServiceManaged',
+ 'errorMessage' => 'The eni is managed by service.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E\\",\\n \\"AssignedPrivateIpAddressesSet\\": {\\n \\"NetworkInterfaceId\\": \\"eni-uf620pb4d19ljnu4a64m\\",\\n \\"PrivateIpSet\\": [\\n \\"10.0.XXX\\"\\n ]\\n }\\n}","type":"json"}]',
+ 'title' => 'AssignPrivateIpAddresses',
+ ],
+ 'UnassignPrivateIpAddresses' => [
+ 'summary' => 'Unassigns secondary private IP addresses from an elastic network interface (ENI).',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'update',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'NetworkInterfaceId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the ENI.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'eni-f8z57orgmt6d144t****',
+ ],
+ ],
+ [
+ 'name' => 'PrivateIpAddress',
+ 'in' => 'query',
+ 'style' => 'flat',
+ 'schema' => [
+ 'description' => 'The secondary private IP addresses to unassign.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'Secondary private IP address N to unassign.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '192.168.XX.XX',
+ ],
+ 'required' => true,
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '1ECC937A-AE0E-4626-BE51-DED1D6D1C888',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'Invalid%s',
+ 'errorMessage' => 'The specified parameter %s is invalid.',
+ ],
+ [
+ 'errorCode' => 'Missing%s',
+ 'errorMessage' => 'You must specify the parameter %s.',
+ ],
+ [
+ 'errorCode' => 'ens.interface.error',
+ 'errorMessage' => 'An error occurred while calling the API.',
+ ],
+ [
+ 'errorCode' => 'InvalidEniId.NotFound',
+ 'errorMessage' => 'The specified NetworkInterfaceId does not exist.',
+ ],
+ [
+ 'errorCode' => 'InvalidPrivateIpAddress.NotFound',
+ 'errorMessage' => 'The specified privateIpAddress does not exist.',
+ ],
+ [
+ 'errorCode' => 'IncorrectPrivateIpAddressStatus',
+ 'errorMessage' => 'The current status of the resource does not support this operation.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"1ECC937A-AE0E-4626-BE51-DED1D6D1C888\\"\\n}","type":"json"}]',
+ 'title' => 'UnassignPrivateIpAddresses',
+ ],
+ 'CreateCluster' => [
+ 'summary' => 'Creates a Container Service for Kubernetes (ACK) edge cluster.',
+ 'methods' => [
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'create',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeNodes' => [
+ 'FEATUREensWT1XPU',
+ ],
+ 'autoTest' => true,
+ 'tenantRelevance' => 'tenant',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'Name',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '由数字、汉字、英文字符或短划线(-)组成,长度范围 1~63 个字符,且不能以短划线(-)开头。 ',
+ 'description' => 'The name of the cluster.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'mycluster-1',
+ ],
+ ],
+ [
+ 'name' => 'ClusterType',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => 'Kubernetes or ManagedKubernetes,前者为eck集群,后者为serverles vc'."\n"
+ .'必须与profile参数一起使用',
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'Kubernetes',
+ ],
+ ],
+ [
+ 'name' => 'Profile',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => 'Default or Serverless,前者为eck集群,后者为serverless vc'."\n"
+ .'必须与cluster_type参数一起使用',
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'Default',
+ ],
+ ],
+ [
+ 'name' => 'EnsRegionId',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '集群所在的ENS Region ID ',
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'cn-beijing',
+ ],
+ ],
+ [
+ 'name' => 'KubernetesVersion',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '集群版本,与 Kubernetes 社区基线版本保持一致。建议选择最新版本,若不指定,默认使用最新版本。',
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '1.32.1',
+ ],
+ ],
+ [
+ 'name' => 'VpcId',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '集群使用的专有网络。',
+ 'type' => 'string',
+ 'example' => 'vpc-xxxx',
+ ],
+ ],
+ [
+ 'name' => 'VswitchIds',
+ 'in' => 'query',
+ 'allowEmptyValue' => false,
+ 'style' => 'json',
+ 'schema' => [
+ 'title' => '集群节点所在虚拟交换机id。vswitch_ids所处 ENS Region 必须与ens_region_id一致',
+ 'type' => 'array',
+ 'items' => [
+ 'title' => '虚拟交换机ID列表',
+ 'type' => 'string',
+ 'example' => 'vsw-xxxxxxxxx',
+ ],
+ 'required' => false,
+ 'example' => '["vsw-xxx", "vsw-yyy"]',
+ ],
+ ],
+ [
+ 'name' => 'PodVswitchIds',
+ 'in' => 'query',
+ 'style' => 'json',
+ 'schema' => [
+ 'title' => '每个 Pod 虚拟交换机分别对应一个 Worker 节点的虚拟交换机,Pod 虚拟交换机和 Worker 节点的虚拟交换机的可用区需保持一致。如果不填,默认使用vswitch_ids',
+ 'type' => 'array',
+ 'items' => [
+ 'title' => '虚拟交换机ID列表',
+ 'type' => 'string',
+ 'example' => 'vsw-xxxxxxxx',
+ ],
+ 'docRequired' => false,
+ 'maxItems' => 64,
+ 'minItems' => 0,
+ ],
+ ],
+ [
+ 'name' => 'ContainerCidr',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => 'Pod 网络地址段,必须是有效的私有网段,即以下网段及其子网:10.0.0.0/8、172.16-31.0.0/12-16、192.168.0.0/16。不能与 VPC 及 VPC 内已有 Kubernetes 集群使用的网段重复,创建成功后不能修改。',
+ 'type' => 'string',
+ 'example' => '172.20.0.0/16',
+ ],
+ ],
+ [
+ 'name' => 'ServiceCidr',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => 'Service 网络地址段,可选范围:10.0.0.0/16-24,172.16-31.0.0/16-24,192.168.0.0/16-24 不能与 VPC 网段 10.1.0.0/21 及 VPC 内已有 Kubernetes 集群使用的网段重复,创建成功后不能修改。',
+ 'type' => 'string',
+ 'example' => '172.19.0.0/20',
+ ],
+ ],
+ [
+ 'name' => 'PublicAccess',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '是否开启公网访问。通过 EIP 暴露 API Server,实现集群公网访问。'."\n"
+ .'● true:开启公网访问。'."\n"
+ .'● false:不开启公网访问。选择不开放时,则无法通过外网访问集群 API Server。'."\n"
+ .'默认值:false。',
+ 'type' => 'boolean',
+ 'example' => 'true',
+ 'default' => 'false',
+ ],
+ ],
+ [
+ 'name' => 'LoadBalancerId',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '指定用于 APIServer 访问的 CLB 实例 ID。指定该参数时,将不再自动创建 APIServer CLB。',
+ 'type' => 'string',
+ 'example' => 'lb-wz9t256gqa3vbouk****',
+ ],
+ ],
+ [
+ 'name' => 'ControlPlaneConfig',
+ 'in' => 'query',
+ 'style' => 'json',
+ 'schema' => [
+ 'title' => '控制平面配置',
+ 'type' => 'object',
+ 'properties' => [
+ 'InstanceSpec' => [
+ 'title' => '节点实例类型',
+ 'type' => 'string',
+ 'example' => 'ens.esk.sn1.medium',
+ ],
+ 'ImageId' => [
+ 'title' => '控制面虚拟机镜像 ID',
+ 'type' => 'string',
+ 'example' => 'm-5ul335umat4e2y9ynwi84p3f9',
+ ],
+ 'SystemDiskCategory' => [
+ 'title' => '节点系统盘类型,可选类型:"local_ssd", "cloud_ssd", "cloud_efficiency", "local_hdd"',
+ 'type' => 'string',
+ 'example' => 'cloud_efficiency',
+ ],
+ 'SystemDiskSize' => [
+ 'title' => '节点系统盘大小',
+ 'type' => 'integer',
+ 'format' => 'int64',
+ 'example' => '120',
+ ],
+ 'Runtime' => [
+ 'title' => '控制面节点运行时名称',
+ 'type' => 'string',
+ 'example' => 'containerd',
+ ],
+ 'NodePortRange' => [
+ 'title' => '节点服务端口范围',
+ 'type' => 'string',
+ 'example' => '30000-32767',
+ ],
+ 'Size' => [
+ 'title' => '控制面节点数量,可选值3或5',
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '3',
+ ],
+ 'LoginPassword' => [
+ 'type' => 'string',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'The response parameters.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => 'C0003E8B-B930-4F59-ADC0-0E209A9012A8',
+ ],
+ 'ClusterId' => [
+ 'description' => 'The ID of the instance.'."\n",
+ 'type' => 'string',
+ 'example' => 'c34b69b095f8241c5a91cc2252dceb976',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'BadRequest',
+ 'errorMessage' => 'Request param error.',
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ 'eventInfo' => [
+ 'enable' => false,
+ 'eventNames' => [],
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"C0003E8B-B930-4F59-ADC0-0E209A9012A8\\",\\n \\"ClusterId\\": \\"c34b69b095f8241c5a91cc2252dceb976\\"\\n}","type":"json"}]',
+ 'title' => 'CreateCluster',
+ 'description' => '* You can call this operation up to 10 times per second per account.'."\n"
+ .'* Creating a cluster is an asynchronous operation. After this operation returns the response, it takes 10 to 20 minutes to initialize the cluster. You can call the DescribeCluster operation to query the cluster status. After you create a cluster, you can call the DescribeClusterKubeConfig operation to obtain the cluster certificate.'."\n",
+ ],
+ 'DeleteCluster' => [
+ 'summary' => '删除集群',
+ 'path' => '',
+ 'methods' => [
+ 'post',
+ ],
+ 'schemes' => [
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'delete',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeNodes' => [
+ 'FEATUREensWT1XPU',
+ ],
+ 'autoTest' => true,
+ 'tenantRelevance' => 'tenant',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'ClusterId',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '集群ID',
+ 'description' => '',
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'eck-xxxxxxxx',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response',
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'Id of the request',
+ 'type' => 'string',
+ 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984',
+ ],
+ 'ClusterId' => [
+ 'description' => '',
+ 'type' => 'string',
+ 'example' => 'eck-xxxxxxxx',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\",\\n \\"ClusterId\\": \\"eck-xxxxxxxx\\"\\n}","type":"json"}]',
+ 'title' => 'DeleteCluster',
+ ],
+ 'DescribeClustersV1' => [
+ 'summary' => 'Queries a list of clusters.',
+ 'path' => '',
+ 'methods' => [
+ 'post',
+ ],
+ 'schemes' => [
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'create',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeNodes' => [
+ 'FEATUREensPHDAAN',
+ 'FEATUREens7IGAII',
+ ],
+ 'autoTest' => true,
+ 'tenantRelevance' => 'tenant',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'Name',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'System specified parameters. Set the value to **DescribeClustersV1**.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'enumValueTitles' => [],
+ 'example' => 'test-eck-name',
+ ],
+ ],
+ [
+ 'name' => 'ClusterId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The name of the ECS instance.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'enumValueTitles' => [],
+ 'example' => 'eck-xxxxxxxx',
+ ],
+ ],
+ [
+ 'name' => 'EnsRegionId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The cluster ID.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'enumValueTitles' => [],
+ 'example' => 'cn-hangzhou-58',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'Id of the request'."\n",
+ 'type' => 'string',
+ 'example' => 'C0003E8B-B930-4F59-ADC0-0E209A9012A8',
+ ],
+ 'Clusters' => [
+ 'description' => 'An array that consists of the information about clusters.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The information about the cluster.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'ClusterId' => [
+ 'description' => 'The cluster instance ID.'."\n",
+ 'type' => 'string',
+ 'example' => 'eck-xxxxxxx',
+ ],
+ 'Name' => [
+ 'description' => 'The name of the monitoring object.'."\n",
+ 'type' => 'string',
+ 'example' => 'test-eck-name',
+ ],
+ 'AliUid' => [
+ 'description' => 'The user IDs.'."\n",
+ 'type' => 'string',
+ 'example' => '1375383353108460',
+ ],
+ 'EnsRegionId' => [
+ 'description' => 'The ID of the ENS node.'."\n",
+ 'type' => 'string',
+ 'example' => 'cn-hangzhou-55',
+ ],
+ 'KubernetesVersion' => [
+ 'description' => 'The Kubernetes version of the cluster. The Kubernetes versions supported are the same as the Kubernetes versions supported by open source Kubernetes. We recommend that you specify the latest Kubernetes version. If you do not specify this parameter, the latest Kubernetes version is used.'."\n",
+ 'type' => 'string',
+ 'example' => '1.31.9-aliyunedge.1',
+ ],
+ 'VpcId' => [
+ 'description' => 'The VPC of the cluster.'."\n",
+ 'type' => 'string',
+ 'example' => 'n-5wsgr3xeolb2ist303wp3cscp',
+ ],
+ 'VswitchIds' => [
+ 'description' => 'the id of the vswitch to which the cluster node belongs. The ENS region of the vswitch_ids service must be the same as that of the ens_region_id.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The vSwitch ID.'."\n",
+ 'type' => 'string',
+ 'example' => 'vsw-xxxxxxx',
+ ],
+ ],
+ 'PodVswitchIds' => [
+ 'description' => 'For each vSwitch that allocates IP addresses to worker nodes, you must select a vSwitch in the same zone to allocate IP addresses to pods. If you do not specify this parameter, vswitch_ids is used by default.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The ID of the vSwitch.'."\n",
+ 'type' => 'string',
+ 'example' => 'vsw-xxxxxxx',
+ ],
+ ],
+ 'ContainerCidr' => [
+ 'description' => 'The pod CIDR block. You can specify 10.0.0.0/8, 172.16-31.0.0/12-16, 192.168.0.0/16, or their subnets as the pod CIDR block. The pod CIDR block cannot overlap with the CIDR block of the VPC in which the cluster is deployed and the CIDR blocks of existing clusters in the VPC. You cannot modify the pod CIDR block after you create the cluster.'."\n",
+ 'type' => 'string',
+ 'example' => '10.0.0.0/8',
+ ],
+ 'ServiceCidr' => [
+ 'description' => 'Valid values: 10.0.0.0/16-24, 172.16-31.0.0/16-24, and 192.168.0.0/16-24. The Service CIDR block cannot overlap with the VPC CIDR block 10.1.0.0/21 or the CIDR blocks of existing ACK clusters in the VPC. You cannot change the Service CIDR block after you create the cluster.'."\n",
+ 'type' => 'string',
+ 'example' => '192.168.0.0/16',
+ ],
+ 'PublicAccess' => [
+ 'description' => 'Specifies whether to enable Internet access for the application. You can use an elastic IP address (EIP) to expose the API server. This way, you can access the cluster over the Internet. Valid values: true: enables Internet access for the application. false: disables Internet access to the API server of the cluster. If you set the value to false, the API server cannot be accessed over the Internet.'."\n",
+ 'type' => 'boolean',
+ 'example' => 'true',
+ ],
+ 'LoadBalancerId' => [
+ 'description' => 'The ID of the ALB instance.'."\n",
+ 'type' => 'string',
+ 'example' => 'lb-58dngw0fyimzzvwljfec7hy0z',
+ ],
+ 'ControlPlaneConfig' => [
+ 'description' => 'Control plane configuration.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'InstanceSpec' => [
+ 'description' => 'The instance type.'."\n",
+ 'type' => 'string',
+ 'example' => 'ens.sn1.medium',
+ ],
+ 'ImageId' => [
+ 'description' => 'The ID of the custom image.'."\n",
+ 'type' => 'string',
+ 'example' => 'm-68be8cb9f71fhyvjekxa23qsf',
+ ],
+ 'SystemDiskCategory' => [
+ 'description' => 'The system disk type of the node. Valid value: local_ssd, cloud_ssd, cloud_efficiency, and local_hdd.'."\n",
+ 'type' => 'string',
+ 'example' => 'cloud_ssd',
+ ],
+ 'SystemDiskSize' => [
+ 'description' => 'The size of the system disk. Unit: GB.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int64',
+ 'example' => '100',
+ ],
+ 'ContainerRuntime' => [
+ 'description' => 'The runtime type used by the nodes.'."\n",
+ 'type' => 'string',
+ 'example' => 'containerd',
+ ],
+ 'NodePortRange' => [
+ 'description' => 'The node port range.'."\n",
+ 'type' => 'string',
+ 'example' => '30000-32767',
+ ],
+ 'Size' => [
+ 'description' => 'The number of control plane nodes.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int64',
+ 'example' => '5',
+ ],
+ ],
+ ],
+ 'JoinToken' => [
+ 'description' => 'The cluster access authentication token.'."\n",
+ 'type' => 'string',
+ 'example' => 'xxxxxxxxxx.yyyyyyy',
+ ],
+ 'Config' => [
+ 'description' => 'The kubeconfig file of the cluster.'."\n",
+ 'type' => 'any',
+ 'example' => '{'."\n"
+ .' "kind": "Config",'."\n"
+ .' "apiVersion": "v1",'."\n"
+ .' "preferences": {},'."\n"
+ .' "clusters": ['."\n"
+ .' {'."\n"
+ .' "name": "kubernetes",'."\n"
+ .' "cluster": {'."\n"
+ .' "server": "https://000.000.000.000:6443",'."\n"
+ .' "certificate-authority-data": ""'."\n"
+ .' }'."\n"
+ .' }'."\n"
+ .' ],'."\n"
+ .' "users": ['."\n"
+ .' {'."\n"
+ .' "name": "kubernetes-admin",'."\n"
+ .' "user": {'."\n"
+ .' "client-certificate-data": "",'."\n"
+ .' "client-key-data": ""'."\n"
+ .' }'."\n"
+ .' }'."\n"
+ .' ],'."\n"
+ .' "contexts": ['."\n"
+ .' {'."\n"
+ .' "name": "kubernetes-admin@kubernetes",'."\n"
+ .' "context": {'."\n"
+ .' "cluster": "kubernetes",'."\n"
+ .' "user": "kubernetes-admin"'."\n"
+ .' }'."\n"
+ .' }'."\n"
+ .' ],'."\n"
+ .' "current-context": "kubernetes-admin@kubernetes"'."\n"
+ .' }',
+ ],
+ 'State' => [
+ 'type' => 'string',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'BadRequest',
+ 'errorMessage' => 'Request param error.',
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ 'eventInfo' => [
+ 'enable' => false,
+ 'eventNames' => [],
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"C0003E8B-B930-4F59-ADC0-0E209A9012A8\\",\\n \\"Clusters\\": [\\n {\\n \\"ClusterId\\": \\"eck-xxxxxxx\\",\\n \\"Name\\": \\"test-eck-name\\",\\n \\"AliUid\\": \\"1375383353108460\\",\\n \\"EnsRegionId\\": \\"cn-hangzhou-55\\",\\n \\"KubernetesVersion\\": \\"1.31.9-aliyunedge.1\\",\\n \\"VpcId\\": \\"n-5wsgr3xeolb2ist303wp3cscp\\",\\n \\"VswitchIds\\": [\\n \\"vsw-xxxxxxx\\"\\n ],\\n \\"PodVswitchIds\\": [\\n \\"vsw-xxxxxxx\\"\\n ],\\n \\"ContainerCidr\\": \\"10.0.0.0/8\\",\\n \\"ServiceCidr\\": \\"192.168.0.0/16\\",\\n \\"PublicAccess\\": true,\\n \\"LoadBalancerId\\": \\"lb-58dngw0fyimzzvwljfec7hy0z\\",\\n \\"ControlPlaneConfig\\": {\\n \\"InstanceSpec\\": \\"ens.sn1.medium\\",\\n \\"ImageId\\": \\"m-68be8cb9f71fhyvjekxa23qsf\\",\\n \\"SystemDiskCategory\\": \\"cloud_ssd\\",\\n \\"SystemDiskSize\\": 100,\\n \\"ContainerRuntime\\": \\"containerd\\",\\n \\"NodePortRange\\": \\"30000-32767\\",\\n \\"Size\\": 5\\n },\\n \\"JoinToken\\": \\"xxxxxxxxxx.yyyyyyy\\",\\n \\"Config\\": \\"{\\\\n \\\\\\"kind\\\\\\": \\\\\\"Config\\\\\\",\\\\n \\\\\\"apiVersion\\\\\\": \\\\\\"v1\\\\\\",\\\\n \\\\\\"preferences\\\\\\": {},\\\\n \\\\\\"clusters\\\\\\": [\\\\n {\\\\n \\\\\\"name\\\\\\": \\\\\\"kubernetes\\\\\\",\\\\n \\\\\\"cluster\\\\\\": {\\\\n \\\\\\"server\\\\\\": \\\\\\"https://000.000.000.000:6443\\\\\\",\\\\n \\\\\\"certificate-authority-data\\\\\\": \\\\\\"\\\\\\"\\\\n }\\\\n }\\\\n ],\\\\n \\\\\\"users\\\\\\": [\\\\n {\\\\n \\\\\\"name\\\\\\": \\\\\\"kubernetes-admin\\\\\\",\\\\n \\\\\\"user\\\\\\": {\\\\n \\\\\\"client-certificate-data\\\\\\": \\\\\\"\\\\\\",\\\\n \\\\\\"client-key-data\\\\\\": \\\\\\"\\\\\\"\\\\n }\\\\n }\\\\n ],\\\\n \\\\\\"contexts\\\\\\": [\\\\n {\\\\n \\\\\\"name\\\\\\": \\\\\\"kubernetes-admin@kubernetes\\\\\\",\\\\n \\\\\\"context\\\\\\": {\\\\n \\\\\\"cluster\\\\\\": \\\\\\"kubernetes\\\\\\",\\\\n \\\\\\"user\\\\\\": \\\\\\"kubernetes-admin\\\\\\"\\\\n }\\\\n }\\\\n ],\\\\n \\\\\\"current-context\\\\\\": \\\\\\"kubernetes-admin@kubernetes\\\\\\"\\\\n }\\",\\n \\"State\\": \\"running\\"\\n }\\n ]\\n}","type":"json"}]',
+ 'title' => 'DescribeClustersV1',
+ ],
+ 'DescribeClusterDetail' => [
+ 'summary' => '查询集群详细信息',
+ 'path' => '',
+ 'methods' => [
+ 'post',
+ ],
+ 'schemes' => [
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeNodes' => [
+ 'FEATUREens7IGAII',
+ ],
+ 'autoTest' => true,
+ 'tenantRelevance' => 'tenant',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'ClusterId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => '',
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'eck-11111111',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response',
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'Id of the request。',
+ 'type' => 'string',
+ 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984',
+ ],
+ 'ClusterId' => [
+ 'description' => '',
+ 'type' => 'string',
+ 'example' => 'eck-11111111',
+ ],
+ 'Name' => [
+ 'description' => '',
+ 'type' => 'string',
+ 'example' => 'your-cluster-name',
+ ],
+ 'AliUid' => [
+ 'description' => '',
+ 'type' => 'string',
+ 'example' => '1574790082031102',
+ ],
+ 'EnsRegionId' => [
+ 'description' => '',
+ 'type' => 'string',
+ 'example' => 'cn-fuzhou-23',
+ ],
+ 'KubernetesVersion' => [
+ 'description' => '',
+ 'type' => 'string',
+ 'example' => '1.32.1.aliyunedge.1',
+ ],
+ 'VpcId' => [
+ 'description' => '',
+ 'type' => 'string',
+ 'example' => 'n-xxxxxxxxx',
+ ],
+ 'VswitchIds' => [
+ 'description' => '',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => '',
+ 'type' => 'string',
+ 'example' => 'vsw-xxxxxxxxx',
+ ],
+ ],
+ 'PodVswitchIds' => [
+ 'description' => '',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => '',
+ 'type' => 'string',
+ 'example' => 'vsw-xxxxxxxx',
+ ],
+ ],
+ 'ContainerCidr' => [
+ 'description' => '',
+ 'type' => 'string',
+ 'example' => '172.20.0.0/16',
+ ],
+ 'ServiceCidr' => [
+ 'description' => '',
+ 'type' => 'string',
+ 'example' => '172.19.0.0/20',
+ ],
+ 'PublicAccess' => [
+ 'description' => '',
+ 'type' => 'boolean',
+ 'example' => 'true',
+ ],
+ 'LoadBalancerId' => [
+ 'description' => '',
+ 'type' => 'string',
+ 'example' => 'lb-5snthcyu1x10g7tywj7iu****',
+ ],
+ 'ControlPlaneConfig' => [
+ 'description' => '',
+ 'type' => 'object',
+ 'properties' => [
+ 'InstanceSpec' => [
+ 'description' => '',
+ 'type' => 'string',
+ 'example' => 'ens.esk.sn1.medium',
+ ],
+ 'ImageId' => [
+ 'description' => '',
+ 'type' => 'string',
+ 'example' => 'm-5ul335umat4e2y9ynwi84p3f9',
+ ],
+ 'SystemDiskCategory' => [
+ 'description' => '',
+ 'type' => 'string',
+ 'example' => 'cloud_efficiency',
+ ],
+ 'SystemDiskSize' => [
+ 'description' => '',
+ 'type' => 'integer',
+ 'format' => 'int64',
+ 'example' => '120',
+ ],
+ 'ContainerRuntime' => [
+ 'description' => '',
+ 'type' => 'string',
+ 'example' => 'containerd',
+ ],
+ 'NodePortRange' => [
+ 'description' => '',
+ 'type' => 'string',
+ 'example' => '30000-32767',
+ ],
+ 'Size' => [
+ 'description' => '',
+ 'type' => 'integer',
+ 'format' => 'int64',
+ 'example' => '3',
+ ],
+ ],
+ ],
+ 'JoinToken' => [
+ 'description' => '',
+ 'type' => 'string',
+ 'example' => 'xxxx.yyy',
+ ],
+ 'Config' => [
+ 'description' => '',
+ 'type' => 'any',
+ 'example' => 'apiVersion: v1'."\n"
+ .'clusters:'."\n"
+ .'- cluster:'."\n"
+ .' certificate-authority-data: x'."\n"
+ .' server: https://111.111.111.111:6443'."\n"
+ .' name: kubernetes'."\n"
+ .'contexts:'."\n"
+ .'- context:'."\n"
+ .' cluster: kubernetes'."\n"
+ .' user: user'."\n"
+ .' name: eck-xxxxx'."\n"
+ .'current-context: eck-xxxx'."\n"
+ .'kind: Config'."\n"
+ .'preferences: {}'."\n"
+ .'users:'."\n"
+ .'- name: user'."\n"
+ .' user:'."\n"
+ .' client-certificate-data: x'."\n"
+ .' client-key-data: x',
+ ],
+ 'State' => [
+ 'description' => '',
+ 'type' => 'string',
+ 'example' => 'running',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\",\\n \\"ClusterId\\": \\"eck-11111111\\",\\n \\"Name\\": \\"your-cluster-name\\",\\n \\"AliUid\\": \\"1574790082031102\\",\\n \\"EnsRegionId\\": \\"cn-fuzhou-23\\",\\n \\"KubernetesVersion\\": \\"1.32.1.aliyunedge.1\\",\\n \\"VpcId\\": \\"n-xxxxxxxxx\\",\\n \\"VswitchIds\\": [\\n \\"vsw-xxxxxxxxx\\"\\n ],\\n \\"PodVswitchIds\\": [\\n \\"vsw-xxxxxxxx\\"\\n ],\\n \\"ContainerCidr\\": \\"172.20.0.0/16\\",\\n \\"ServiceCidr\\": \\"172.19.0.0/20\\",\\n \\"PublicAccess\\": true,\\n \\"LoadBalancerId\\": \\"lb-5snthcyu1x10g7tywj7iu****\\",\\n \\"ControlPlaneConfig\\": {\\n \\"InstanceSpec\\": \\"ens.esk.sn1.medium\\",\\n \\"ImageId\\": \\"m-5ul335umat4e2y9ynwi84p3f9\\",\\n \\"SystemDiskCategory\\": \\"cloud_efficiency\\",\\n \\"SystemDiskSize\\": 120,\\n \\"ContainerRuntime\\": \\"containerd\\",\\n \\"NodePortRange\\": \\"30000-32767\\",\\n \\"Size\\": 3\\n },\\n \\"JoinToken\\": \\"xxxx.yyy\\",\\n \\"Config\\": \\"apiVersion: v1\\\\nclusters:\\\\n- cluster:\\\\n certificate-authority-data: x\\\\n server: https://111.111.111.111:6443\\\\n name: kubernetes\\\\ncontexts:\\\\n- context:\\\\n cluster: kubernetes\\\\n user: user\\\\n name: eck-xxxxx\\\\ncurrent-context: eck-xxxx\\\\nkind: Config\\\\npreferences: {}\\\\nusers:\\\\n- name: user\\\\n user:\\\\n client-certificate-data: x\\\\n client-key-data: x\\",\\n \\"State\\": \\"running\\"\\n}","type":"json"}]',
+ ],
+ 'DescribeClusterUserKubeconfig' => [
+ 'summary' => '查询集群KubeConfig',
+ 'path' => '',
+ 'methods' => [
+ 'post',
+ ],
+ 'schemes' => [
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeNodes' => [
+ 'FEATUREens7IGAII',
+ ],
+ 'autoTest' => true,
+ 'tenantRelevance' => 'tenant',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'ClusterId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => '',
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'eck-xxxxxxxxx',
+ ],
+ ],
+ [
+ 'name' => 'PrivateIpAddress',
+ 'in' => 'query',
+ 'schema' => [
+ 'type' => 'boolean',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response',
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'Id of the request',
+ 'type' => 'string',
+ 'example' => 'C0003E8B-B930-4F59-ADC0-0E209A9012A8',
+ ],
+ 'Config' => [
+ 'description' => '',
+ 'type' => 'any',
+ 'example' => 'apiVersion: v1'."\n"
+ .'clusters:'."\n"
+ .'- cluster:'."\n"
+ .' certificate-authority-data: x'."\n"
+ .' server: https://111.111.111.111:6443'."\n"
+ .' name: kubernetes'."\n"
+ .'contexts:'."\n"
+ .'- context:'."\n"
+ .' cluster: kubernetes'."\n"
+ .' user: user'."\n"
+ .' name: eck-xxxxx'."\n"
+ .'current-context: eck-xxxx'."\n"
+ .'kind: Config'."\n"
+ .'preferences: {}'."\n"
+ .'users:'."\n"
+ .'- name: user'."\n"
+ .' user:'."\n"
+ .' client-certificate-data: x'."\n"
+ .' client-key-data: x',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"C0003E8B-B930-4F59-ADC0-0E209A9012A8\\",\\n \\"Config\\": \\"apiVersion: v1\\\\nclusters:\\\\n- cluster:\\\\n certificate-authority-data: x\\\\n server: https://111.111.111.111:6443\\\\n name: kubernetes\\\\ncontexts:\\\\n- context:\\\\n cluster: kubernetes\\\\n user: user\\\\n name: eck-xxxxx\\\\ncurrent-context: eck-xxxx\\\\nkind: Config\\\\npreferences: {}\\\\nusers:\\\\n- name: user\\\\n user:\\\\n client-certificate-data: x\\\\n client-key-data: x\\"\\n}","type":"json"}]',
+ ],
+ 'ListClusterAddonInstances' => [
+ 'summary' => 'List of Installed Addon Instances in the Cluster',
+ 'path' => '',
+ 'methods' => [
+ 'post',
+ ],
+ 'schemes' => [
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeNodes' => [
+ 'FEATUREensPHDAAN',
+ 'FEATUREens7IGAII',
+ ],
+ 'autoTest' => true,
+ 'tenantRelevance' => 'tenant',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'ClusterId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'Cluster ID.',
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'eck-xxxxxxxx',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Response Schema',
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'ID of the request',
+ 'type' => 'string',
+ 'example' => '125B04C7-3D0D-4245-AF96-14E3758E3F06',
+ ],
+ 'Addons' => [
+ 'description' => 'List of addon information.',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'Addon information.',
+ 'type' => 'object',
+ 'properties' => [
+ 'Name' => [
+ 'description' => 'Addon name.',
+ 'type' => 'string',
+ 'example' => 'test1',
+ ],
+ 'Version' => [
+ 'description' => 'Version number.',
+ 'type' => 'string',
+ 'example' => 'v1',
+ ],
+ 'CleanupCloudResources' => [
+ 'description' => 'Whether to automatically clean up associated cloud resources.',
+ 'type' => 'boolean',
+ 'example' => 'true',
+ ],
+ 'Status' => [
+ 'description' => 'Current addon status. Values:'."\n"
+ ."\n"
+ .'- **enabling**: Enabling.'."\n"
+ .'- **enabled**: Enabled.'."\n"
+ .'- **disabling**: Disabling.'."\n"
+ .'- **disabled**: Disabled.'."\n"
+ .'- **upgrading**: Upgrading.',
+ 'type' => 'string',
+ 'example' => 'enabled',
+ ],
+ 'ConfigSchema' => [
+ 'description' => 'List of custom parameter schemas for the addon.',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'Custom parameter schema for the addon.',
+ 'type' => 'object',
+ 'properties' => [
+ 'AppVersion' => [
+ 'description' => 'Application version.',
+ 'type' => 'string',
+ 'example' => '7380581386597434629002',
+ ],
+ 'ConfigVersion' => [
+ 'description' => 'Configuration version.',
+ 'type' => 'string',
+ 'example' => '4572581386436834662215',
+ ],
+ 'Name' => [
+ 'description' => 'Component name.',
+ 'type' => 'string',
+ 'example' => 'edge-csi-lite',
+ ],
+ 'Params' => [
+ 'description' => 'Custom parameters.',
+ 'type' => 'string',
+ 'example' => '{"key1": "val1"}',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'BadRequest',
+ 'errorMessage' => 'Request param error.',
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ 'eventInfo' => [
+ 'enable' => false,
+ 'eventNames' => [],
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"125B04C7-3D0D-4245-AF96-14E3758E3F06\\",\\n \\"Addons\\": [\\n {\\n \\"Name\\": \\"test1\\",\\n \\"Version\\": \\"v1\\",\\n \\"CleanupCloudResources\\": true,\\n \\"Status\\": \\"enabled\\",\\n \\"ConfigSchema\\": [\\n {\\n \\"AppVersion\\": \\"7380581386597434629002\\",\\n \\"ConfigVersion\\": \\"4572581386436834662215\\",\\n \\"Name\\": \\"edge-csi-lite\\",\\n \\"Params\\": \\"{\\\\\\"key1\\\\\\": \\\\\\"val1\\\\\\"}\\"\\n }\\n ]\\n }\\n ]\\n}","type":"json"}]',
+ 'title' => 'List of installed add-on instances in the cluster',
+ 'translator' => 'machine',
+ ],
+ 'GetClusterAddonInstance' => [
+ 'summary' => '查询集群内指定组件实例信息',
+ 'path' => '',
+ 'methods' => [
+ 'post',
+ ],
+ 'schemes' => [
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'create',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeNodes' => [
+ 'FEATUREensPHDAAN',
+ ],
+ 'autoTest' => true,
+ 'tenantRelevance' => 'tenant',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'ClusterId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => '',
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'eck-xxxxxxxx',
+ ],
+ ],
+ [
+ 'name' => 'InstanceName',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => '',
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'edge-csi-lite',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response',
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'Id of the request',
+ 'type' => 'string',
+ 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984',
+ ],
+ 'Name' => [
+ 'description' => '',
+ 'type' => 'string',
+ 'example' => 'edge-csi-lite',
+ ],
+ 'Version' => [
+ 'description' => '',
+ 'type' => 'string',
+ 'example' => 'v1',
+ ],
+ 'CleanupCloudResources' => [
+ 'description' => '',
+ 'type' => 'boolean',
+ ],
+ 'Status' => [
+ 'description' => '',
+ 'type' => 'string',
+ 'example' => 'enabled',
+ ],
+ 'ConfigSchema' => [
+ 'description' => '',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => '',
+ 'type' => 'object',
+ 'properties' => [
+ 'AppVersion' => [
+ 'description' => '',
+ 'type' => 'string',
+ 'example' => 'd0ead1f4e28de0f9e3c86588409a88a4',
+ ],
+ 'ConfigVersion' => [
+ 'description' => '',
+ 'type' => 'string',
+ 'example' => 'd0ead1f4e28de0f9e3c86588409a88a4',
+ ],
+ 'Name' => [
+ 'description' => '',
+ 'type' => 'string',
+ 'example' => 'edge-csi-lite',
+ ],
+ 'Params' => [
+ 'description' => '',
+ 'type' => 'string',
+ 'example' => '{"k1":"v1"}',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\",\\n \\"Name\\": \\"edge-csi-lite\\",\\n \\"Version\\": \\"v1\\",\\n \\"CleanupCloudResources\\": true,\\n \\"Status\\": \\"enabled\\",\\n \\"ConfigSchema\\": [\\n {\\n \\"AppVersion\\": \\"d0ead1f4e28de0f9e3c86588409a88a4\\",\\n \\"ConfigVersion\\": \\"d0ead1f4e28de0f9e3c86588409a88a4\\",\\n \\"Name\\": \\"edge-csi-lite\\",\\n \\"Params\\": \\"{\\\\\\"k1\\\\\\":\\\\\\"v1\\\\\\"}\\"\\n }\\n ]\\n}","type":"json"}]',
+ ],
+ 'UnInstallClusterAddons' => [
+ 'summary' => '卸载集群组件',
+ 'path' => '',
+ 'methods' => [
+ 'post',
+ ],
+ 'schemes' => [
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'create',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeNodes' => [
+ 'FEATUREensPHDAAN',
+ 'FEATUREens7IGAII',
+ ],
+ 'autoTest' => true,
+ 'tenantRelevance' => 'tenant',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'ClusterId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => '',
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'eck-xxxxxxxx',
+ ],
+ ],
+ [
+ 'name' => 'Addons',
+ 'in' => 'query',
+ 'style' => 'json',
+ 'schema' => [
+ 'description' => '',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => '',
+ 'type' => 'object',
+ 'properties' => [
+ 'Name' => [
+ 'description' => '',
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'edge-csi-lite',
+ ],
+ ],
+ 'required' => false,
+ ],
+ 'required' => false,
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response',
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'Id of the request',
+ 'type' => 'string',
+ 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984',
+ ],
+ 'ClusterId' => [
+ 'description' => '',
+ 'type' => 'string',
+ 'example' => 'eck-xxxxxxxx',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'BadRequest',
+ 'errorMessage' => 'Request param error.',
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ 'eventInfo' => [
+ 'enable' => false,
+ 'eventNames' => [],
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\",\\n \\"ClusterId\\": \\"eck-xxxxxxxx\\"\\n}","type":"json"}]',
+ ],
+ 'InstallClusterAddons' => [
+ 'summary' => '安装集群组件',
+ 'path' => '',
+ 'methods' => [
+ 'post',
+ ],
+ 'schemes' => [
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'create',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeNodes' => [
+ 'FEATUREensPHDAAN',
+ 'FEATUREens7IGAII',
+ ],
+ 'autoTest' => true,
+ 'tenantRelevance' => 'tenant',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'ClusterId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => '',
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'eck-xxxxxxxx',
+ ],
+ ],
+ [
+ 'name' => 'Addons',
+ 'in' => 'query',
+ 'style' => 'json',
+ 'schema' => [
+ 'description' => '',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => '',
+ 'type' => 'object',
+ 'properties' => [
+ 'Name' => [
+ 'description' => '',
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'edge-csi-lite',
+ ],
+ 'Version' => [
+ 'description' => '',
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'v1',
+ ],
+ 'ConfigSchema' => [
+ 'description' => '',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => '',
+ 'type' => 'object',
+ 'properties' => [
+ 'AppVersion' => [
+ 'description' => '',
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '859e9d595b2974ed79c444658d1dea89',
+ ],
+ 'ConfigVersion' => [
+ 'description' => '',
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '4155709cd12a09bdb8cbaca71bf03233',
+ ],
+ 'Name' => [
+ 'description' => '',
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'edge-csi-lite',
+ ],
+ 'Params' => [
+ 'description' => '',
+ 'type' => 'object',
+ 'required' => false,
+ 'example' => '{"k1":"v1"}',
+ ],
+ ],
+ 'required' => false,
+ ],
+ 'required' => false,
+ ],
+ ],
+ 'required' => false,
+ ],
+ 'required' => true,
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response',
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'Id of the request',
+ 'type' => 'string',
+ 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984',
+ ],
+ 'ClusterId' => [
+ 'description' => '',
+ 'type' => 'string',
+ 'example' => 'eck-xxxxxxxx',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'BadRequest',
+ 'errorMessage' => 'Request param error.',
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ 'eventInfo' => [
+ 'enable' => false,
+ 'eventNames' => [],
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\",\\n \\"ClusterId\\": \\"eck-xxxxxxxx\\"\\n}","type":"json"}]',
+ ],
+ 'ModifyClusterAddon' => [
+ 'summary' => '修改集群组件实例配置',
+ 'path' => '',
+ 'methods' => [
+ 'post',
+ ],
+ 'schemes' => [
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'create',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeNodes' => [
+ 'FEATUREensPHDAAN',
+ 'FEATUREens7IGAII',
+ ],
+ 'autoTest' => true,
+ 'tenantRelevance' => 'tenant',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'ClusterId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => '',
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'eck-xxxxxxxx',
+ ],
+ ],
+ [
+ 'name' => 'ComponentName',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => '',
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'edge-csi-lite',
+ ],
+ ],
+ [
+ 'name' => 'Addon',
+ 'in' => 'query',
+ 'style' => 'json',
+ 'schema' => [
+ 'description' => '',
+ 'type' => 'object',
+ 'properties' => [
+ 'Name' => [
+ 'description' => '',
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'edge-csi-lite',
+ ],
+ 'Version' => [
+ 'description' => '',
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'v1',
+ ],
+ 'ConfigSchema' => [
+ 'description' => '',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => '',
+ 'type' => 'object',
+ 'properties' => [
+ 'AppVersion' => [
+ 'description' => '',
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'd0ead1f4e28de0f9e3c86588409a88a4',
+ ],
+ 'ConfigVersion' => [
+ 'description' => '',
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'd0ead1f4e28de0f9e3c86588409a88a4',
+ ],
+ 'Name' => [
+ 'description' => '',
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'edge-csi-lite',
+ ],
+ 'Params' => [
+ 'description' => '',
+ 'type' => 'object',
+ 'required' => false,
+ 'example' => '{"k1":"v1"}',
+ ],
+ ],
+ 'required' => false,
+ ],
+ 'required' => false,
+ ],
+ ],
+ 'required' => false,
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response',
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'Id of the request',
+ 'type' => 'string',
+ 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'BadRequest',
+ 'errorMessage' => 'Request param error.',
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ 'eventInfo' => [
+ 'enable' => false,
+ 'eventNames' => [],
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\"\\n}","type":"json"}]',
+ ],
+ 'ListAddons' => [
+ 'summary' => 'Querying the details of a cluster component',
+ 'path' => '',
+ 'methods' => [
+ 'post',
+ ],
+ 'schemes' => [
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'create',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeNodes' => [
+ 'FEATUREensPHDAAN',
+ 'FEATUREens7IGAII',
+ ],
+ 'autoTest' => true,
+ 'tenantRelevance' => 'tenant',
+ ],
+ 'parameters' => [],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of response.',
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'Id of the request.',
+ 'type' => 'string',
+ 'example' => 'C0003E8B-B930-4F59-ADC0-0E209A9012A8',
+ ],
+ 'Addons' => [
+ 'description' => 'The list of component information.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The component information.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'Name' => [
+ 'description' => 'The component name.'."\n",
+ 'type' => 'string',
+ 'example' => 'edge-csi-lite',
+ ],
+ 'Version' => [
+ 'description' => 'The component version.'."\n",
+ 'type' => 'string',
+ 'example' => 'v2',
+ ],
+ 'CleanupCloudResources' => [
+ 'description' => 'Specifies whether to clear resources.'."\n",
+ 'type' => 'boolean',
+ 'example' => 'true',
+ ],
+ 'ConfigSchema' => [
+ 'description' => 'The schema of the custom parameters of the component.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The schema of the custom parameters of the component.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'AppVersion' => [
+ 'description' => 'The application version.'."\n",
+ 'type' => 'string',
+ 'example' => '859e9d595b2974ed79c444658d1dea89',
+ ],
+ 'ConfigVersion' => [
+ 'description' => 'The version of the configuration file.'."\n",
+ 'type' => 'string',
+ 'example' => '4155709cd12a09bdb8cbaca71bf03233',
+ ],
+ 'Name' => [
+ 'description' => 'The component name.'."\n",
+ 'type' => 'string',
+ 'example' => 'edge-csi-lite',
+ ],
+ 'Params' => [
+ 'description' => 'The custom configurations of the component.'."\n",
+ 'type' => 'object',
+ 'example' => '{"key1":"val1"}',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'BadRequest',
+ 'errorMessage' => 'Request param error.',
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ 'eventInfo' => [
+ 'enable' => false,
+ 'eventNames' => [],
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"C0003E8B-B930-4F59-ADC0-0E209A9012A8\\",\\n \\"Addons\\": [\\n {\\n \\"Name\\": \\"edge-csi-lite\\",\\n \\"Version\\": \\"v2\\",\\n \\"CleanupCloudResources\\": true,\\n \\"ConfigSchema\\": [\\n {\\n \\"AppVersion\\": \\"859e9d595b2974ed79c444658d1dea89\\",\\n \\"ConfigVersion\\": \\"4155709cd12a09bdb8cbaca71bf03233\\",\\n \\"Name\\": \\"edge-csi-lite\\",\\n \\"Params\\": {\\n \\"key1\\": \\"val1\\"\\n }\\n }\\n ]\\n }\\n ]\\n}","type":"json"}]',
+ 'title' => 'ListAddons',
+ ],
+ 'DescribeAddon' => [
+ 'summary' => '查询指定组件的信息',
+ 'path' => '',
+ 'methods' => [
+ 'post',
+ ],
+ 'schemes' => [
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeNodes' => [
+ 'FEATUREensPHDAAN',
+ ],
+ 'autoTest' => true,
+ 'tenantRelevance' => 'tenant',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'AddonName',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => '',
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'edge-csi-lite',
+ ],
+ ],
+ [
+ 'name' => 'AddonVersion',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => '',
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'v1',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response',
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'Id of the request',
+ 'type' => 'string',
+ 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984',
+ ],
+ 'Addons' => [
+ 'description' => '',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => '',
+ 'type' => 'object',
+ 'properties' => [
+ 'Name' => [
+ 'description' => '',
+ 'type' => 'string',
+ 'example' => 'edge-csi-lite',
+ ],
+ 'Version' => [
+ 'description' => '',
+ 'type' => 'string',
+ 'example' => 'v1',
+ ],
+ 'CleanupCloudResources' => [
+ 'description' => '',
+ 'type' => 'string',
+ 'example' => 'true',
+ ],
+ 'ConfigSchema' => [
+ 'description' => '',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => '',
+ 'type' => 'object',
+ 'properties' => [
+ 'AppVersion' => [
+ 'description' => '',
+ 'type' => 'string',
+ 'example' => '859e9d595b2974ed79c444658d1dea89',
+ ],
+ 'ConfigVersion' => [
+ 'description' => '',
+ 'type' => 'string',
+ 'example' => '4155709cd12a09bdb8cbaca71bf03233',
+ ],
+ 'Name' => [
+ 'description' => '',
+ 'type' => 'string',
+ 'example' => 'edge-csi-lite',
+ ],
+ 'Params' => [
+ 'description' => '',
+ 'type' => 'any',
+ 'example' => '{"key1":"val1"}',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'required' => false,
+ 'minItems' => 0,
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\",\\n \\"Addons\\": [\\n {\\n \\"Name\\": \\"edge-csi-lite\\",\\n \\"Version\\": \\"v1\\",\\n \\"CleanupCloudResources\\": \\"true\\",\\n \\"ConfigSchema\\": [\\n {\\n \\"AppVersion\\": \\"859e9d595b2974ed79c444658d1dea89\\",\\n \\"ConfigVersion\\": \\"4155709cd12a09bdb8cbaca71bf03233\\",\\n \\"Name\\": \\"edge-csi-lite\\",\\n \\"Params\\": \\"{\\\\\\"key1\\\\\\":\\\\\\"val1\\\\\\"}\\"\\n }\\n ]\\n }\\n ]\\n}","type":"json"}]',
+ ],
+ 'UpgradeClusterAddons' => [
+ 'summary' => '升级集群实例组件',
+ 'path' => '',
+ 'methods' => [
+ 'post',
+ ],
+ 'schemes' => [
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'create',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeNodes' => [
+ 'FEATUREensPHDAAN',
+ 'FEATUREens7IGAII',
+ ],
+ 'autoTest' => true,
+ 'tenantRelevance' => 'tenant',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'ClusterId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => '',
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'eck-xxxxxxxxx',
+ ],
+ ],
+ [
+ 'name' => 'Addons',
+ 'in' => 'query',
+ 'style' => 'json',
+ 'schema' => [
+ 'description' => '',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => '',
+ 'type' => 'object',
+ 'properties' => [
+ 'Name' => [
+ 'description' => '',
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'edge-csi-lite',
+ ],
+ 'NextVersion' => [
+ 'description' => '',
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'v2',
+ ],
+ 'ConfigSchema' => [
+ 'description' => '',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => '',
+ 'type' => 'object',
+ 'properties' => [
+ 'AppVersion' => [
+ 'description' => '',
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '4155709cd12a09bdb8cbaca71bf03233',
+ ],
+ 'ConfigVersion' => [
+ 'description' => '',
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '4155709cd12a09bdb8cbaca71bf03233',
+ ],
+ 'Name' => [
+ 'description' => '',
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'edge-csi-lite',
+ ],
+ 'Params' => [
+ 'description' => '',
+ 'type' => 'object',
+ 'required' => false,
+ 'example' => '{"k1":"v1"}',
+ ],
+ ],
+ 'required' => false,
+ ],
+ 'required' => false,
+ ],
+ ],
+ 'required' => false,
+ ],
+ 'required' => false,
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response',
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'Id of the request',
+ 'type' => 'string',
+ 'example' => 'C0003E8B-B930-4F59-ADC0-0E209A9012A8',
+ ],
+ 'ClusterId' => [
+ 'description' => '',
+ 'type' => 'string',
+ 'example' => 'eck-xxxxxxxx',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'BadRequest',
+ 'errorMessage' => 'Request param error.',
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ 'eventInfo' => [
+ 'enable' => false,
+ 'eventNames' => [],
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"C0003E8B-B930-4F59-ADC0-0E209A9012A8\\",\\n \\"ClusterId\\": \\"eck-xxxxxxxx\\"\\n}","type":"json"}]',
+ ],
+ 'DeleteClusterNodes' => [
+ 'summary' => '删除节点池指定节点',
+ 'methods' => [
+ 'post',
+ ],
+ 'schemes' => [
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'delete',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeNodes' => [
+ 'FEATUREensWT1XPU',
+ 'FEATUREensPHDAAN',
+ ],
+ 'autoTest' => true,
+ 'tenantRelevance' => 'tenant',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'ClusterId',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '集群id',
+ 'description' => '',
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'eck-xxxxxxxx',
+ ],
+ ],
+ [
+ 'name' => 'Body',
+ 'in' => 'query',
+ 'style' => 'json',
+ 'schema' => [
+ 'description' => '',
+ 'type' => 'object',
+ 'properties' => [
+ 'Nodes' => [
+ 'description' => '',
+ 'type' => 'array',
+ 'items' => [
+ 'title' => '需要删除的实例',
+ 'description' => '',
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => '["i-5xxxxxxxxxxx"]',
+ ],
+ 'required' => true,
+ 'maxItems' => 1,
+ ],
+ ],
+ 'required' => true,
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response',
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'description' => '',
+ 'type' => 'string',
+ 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'BadRequest',
+ 'errorMessage' => 'Request param error.',
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ 'eventInfo' => [
+ 'enable' => false,
+ 'eventNames' => [],
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\"\\n}","type":"json"}]',
+ ],
+ 'DescribeClusterNodes' => [
+ 'summary' => '查询节点池节点',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'list',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeNodes' => [
+ 'FEATUREensPHDAAN',
+ ],
+ 'autoTest' => true,
+ 'tenantRelevance' => 'tenant',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'ClusterId',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '集群id',
+ 'description' => '',
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'eck-xxxxxxxx',
+ ],
+ ],
+ [
+ 'name' => 'NodepoolId',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '节点池id',
+ 'description' => '',
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'np751e9d5464cf4ef081087137f33e4528',
+ ],
+ ],
+ [
+ 'name' => 'PageNumber',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '分页页码(从1开始)',
+ 'description' => '',
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => true,
+ 'minimum' => '1',
+ 'example' => '1',
+ ],
+ ],
+ [
+ 'name' => 'PageSize',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '分页每页大小',
+ 'description' => '',
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => true,
+ 'maximum' => '200',
+ 'minimum' => '1',
+ 'example' => '10',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response',
+ 'type' => 'object',
+ 'properties' => [
+ 'Page' => [
+ 'description' => '',
+ 'type' => 'object',
+ 'properties' => [
+ 'PageNumber' => [
+ 'description' => '',
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '1',
+ ],
+ 'PageSize' => [
+ 'description' => '',
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '10',
+ ],
+ 'TotalCount' => [
+ 'description' => '',
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '30',
+ ],
+ ],
+ ],
+ 'Nodes' => [
+ 'description' => '',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => '',
+ 'type' => 'object',
+ 'properties' => [
+ 'ClusterId' => [
+ 'description' => '',
+ 'type' => 'string',
+ 'example' => 'eck-xxxxxxxx',
+ ],
+ 'EnsRegionId' => [
+ 'description' => '',
+ 'type' => 'string',
+ 'example' => 'cn-fuzhou-23',
+ ],
+ 'NodepoolId' => [
+ 'description' => '',
+ 'type' => 'string',
+ 'example' => 'np861febb748f84f5f9f1c76819eff7f56',
+ ],
+ 'InstanceId' => [
+ 'description' => '',
+ 'type' => 'string',
+ 'example' => 'i-51mctytg7tv4yw4amu3oczxsx',
+ ],
+ 'PayType' => [
+ 'description' => '',
+ 'type' => 'string',
+ 'example' => 'PrePaid',
+ ],
+ 'ImageId' => [
+ 'description' => '',
+ 'type' => 'string',
+ 'example' => 'm-680cki2ruj1q2bm0mz1k9tnbz',
+ ],
+ 'IpAddress' => [
+ 'description' => '',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => '',
+ 'type' => 'string',
+ 'example' => '111.1111.111.111',
+ ],
+ ],
+ 'State' => [
+ 'description' => '',
+ 'type' => 'string',
+ 'example' => 'initial',
+ ],
+ ],
+ ],
+ ],
+ 'RequestId' => [
+ 'description' => '',
+ 'type' => 'string',
+ 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'BadRequest',
+ 'errorMessage' => 'Request param error.',
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ 'eventInfo' => [
+ 'enable' => false,
+ 'eventNames' => [],
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Page\\": {\\n \\"PageNumber\\": 1,\\n \\"PageSize\\": 10,\\n \\"TotalCount\\": 30\\n },\\n \\"Nodes\\": [\\n {\\n \\"ClusterId\\": \\"eck-xxxxxxxx\\",\\n \\"EnsRegionId\\": \\"cn-fuzhou-23\\",\\n \\"NodepoolId\\": \\"np861febb748f84f5f9f1c76819eff7f56\\",\\n \\"InstanceId\\": \\"i-51mctytg7tv4yw4amu3oczxsx\\",\\n \\"PayType\\": \\"PrePaid\\",\\n \\"ImageId\\": \\"m-680cki2ruj1q2bm0mz1k9tnbz\\",\\n \\"IpAddress\\": [\\n \\"111.1111.111.111\\"\\n ],\\n \\"State\\": \\"initial\\"\\n }\\n ],\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\"\\n}","type":"json"}]',
+ ],
+ 'ScaleClusterNodePool' => [
+ 'summary' => '调整节点池节点数',
+ 'methods' => [
+ 'post',
+ ],
+ 'schemes' => [
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'update',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeNodes' => [
+ 'FEATUREensWT1XPU',
+ 'FEATUREensPHDAAN',
+ ],
+ 'autoTest' => true,
+ 'tenantRelevance' => 'tenant',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'ClusterId',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '集群id',
+ 'description' => '',
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'eck-xxxxxxxx',
+ ],
+ ],
+ [
+ 'name' => 'NodepoolId',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '节点池id',
+ 'description' => '',
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'np2201da356f5245cf8faa522a8a4c8224',
+ ],
+ ],
+ [
+ 'name' => 'Body',
+ 'in' => 'query',
+ 'style' => 'json',
+ 'schema' => [
+ 'description' => '',
+ 'type' => 'object',
+ 'properties' => [
+ 'Count' => [
+ 'title' => '期望实例数',
+ 'description' => '',
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => true,
+ 'example' => '0',
+ ],
+ ],
+ 'required' => false,
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response',
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'description' => '',
+ 'type' => 'string',
+ 'example' => 'C0003E8B-B930-4F59-ADC0-0E209A9012A8',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'BadRequest',
+ 'errorMessage' => 'Request param error.',
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ 'eventInfo' => [
+ 'enable' => false,
+ 'eventNames' => [],
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"C0003E8B-B930-4F59-ADC0-0E209A9012A8\\"\\n}","type":"json"}]',
+ ],
+ 'CreateClusterNodePool' => [
+ 'summary' => '创建集群节点池',
+ 'methods' => [
+ 'post',
+ ],
+ 'schemes' => [
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'create',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeNodes' => [
+ 'FEATUREensWT1XPU',
+ 'FEATUREensPHDAAN',
+ ],
+ 'autoTest' => true,
+ 'tenantRelevance' => 'tenant',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'ClusterId',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '集群id',
+ 'description' => '',
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'eck-xxxxxxxx',
+ ],
+ ],
+ [
+ 'name' => 'NodepoolInfo',
+ 'in' => 'query',
+ 'style' => 'json',
+ 'schema' => [
+ 'description' => '',
+ 'type' => 'object',
+ 'properties' => [
+ 'Name' => [
+ 'title' => '节点池名称',
+ 'description' => '',
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'test1',
+ ],
+ ],
+ 'required' => true,
+ ],
+ ],
+ [
+ 'name' => 'ScalingGroup',
+ 'in' => 'query',
+ 'style' => 'json',
+ 'schema' => [
+ 'title' => '伸缩组配置',
+ 'description' => '',
+ 'type' => 'object',
+ 'properties' => [
+ 'DesiredSize' => [
+ 'title' => '期望实例数',
+ 'description' => '',
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'example' => '3',
+ ],
+ 'KeyPairName' => [
+ 'title' => '实例密钥对(和password二选一)',
+ 'description' => '',
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'key-pair-name',
+ ],
+ 'VswitchIds' => [
+ 'title' => '实例使用的vswitch',
+ 'description' => '',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => '',
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'vsw-58eu2p6v64qw8ihhit1wz7wgv',
+ ],
+ 'required' => true,
+ ],
+ 'InstanceChargeType' => [
+ 'title' => '实例计费类型',
+ 'description' => '',
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'PostPaid',
+ 'default' => 'PrePaid',
+ 'enum' => [
+ 'PostPaid',
+ 'PrePaid',
+ ],
+ ],
+ 'InstanceTypes' => [
+ 'title' => '实例规格',
+ 'description' => '',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => '',
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'ens.sn1.small',
+ ],
+ 'required' => true,
+ ],
+ 'SystemDiskCategory' => [
+ 'title' => '系统盘类型',
+ 'description' => '',
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'cloud_efficiency',
+ 'enum' => [
+ 'local_ssd',
+ 'local_hdd',
+ 'cloud_efficiency',
+ 'cloud_ssd',
+ ],
+ ],
+ 'SystemDiskSize' => [
+ 'title' => '系统盘规格(单位GB,最小20,必须是10的倍数)',
+ 'description' => '',
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'example' => '80',
+ ],
+ 'ImageId' => [
+ 'title' => '实例镜像id',
+ 'description' => '',
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'm-6734fzvcwcv2o8jj201cpa7ox',
+ ],
+ 'DataDisks' => [
+ 'description' => '',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => '',
+ 'type' => 'object',
+ 'properties' => [
+ 'Category' => [
+ 'description' => '',
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'cloud_efficiency',
+ 'enum' => [
+ 'local_ssd',
+ 'local_hdd',
+ 'cloud_efficiency',
+ 'cloud_ssd',
+ ],
+ ],
+ 'Size' => [
+ 'title' => '数据盘大小(单位GB,最小20G,以10为步长递增)',
+ 'description' => '',
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'example' => '80',
+ ],
+ ],
+ 'required' => false,
+ ],
+ 'required' => false,
+ ],
+ 'Password' => [
+ 'description' => '',
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'some-test-password',
+ ],
+ ],
+ 'required' => true,
+ ],
+ ],
+ [
+ 'name' => 'KubernetesConfig',
+ 'in' => 'query',
+ 'style' => 'json',
+ 'schema' => [
+ 'description' => '',
+ 'type' => 'object',
+ 'properties' => [
+ 'PreUserData' => [
+ 'title' => '机器创建后,接入集群前执行的脚本,内容需要base64',
+ 'description' => '',
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'ZWNobyBvawo=',
+ ],
+ 'UserData' => [
+ 'title' => '机器创建后,接入集群后执行的脚本,内容需要base64',
+ 'description' => '',
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'ZWNobyBvawo=',
+ ],
+ ],
+ 'required' => false,
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response',
+ 'type' => 'object',
+ 'properties' => [
+ 'Nodepool' => [
+ 'description' => '',
+ 'type' => 'object',
+ 'properties' => [
+ 'ClusterId' => [
+ 'description' => '',
+ 'type' => 'string',
+ 'example' => 'eck-d2666c5f',
+ ],
+ 'NodepoolInfo' => [
+ 'description' => '',
+ 'type' => 'object',
+ 'properties' => [
+ 'Name' => [
+ 'description' => '',
+ 'type' => 'string',
+ 'example' => 'test1',
+ ],
+ 'EnsRegionId' => [
+ 'description' => '',
+ 'type' => 'string',
+ 'example' => 'cn-guiyang-14',
+ ],
+ 'NodepoolId' => [
+ 'description' => '',
+ 'type' => 'string',
+ 'example' => 'np1176939548ac49e59febe82dcbf1ad56',
+ ],
+ ],
+ ],
+ 'ScalingGroup' => [
+ 'description' => '',
+ 'type' => 'object',
+ 'properties' => [
+ 'VswitchIds' => [
+ 'description' => '',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => '',
+ 'type' => 'string',
+ 'example' => 'vsw-58eu2p6v64qw8ihhit1wz7wgv',
+ ],
+ ],
+ 'DataDisks' => [
+ 'description' => '',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => '',
+ 'type' => 'object',
+ 'properties' => [
+ 'Category' => [
+ 'description' => '',
+ 'type' => 'string',
+ 'example' => 'cloud_efficiency',
+ ],
+ 'Size' => [
+ 'description' => '',
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '80',
+ ],
+ ],
+ ],
+ ],
+ 'InstanceChargeType' => [
+ 'description' => '',
+ 'type' => 'string',
+ 'example' => 'PrePaid',
+ ],
+ 'InstanceTypes' => [
+ 'description' => '',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => '',
+ 'type' => 'string',
+ 'example' => 'ens.sn1.small',
+ ],
+ ],
+ 'SystemDiskCategory' => [
+ 'description' => '',
+ 'type' => 'string',
+ 'example' => 'cloud_efficiency',
+ ],
+ 'SystemDiskSize' => [
+ 'description' => '',
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '80',
+ ],
+ 'ImageId' => [
+ 'description' => '',
+ 'type' => 'string',
+ 'example' => 'm-67bdk1kpu1ylmt7k33h5dbiov',
+ ],
+ 'KeyPairName' => [
+ 'description' => '',
+ 'type' => 'string',
+ 'example' => 'key-pair-name',
+ ],
+ 'Password' => [
+ 'description' => '',
+ 'type' => 'string',
+ 'example' => '**********',
+ ],
+ ],
+ ],
+ 'KubernetesConfig' => [
+ 'description' => '',
+ 'type' => 'object',
+ 'properties' => [
+ 'PreUserData' => [
+ 'description' => '',
+ 'type' => 'string',
+ 'example' => 'ZWNobyBvawo=',
+ ],
+ 'UserData' => [
+ 'description' => '',
+ 'type' => 'string',
+ 'example' => 'ZWNobyBvawo=',
+ ],
+ ],
+ ],
+ 'Status' => [
+ 'description' => '',
+ 'type' => 'object',
+ 'properties' => [
+ 'State' => [
+ 'description' => '',
+ 'type' => 'string',
+ 'example' => 'active',
+ ],
+ 'TotalNodes' => [
+ 'description' => '',
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '10',
+ ],
+ 'DesiredNodes' => [
+ 'description' => '',
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '10',
+ ],
+ 'ServingNodes' => [
+ 'description' => '',
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '10',
+ ],
+ 'InitialNodes' => [
+ 'description' => '',
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '0',
+ ],
+ 'RemovingNodes' => [
+ 'description' => '',
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '0',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'RequestId' => [
+ 'description' => '',
+ 'type' => 'string',
+ 'example' => 'C0003E8B-B930-4F59-ADC0-0E209A9012A8',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'BadRequest',
+ 'errorMessage' => 'Request param error.',
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ 'eventInfo' => [
+ 'enable' => false,
+ 'eventNames' => [],
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Nodepool\\": {\\n \\"ClusterId\\": \\"eck-d2666c5f\\",\\n \\"NodepoolInfo\\": {\\n \\"Name\\": \\"test1\\",\\n \\"EnsRegionId\\": \\"cn-guiyang-14\\",\\n \\"NodepoolId\\": \\"np1176939548ac49e59febe82dcbf1ad56\\"\\n },\\n \\"ScalingGroup\\": {\\n \\"VswitchIds\\": [\\n \\"vsw-58eu2p6v64qw8ihhit1wz7wgv\\"\\n ],\\n \\"DataDisks\\": [\\n {\\n \\"Category\\": \\"cloud_efficiency\\",\\n \\"Size\\": 80\\n }\\n ],\\n \\"InstanceChargeType\\": \\"PrePaid\\",\\n \\"InstanceTypes\\": [\\n \\"ens.sn1.small\\"\\n ],\\n \\"SystemDiskCategory\\": \\"cloud_efficiency\\",\\n \\"SystemDiskSize\\": 80,\\n \\"ImageId\\": \\"m-67bdk1kpu1ylmt7k33h5dbiov\\",\\n \\"KeyPairName\\": \\"key-pair-name\\",\\n \\"Password\\": \\"**********\\"\\n },\\n \\"KubernetesConfig\\": {\\n \\"PreUserData\\": \\"ZWNobyBvawo=\\",\\n \\"UserData\\": \\"ZWNobyBvawo=\\"\\n },\\n \\"Status\\": {\\n \\"State\\": \\"active\\",\\n \\"TotalNodes\\": 10,\\n \\"DesiredNodes\\": 10,\\n \\"ServingNodes\\": 10,\\n \\"InitialNodes\\": 0,\\n \\"RemovingNodes\\": 0\\n }\\n },\\n \\"RequestId\\": \\"C0003E8B-B930-4F59-ADC0-0E209A9012A8\\"\\n}","type":"json"}]',
+ ],
+ 'DescribeClusterNodePools' => [
+ 'summary' => '查询集群节点池信息',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'list',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeNodes' => [
+ 'FEATUREensPHDAAN',
+ ],
+ 'autoTest' => true,
+ 'tenantRelevance' => 'tenant',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'ClusterId',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => 'A short description of struct',
+ 'description' => 'A short description of struct',
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'eck-xxxxxxxx',
+ ],
+ ],
+ [
+ 'name' => 'PageNumber',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '分页页码(从1开始)',
+ 'description' => '',
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => true,
+ 'minimum' => '1',
+ 'example' => '1',
+ ],
+ ],
+ [
+ 'name' => 'PageSize',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '分页每页大小',
+ 'description' => '',
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => true,
+ 'maximum' => '200',
+ 'minimum' => '1',
+ 'example' => '10',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response',
+ 'type' => 'object',
+ 'properties' => [
+ 'Page' => [
+ 'description' => '',
+ 'type' => 'object',
+ 'properties' => [
+ 'PageNumber' => [
+ 'description' => '',
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '1',
+ ],
+ 'PageSize' => [
+ 'description' => '',
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '10',
+ ],
+ 'TotalCount' => [
+ 'description' => '',
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '20',
+ ],
+ ],
+ ],
+ 'NodePools' => [
+ 'description' => '',
+ 'type' => 'array',
+ 'items' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'NodepoolInfo' => [
+ 'description' => '',
+ 'type' => 'object',
+ 'properties' => [
+ 'Name' => [
+ 'description' => '',
+ 'type' => 'string',
+ 'example' => 'eck-node-pool-1',
+ ],
+ 'EnsRegionId' => [
+ 'description' => '',
+ 'type' => 'string',
+ 'example' => 'cn-fuzhou-23',
+ ],
+ 'NodepoolId' => [
+ 'description' => '',
+ 'type' => 'string',
+ 'example' => 'np68mi5y1dd748ky37ojo2kqdrz',
+ ],
+ ],
+ ],
+ 'ScalingGroup' => [
+ 'description' => '',
+ 'type' => 'object',
+ 'properties' => [
+ 'VswitchIds' => [
+ 'description' => '',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => '',
+ 'type' => 'string',
+ 'example' => 'vsw-58eu2p6v64qw8ihhit1wz7wgv',
+ ],
+ ],
+ 'InstanceChargeType' => [
+ 'description' => '',
+ 'type' => 'string',
+ 'example' => 'PrePaid',
+ ],
+ 'InstanceTypes' => [
+ 'description' => '',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => '',
+ 'type' => 'string',
+ 'example' => 'ens.sn1.small',
+ ],
+ ],
+ 'SystemDiskCategory' => [
+ 'description' => '',
+ 'type' => 'string',
+ 'example' => 'cloud_efficiency',
+ ],
+ 'SystemDiskSize' => [
+ 'description' => '',
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '80',
+ ],
+ 'ImageId' => [
+ 'description' => '',
+ 'type' => 'string',
+ 'example' => 'm-673f5z4h69ibwtallg6zmcaxr',
+ ],
+ 'KeyPairName' => [
+ 'description' => '',
+ 'type' => 'string',
+ 'example' => 'key-pair-name',
+ ],
+ 'DataDisks' => [
+ 'description' => '',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => '',
+ 'type' => 'object',
+ 'properties' => [
+ 'Category' => [
+ 'description' => '',
+ 'type' => 'string',
+ 'example' => 'cloud_efficiency',
+ ],
+ 'Size' => [
+ 'description' => '',
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '80',
+ ],
+ ],
+ ],
+ ],
+ 'Password' => [
+ 'description' => '',
+ 'type' => 'string',
+ 'example' => '************',
+ ],
+ ],
+ ],
+ 'KubernetesConfig' => [
+ 'description' => '',
+ 'type' => 'object',
+ 'properties' => [
+ 'PreUserData' => [
+ 'description' => '',
+ 'type' => 'string',
+ 'example' => 'ZWNobyBvawo=',
+ ],
+ 'UserData' => [
+ 'description' => '',
+ 'type' => 'string',
+ 'example' => 'ZWNobyBvawo=',
+ ],
+ ],
+ ],
+ 'Status' => [
+ 'description' => '',
+ 'type' => 'object',
+ 'properties' => [
+ 'State' => [
+ 'description' => '',
+ 'type' => 'string',
+ 'example' => 'active',
+ ],
+ 'TotalNodes' => [
+ 'description' => '',
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '10',
+ ],
+ 'DesiredNodes' => [
+ 'description' => '',
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '10',
+ ],
+ 'ServingNodes' => [
+ 'description' => '',
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '10',
+ ],
+ 'InitialNodes' => [
+ 'description' => '',
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '0',
+ ],
+ 'RemovingNodes' => [
+ 'description' => '',
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '0',
+ ],
+ ],
+ ],
+ 'ClusterId' => [
+ 'description' => '',
+ 'type' => 'string',
+ 'example' => 'eck-xxxxxxxx',
+ ],
+ ],
+ ],
+ ],
+ 'RequestId' => [
+ 'description' => '',
+ 'type' => 'string',
+ 'example' => 'F3B261DD-3858-4D3C-877D-303ADF374600',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'BadRequest',
+ 'errorMessage' => 'Request param error.',
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ 'eventInfo' => [
+ 'enable' => false,
+ 'eventNames' => [],
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Page\\": {\\n \\"PageNumber\\": 1,\\n \\"PageSize\\": 10,\\n \\"TotalCount\\": 20\\n },\\n \\"NodePools\\": [\\n {\\n \\"NodepoolInfo\\": {\\n \\"Name\\": \\"eck-node-pool-1\\",\\n \\"EnsRegionId\\": \\"cn-fuzhou-23\\",\\n \\"NodepoolId\\": \\"np68mi5y1dd748ky37ojo2kqdrz\\"\\n },\\n \\"ScalingGroup\\": {\\n \\"VswitchIds\\": [\\n \\"vsw-58eu2p6v64qw8ihhit1wz7wgv\\"\\n ],\\n \\"InstanceChargeType\\": \\"PrePaid\\",\\n \\"InstanceTypes\\": [\\n \\"ens.sn1.small\\"\\n ],\\n \\"SystemDiskCategory\\": \\"cloud_efficiency\\",\\n \\"SystemDiskSize\\": 80,\\n \\"ImageId\\": \\"m-673f5z4h69ibwtallg6zmcaxr\\",\\n \\"KeyPairName\\": \\"key-pair-name\\",\\n \\"DataDisks\\": [\\n {\\n \\"Category\\": \\"cloud_efficiency\\",\\n \\"Size\\": 80\\n }\\n ],\\n \\"Password\\": \\"************\\"\\n },\\n \\"KubernetesConfig\\": {\\n \\"PreUserData\\": \\"ZWNobyBvawo=\\",\\n \\"UserData\\": \\"ZWNobyBvawo=\\"\\n },\\n \\"Status\\": {\\n \\"State\\": \\"active\\",\\n \\"TotalNodes\\": 10,\\n \\"DesiredNodes\\": 10,\\n \\"ServingNodes\\": 10,\\n \\"InitialNodes\\": 0,\\n \\"RemovingNodes\\": 0\\n },\\n \\"ClusterId\\": \\"eck-xxxxxxxx\\"\\n }\\n ],\\n \\"RequestId\\": \\"F3B261DD-3858-4D3C-877D-303ADF374600\\"\\n}","type":"json"}]',
+ ],
+ 'ModifyClusterNodePool' => [
+ 'summary' => '更新集群节点池',
+ 'methods' => [
+ 'post',
+ ],
+ 'schemes' => [
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'update',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeNodes' => [
+ 'FEATUREensWT1XPU',
+ 'FEATUREensPHDAAN',
+ ],
+ 'autoTest' => true,
+ 'tenantRelevance' => 'tenant',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'ClusterId',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '集群id',
+ 'description' => '',
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'eck-xxxxxxxx',
+ ],
+ ],
+ [
+ 'name' => 'NodepoolInfo',
+ 'in' => 'query',
+ 'style' => 'json',
+ 'schema' => [
+ 'description' => '',
+ 'type' => 'object',
+ 'properties' => [
+ 'NodepoolId' => [
+ 'title' => '节点池id',
+ 'description' => '',
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'np68mi5y1dd748ky37ojo2kqdrz',
+ ],
+ ],
+ 'required' => true,
+ ],
+ ],
+ [
+ 'name' => 'ScalingGroup',
+ 'in' => 'query',
+ 'style' => 'json',
+ 'schema' => [
+ 'title' => '伸缩组配置',
+ 'description' => '',
+ 'type' => 'object',
+ 'properties' => [
+ 'Password' => [
+ 'title' => '实例密码(和key_pair_name二选一)',
+ 'description' => '',
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '@AN5Ejx1YyzzK',
+ ],
+ 'KeyPairName' => [
+ 'title' => '实力密钥对(和password二选一)',
+ 'description' => '',
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'tf-testAcc',
+ ],
+ 'VswitchIds' => [
+ 'title' => '实例使用的vswitch',
+ 'description' => '',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => '',
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'vsw-58eu2p6v64qw8ihhit1wz7wgv',
+ 'minLength' => 1,
+ ],
+ 'required' => false,
+ ],
+ 'InstanceChargeType' => [
+ 'title' => '实例计费类型',
+ 'description' => '',
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'PostPaid',
+ ],
+ 'InstanceTypes' => [
+ 'title' => '实例规格',
+ 'description' => '',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => '',
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'ens.sn1.small',
+ 'minLength' => 1,
+ ],
+ 'required' => false,
+ ],
+ 'SystemDiskCategory' => [
+ 'title' => '系统盘类型',
+ 'description' => '',
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'cloud_efficiency',
+ ],
+ 'SystemDiskSize' => [
+ 'title' => '系统盘大小(单位GB,最小20,以10为步长递增)',
+ 'description' => '',
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'example' => '80',
+ ],
+ 'ImageId' => [
+ 'title' => '实例镜像id',
+ 'description' => '',
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'm-68bysm5a8gkm7oik7ngacf0in',
+ ],
+ 'DataDisks' => [
+ 'title' => '数据盘信息',
+ 'description' => '',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => '',
+ 'type' => 'object',
+ 'properties' => [
+ 'Category' => [
+ 'title' => '数据盘类型',
+ 'description' => '',
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'cloud_efficiency',
+ ],
+ 'Size' => [
+ 'title' => '数据盘大小(单位GB,最小20,以10为步长递增)',
+ 'description' => '',
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'example' => '40',
+ ],
+ ],
+ 'required' => false,
+ ],
+ 'required' => false,
+ ],
+ ],
+ 'required' => false,
+ ],
+ ],
+ [
+ 'name' => 'KubernetesConfig',
+ 'in' => 'query',
+ 'style' => 'json',
+ 'schema' => [
+ 'description' => '',
+ 'type' => 'object',
+ 'properties' => [
+ 'PreUserData' => [
+ 'title' => '机器创建后,接入集群前执行的脚本,内容需要base64',
+ 'description' => '',
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'ZWNobyBvawo=',
+ ],
+ 'UserData' => [
+ 'title' => '机器创建后,接入集群后执行的脚本,内容需要base64',
+ 'description' => '',
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'ZWNobyBvawo=',
+ ],
+ ],
+ 'required' => false,
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response',
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'description' => '',
+ 'type' => 'string',
+ 'example' => 'C0003E8B-B930-4F59-ADC0-0E209A9012A8',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'BadRequest',
+ 'errorMessage' => 'Request param error.',
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ 'eventInfo' => [
+ 'enable' => false,
+ 'eventNames' => [],
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"C0003E8B-B930-4F59-ADC0-0E209A9012A8\\"\\n}","type":"json"}]',
+ ],
+ 'DeleteClusterNodePool' => [
+ 'summary' => '删除节点池',
+ 'methods' => [
+ 'post',
+ ],
+ 'schemes' => [
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'delete',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeNodes' => [
+ 'FEATUREensWT1XPU',
+ 'FEATUREensPHDAAN',
+ ],
+ 'autoTest' => true,
+ 'tenantRelevance' => 'tenant',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'ClusterId',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '集群id',
+ 'description' => '',
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'eck-xxxxxxxx',
+ ],
+ ],
+ [
+ 'name' => 'NodepoolId',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '节点池id',
+ 'description' => '',
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'np68mi5y1dd748ky37ojo2kqdrz',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response',
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'description' => '',
+ 'type' => 'string',
+ 'example' => 'F3B261DD-3858-4D3C-877D-303ADF374600',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'BadRequest',
+ 'errorMessage' => 'Request param error.',
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ 'eventInfo' => [
+ 'enable' => false,
+ 'eventNames' => [],
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"F3B261DD-3858-4D3C-877D-303ADF374600\\"\\n}","type":"json"}]',
+ ],
+ 'InitializeENSECKServiceRole' => [
+ 'summary' => 'Create a service-linked role (SLR) for ENS for the current user to manage resources.',
+ 'path' => '',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'create',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeNodes' => [
+ 'FEATUREensZ9TTQL',
+ 'FEATUREensC9WAZJ',
+ 'FEATUREens9OPNUD',
+ 'FEATUREens439UH5',
+ 'FEATUREensHUDXNZ',
+ ],
+ 'tenantRelevance' => 'publicInformation',
+ ],
+ 'parameters' => [],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Response Schema',
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'ID of the request',
+ 'type' => 'string',
+ 'example' => 'F3B261DD-3858-4D3C-877D-303ADF374600',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ 'eventInfo' => [
+ 'enable' => false,
+ 'eventNames' => [],
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"F3B261DD-3858-4D3C-877D-303ADF374600\\"\\n}","type":"json"}]',
+ 'title' => 'Create ECK Service Role',
+ 'translator' => 'machine',
+ ],
+ 'DescribeInstanceSDGStatus' => [
+ 'summary' => 'Queries shared data groups (SDGs) that are mounted to an Android in Container (AIC) instance.',
+ 'methods' => [
+ 'get',
+ ],
+ 'schemes' => [
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'list',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '253487',
+ 'abilityTreeNodes' => [
+ 'FEATUREensZ35IDE',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'InstanceId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the AIC instance.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'aic-xxxxx',
+ ],
+ ],
+ [
+ 'name' => 'PageNumber',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The number of the page to return. Pages start from page 1. Default value: 1.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'example' => '1',
+ 'default' => '1',
+ ],
+ ],
+ [
+ 'name' => 'PageSize',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The number of entries returned on each page.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'maximum' => '100',
+ 'minimum' => '1',
+ 'example' => '10',
+ 'default' => '10',
+ ],
+ ],
+ [
+ 'name' => 'Status',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The deployment status of the SDG.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'success',
+ ],
+ ],
+ [
+ 'name' => 'SDGIds',
+ 'in' => 'query',
+ 'style' => 'json',
+ 'schema' => [
+ 'description' => 'The IDs of SDGs that you want to query. By default, all SDGs are queried.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The IDs of SDGs that you want to query. By default, all SDGs are queried.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '["sdg-1", "sdg-2", "sdg-3"]',
+ ],
+ 'required' => false,
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'The response.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => 'C0003E8B-B930-4F59-ADC0-0E209A9012A8',
+ ],
+ 'DeploymentStatus' => [
+ 'description' => 'The deployment information of the SDGs.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The deployment information of the SDG.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'InstanceId' => [
+ 'description' => 'The ID of the AIC instance.'."\n",
+ 'type' => 'string',
+ 'example' => 'aic-xxxx',
+ ],
+ 'SDGId' => [
+ 'description' => 'The ID of the SDG.'."\n",
+ 'type' => 'string',
+ 'example' => 'sdg-xxxxxxx',
+ ],
+ 'MountType' => [
+ 'description' => 'The deployment type of the SDG.'."\n",
+ 'type' => 'string',
+ 'example' => 'shared',
+ ],
+ 'EnsRegionId' => [
+ 'description' => 'The ID of the edge node.'."\n",
+ 'type' => 'string',
+ 'example' => 'cn-guangzhou-26',
+ ],
+ 'Status' => [
+ 'description' => 'The deployment status of the SDG.'."\n",
+ 'type' => 'string',
+ 'example' => 'success',
+ ],
+ 'Phase' => [
+ 'description' => 'Deployment Phase'."\n",
+ 'type' => 'string',
+ 'example' => 'attach',
+ ],
+ 'UpdateTime' => [
+ 'description' => 'The time when the status was last updated.'."\n",
+ 'type' => 'string',
+ 'example' => '2023-02-17T02:44:31Z',
+ ],
+ 'BlockRwSplitSize' => [
+ 'type' => 'integer',
+ 'format' => 'int32',
+ ],
+ 'CacheSize' => [
+ 'type' => 'integer',
+ 'format' => 'int32',
+ ],
+ 'DiskType' => [
+ 'type' => 'string',
+ ],
+ 'DiskAccessProtocol' => [
+ 'type' => 'string',
+ ],
+ ],
+ ],
+ ],
+ 'PageNumber' => [
+ 'description' => 'The number of the page to return. Pages start from page 1. Default value: 1'."\n",
+ 'type' => 'integer',
+ 'format' => 'int64',
+ 'example' => '1',
+ ],
+ 'PageSize' => [
+ 'description' => 'The number of entries to return on each page. Default value: **10**.'."\n",
+ 'type' => 'string',
+ 'example' => '10',
+ ],
+ 'TotalCount' => [
+ 'description' => 'The total number of queried deployment records.'."\n",
+ 'type' => 'string',
+ 'example' => '1',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'Interface.Call.Failed',
+ 'errorMessage' => '%s.',
+ ],
+ [
+ 'errorCode' => 'Interface.Call.Error',
+ 'errorMessage' => 'The interface call error',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"C0003E8B-B930-4F59-ADC0-0E209A9012A8\\",\\n \\"DeploymentStatus\\": [\\n {\\n \\"InstanceId\\": \\"aic-xxxx\\",\\n \\"SDGId\\": \\"sdg-xxxxxxx\\",\\n \\"MountType\\": \\"shared\\",\\n \\"EnsRegionId\\": \\"cn-guangzhou-26\\",\\n \\"Status\\": \\"success\\",\\n \\"Phase\\": \\"attach\\",\\n \\"UpdateTime\\": \\"2023-02-17T02:44:31Z\\",\\n \\"BlockRwSplitSize\\": 20,\\n \\"CacheSize\\": 20,\\n \\"DiskType\\": \\"standard\\",\\n \\"DiskAccessProtocol\\": \\"iscsi\\"\\n }\\n ],\\n \\"PageNumber\\": 1,\\n \\"PageSize\\": \\"10\\",\\n \\"TotalCount\\": \\"1\\"\\n}","type":"json"}]',
+ 'title' => 'DescribeInstanceSDGStatus',
+ ],
+ 'MountInstanceSDG' => [
+ 'summary' => 'Deploys the SDG that has been attached to instances on the corresponding Android in Container (AIC) instance.',
+ 'methods' => [
+ 'post',
+ ],
+ 'schemes' => [
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'none',
+ 'abilityTreeCode' => '253554',
+ 'abilityTreeNodes' => [
+ 'FEATUREensZ35IDE',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'InstanceIds',
+ 'in' => 'query',
+ 'style' => 'json',
+ 'schema' => [
+ 'description' => 'The IDs of the instances.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The ID of the AIC instance.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '["aic-1", "aic-2", "aic-3"]',
+ ],
+ 'required' => true,
+ ],
+ ],
+ [
+ 'name' => 'SDGId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the SDG.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'sdg-xxxx',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'The response.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => 'F3B261DD-3858-4D3C-877D-303ADF374600',
+ ],
+ 'Data' => [
+ 'description' => 'The returned data object.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'Message' => [
+ 'description' => 'The response message. Success is returned for a successful request.'."\n",
+ 'type' => 'string',
+ 'example' => 'success',
+ ],
+ 'Result' => [
+ 'description' => 'The execution result of the synchronization request.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'FailedCount' => [
+ 'description' => 'The number of failed tasks.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int64',
+ 'example' => '0',
+ ],
+ 'FailedItems' => [
+ 'description' => 'Details about failed tasks.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'Details about the failed task.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'ErrMessage' => [
+ 'description' => 'The error message.'."\n",
+ 'type' => 'string',
+ 'example' => 'sdg not found',
+ ],
+ 'InstanceId' => [
+ 'description' => 'The ID of the instance.'."\n",
+ 'type' => 'string',
+ 'example' => 'aic-xxxxx-0',
+ ],
+ ],
+ ],
+ ],
+ 'SuccessCount' => [
+ 'description' => 'The number of successful tasks.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int64',
+ 'example' => '1',
+ ],
+ ],
+ ],
+ 'Success' => [
+ 'description' => 'Indicates whether all tasks are successful. Valid values:'."\n"
+ ."\n"
+ .'* **true**: All tasks are successful.'."\n"
+ .'* **false**: Failed tasks exist.'."\n",
+ 'type' => 'boolean',
+ 'example' => 'true',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'Interface.Call.Error',
+ 'errorMessage' => 'The interface call error',
+ ],
+ [
+ 'errorCode' => 'Interface.Call.Failed',
+ 'errorMessage' => '%s.',
+ ],
+ [
+ 'errorCode' => 'Parameter.Invalid',
+ 'errorMessage' => 'The parameter is invalid. Please check your parameters and try it again.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"F3B261DD-3858-4D3C-877D-303ADF374600\\",\\n \\"Data\\": {\\n \\"Message\\": \\"success\\",\\n \\"Result\\": {\\n \\"FailedCount\\": 0,\\n \\"FailedItems\\": [\\n {\\n \\"ErrMessage\\": \\"sdg not found\\",\\n \\"InstanceId\\": \\"aic-xxxxx-0\\"\\n }\\n ],\\n \\"SuccessCount\\": 1\\n },\\n \\"Success\\": true\\n }\\n}","type":"json"}]',
+ 'title' => 'MountInstanceSDG',
+ ],
+ 'UnmountInstanceSDG' => [
+ 'summary' => 'Unmounts a shared data group (SDG) from instances.',
+ 'methods' => [
+ 'post',
+ ],
+ 'schemes' => [
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'none',
+ 'abilityTreeCode' => '253562',
+ 'abilityTreeNodes' => [
+ 'FEATUREensZ35IDE',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'InstanceIds',
+ 'in' => 'query',
+ 'style' => 'json',
+ 'schema' => [
+ 'description' => 'The IDs of the instances.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The ID of the AIC instance.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '[\'aic-5xxxx26dix05koz15l5413j25o\', \'aic-5sdmxxxx\']',
+ ],
+ 'required' => true,
+ ],
+ ],
+ [
+ 'name' => 'SDGId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the SDG.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'sdg-xxxx',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'The response.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '125B04C7-3D0D-4245-AF96-14E3758E3F06',
+ ],
+ 'Data' => [
+ 'description' => 'The returned data object.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'Message' => [
+ 'description' => 'The response message. Success is returned for a successful request.'."\n",
+ 'type' => 'string',
+ 'example' => 'success',
+ ],
+ 'Result' => [
+ 'description' => 'The execution result of the synchronization request.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'FailedCount' => [
+ 'description' => 'The number of failed tasks.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int64',
+ 'example' => '0',
+ ],
+ 'FailedItems' => [
+ 'description' => 'Details about failed tasks.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'Details about the failed task.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'ErrMessage' => [
+ 'description' => 'The error message.'."\n",
+ 'type' => 'string',
+ 'example' => 'sdg not found',
+ ],
+ 'InstanceId' => [
+ 'description' => 'The ID of the instance.'."\n",
+ 'type' => 'string',
+ 'example' => 'aic-xxxxx-0',
+ ],
+ ],
+ ],
+ ],
+ 'SuccessCount' => [
+ 'description' => 'The number of successful tasks.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int64',
+ 'example' => '1',
+ ],
+ ],
+ ],
+ 'Success' => [
+ 'description' => 'Indicates whether all tasks are successful. Valid values:'."\n"
+ ."\n"
+ .'* true: All tasks are successful.'."\n"
+ .'* false: Failed tasks exist.'."\n",
+ 'type' => 'boolean',
+ 'example' => 'true',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'Interface.Call.Error',
+ 'errorMessage' => 'The interface call error',
+ ],
+ [
+ 'errorCode' => 'Interface.Call.Failed',
+ 'errorMessage' => '%s.',
+ ],
+ [
+ 'errorCode' => 'Parameter.Invalid',
+ 'errorMessage' => 'The parameter is invalid. Please check your parameters and try it again.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"125B04C7-3D0D-4245-AF96-14E3758E3F06\\",\\n \\"Data\\": {\\n \\"Message\\": \\"success\\",\\n \\"Result\\": {\\n \\"FailedCount\\": 0,\\n \\"FailedItems\\": [\\n {\\n \\"ErrMessage\\": \\"sdg not found\\",\\n \\"InstanceId\\": \\"aic-xxxxx-0\\"\\n }\\n ],\\n \\"SuccessCount\\": 1\\n },\\n \\"Success\\": true\\n }\\n}","type":"json"}]',
+ 'title' => 'UnmountInstanceSDG',
+ ],
+ 'AttachInstanceSDG' => [
+ 'summary' => 'Attaches a shared data group (SDG) to the corresponding Android in Container (AIC) instance.',
+ 'methods' => [
+ 'post',
+ ],
+ 'schemes' => [
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'readAndWrite',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'none',
+ 'riskType' => 'none',
+ 'chargeType' => 'paid',
+ 'abilityTreeCode' => '253522',
+ 'abilityTreeNodes' => [
+ 'FEATUREensZ35IDE',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'InstanceIds',
+ 'in' => 'query',
+ 'style' => 'json',
+ 'schema' => [
+ 'description' => 'The IDs of the instances.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The ID of the instance.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '["aic-1", "aic-2", "aic-3"]',
+ ],
+ 'required' => true,
+ ],
+ ],
+ [
+ 'name' => 'SDGId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the SDG.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'sdg-xxxx',
+ ],
+ ],
+ [
+ 'name' => 'DiskType',
+ 'in' => 'query',
+ 'schema' => [
+ 'type' => 'string',
+ 'required' => false,
+ ],
+ ],
+ [
+ 'name' => 'DiskAccessProtocol',
+ 'in' => 'query',
+ 'schema' => [
+ 'type' => 'string',
+ 'required' => false,
+ ],
+ ],
+ [
+ 'name' => 'LoadOpt',
+ 'in' => 'query',
+ 'style' => 'json',
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'BlockRwSplit' => [
+ 'type' => 'boolean',
+ ],
+ 'BlockRwSplitSize' => [
+ 'type' => 'integer',
+ 'format' => 'int32',
+ ],
+ 'Cache' => [
+ 'type' => 'boolean',
+ ],
+ 'CacheSize' => [
+ 'type' => 'integer',
+ 'format' => 'int32',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'The response.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => 'C0003E8B-B930-4F59-ADC0-0E209A9012A8',
+ ],
+ 'Data' => [
+ 'description' => 'The returned data object.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'Message' => [
+ 'description' => 'The response message. Success is returned for a successful request.'."\n",
+ 'type' => 'string',
+ 'example' => 'success',
+ ],
+ 'Result' => [
+ 'description' => 'The execution result of the synchronization request.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'FailedCount' => [
+ 'description' => 'The number of failed tasks.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int64',
+ 'example' => '0',
+ ],
+ 'FailedItems' => [
+ 'description' => 'Details about failed tasks.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'Details about the failed task.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'ErrMessage' => [
+ 'description' => 'The error message.'."\n",
+ 'type' => 'string',
+ 'example' => 'sdg not found',
+ ],
+ 'InstanceId' => [
+ 'description' => 'The ID of the instance.'."\n",
+ 'type' => 'string',
+ 'example' => 'aic-xxxxx-0',
+ ],
+ ],
+ ],
+ ],
+ 'SuccessCount' => [
+ 'description' => 'The number of successful tasks.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int64',
+ 'example' => '1',
+ ],
+ ],
+ ],
+ 'Success' => [
+ 'description' => 'Indicates whether all tasks are successful. Valid values:'."\n"
+ ."\n"
+ .'* **true**: All tasks are successful.'."\n"
+ .'* **false**: Failed tasks exist.'."\n",
+ 'type' => 'boolean',
+ 'example' => 'true',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'Interface.Call.Error',
+ 'errorMessage' => 'The interface call error',
+ ],
+ [
+ 'errorCode' => 'Interface.Call.Failed',
+ 'errorMessage' => '%s.',
+ ],
+ [
+ 'errorCode' => 'Parameter.Invalid',
+ 'errorMessage' => 'The parameter is invalid. Please check your parameters and try it again.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"C0003E8B-B930-4F59-ADC0-0E209A9012A8\\",\\n \\"Data\\": {\\n \\"Message\\": \\"success\\",\\n \\"Result\\": {\\n \\"FailedCount\\": 0,\\n \\"FailedItems\\": [\\n {\\n \\"ErrMessage\\": \\"sdg not found\\",\\n \\"InstanceId\\": \\"aic-xxxxx-0\\"\\n }\\n ],\\n \\"SuccessCount\\": 1\\n },\\n \\"Success\\": true\\n }\\n}","type":"json"}]',
+ 'title' => 'AttachInstanceSDG',
+ ],
+ 'DetachInstanceSDG' => [
+ 'summary' => 'Detaches a shared data group (SDG).',
+ 'methods' => [
+ 'post',
+ ],
+ 'schemes' => [
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'none',
+ 'abilityTreeCode' => '253537',
+ 'abilityTreeNodes' => [
+ 'FEATUREensZ35IDE',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'InstanceIds',
+ 'in' => 'query',
+ 'style' => 'json',
+ 'schema' => [
+ 'description' => 'The IDs of the instances.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The ID of the instance.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '["aic-5iqczfxps7csjrxeca07****", "aic-5iqczfxps7csjrxeca07****"]',
+ ],
+ 'required' => true,
+ ],
+ ],
+ [
+ 'name' => 'SDGId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the SDG.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'sdg-xxxxx',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'The response.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984',
+ ],
+ 'Data' => [
+ 'description' => 'The returned data object.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'Message' => [
+ 'description' => 'The response message. Success is returned for a successful request.'."\n",
+ 'type' => 'string',
+ 'example' => 'success',
+ ],
+ 'Result' => [
+ 'description' => 'The execution result of the synchronization request.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'FailedCount' => [
+ 'description' => 'The number of failed tasks.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int64',
+ 'example' => '0',
+ ],
+ 'FailedItems' => [
+ 'description' => 'Details about failed tasks.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'Details about the failed task.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'ErrMessage' => [
+ 'description' => 'The error message.'."\n",
+ 'type' => 'string',
+ 'example' => 'sdg not found',
+ ],
+ 'InstanceId' => [
+ 'description' => 'The ID of the instance.'."\n",
+ 'type' => 'string',
+ 'example' => 'aic-xxxxx-0',
+ ],
+ ],
+ ],
+ ],
+ 'SuccessCount' => [
+ 'description' => 'The number of successful tasks.'."\n",
+ 'type' => 'string',
+ 'example' => '1',
+ ],
+ ],
+ ],
+ 'Success' => [
+ 'description' => 'Indicates whether all tasks are successful. Valid values:'."\n"
+ ."\n"
+ .'* true: All tasks are successful.'."\n"
+ .'* false: Failed tasks exist.'."\n",
+ 'type' => 'boolean',
+ 'example' => 'true',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'Interface.Call.Error',
+ 'errorMessage' => 'The interface call error',
+ ],
+ [
+ 'errorCode' => 'Interface.Call.Failed',
+ 'errorMessage' => '%s.',
+ ],
+ [
+ 'errorCode' => 'Parameter.Invalid',
+ 'errorMessage' => 'The parameter is invalid. Please check your parameters and try it again.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\",\\n \\"Data\\": {\\n \\"Message\\": \\"success\\",\\n \\"Result\\": {\\n \\"FailedCount\\": 0,\\n \\"FailedItems\\": [\\n {\\n \\"ErrMessage\\": \\"sdg not found\\",\\n \\"InstanceId\\": \\"aic-xxxxx-0\\"\\n }\\n ],\\n \\"SuccessCount\\": \\"1\\"\\n },\\n \\"Success\\": true\\n }\\n}","type":"json"}]',
+ 'title' => 'DetachInstanceSDG',
+ 'description' => "\n"
+ ."\n",
+ ],
+ 'CreateSDG' => [
+ 'summary' => 'Creates a shared data group (SDG) on an Android in Container (AIC) instance.',
+ 'methods' => [
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'readAndWrite',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'none',
+ 'riskType' => 'none',
+ 'chargeType' => 'paid',
+ 'abilityTreeNodes' => [
+ 'FEATUREens7UORYM',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'InstanceId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the AIC instance. You can call the [DescribeARMServerInstances](~~DescribeARMServerInstances~~) operation to query the ID.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'aic-xxxx',
+ ],
+ ],
+ [
+ 'name' => 'Size',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The maximum capacity of the SDG. Unit: GB.'."\n"
+ ."\n"
+ .'> '."\n"
+ ."\n"
+ .'* To save costs, we recommend that you specify this parameter based on your business requirements.'."\n"
+ ."\n"
+ .'* The first time that you create an SDG, the **Size** parameter is required.'."\n"
+ ."\n"
+ .'* When the amount of data increases, you can pass a new **Size** parameter for resizing. If the value of the new **Size** parameter is greater than the value of the old **Size** parameter, the disk size of the SDG is increased to the size that is specified by the new **Size** parameter. If the value of the new **Size** parameter is empty or smaller than that of the old **Size** parameter, no operation is performed.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '20',
+ ],
+ ],
+ [
+ 'name' => 'Description',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The description of the SDG.'."\n"
+ ."\n"
+ .'> We recommend that you specify this parameter in details for subsequent queries.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'Testing SDGs',
+ ],
+ ],
+ [
+ 'name' => 'FromSDGId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the SDG from which you want to create an SDG.'."\n"
+ ."\n"
+ .'> '."\n"
+ ."\n"
+ .'* The first time you create an SDG, the **FromSDGId** parameter is empty.'."\n"
+ ."\n"
+ .'* If the value of the **FromSDGId** parameter is invalid or does not correspond to an original disk, an error is reported.'."\n"
+ ."\n"
+ .'* If the value of the **FromSDGId** parameter is not empty, you have created an SDG, and the operation is performed on the existing SDG.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'sdg-xxxxx',
+ ],
+ ],
+ [
+ 'name' => 'DiskType',
+ 'in' => 'query',
+ 'schema' => [
+ 'type' => 'string',
+ ],
+ ],
+ [
+ 'name' => 'BillingCycle',
+ 'in' => 'query',
+ 'schema' => [
+ 'type' => 'string',
+ ],
+ ],
+ [
+ 'name' => 'PerformanceLevel',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => 'sdg共享比参数,支持不同最大共享比的云盘'."\n",
+ 'type' => 'integer',
+ 'format' => 'int64',
+ 'example' => '100',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E',
+ ],
+ 'SDGId' => [
+ 'description' => 'The ID of the generated SDG.'."\n",
+ 'type' => 'string',
+ 'example' => 'sdg-xxxx',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'Interface.Call.Error',
+ 'errorMessage' => 'The interface call error',
+ ],
+ [
+ 'errorCode' => 'Interface.Call.Failed',
+ 'errorMessage' => '%s.',
+ ],
+ [
+ 'errorCode' => 'Parameter.Invalid',
+ 'errorMessage' => 'The parameter is invalid. Please check your parameters and try it again.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E\\",\\n \\"SDGId\\": \\"sdg-xxxx\\"\\n}","errorExample":""},{"type":"xml","example":"<CreateSDGResponse>\\n <RequestId>473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E</RequestId>\\n <SDGId>sdg-xxxx</SDGId>\\n</CreateSDGResponse>","errorExample":""}]',
+ 'title' => 'CreateSDG',
+ 'description' => 'A SDG can be regarded as a data partition image of a virtual device. You can save a data partition of a virtual device as an SDG. A created SDG can be deployed in data partitions of other virtual devices to achieve rapid data distribution and application. The procedure for calling SDG-related API operations:'."\n"
+ ."\n"
+ .'* Call the [CreateSDG](~~CreateSDG~~) operation to create an SDG, which is bound to AIC Instance A (InstanceId). After you create the SDG, a blank cloud disk (also known as an original cloud disk) is attached to Device A (InstanceId).'."\n"
+ .'* Install applications on and deliver files to AIC Instance A (InstanceId).'."\n"
+ .'* Call the [SaveSDG](~~SaveSDG~~) operation to save the data disk of AIC instance A as SDG A.'."\n"
+ .'* Call the [DeploySDG](~~DeploySDG~~) operation to deploy SDG A to AIC Instance B. This operattion is executed asynchronously. You can call the [DescribeARMServerInstances](~~DescribeARMServerInstances~~) operation to query the status of AIC Instance B. If the status of AIC Instance B changes to success, AIC insance B is available, and AIC Instances A and B have the same applications running.'."\n",
+ ],
+ 'DeploySDG' => [
+ 'summary' => 'Deploys shared data groups (SDGs).',
+ 'methods' => [
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'create',
+ 'abilityTreeCode' => '170221',
+ 'abilityTreeNodes' => [
+ 'FEATUREensZ35IDE',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'InstanceIds',
+ 'in' => 'query',
+ 'style' => 'json',
+ 'schema' => [
+ 'description' => 'The IDs of instances on which you want to deploy SDGs. You can deploy SDGs on a maximum of 100 instances at a time.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The IDs of instances on which you want to deploy SDGs. You can deploy SDGs on a maximum of 100 instances at a time.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '["aic-1", "aic-2", "aic-3"]',
+ ],
+ 'required' => true,
+ ],
+ ],
+ [
+ 'name' => 'SDGId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The SDG ID. This parameter is used to create a disk, which is attached to an instance.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'sdg-xxxxx',
+ ],
+ ],
+ [
+ 'name' => 'DeploymentType',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The SDG deployment type. Valid values:'."\n"
+ ."\n"
+ .'* common (default): read/write deployment. Data updates are written to disks.'."\n"
+ .'* overlay: read/write splitting deployment. Content in SDGs is read-only. Data updates are written to the local storage of the instance.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'common',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'description' => 'Schema of Response'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => 'A331CA96-3948-4BD2-B067-F6174F5C17EA',
+ ],
+ 'Data' => [
+ 'description' => 'The returned data object.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'Message' => [
+ 'description' => 'The response message. Success is returned for a successful request.'."\n",
+ 'type' => 'string',
+ 'example' => 'success',
+ ],
+ 'Result' => [
+ 'description' => 'The task result.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'FailedCount' => [
+ 'description' => 'The number of failed tasks.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int64',
+ 'example' => '0',
+ ],
+ 'FailedItems' => [
+ 'description' => 'Details of failed tasks.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => '',
+ 'type' => 'object',
+ 'properties' => [
+ 'ErrMessage' => [
+ 'description' => 'The error message.'."\n",
+ 'type' => 'string',
+ 'example' => 'sdg not found',
+ ],
+ 'InstanceId' => [
+ 'description' => 'The ID of the instance.'."\n",
+ 'type' => 'string',
+ 'example' => 'aic-xxxxx-0',
+ ],
+ ],
+ ],
+ ],
+ 'SuccessCount' => [
+ 'description' => 'The number of successful tasks.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int64',
+ 'example' => '1',
+ ],
+ ],
+ ],
+ 'Success' => [
+ 'description' => 'Indicates whether all tasks are successful. Valid values:'."\n"
+ ."\n"
+ .'* true: All tasks are successful.'."\n"
+ .'* false: Failed tasks exist.'."\n",
+ 'type' => 'boolean',
+ 'example' => 'true',
+ ],
+ ],
+ ],
+ ],
+ 'title' => 'Schema of Response',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'Interface.Call.Error',
+ 'errorMessage' => 'The interface call error',
+ ],
+ [
+ 'errorCode' => 'Interface.Call.Failed',
+ 'errorMessage' => '%s.',
+ ],
+ [
+ 'errorCode' => 'Parameter.Invalid',
+ 'errorMessage' => 'The parameter is invalid. Please check your parameters and try it again.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"A331CA96-3948-4BD2-B067-F6174F5C17EA\\",\\n \\"Data\\": {\\n \\"Message\\": \\"success\\",\\n \\"Result\\": {\\n \\"FailedCount\\": 0,\\n \\"FailedItems\\": [\\n {\\n \\"ErrMessage\\": \\"sdg not found\\",\\n \\"InstanceId\\": \\"aic-xxxxx-0\\"\\n }\\n ],\\n \\"SuccessCount\\": 1\\n },\\n \\"Success\\": true\\n }\\n}","errorExample":""},{"type":"xml","example":"<DeploySDGResponse>\\n <RequestId>A331CA96-3948-4BD2-B067-F6174F5C17EA</RequestId>\\n</DeploySDGResponse>","errorExample":""}]',
+ 'title' => 'DeploySDG',
+ ],
+ 'DeployInstanceSDG' => [
+ 'summary' => 'Deploys a shared data group (SDG) to compute instances.',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'readAndWrite',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'none',
+ 'riskType' => 'none',
+ 'chargeType' => 'paid',
+ 'abilityTreeNodes' => [
+ 'FEATUREensZ35IDE',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'InstanceIds',
+ 'in' => 'query',
+ 'style' => 'json',
+ 'schema' => [
+ 'description' => 'The IDs of the instances. The value is a JSON array that consists of up to 100 IDs.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The ID of the Android in Container (AIC) instance.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '["aic-1", "aic-2", "aic-3"]',
+ ],
+ 'required' => true,
+ ],
+ ],
+ [
+ 'name' => 'SDGId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the SDG.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'sdg-xxxx',
+ ],
+ ],
+ [
+ 'name' => 'DeploymentType',
+ 'in' => 'query',
+ 'allowEmptyValue' => false,
+ 'schema' => [
+ 'description' => 'The deployment type of the SDG. shared: shared read/write splitting deployment. The content of the SDG is read-only, and data updates are written to the local storage of the instance.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'shared',
+ 'enum' => [
+ 'shared',
+ ],
+ ],
+ ],
+ [
+ 'name' => 'DiskType',
+ 'in' => 'query',
+ 'schema' => [
+ 'type' => 'string',
+ 'required' => false,
+ ],
+ ],
+ [
+ 'name' => 'DiskAccessProtocol',
+ 'in' => 'query',
+ 'schema' => [
+ 'type' => 'string',
+ 'required' => false,
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '125B04C7-3D0D-4245-AF96-14E3758E3F06',
+ ],
+ 'Data' => [
+ 'description' => 'The returned data object.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'Message' => [
+ 'description' => 'The response message. Success is returned for a successful request.'."\n",
+ 'type' => 'string',
+ 'example' => 'success',
+ ],
+ 'Result' => [
+ 'description' => 'The execution result of the synchronization request.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'FailedCount' => [
+ 'description' => 'The number of failed tasks.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int64',
+ 'example' => '0',
+ ],
+ 'FailedItems' => [
+ 'description' => 'Details about the failed tasks.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'ErrMessage' => [
+ 'description' => 'The error message that is returned.'."\n",
+ 'type' => 'string',
+ 'example' => 'sdg not found',
+ ],
+ 'InstanceId' => [
+ 'description' => 'The ID of the instance.'."\n",
+ 'type' => 'string',
+ 'example' => 'aic-xxxxx-0',
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ 'SuccessCount' => [
+ 'description' => 'The number of successful tasks.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int64',
+ 'example' => '1',
+ ],
+ ],
+ ],
+ 'Success' => [
+ 'description' => 'Indicates whether all tasks are successful. Valid values:'."\n"
+ ."\n"
+ .'* true: All tasks are successful.'."\n"
+ .'* false: Failed tasks exist.'."\n",
+ 'type' => 'boolean',
+ 'example' => 'true',
+ ],
+ ],
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'Interface.Call.Error',
+ 'errorMessage' => 'The interface call error',
+ ],
+ [
+ 'errorCode' => 'Interface.Call.Failed',
+ 'errorMessage' => '%s.',
+ ],
+ [
+ 'errorCode' => 'Parameter.Invalid',
+ 'errorMessage' => 'The parameter is invalid. Please check your parameters and try it again.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"125B04C7-3D0D-4245-AF96-14E3758E3F06\\",\\n \\"Data\\": {\\n \\"Message\\": \\"success\\",\\n \\"Result\\": {\\n \\"FailedCount\\": 0,\\n \\"FailedItems\\": [\\n {\\n \\"ErrMessage\\": \\"sdg not found\\",\\n \\"InstanceId\\": \\"aic-xxxxx-0\\"\\n }\\n ],\\n \\"SuccessCount\\": 1\\n },\\n \\"Success\\": true\\n }\\n}","type":"json"}]',
+ 'title' => 'DeployInstanceSDG',
+ ],
+ 'CopySDG' => [
+ 'summary' => 'Copies a shared data group (SDG) across nodes.',
+ 'methods' => [
+ 'get',
+ ],
+ 'schemes' => [
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'none',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'SDGId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the SDG that you want to copy.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'sdg-xxx',
+ ],
+ ],
+ [
+ 'name' => 'DestinationRegionIds',
+ 'in' => 'query',
+ 'style' => 'json',
+ 'schema' => [
+ 'description' => 'The destination nodes.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The ID of the destination node.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'cn-foshan-4',
+ ],
+ 'required' => true,
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => 'XXX-XXX-XXX',
+ ],
+ 'Data' => [
+ 'description' => 'The returned data object.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'Message' => [
+ 'description' => 'The response message. Success is returned for a successful request.'."\n",
+ 'type' => 'string',
+ 'example' => 'success',
+ ],
+ 'Result' => [
+ 'description' => 'The execution result of the synchronization request.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'FailedCount' => [
+ 'description' => 'The number of failed nodes.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int64',
+ 'example' => '0',
+ ],
+ 'FailedItems' => [
+ 'description' => 'Details of failed nodes.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => '',
+ 'type' => 'object',
+ 'properties' => [
+ 'ErrorMessage' => [
+ 'description' => 'The error message.'."\n",
+ 'type' => 'string',
+ 'example' => 'region not found',
+ ],
+ 'DestinationRegionId' => [
+ 'description' => 'The ID of the destination node.'."\n",
+ 'type' => 'string',
+ 'example' => 'cn-hangzhou-xxx',
+ ],
+ ],
+ ],
+ ],
+ 'SuccessCount' => [
+ 'description' => 'The number of successful nodes.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int64',
+ 'example' => '1',
+ ],
+ ],
+ ],
+ 'Success' => [
+ 'description' => 'Indicates whether all tasks are successful. Valid values:'."\n"
+ ."\n"
+ .'* **true**: All tasks are successful.'."\n"
+ .'* **false**: Failed tasks exist.'."\n",
+ 'type' => 'boolean',
+ 'example' => 'true',
+ ],
+ ],
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'Interface.Call.Error',
+ 'errorMessage' => 'The interface call error',
+ ],
+ [
+ 'errorCode' => 'Interface.Call.Failed',
+ 'errorMessage' => '%s.',
+ ],
+ [
+ 'errorCode' => 'Parameter.Invalid',
+ 'errorMessage' => 'The parameter is invalid. Please check your parameters and try it again.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"XXX-XXX-XXX\\",\\n \\"Data\\": {\\n \\"Message\\": \\"success\\",\\n \\"Result\\": {\\n \\"FailedCount\\": 0,\\n \\"FailedItems\\": [\\n {\\n \\"ErrorMessage\\": \\"region not found\\",\\n \\"DestinationRegionId\\": \\"cn-hangzhou-xxx\\"\\n }\\n ],\\n \\"SuccessCount\\": 1\\n },\\n \\"Success\\": true\\n }\\n}","type":"json"}]',
+ 'title' => 'CopySDG',
+ ],
+ 'PreloadRegionSDG' => [
+ 'summary' => 'Preloads a shared data group (SDG).',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'readAndWrite',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'none',
+ 'riskType' => 'none',
+ 'chargeType' => 'paid',
+ 'abilityTreeCode' => '226289',
+ 'abilityTreeNodes' => [
+ 'FEATUREens7UORYM',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'SDGId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the SDG for which data is preloaded.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'sdg-xxxx',
+ ],
+ ],
+ [
+ 'name' => 'DestinationRegionIds',
+ 'in' => 'query',
+ 'style' => 'json',
+ 'schema' => [
+ 'description' => 'The IDs of the destination nodes.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The ID of the destination node.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'cn-foshan-4',
+ ],
+ 'required' => true,
+ ],
+ ],
+ [
+ 'name' => 'Namespaces',
+ 'in' => 'query',
+ 'style' => 'json',
+ 'schema' => [
+ 'description' => 'An array that consists of queried namespaces.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The namespace.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => ' \'default\'',
+ ],
+ 'required' => false,
+ ],
+ ],
+ [
+ 'name' => 'RedundantNum',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '冗余数量,以支持快速部署',
+ 'description' => 'The number of redundant replicas to support rapid deployment.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => true,
+ 'maximum' => '20',
+ 'minimum' => '1',
+ 'example' => '2',
+ ],
+ ],
+ [
+ 'name' => 'DiskType',
+ 'in' => 'query',
+ 'schema' => [
+ 'type' => 'string',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => 'C0003E8B-B930-4F59-ADC0-0E209A9012A8',
+ ],
+ 'Data' => [
+ 'description' => 'The returned data object.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'Message' => [
+ 'description' => 'The message returned.'."\n",
+ 'type' => 'string',
+ 'example' => 'success',
+ ],
+ 'Result' => [
+ 'description' => 'The execution result of the synchronization request.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'FailedCount' => [
+ 'description' => 'The number of failed tasks.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int64',
+ 'example' => '0',
+ ],
+ 'FailedItems' => [
+ 'description' => 'Details about the failed tasks.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'Details about the failed task.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'ErrorMessage' => [
+ 'description' => 'The error message that is returned.'."\n",
+ 'type' => 'string',
+ 'example' => 'region not found',
+ ],
+ 'DestinationRegionId' => [
+ 'description' => 'The ID of the destination node.'."\n",
+ 'type' => 'string',
+ 'example' => 'cn-hangzhou-xxx',
+ ],
+ ],
+ ],
+ ],
+ 'SuccessCount' => [
+ 'description' => 'The number of successful tasks.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int64',
+ 'example' => '1',
+ ],
+ ],
+ ],
+ 'Success' => [
+ 'description' => 'Indicates whether all tasks are successful. Valid values:'."\n"
+ ."\n"
+ .'* true: All tasks are successful.'."\n"
+ .'* false: Failed tasks exist.'."\n",
+ 'type' => 'boolean',
+ 'example' => 'true',
+ ],
+ ],
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'Interface.Call.Error',
+ 'errorMessage' => 'The interface call error',
+ ],
+ [
+ 'errorCode' => 'Interface.Call.Failed',
+ 'errorMessage' => '%s.',
+ ],
+ [
+ 'errorCode' => 'Parameter.Invalid',
+ 'errorMessage' => 'The parameter is invalid. Please check your parameters and try it again.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"C0003E8B-B930-4F59-ADC0-0E209A9012A8\\",\\n \\"Data\\": {\\n \\"Message\\": \\"success\\",\\n \\"Result\\": {\\n \\"FailedCount\\": 0,\\n \\"FailedItems\\": [\\n {\\n \\"ErrorMessage\\": \\"region not found\\",\\n \\"DestinationRegionId\\": \\"cn-hangzhou-xxx\\"\\n }\\n ],\\n \\"SuccessCount\\": 1\\n },\\n \\"Success\\": true\\n }\\n}","type":"json"}]',
+ 'title' => 'PreloadRegionSDG',
+ ],
+ 'DescribeSDGs' => [
+ 'summary' => 'Queries information about created shared data groups (SDGs).',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'none',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeNodes' => [
+ 'FEATUREensZ9TTQL',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'SDGIds',
+ 'in' => 'query',
+ 'style' => 'json',
+ 'schema' => [
+ 'description' => 'The IDs of SDGs that you want to query. By default, all SDGs are queried.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The IDs of SDGs that you want to query. By default, all SDGs are queried.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '["sdg-1", "sdg-2", "sdg-3"]',
+ ],
+ 'required' => false,
+ ],
+ ],
+ [
+ 'name' => 'InstanceIds',
+ 'in' => 'query',
+ 'style' => 'json',
+ 'schema' => [
+ 'description' => 'The AIC instance ID to be queried.',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The IDs of instances that you want to query. By default, all instances are queried.'."\n"
+ ."\n"
+ .'> If you specify the **SDGIds** and **InstanceIds** parameters at the same time, the query result is the intersection of the two conditions.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '["aic-1", "aic-2", "aic-3"]',
+ ],
+ 'required' => false,
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '3703C4AC-9396-458C-8F25-1D701334D309',
+ ],
+ 'SDGs' => [
+ 'description' => 'The information about the SDGs.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The information about the SDGs.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'AvaliableRegionIds' => [
+ 'description' => 'The IDs of available edge nodes.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'List of available nodes.',
+ 'type' => 'object',
+ 'properties' => [
+ 'CreationTime' => [
+ 'description' => 'The time when the SDG was created on the node.'."\n",
+ 'type' => 'string',
+ 'example' => '2023-02-27 15:13:26',
+ ],
+ 'RegionId' => [
+ 'description' => 'The ID of the edge node.'."\n",
+ 'type' => 'string',
+ 'example' => 'cn-hangzhou-26',
+ ],
+ 'SnapshotId' => [
+ 'description' => 'The ID of the snapshot.'."\n",
+ 'type' => 'string',
+ 'example' => 'mock-clone_snapshot_id',
+ ],
+ 'Status' => [
+ 'description' => 'The status of the SDG on the node. Valid values:'."\n"
+ ."\n"
+ .'* **sdg_making**'."\n"
+ .'* **sdg_saving**'."\n"
+ .'* **sdg_copying**'."\n"
+ .'* **failed**'."\n"
+ .'* **success**'."\n",
+ 'type' => 'string',
+ 'example' => 'success',
+ ],
+ ],
+ ],
+ ],
+ 'CreationDiskType' => [
+ 'type' => 'string',
+ ],
+ 'CreationRegionId' => [
+ 'description' => 'The ID of the node on which the SDG is created.'."\n",
+ 'type' => 'string',
+ 'example' => 'cn-hangzhou-26',
+ ],
+ 'CreationTime' => [
+ 'description' => 'The time when the SDG was first created.'."\n",
+ 'type' => 'string',
+ 'example' => '2023-02-27 15:07:21',
+ ],
+ 'DeployedInstanceIds' => [
+ 'description' => 'The deployment information.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'Deployment status information list',
+ 'type' => 'object',
+ 'properties' => [
+ 'CreationTime' => [
+ 'description' => 'The time when the SDG was deployed on the instance.'."\n",
+ 'type' => 'string',
+ 'example' => '2023-02-27 16:48:43',
+ ],
+ 'InstanceId' => [
+ 'description' => 'The ID of the instance.'."\n",
+ 'type' => 'string',
+ 'example' => 'aic-5x20dyeos****',
+ ],
+ 'Status' => [
+ 'description' => 'The deployment status. Valid values:'."\n"
+ ."\n"
+ .'* **sdg_deploying**'."\n"
+ .'* **failed**'."\n"
+ .'* **success**'."\n",
+ 'type' => 'string',
+ 'example' => 'sdg_deploying',
+ ],
+ 'DeploymentType' => [
+ 'description' => 'The deployment type of the SDG. Valid values:'."\n"
+ ."\n"
+ .'* common: common deployment.'."\n"
+ .'* overlay: read/write splitting deployment.'."\n",
+ 'type' => 'string',
+ 'example' => 'overlay',
+ ],
+ ],
+ ],
+ ],
+ 'Description' => [
+ 'description' => 'The description of the SDG.'."\n",
+ 'type' => 'string',
+ 'example' => 'Testing SDGs'."\n",
+ ],
+ 'ParentSDGId' => [
+ 'description' => 'The ID of the source SDG from which you want to create an SDG. The value of this parameter is the value of the **FromSDGId** parameter that you need to specify when you call the [CreateSDG](~~608128~~) operation.'."\n",
+ 'type' => 'string',
+ 'example' => 'sdg-xxxxx',
+ ],
+ 'SDGId' => [
+ 'description' => 'The ID of the SDG.'."\n",
+ 'type' => 'string',
+ 'example' => 'sdg-30e1fdba7196bc****',
+ ],
+ 'Size' => [
+ 'description' => 'The size of the SDG. Unit: GB.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int64',
+ 'example' => '20',
+ ],
+ 'Status' => [
+ 'description' => 'The status of the SDG creation. Valid values:'."\n"
+ ."\n"
+ .'* **sdg_making**'."\n"
+ .'* **sdg_saving**'."\n"
+ .'* **failed**'."\n"
+ .'* **success**'."\n",
+ 'type' => 'string',
+ 'example' => 'success',
+ ],
+ 'UpdateTime' => [
+ 'description' => 'The time when the SDG was last updated.'."\n",
+ 'type' => 'string',
+ 'example' => '2023-02-27 16:04:39',
+ ],
+ 'CreationInstanceId' => [
+ 'description' => 'The ID of the instance on which the SDG is created.'."\n",
+ 'type' => 'string',
+ 'example' => 'aic-5x20dyeos****',
+ ],
+ 'BillingType' => [
+ 'title' => '计费类型',
+ 'type' => 'string',
+ 'example' => 'Open',
+ ],
+ 'PerformanceLevel' => [
+ 'title' => 'sdg的共享比',
+ 'type' => 'integer',
+ 'format' => 'int64',
+ 'example' => '100',
+ ],
+ 'BillingCycle' => [
+ 'type' => 'string',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'Interface.Call.Failed',
+ 'errorMessage' => '%s.',
+ ],
+ [
+ 'errorCode' => 'Parameter.Invalid',
+ 'errorMessage' => 'The parameter is invalid. Please check your parameters and try it again.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"3703C4AC-9396-458C-8F25-1D701334D309\\",\\n \\"SDGs\\": [\\n {\\n \\"AvaliableRegionIds\\": [\\n {\\n \\"CreationTime\\": \\"2023-02-27 15:13:26\\",\\n \\"RegionId\\": \\"cn-hangzhou-26\\",\\n \\"SnapshotId\\": \\"mock-clone_snapshot_id\\",\\n \\"Status\\": \\"success\\"\\n }\\n ],\\n \\"CreationDiskType\\": \\"standard\\",\\n \\"CreationRegionId\\": \\"cn-hangzhou-26\\",\\n \\"CreationTime\\": \\"2023-02-27 15:07:21\\",\\n \\"DeployedInstanceIds\\": [\\n {\\n \\"CreationTime\\": \\"2023-02-27 16:48:43\\",\\n \\"InstanceId\\": \\"aic-5x20dyeos****\\",\\n \\"Status\\": \\"sdg_deploying\\",\\n \\"DeploymentType\\": \\"overlay\\"\\n }\\n ],\\n \\"Description\\": \\"测试SDG\\",\\n \\"ParentSDGId\\": \\"sdg-xxxxx\\",\\n \\"SDGId\\": \\"sdg-30e1fdba7196bc****\\",\\n \\"Size\\": 20,\\n \\"Status\\": \\"success\\",\\n \\"UpdateTime\\": \\"2023-02-27 16:04:39\\",\\n \\"CreationInstanceId\\": \\"aic-5x20dyeos****\\",\\n \\"BillingType\\": \\"Open\\",\\n \\"PerformanceLevel\\": 100,\\n \\"BillingCycle\\": \\"Hour\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"<DescribeSDGsResponse>\\n <RequestId>3703C4AC-9396-458C-8F25-1D701334D309</RequestId>\\n <SDGs>\\n <AvaliableRegionIds>\\n <CreationTime>2023-02-27 15:13:26</CreationTime>\\n <RegionId>cn-hangzhou-26</RegionId>\\n <SnapshotId>mock-clone_snapshot_id</SnapshotId>\\n <Status>success</Status>\\n </AvaliableRegionIds>\\n <CreationInstanceId>aic-5x20dyeos****</CreationInstanceId>\\n <CreationRegionId>cn-hangzhou-26</CreationRegionId>\\n <CreationTime>2023-02-27 15:07:21</CreationTime>\\n <DeployedInstanceIds>\\n <CreationTime>2023-02-27 16:48:43</CreationTime>\\n <InstanceId>aic-5x20dyeos****</InstanceId>\\n <Status>sdg_deploying</Status>\\n </DeployedInstanceIds>\\n <Description>测试SDG</Description>\\n <ParentSDGId>sdg-xxxxx</ParentSDGId>\\n <SDGId>sdg-30e1fdba7196bc****</SDGId>\\n <Size>20</Size>\\n <Status>success</Status>\\n <UpdateTime>2023-02-27 16:04:39</UpdateTime>\\n </SDGs>\\n</DescribeSDGsResponse>","errorExample":""}]',
+ 'title' => 'DescribeSDGs',
+ ],
+ 'DescribeSDG' => [
+ 'summary' => 'Queries basic information about shared data groups (SDGs), including node preload information.',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'none',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeNodes' => [
+ 'FEATUREensZ35IDE',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'SDGIds',
+ 'in' => 'query',
+ 'style' => 'json',
+ 'schema' => [
+ 'description' => 'The IDs of SDGs that you want to query. By default, all SDGs are queried.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The IDs of SDGs that you want to query. By default, all SDGs are queried.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '["sdg-1", "sdg-2", "sdg-3"]',
+ ],
+ 'required' => false,
+ ],
+ ],
+ [
+ 'name' => 'PageNumber',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The page number.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'example' => '1',
+ 'default' => '1',
+ ],
+ ],
+ [
+ 'name' => 'PageSize',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The number of entries to return on each page.'."\n"
+ ."\n"
+ .'Default value: 10.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'maximum' => '100',
+ 'minimum' => '1',
+ 'example' => '10',
+ 'default' => '10',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => 'F3B261DD-3858-4D3C-877D-303ADF374600',
+ ],
+ 'SDGs' => [
+ 'description' => 'The information about the SDGs.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'AvaliableRegionIds' => [
+ 'description' => 'SDGs that have snapshots.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'CreationTime' => [
+ 'description' => 'The time when the SDG was created on the node.'."\n",
+ 'type' => 'string',
+ 'example' => '2023-02-27 15:13:26',
+ ],
+ 'RegionId' => [
+ 'description' => 'The ID of the node.'."\n",
+ 'type' => 'string',
+ 'example' => 'cn-hangzhou-26',
+ ],
+ 'SnapshotId' => [
+ 'description' => 'The ID of the snapshot.'."\n",
+ 'type' => 'string',
+ 'example' => 'sp-517qu0tgznrg622he7nf4wd7n',
+ ],
+ 'Status' => [
+ 'description' => 'The status of the SDG on the node. Valid values:'."\n"
+ ."\n"
+ .'* **sdg_making**'."\n"
+ .'* **sdg_saving**'."\n"
+ .'* **sdg_copying**'."\n"
+ .'* **failed**'."\n"
+ .'* **success**'."\n",
+ 'type' => 'string',
+ 'example' => 'success',
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ 'CreationInstanceId' => [
+ 'description' => 'The ID of the instance on which the SDG is created.'."\n",
+ 'type' => 'string',
+ 'example' => 'aic-5x20dyeos****',
+ ],
+ 'CreationDiskType' => [
+ 'type' => 'string',
+ ],
+ 'CreationTime' => [
+ 'description' => 'The time when the first SDG in the node was created.'."\n",
+ 'type' => 'string',
+ 'example' => '2023-02-27 15:07:21',
+ ],
+ 'Description' => [
+ 'description' => 'The description of the SDG.'."\n",
+ 'type' => 'string',
+ 'example' => 'Testing SDGs'."\n",
+ ],
+ 'ParentSDGId' => [
+ 'description' => 'The ID of the source SDG from which you want to create an SDG. The value of this parameter is the value of the **FromSDGId** parameter that you need to specify when you call the [CreateSDG](~~608128~~) operation.'."\n",
+ 'type' => 'string',
+ 'example' => 'sdg-xxxxx',
+ ],
+ 'SDGId' => [
+ 'description' => 'The ID of the SDG.'."\n",
+ 'type' => 'string',
+ 'example' => 'sdg-30e1fdba7196bc****',
+ ],
+ 'Size' => [
+ 'description' => 'The size of the SDG. Unit: GB.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int64',
+ 'example' => '20',
+ ],
+ 'Status' => [
+ 'description' => 'The status of the SDG creation. Valid values:'."\n"
+ ."\n"
+ .'* **sdg_making**'."\n"
+ .'* **sdg_saving**'."\n"
+ .'* **failed**'."\n"
+ .'* **success**'."\n",
+ 'type' => 'string',
+ 'example' => 'success',
+ ],
+ 'PerformanceLevel' => [
+ 'type' => 'string',
+ ],
+ 'UpdateTime' => [
+ 'description' => 'The time when the SDG was last updated.'."\n",
+ 'type' => 'string',
+ 'example' => '2023-02-27 16:04:39',
+ ],
+ 'PreloadInfos' => [
+ 'description' => 'The preload information.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'RegionId' => [
+ 'description' => 'The ID of the node.'."\n",
+ 'type' => 'string',
+ 'example' => 'cn-hangzhou',
+ ],
+ 'Namespace' => [
+ 'description' => 'The namespace.'."\n",
+ 'type' => 'string',
+ 'example' => 'test-20000',
+ ],
+ 'RedundantNum' => [
+ 'description' => 'The number of redundant replicas to quickly respond to shared mounts.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '2',
+ ],
+ 'DiskType' => [
+ 'type' => 'string',
+ 'required' => false,
+ ],
+ 'CreationTime' => [
+ 'description' => 'The time when the SDG was created. The time follows the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time is displayed in UTC.'."\n",
+ 'type' => 'string',
+ 'example' => '2023-02-16T06:18:40Z',
+ ],
+ 'UpdateTime' => [
+ 'description' => 'The time when the status was last updated.'."\n",
+ 'type' => 'string',
+ 'example' => '2021-01-22T08:17Z',
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ 'CreationRegionId' => [
+ 'description' => 'The ID of the node on which the SDG is created.'."\n",
+ 'type' => 'string',
+ 'example' => 'cn-hangzhou-26',
+ ],
+ 'BillingType' => [
+ 'title' => '计费类型',
+ 'type' => 'string',
+ 'example' => 'Open',
+ ],
+ 'BillingCycle' => [
+ 'type' => 'string',
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ 'PageNumber' => [
+ 'description' => 'The page number.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '1',
+ ],
+ 'PageSize' => [
+ 'description' => 'The number of entries per page.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '10',
+ ],
+ 'TotalCount' => [
+ 'description' => 'The total number of returned entries.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '49',
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'Interface.Call.Failed',
+ 'errorMessage' => '%s.',
+ ],
+ [
+ 'errorCode' => 'Parameter.Invalid',
+ 'errorMessage' => 'The parameter is invalid. Please check your parameters and try it again.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"F3B261DD-3858-4D3C-877D-303ADF374600\\",\\n \\"SDGs\\": [\\n {\\n \\"AvaliableRegionIds\\": [\\n {\\n \\"CreationTime\\": \\"2023-02-27 15:13:26\\",\\n \\"RegionId\\": \\"cn-hangzhou-26\\",\\n \\"SnapshotId\\": \\"sp-517qu0tgznrg622he7nf4wd7n\\",\\n \\"Status\\": \\"success\\"\\n }\\n ],\\n \\"CreationInstanceId\\": \\"aic-5x20dyeos****\\",\\n \\"CreationDiskType\\": \\"standard\\",\\n \\"CreationTime\\": \\"2023-02-27 15:07:21\\",\\n \\"Description\\": \\"测试SDG\\",\\n \\"ParentSDGId\\": \\"sdg-xxxxx\\",\\n \\"SDGId\\": \\"sdg-30e1fdba7196bc****\\",\\n \\"Size\\": 20,\\n \\"Status\\": \\"success\\",\\n \\"PerformanceLevel\\": \\"100\\",\\n \\"UpdateTime\\": \\"2023-02-27 16:04:39\\",\\n \\"PreloadInfos\\": [\\n {\\n \\"RegionId\\": \\"cn-hangzhou\\",\\n \\"Namespace\\": \\"test-20000\\",\\n \\"RedundantNum\\": 2,\\n \\"DiskType\\": \\"standard\\",\\n \\"CreationTime\\": \\"2023-02-16T06:18:40Z\\",\\n \\"UpdateTime\\": \\"2021-01-22T08:17Z\\"\\n }\\n ],\\n \\"CreationRegionId\\": \\"cn-hangzhou-26\\",\\n \\"BillingType\\": \\"Open\\",\\n \\"BillingCycle\\": \\"Day\\"\\n }\\n ],\\n \\"PageNumber\\": 1,\\n \\"PageSize\\": 10,\\n \\"TotalCount\\": 49\\n}","type":"json"}]',
+ 'title' => 'DescribeSDG',
+ ],
+ 'DescribeSDGDeploymentStatus' => [
+ 'summary' => 'Queries the deployment status of the shared data group (SDG).',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'none',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '205308',
+ 'abilityTreeNodes' => [
+ 'FEATUREensZ35IDE',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'SDGId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the SDG.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'sdg-xxxx',
+ ],
+ ],
+ [
+ 'name' => 'PageNumber',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The number of the page to return. Pages start from page **1**. Default value: **1**.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'example' => '1',
+ 'default' => '1',
+ ],
+ ],
+ [
+ 'name' => 'PageSize',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The number of entries returned on each page.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'maximum' => '100',
+ 'minimum' => '1',
+ 'example' => '10',
+ 'default' => '10',
+ ],
+ ],
+ [
+ 'name' => 'DeploymentType',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The deployment type.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'shared',
+ ],
+ ],
+ [
+ 'name' => 'Status',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The deployment status of the SDG.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'success',
+ ],
+ ],
+ [
+ 'name' => 'InstanceIds',
+ 'in' => 'query',
+ 'style' => 'json',
+ 'schema' => [
+ 'description' => 'IDs of Android in Container (AIC) instances.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The ID of the AIC instance.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'aic-xxxx',
+ ],
+ 'required' => false,
+ ],
+ ],
+ [
+ 'name' => 'RegionIds',
+ 'in' => 'query',
+ 'style' => 'json',
+ 'schema' => [
+ 'description' => 'The IDs of the nodes.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The ID of the node.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'cn-hangzhou',
+ 'title' => '磁盘ID',
+ ],
+ 'required' => false,
+ ],
+ ],
+ [
+ 'name' => 'DiskIds',
+ 'in' => 'query',
+ 'style' => 'json',
+ 'schema' => [
+ 'title' => '磁盘ID列表',
+ 'type' => 'array',
+ 'items' => [
+ 'title' => '磁盘ID',
+ 'type' => 'string',
+ 'example' => 'd-xxxxx',
+ ],
+ 'maxItems' => 10,
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '68B85217-03B8-5141-9216-EA4D7C496B9A',
+ ],
+ 'DeploymentStatus' => [
+ 'description' => 'The list of SDG deployment information.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'InstanceId' => [
+ 'description' => 'The ID of the AIC instance.'."\n",
+ 'type' => 'string',
+ 'example' => 'aic-xxxx',
+ ],
+ 'MountType' => [
+ 'description' => 'The deployment type.'."\n"
+ ."\n"
+ .'Valid values:'."\n"
+ ."\n"
+ .'* overlay: read/write splitting.'."\n"
+ .'* common: common deployment.'."\n",
+ 'type' => 'string',
+ 'enumValueTitles' => [
+ 'overlay' => '',
+ 'common' => '',
+ ],
+ 'example' => 'overlay',
+ ],
+ 'RegionId' => [
+ 'description' => 'The ID of the edge node.'."\n",
+ 'type' => 'string',
+ 'example' => 'cn-hangzhou',
+ ],
+ 'Status' => [
+ 'description' => 'The deployment status of the SDG.'."\n"
+ ."\n"
+ .'Valid values:'."\n"
+ ."\n"
+ .'* sdg_deploying'."\n"
+ .'* success'."\n"
+ .'* failed'."\n",
+ 'type' => 'string',
+ 'enumValueTitles' => [
+ 'sdg_deploying' => '',
+ 'success' => '',
+ 'failed' => '',
+ ],
+ 'example' => 'success',
+ ],
+ 'Phase' => [
+ 'description' => 'The deployment phase of the SDG.'."\n",
+ 'type' => 'string',
+ 'example' => 'attach',
+ ],
+ 'UpdateTime' => [
+ 'description' => 'The time when the status was last updated.'."\n",
+ 'type' => 'string',
+ 'example' => '2023-02-17T02:44:31Z',
+ ],
+ 'BlockRwSplitSize' => [
+ 'type' => 'integer',
+ 'format' => 'int32',
+ ],
+ 'CacheSize' => [
+ 'type' => 'integer',
+ 'format' => 'int32',
+ ],
+ 'DiskType' => [
+ 'type' => 'string',
+ ],
+ 'DiskAccessProtocol' => [
+ 'type' => 'string',
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ 'PageNumber' => [
+ 'description' => 'The page number. Pages start from page 1. Default value: 1'."\n",
+ 'type' => 'integer',
+ 'format' => 'int64',
+ 'example' => '1',
+ ],
+ 'PageSize' => [
+ 'description' => 'The number of entries to return on each page. Default value: **10**.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int64',
+ 'example' => '10',
+ ],
+ 'TotalCount' => [
+ 'description' => 'The total number of queried deployment records.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int64',
+ 'example' => '100',
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'Interface.Call.Failed',
+ 'errorMessage' => '%s.',
+ ],
+ [
+ 'errorCode' => 'Interface.Call.Error',
+ 'errorMessage' => 'The interface call error',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"68B85217-03B8-5141-9216-EA4D7C496B9A\\",\\n \\"DeploymentStatus\\": [\\n {\\n \\"InstanceId\\": \\"aic-xxxx\\",\\n \\"MountType\\": \\"overlay\\",\\n \\"RegionId\\": \\"cn-hangzhou\\",\\n \\"Status\\": \\"success\\",\\n \\"Phase\\": \\"attach\\",\\n \\"UpdateTime\\": \\"2023-02-17T02:44:31Z\\",\\n \\"BlockRwSplitSize\\": 20,\\n \\"CacheSize\\": 20,\\n \\"DiskType\\": \\"standard\\",\\n \\"DiskAccessProtocol\\": \\"iscsi\\"\\n }\\n ],\\n \\"PageNumber\\": 1,\\n \\"PageSize\\": 10,\\n \\"TotalCount\\": 100\\n}","type":"json"}]',
+ 'title' => 'DescribeSDGDeploymentStatus',
+ ],
+ 'DeleteSDG' => [
+ 'summary' => 'Deletes a shared data group (SDG).',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'none',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'SDGId',
+ 'in' => 'query',
+ 'style' => 'json',
+ 'schema' => [
+ 'description' => 'The IDs of the SDGs that you want to delete.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The ID of the SDG that you want to delete. You can delete a maximum of 10 SDGs at a time.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'sdg-xxx',
+ ],
+ 'required' => true,
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '86A6D421-A0C7-4C01-8648-47377CA6A2CE',
+ ],
+ 'Data' => [
+ 'description' => 'The returned data object.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'Message' => [
+ 'description' => 'The response message. Success is returned for a successful request.'."\n",
+ 'type' => 'string',
+ 'example' => 'success',
+ ],
+ 'Success' => [
+ 'description' => 'Indicates whether all tasks are successful. Valid values:'."\n"
+ ."\n"
+ .'* true: All tasks are successful.'."\n"
+ .'* false: Failed tasks exist.'."\n",
+ 'type' => 'boolean',
+ 'example' => 'true',
+ ],
+ 'Result' => [
+ 'description' => 'The execution result of the synchronization request.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'FailedCount' => [
+ 'description' => 'The number of failed tasks.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int64',
+ 'example' => '0',
+ ],
+ 'SuccessCount' => [
+ 'description' => 'The number of successful tasks.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int64',
+ 'example' => '1',
+ ],
+ 'FailedItems' => [
+ 'description' => 'Details about the failed tasks.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'Details about a failed task.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'Item' => [
+ 'description' => 'Description'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'SdgId' => [
+ 'description' => 'The ID of the shared data group (SDG).'."\n",
+ 'type' => 'string',
+ 'example' => 'sdg-dfet5vvvgy'."\n",
+ ],
+ ],
+ ],
+ 'ErrMessage' => [
+ 'description' => 'The error message.'."\n",
+ 'type' => 'string',
+ 'example' => 'sdg not found',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'Interface.Call.Error',
+ 'errorMessage' => 'The interface call error',
+ ],
+ [
+ 'errorCode' => 'Interface.Call.Failed',
+ 'errorMessage' => '%s.',
+ ],
+ [
+ 'errorCode' => 'Parameter.Invalid',
+ 'errorMessage' => 'The parameter is invalid. Please check your parameters and try it again.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"86A6D421-A0C7-4C01-8648-47377CA6A2CE\\",\\n \\"Data\\": {\\n \\"Message\\": \\"success\\",\\n \\"Success\\": true,\\n \\"Result\\": {\\n \\"FailedCount\\": 0,\\n \\"SuccessCount\\": 1,\\n \\"FailedItems\\": [\\n {\\n \\"Item\\": {\\n \\"SdgId\\": \\"sdg-dfet5vvvgy\\"\\n },\\n \\"ErrMessage\\": \\"sdg not found\\"\\n }\\n ]\\n }\\n }\\n}","errorExample":""},{"type":"xml","example":"<DeleteSDGResponse>\\n <RequestId>86A6D421-A0C7-4C01-8648-47377CA6A2CE</RequestId>\\n</DeleteSDGResponse>","errorExample":""}]',
+ 'title' => 'DeleteSDG',
+ 'description' => 'If all the SDGs corresponding to the original disk are deleted, the original disk is automatically cleared.'."\n",
+ ],
+ 'UnloadRegionSDG' => [
+ 'summary' => 'Deletes preloaded data.',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'none',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'SDGId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'Deletes the shared data group (SDG) ID of the preloaded data.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'sdg-xxxx',
+ ],
+ ],
+ [
+ 'name' => 'DestinationRegionIds',
+ 'in' => 'query',
+ 'style' => 'json',
+ 'schema' => [
+ 'description' => 'The destination nodes.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The ID of the destination node.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'cn-foshan-4',
+ ],
+ 'required' => true,
+ ],
+ ],
+ [
+ 'name' => 'Namespaces',
+ 'in' => 'query',
+ 'style' => 'json',
+ 'schema' => [
+ 'description' => 'An array that consists of queried namespaces.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The namespace.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '\'default\'',
+ ],
+ 'required' => false,
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '125B04C7-3D0D-4245-AF96-14E3758E3F06',
+ ],
+ 'Data' => [
+ 'description' => 'The returned data object.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'Message' => [
+ 'description' => 'The response message. Success is returned for a successful request.'."\n",
+ 'type' => 'string',
+ 'example' => 'success',
+ ],
+ 'Result' => [
+ 'description' => 'The execution result of the synchronization request.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'FailedCount' => [
+ 'description' => 'The number of failed tasks.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int64',
+ 'example' => '0',
+ ],
+ 'FailedItems' => [
+ 'description' => 'Details about the failed tasks.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'Details about the failed task.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'ErrorMessage' => [
+ 'description' => 'The error message that is returned.'."\n",
+ 'type' => 'string',
+ 'example' => 'region not found',
+ ],
+ 'DestinationRegionId' => [
+ 'description' => 'The ID of the destination node.'."\n",
+ 'type' => 'string',
+ 'example' => 'cn-hangzhou-xxx',
+ ],
+ ],
+ ],
+ ],
+ 'SuccessCount' => [
+ 'description' => 'The number of successful tasks.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int64',
+ 'example' => '1',
+ ],
+ ],
+ ],
+ 'Success' => [
+ 'description' => 'Indicates whether all tasks are successful. Valid values:'."\n"
+ ."\n"
+ .'* true: All tasks are successful.'."\n"
+ .'* false: Failed tasks exist.'."\n",
+ 'type' => 'boolean',
+ 'example' => 'true',
+ ],
+ ],
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'Interface.Call.Error',
+ 'errorMessage' => 'The interface call error',
+ ],
+ [
+ 'errorCode' => 'Interface.Call.Failed',
+ 'errorMessage' => '%s.',
+ ],
+ [
+ 'errorCode' => 'Parameter.Invalid',
+ 'errorMessage' => 'The parameter is invalid. Please check your parameters and try it again.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"125B04C7-3D0D-4245-AF96-14E3758E3F06\\",\\n \\"Data\\": {\\n \\"Message\\": \\"success\\",\\n \\"Result\\": {\\n \\"FailedCount\\": 0,\\n \\"FailedItems\\": [\\n {\\n \\"ErrorMessage\\": \\"region not found\\",\\n \\"DestinationRegionId\\": \\"cn-hangzhou-xxx\\"\\n }\\n ],\\n \\"SuccessCount\\": 1\\n },\\n \\"Success\\": true\\n }\\n}","type":"json"}]',
+ 'title' => 'UnloadRegionSDG',
+ ],
+ 'RemoveSDG' => [
+ 'summary' => 'Removes a deployed shared data group (SDG) and restore local storage.',
+ 'methods' => [
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'update',
+ 'abilityTreeCode' => '177219',
+ 'abilityTreeNodes' => [
+ 'FEATUREensZ35IDE',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'InstanceIds',
+ 'in' => 'query',
+ 'style' => 'json',
+ 'schema' => [
+ 'description' => 'IDs of Android in Container (AIC) instances.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The ID of the AIC instance.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '["aic-1", "aic-2", "aic-3"]',
+ ],
+ 'required' => true,
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => '6666C5A5-75ED-422E-A022-7121FA18C968',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'Parameter.Invalid',
+ 'errorMessage' => 'The parameter is invalid.Please check your parameters and try it again.',
+ ],
+ [
+ 'errorCode' => 'Interface.Call.Error',
+ 'errorMessage' => 'The interface call error',
+ ],
+ [
+ 'errorCode' => 'Interface.Call.Failed',
+ 'errorMessage' => '%s.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"6666C5A5-75ED-422E-A022-7121FA18C968\\"\\n}","type":"json"}]',
+ 'title' => 'RemoveSDG',
+ ],
+ 'RemoveInstanceSDG' => [
+ 'summary' => 'Removes a shared data group (SDG) that is attached to the compute instance.',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'update',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'InstanceIds',
+ 'in' => 'query',
+ 'style' => 'json',
+ 'schema' => [
+ 'description' => 'The IDs of the instances. The value is a JSON array that consists of up to 100 IDs.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The ID of the Android in Container (AIC) instance.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'aic-instance****',
+ ],
+ 'required' => true,
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '125B04C7-3D0D-4245-AF96-14E3758E3F06',
+ ],
+ 'Code' => [
+ 'description' => 'The returned service code. 0 indicates that the request was successful.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '0',
+ ],
+ 'Data' => [
+ 'description' => 'The returned data object.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'Message' => [
+ 'description' => 'The response message. Success is returned for a successful request.'."\n",
+ 'type' => 'string',
+ 'example' => 'success',
+ ],
+ 'Success' => [
+ 'description' => 'Indicates whether all tasks are successful. Valid values:'."\n"
+ ."\n"
+ .'* **true**: All tasks are successful.'."\n"
+ .'* **false**: Failed tasks exist.'."\n",
+ 'type' => 'boolean',
+ 'example' => 'true',
+ ],
+ 'Result' => [
+ 'description' => 'The execution result of the synchronization request.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'FailedCount' => [
+ 'description' => 'The number of failed tasks.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int64',
+ 'example' => '0',
+ ],
+ 'SuccessCount' => [
+ 'description' => 'The number of successful tasks.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int64',
+ 'example' => '1',
+ ],
+ 'FailedItems' => [
+ 'description' => 'Details about the failed tasks.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'ErrMessage' => [
+ 'description' => 'The error message that is returned.'."\n",
+ 'type' => 'string',
+ 'example' => 'sdg not found',
+ ],
+ 'InstanceId' => [
+ 'description' => 'The ID of the instance.'."\n",
+ 'type' => 'string',
+ 'example' => 'aic-xxxxx-0',
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'Interface.Call.Error',
+ 'errorMessage' => 'The interface call error',
+ ],
+ [
+ 'errorCode' => 'Interface.Call.Failed',
+ 'errorMessage' => '%s.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"125B04C7-3D0D-4245-AF96-14E3758E3F06\\",\\n \\"Code\\": 0,\\n \\"Data\\": {\\n \\"Message\\": \\"success\\",\\n \\"Success\\": true,\\n \\"Result\\": {\\n \\"FailedCount\\": 0,\\n \\"SuccessCount\\": 1,\\n \\"FailedItems\\": [\\n {\\n \\"ErrMessage\\": \\"sdg not found\\",\\n \\"InstanceId\\": \\"aic-xxxxx-0\\"\\n }\\n ]\\n }\\n }\\n}","type":"json"}]',
+ 'title' => 'RemoveInstanceSDG',
+ ],
+ 'SaveSDG' => [
+ 'summary' => 'Saves the disk of a specific device as a shared data group (SDG).',
+ 'methods' => [
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'none',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'SDGId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the SDG to be saved.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'sdg-xxxx',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => 'C0003E8B-B930-4F59-ADC0-0E209A9012A8',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'Interface.Call.Error',
+ 'errorMessage' => 'The interface call error',
+ ],
+ [
+ 'errorCode' => 'Interface.Call.Failed',
+ 'errorMessage' => '%s.',
+ ],
+ [
+ 'errorCode' => 'Parameter.Invalid',
+ 'errorMessage' => 'The parameter is invalid. Please check your parameters and try it again.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"C0003E8B-B930-4F59-ADC0-0E209A9012A8\\"\\n}","errorExample":""},{"type":"xml","example":"<SaveSDGResponse>\\n <RequestId>C0003E8B-B930-4F59-ADC0-0E209A9012A8</RequestId>\\n</SaveSDGResponse>","errorExample":""}]',
+ 'title' => 'SaveSDG',
+ ],
+ 'RemoveSDGs' => [
+ 'summary' => 'Removes all versions of SDG and restores the mount to the local disk.',
+ 'path' => '',
+ 'methods' => [
+ 'post',
+ ],
+ 'schemes' => [
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'readAndWrite',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'none',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeNodes' => [
+ 'FEATUREensZ35IDE',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'InstanceIds',
+ 'in' => 'query',
+ 'style' => 'json',
+ 'schema' => [
+ 'description' => 'The IDs of the instances.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The instance ID. Example: i-22jja5c2l. Separate multiple instance IDs with commas (,).'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'aic-instance****',
+ ],
+ 'required' => true,
+ ],
+ ],
+ [
+ 'name' => 'SdgIds',
+ 'in' => 'query',
+ 'style' => 'json',
+ 'schema' => [
+ 'description' => 'The IDs of SDG.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The ID of SDG.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'sdg-xxxx',
+ ],
+ 'required' => false,
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'Id of the request'."\n",
+ 'type' => 'string',
+ 'example' => '903819D9-D18B-5C59-8DFD-20D56FD2DAE4',
+ ],
+ 'Data' => [
+ 'description' => 'The returned data.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'Message' => [
+ 'description' => 'The response message. Success is returned for a successful request.'."\n",
+ 'type' => 'string',
+ 'example' => 'success',
+ ],
+ 'Result' => [
+ 'description' => 'The execution result of the synchronization request.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'FailedCount' => [
+ 'description' => 'The number of failed tasks.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int64',
+ 'example' => '0',
+ ],
+ 'FailedItems' => [
+ 'description' => 'Details about failed tasks.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'Details about the failed task.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'InstanceId' => [
+ 'description' => 'The instance ID.'."\n",
+ 'type' => 'string',
+ 'example' => 'aic-xxxxx-0',
+ ],
+ 'ErrMessage' => [
+ 'description' => 'The error message returned if the call failed.'."\n",
+ 'type' => 'string',
+ 'example' => 'sdg not found',
+ ],
+ ],
+ ],
+ ],
+ 'SuccessCount' => [
+ 'description' => 'The number of successful tasks.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int64',
+ 'example' => '1',
+ ],
+ ],
+ ],
+ 'Success' => [
+ 'description' => 'Indicates whether all tasks are successful. Valid values:'."\n"
+ ."\n"
+ .'* **true**: All tasks are successful.'."\n"
+ .'* **false**: Failed tasks exist.'."\n",
+ 'type' => 'boolean',
+ 'example' => 'true',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'Interface.Call.Failed',
+ 'errorMessage' => '%s.',
+ ],
+ [
+ 'errorCode' => 'Interface.Call.Error',
+ 'errorMessage' => 'The interface call error',
+ ],
+ [
+ 'errorCode' => 'Parameter.Invalid',
+ 'errorMessage' => 'The parameter is invalid. Please check your parameters and try it again.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"903819D9-D18B-5C59-8DFD-20D56FD2DAE4\\",\\n \\"Data\\": {\\n \\"Message\\": \\"success\\",\\n \\"Result\\": {\\n \\"FailedCount\\": 0,\\n \\"FailedItems\\": [\\n {\\n \\"InstanceId\\": \\"aic-xxxxx-0\\",\\n \\"ErrMessage\\": \\"sdg not found\\"\\n }\\n ],\\n \\"SuccessCount\\": 1\\n },\\n \\"Success\\": true\\n }\\n}","type":"json"}]',
+ 'title' => 'RemoveSDGs',
+ ],
+ 'ModifyAICInstanceType' => [
+ 'summary' => 'aic实例变配接口',
+ 'path' => '',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'update',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '264302',
+ 'abilityTreeNodes' => [
+ 'FEATUREensBWGEJ9',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'InstanceId',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '变配实例id',
+ 'description' => '',
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'aic-xxxx-0',
+ ],
+ ],
+ [
+ 'name' => 'InstanceType',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '更新的配置',
+ 'description' => '',
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'aic.cf52r.c1.np',
+ ],
+ ],
+ [
+ 'name' => 'ImageId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => '',
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'yourImage ID',
+ ],
+ ],
+ [
+ 'name' => 'EnvironmentVar',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => '',
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '[object Object]',
+ ],
+ ],
+ [
+ 'name' => 'Resolution',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => '',
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '720*1280',
+ 'enum' => [
+ '1920*1080',
+ '1080*1920',
+ '1280*720',
+ '720*1280',
+ '2400*1080',
+ '1080*2400',
+ '1920*864',
+ '864*1920',
+ ],
+ ],
+ ],
+ [
+ 'name' => 'Frequency',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => '',
+ 'type' => 'integer',
+ 'format' => 'int64',
+ 'required' => false,
+ 'example' => '30',
+ 'enum' => [
+ '30',
+ '60',
+ '120',
+ ],
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response',
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'Id of the request',
+ 'type' => 'string',
+ 'example' => 'F590DD6C-B78B-571B-8FE9-B6ECEED9BE3C',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"F590DD6C-B78B-571B-8FE9-B6ECEED9BE3C\\"\\n}","type":"json"}]',
+ ],
+ 'ResetAICInstance' => [
+ 'summary' => 'Resets an Android in Container (AIC) instance.',
+ 'methods' => [
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'update',
+ 'abilityTreeCode' => '139881',
+ 'abilityTreeNodes' => [
+ 'FEATUREensZ35IDE',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'ServerId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the server.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'cas-instance****',
+ ],
+ ],
+ [
+ 'name' => 'InstanceId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the AIC instance.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'aic-instance****',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'Parameter.Invalid',
+ 'errorMessage' => 'The parameter is invalid.Please check your parameters and try it again.',
+ ],
+ [
+ 'errorCode' => 'Interface.Call.Error',
+ 'errorMessage' => 'The interface call error',
+ ],
+ [
+ 'errorCode' => 'Interface.Call.Failed',
+ 'errorMessage' => '%s.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E\\"\\n}","errorExample":""},{"type":"xml","example":"<ResetAICInstanceResponse>\\n <RequestId>473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E</RequestId>\\n</ResetAICInstanceResponse>","errorExample":""}]',
+ 'title' => 'ResetAICInstance',
+ ],
+ 'UpgradeAICInstanceImage' => [
+ 'summary' => 'Updates the image of an Android in Container (AIC) instance.',
+ 'methods' => [
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'update',
+ 'abilityTreeCode' => '139883',
+ 'abilityTreeNodes' => [
+ 'FEATUREensZ35IDE',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'ServerIds',
+ 'in' => 'query',
+ 'style' => 'json',
+ 'schema' => [
+ 'description' => 'The IDs of the servers.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The ID of the server.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'cas-instance****',
+ ],
+ 'required' => true,
+ 'maxItems' => 20,
+ ],
+ ],
+ [
+ 'name' => 'ImageId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the AIC image.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'm-****',
+ ],
+ ],
+ [
+ 'name' => 'Timeout',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The timeout period of the update. Unit: seconds.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'example' => '1800',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'Interface.Call.Error',
+ 'errorMessage' => 'The interface call error',
+ ],
+ [
+ 'errorCode' => 'Parameter.Invalid',
+ 'errorMessage' => 'The parameter is invalid.Please check your parameters and try it again.',
+ ],
+ [
+ 'errorCode' => 'Interface.Call.Failed',
+ 'errorMessage' => '%s.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E\\"\\n}","errorExample":""},{"type":"xml","example":"<UpgradeAICInstanceImageResponse>\\n <RequestId>473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E</RequestId>\\n</UpgradeAICInstanceImageResponse>","errorExample":""}]',
+ 'title' => 'UpgradeAICInstanceImage',
+ ],
+ 'RebootAICInstance' => [
+ 'summary' => 'Restarts an Android in Container (AIC) instance.',
+ 'methods' => [
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'update',
+ 'abilityTreeCode' => '139882',
+ 'abilityTreeNodes' => [
+ 'FEATUREensZ35IDE',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'ServerId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the server.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'cas-instance****',
+ ],
+ ],
+ [
+ 'name' => 'InstanceId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the AIC instance.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'aic-instance****',
+ ],
+ ],
+ [
+ 'name' => 'InstanceIds',
+ 'in' => 'query',
+ 'style' => 'json',
+ 'schema' => [
+ 'description' => 'The IDs of the AIC instance groups.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The ID of the AIC instance group.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'aic-instance****',
+ ],
+ 'required' => false,
+ 'maxItems' => 20,
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'Interface.Call.Error',
+ 'errorMessage' => 'The interface call error',
+ ],
+ [
+ 'errorCode' => 'Parameter.Invalid',
+ 'errorMessage' => 'The parameter is invalid.Please check your parameters and try it again.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E\\"\\n}","errorExample":""},{"type":"xml","example":"<RebootAICInstanceResponse>\\n <RequestId>473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E</RequestId>\\n</RebootAICInstanceResponse>","errorExample":""}]',
+ 'title' => 'RebootAICInstance',
+ ],
+ 'DescribeARMServerInstances' => [
+ 'summary' => 'Queries information about ARM servers and Android in Container (AIC) instances.',
+ 'methods' => [
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'list',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '141176',
+ 'abilityTreeNodes' => [
+ 'FEATUREensZ35IDE',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'ServerIds',
+ 'in' => 'query',
+ 'style' => 'json',
+ 'schema' => [
+ 'description' => 'The IDs of the ARM servers.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The ID of the ARM server.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'cas-instance****',
+ ],
+ 'required' => false,
+ 'maxItems' => 20,
+ ],
+ ],
+ [
+ 'name' => 'EnsRegionIds',
+ 'in' => 'query',
+ 'style' => 'json',
+ 'schema' => [
+ 'description' => 'The IDs of the Edge Node Service (ENS) nodes.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The ID of the ENS node.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'cn-chengdu-telecom-4',
+ ],
+ 'required' => false,
+ 'maxItems' => 20,
+ ],
+ ],
+ [
+ 'name' => 'PageNumber',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The page number. Pages start from page **1**.'."\n"
+ ."\n"
+ .'Default value: **1**.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'example' => '1',
+ 'default' => '1',
+ ],
+ ],
+ [
+ 'name' => 'PageSize',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The number of entries to return on each page. Maximum value: **100**.'."\n"
+ ."\n"
+ .'Default value: **10**.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'maximum' => '100',
+ 'example' => '10',
+ 'default' => '10',
+ ],
+ ],
+ [
+ 'name' => 'MinDate',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The beginning of the time range to query. Specify the time in the 2006-01-02 format. By default, the time range to query is not restricted.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '2006-01-02',
+ ],
+ ],
+ [
+ 'name' => 'MaxDate',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The end of the time range to query. Specify the time in the 2006-01-02 format. By default, the time range to query is not restricted.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '2006-01-03',
+ ],
+ ],
+ [
+ 'name' => 'States',
+ 'in' => 'query',
+ 'style' => 'json',
+ 'schema' => [
+ 'description' => 'The operation statuses.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The operation status of the server. Valid values:'."\n"
+ ."\n"
+ .'* **success**'."\n"
+ .'* **failed**'."\n"
+ .'* **creating**'."\n"
+ .'* **releasing**'."\n"
+ .'* **rebooting**'."\n"
+ .'* **upgrading**'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'success',
+ ],
+ 'required' => false,
+ 'maxItems' => 20,
+ ],
+ ],
+ [
+ 'name' => 'AICSpecs',
+ 'in' => 'query',
+ 'style' => 'json',
+ 'schema' => [
+ 'description' => 'The container specifications.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The container specification.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'aic.cf53r.c2.np',
+ ],
+ 'required' => false,
+ 'maxItems' => 20,
+ ],
+ ],
+ [
+ 'name' => 'ServerSpecs',
+ 'in' => 'query',
+ 'style' => 'json',
+ 'schema' => [
+ 'description' => 'The server specifications.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The server specification.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'cas.cf53r',
+ ],
+ 'required' => false,
+ 'maxItems' => 20,
+ ],
+ ],
+ [
+ 'name' => 'Name',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The name of the server.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'Server-Name',
+ ],
+ ],
+ [
+ 'name' => 'Namespace',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The namespace.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'default',
+ ],
+ ],
+ [
+ 'name' => 'Tags',
+ 'in' => 'query',
+ 'allowEmptyValue' => false,
+ 'style' => 'json',
+ 'schema' => [
+ 'title' => '标签列表',
+ 'type' => 'array',
+ 'items' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'Key' => [
+ 'title' => '标签键',
+ 'type' => 'string',
+ 'example' => 'key-1',
+ ],
+ 'Value' => [
+ 'title' => '标签值',
+ 'type' => 'string',
+ 'example' => 'value-1',
+ ],
+ ],
+ ],
+ 'required' => false,
+ 'docRequired' => false,
+ 'maxItems' => 20,
+ ],
+ ],
+ [
+ 'name' => 'OrderByParams',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The sorting order of the results to return. Valid values: ServerIdSort, ServerNameSort, ExpireTimeSort, CreationTimeSort, and EnsRegionIdSort.'."\n"
+ ."\n"
+ .'asc: ascending order. desc: descending order.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '{"ServerIdSort":"desc","ServerNameSort":"desc","ExpireTimeSort":"asc","CreationTimeSort":"asc","EnsRegionIdSort":"asc"}',
+ ],
+ ],
+ [
+ 'name' => 'DescribeAICInstances',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'Spcifies whether the result contains the container information. Valid values:'."\n"
+ ."\n"
+ .'* **true**'."\n"
+ .'* **false**'."\n",
+ 'type' => 'boolean',
+ 'required' => false,
+ 'example' => 'true',
+ 'default' => 'true',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => '4EC47282-1B74-4534-BD0E-403F3EE64CAF',
+ ],
+ 'Servers' => [
+ 'description' => 'The information about the servers and the AIC instances.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'CreationTime' => [
+ 'description' => 'The time when the instance was created.'."\n",
+ 'type' => 'string',
+ 'example' => '2022-05-07 11:59:09',
+ ],
+ 'ExpiredTime' => [
+ 'description' => 'The time when the instance expires.'."\n",
+ 'type' => 'string',
+ 'example' => '2027-05-07 11:59:09',
+ ],
+ 'AICInstances' => [
+ 'description' => 'The information about the AIC instances.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'Frequency' => [
+ 'description' => 'The refresh rate of the AIC instance. Unit: Hz.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int64',
+ 'example' => '120',
+ ],
+ 'ImageId' => [
+ 'description' => 'The ID of the AIC image.'."\n",
+ 'type' => 'string',
+ 'example' => 'm-****',
+ ],
+ 'InstanceId' => [
+ 'description' => 'The ID of the AIC instance.'."\n",
+ 'type' => 'string',
+ 'example' => 'aic-instance****',
+ ],
+ 'NetworkAttributes' => [
+ 'description' => 'The network attributes of the AIC instance.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'IpAddress' => [
+ 'description' => 'The IP address of the AIC instance.'."\n",
+ 'type' => 'string',
+ 'example' => '192.168.XX.XX',
+ ],
+ 'NetworkId' => [
+ 'description' => 'The network ID of the AIC instance.'."\n",
+ 'type' => 'string',
+ 'example' => 'n-*****',
+ ],
+ 'VSwitchId' => [
+ 'description' => 'The vSwitch ID of the AIC instance.'."\n",
+ 'type' => 'string',
+ 'example' => 'vsw-****',
+ ],
+ ],
+ ],
+ 'SdgDeployInfo' => [
+ 'description' => 'The information about the shared data group (SDG) that is deployed on the AIC instance.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'SDGId' => [
+ 'description' => 'The ID of the SDG.'."\n",
+ 'type' => 'string',
+ 'example' => 'sdg-xxxxx',
+ ],
+ 'Status' => [
+ 'description' => 'The deployment status of the SDG. Valid values:'."\n"
+ ."\n"
+ .'* **sdg_deploying**'."\n"
+ .'* **failed**'."\n"
+ .'* **success**'."\n",
+ 'type' => 'string',
+ 'example' => 'success',
+ ],
+ ],
+ ],
+ 'Resolution' => [
+ 'description' => 'The resolution of the AIC instance.'."\n",
+ 'type' => 'string',
+ 'example' => '1920*1080',
+ ],
+ 'Spec' => [
+ 'description' => 'The specification of the AIC instance.'."\n",
+ 'type' => 'string',
+ 'example' => 'aic.cf53r.c2.np',
+ ],
+ 'State' => [
+ 'description' => 'The operation status of the AIC instance. Valid values:'."\n"
+ ."\n"
+ .'* **success**'."\n"
+ .'* **failed**'."\n"
+ .'* **creating**'."\n"
+ .'* **releasing**'."\n"
+ .'* **rebooting**'."\n"
+ .'* **reseting**'."\n",
+ 'type' => 'string',
+ 'example' => 'success',
+ ],
+ 'Status' => [
+ 'description' => 'The running status of the AIC instance. Valid values:'."\n"
+ ."\n"
+ .'* **running**'."\n"
+ .'* **pending**'."\n"
+ .'* **terminating**'."\n",
+ 'type' => 'string',
+ 'example' => 'running',
+ ],
+ 'Name' => [
+ 'description' => 'The name of the container.'."\n",
+ 'type' => 'string',
+ 'example' => 'AIC-Name',
+ ],
+ 'LatestAction' => [
+ 'description' => 'The operation that was most recently performed.'."\n",
+ 'type' => 'string',
+ 'example' => 'ServerCreate',
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ 'EnsRegionId' => [
+ 'description' => 'The ID of the ENS node.'."\n",
+ 'type' => 'string',
+ 'example' => 'cn-hanghzou-27',
+ ],
+ 'ServerId' => [
+ 'description' => 'The ID of the server.'."\n",
+ 'type' => 'string',
+ 'example' => 'cas-******',
+ ],
+ 'SpecName' => [
+ 'description' => 'The server specification.'."\n",
+ 'type' => 'string',
+ 'example' => 'cas.cf53r',
+ ],
+ 'State' => [
+ 'description' => 'The operation status of the server. Valid values:'."\n"
+ ."\n"
+ .'* **success**'."\n"
+ .'* **failed**'."\n"
+ .'* **creating**'."\n"
+ .'* **releasing**'."\n"
+ .'* **rebooting**'."\n"
+ .'* **upgrading**'."\n",
+ 'type' => 'string',
+ 'example' => 'success',
+ ],
+ 'Status' => [
+ 'description' => 'The running status of the server. Valid values:'."\n"
+ ."\n"
+ .'* **running**'."\n"
+ .'* **stopping**'."\n"
+ .'* **down**'."\n"
+ .'* **starting**'."\n",
+ 'type' => 'string',
+ 'example' => 'running',
+ ],
+ 'Namespace' => [
+ 'description' => 'The namespace of the cluster to which the server belongs.'."\n",
+ 'type' => 'string',
+ 'example' => 'default',
+ ],
+ 'Name' => [
+ 'description' => 'The name of the server.'."\n",
+ 'type' => 'string',
+ 'example' => 'Server-Name',
+ ],
+ 'PayType' => [
+ 'description' => 'The billing method.'."\n",
+ 'type' => 'string',
+ 'example' => 'prepay',
+ ],
+ 'LatestAction' => [
+ 'description' => 'The operation that was most recently performed.'."\n",
+ 'type' => 'string',
+ 'example' => 'ServerCreate',
+ ],
+ 'Tags' => [
+ 'type' => 'array',
+ 'items' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'Key' => [
+ 'type' => 'string',
+ ],
+ 'Value' => [
+ 'type' => 'string',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ 'PageNumber' => [
+ 'description' => 'The page number.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '1',
+ ],
+ 'PageSize' => [
+ 'description' => 'The number of entries per page.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '10',
+ ],
+ 'TotalCount' => [
+ 'description' => 'The total number of entries returned.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '2',
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'Parameter.Invalid',
+ 'errorMessage' => 'This service has not been activated.',
+ ],
+ [
+ 'errorCode' => 'Interface.Call.Error',
+ 'errorMessage' => 'The interface call error',
+ ],
+ [
+ 'errorCode' => 'Interface.Call.Failed',
+ 'errorMessage' => '%s.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"4EC47282-1B74-4534-BD0E-403F3EE64CAF\\",\\n \\"Servers\\": [\\n {\\n \\"CreationTime\\": \\"2022-05-07 11:59:09\\",\\n \\"ExpiredTime\\": \\"2027-05-07 11:59:09\\",\\n \\"AICInstances\\": [\\n {\\n \\"Frequency\\": 120,\\n \\"ImageId\\": \\"m-****\\",\\n \\"InstanceId\\": \\"aic-instance****\\",\\n \\"NetworkAttributes\\": {\\n \\"IpAddress\\": \\"192.168.XX.XX\\",\\n \\"NetworkId\\": \\"n-*****\\",\\n \\"VSwitchId\\": \\"vsw-****\\"\\n },\\n \\"SdgDeployInfo\\": {\\n \\"SDGId\\": \\"sdg-xxxxx\\",\\n \\"Status\\": \\"success\\"\\n },\\n \\"Resolution\\": \\"1920*1080\\",\\n \\"Spec\\": \\"aic.cf53r.c2.np\\",\\n \\"State\\": \\"success\\",\\n \\"Status\\": \\"running\\",\\n \\"Name\\": \\"AIC-Name\\",\\n \\"LatestAction\\": \\"ServerCreate\\"\\n }\\n ],\\n \\"EnsRegionId\\": \\"cn-hanghzou-27\\",\\n \\"ServerId\\": \\"cas-******\\",\\n \\"SpecName\\": \\"cas.cf53r\\",\\n \\"State\\": \\"success\\",\\n \\"Status\\": \\"running\\",\\n \\"Namespace\\": \\"default\\",\\n \\"Name\\": \\"Server-Name\\",\\n \\"PayType\\": \\"prepay\\",\\n \\"LatestAction\\": \\"ServerCreate\\",\\n \\"Tags\\": [\\n {\\n \\"Key\\": \\"key-1\\",\\n \\"Value\\": \\"value-1\\"\\n }\\n ]\\n }\\n ],\\n \\"PageNumber\\": 1,\\n \\"PageSize\\": 10,\\n \\"TotalCount\\": 2\\n}","errorExample":""},{"type":"xml","example":"<DescribeARMServerInstancesResponse>\\n <RequestId>4EC47282-1B74-4534-BD0E-403F3EE64CAF</RequestId>\\n <Servers>\\n <CreationTime>2022-05-07 11:59:09</CreationTime>\\n <ExpiredTime>2027-05-07 11:59:09</ExpiredTime>\\n <AICInstances>\\n <Frequency>120</Frequency>\\n <ImageId>m-****</ImageId>\\n <InstanceId>aic-instance****</InstanceId>\\n <NetworkAttributes>\\n <IpAddress>192.168.1.1</IpAddress>\\n <NetworkId>n-*****</NetworkId>\\n <VSwitchId>vsw-****</VSwitchId>\\n </NetworkAttributes>\\n <SdgDeployInfo>\\n <SDGId>sdg-xxxxx</SDGId>\\n <Status>success</Status>\\n </SdgDeployInfo>\\n <Resolution>1920*1080</Resolution>\\n <Spec>aic.cf53r.c2.np</Spec>\\n <State>success</State>\\n <Status>running</Status>\\n <Name>AIC-Name</Name>\\n <LatestAction>ServerCreate</LatestAction>\\n </AICInstances>\\n <EnsRegionId>cn-hanghzou-27</EnsRegionId>\\n <ServerId>cas-******</ServerId>\\n <SpecName>cas.cf53r</SpecName>\\n <State>success</State>\\n <Status>running</Status>\\n <Namespace>default</Namespace>\\n <Name>Server-Name</Name>\\n <PayType>prepay</PayType>\\n <LatestAction>ServerCreate</LatestAction>\\n </Servers>\\n <PageNumber>1</PageNumber>\\n <PageSize>10</PageSize>\\n <TotalCount>2</TotalCount>\\n</DescribeARMServerInstancesResponse>","errorExample":""}]',
+ 'title' => 'DescribeARMServerInstances',
+ ],
+ 'RebootARMServerInstance' => [
+ 'summary' => 'Reboots an Android in Container (AIC) server.',
+ 'methods' => [
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'abilityTreeCode' => '139880',
+ 'abilityTreeNodes' => [
+ 'FEATUREensNZLH4C',
+ 'FEATUREensF9GR70',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'ServerId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the server.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'yourInstance ID'."\n",
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'Parameter.Invalid',
+ 'errorMessage' => 'The parameter is invalid.Please check your parameters and try it again.',
+ ],
+ [
+ 'errorCode' => 'Interface.Call.Error',
+ 'errorMessage' => 'The interface call error',
+ ],
+ [
+ 'errorCode' => 'Interface.Call.Failed',
+ 'errorMessage' => '%s.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ 406 => [
+ [
+ 'errorCode' => 'Throttling.Api',
+ 'errorMessage' => 'Request was denied due to region flow control.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E\\"\\n}","errorExample":""},{"type":"xml","example":"<RebootARMServerInstanceResponse>\\n <RequestId>473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E</RequestId>\\n</RebootARMServerInstanceResponse>","errorExample":""}]',
+ 'title' => 'RebootARMServerInstance',
+ ],
+ 'ReleaseARMServerInstance' => [
+ 'summary' => 'Releases an ARM server.',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'delete',
+ 'riskType' => 'high',
+ 'chargeType' => 'paid',
+ 'abilityTreeNodes' => [
+ 'FEATUREensZ35IDE',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'InstanceId',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => 'AIC实例ID.',
+ 'description' => 'The ID of the server.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'yourInstance ID',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => 'DCAE84DF-4187-5CC5-B819-37BCD2B83BD3',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'InstanceIdNotFound',
+ 'errorMessage' => 'No instance ID found. Enter a valid instance ID.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"DCAE84DF-4187-5CC5-B819-37BCD2B83BD3\\"\\n}","errorExample":""},{"type":"xml","example":"<ReleaseARMServerInstanceResponse>\\n <RequestId>DCAE84DF-4187-5CC5-B819-37BCD2B83BD3</RequestId>\\n</ReleaseARMServerInstanceResponse>","errorExample":""}]',
+ 'title' => 'ReleaseARMServerInstance',
+ ],
+ 'CreateARMServerInstances' => [
+ 'summary' => 'Creates an ARM server.',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'create',
+ 'riskType' => 'high',
+ 'chargeType' => 'paid',
+ 'abilityTreeNodes' => [
+ 'FEATUREensIXQ4JD',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'PayType',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '付费类型。PrePaid(目前只支持此种):包年包月',
+ 'description' => 'The billing method. Set the value to **PrePaid**. PrePaid specifies the subscription billing method.'."\n"
+ ."\n"
+ .'> Only PrePaid is supported.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'PrePaid',
+ 'enum' => [
+ 'PrePaid',
+ ],
+ ],
+ ],
+ [
+ 'name' => 'EnsRegionId',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => 'ENS节点ID。',
+ 'description' => 'The ID of the Edge Node Service (ENS) node.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'cn-guiyang-12',
+ ],
+ ],
+ [
+ 'name' => 'ServerType',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '服务器规格。',
+ 'description' => 'The specification of the ARM server. Examples:'."\n"
+ ."\n"
+ .'* cas.cf53r'."\n"
+ .'* cas.cf52r'."\n"
+ .'* cas.cf52m1r'."\n"
+ .'* cas.tg52g2'."\n"
+ .'* ens.afq-c2m3i.medium'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => ' cas.cf53r',
+ 'enum' => [],
+ ],
+ ],
+ [
+ 'name' => 'InstanceType',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => 'AIC容器实例规格。',
+ 'description' => 'The specification of the Android in Container (AIC) instance. Examples:'."\n"
+ ."\n"
+ .'* aic.cf52r.c1.np'."\n"
+ .'* aic.cf52r.c2.np'."\n"
+ .'* aic.cf53r.c2.np'."\n"
+ .'* aic.cf52r.c4.np'."\n"
+ .'* aic.cf53r.c3.np'."\n"
+ .'* aic.cf52r.c3.np'."\n"
+ .'* aic.cf53r.c1.np'."\n"
+ .'* aic.cf53r.c5.np'."\n"
+ .'* aic.cf53r.c6'."\n"
+ .'* aic.cf53r.c4.np'."\n"
+ .'* aic.cf53r.c6.np'."\n"
+ .'* aic.cf53r.c7.np'."\n"
+ .'* aic.cf52m1r.c5.np'."\n"
+ .'* aic.cf53r.c8.np'."\n"
+ .'* aic.cf53r.c7'."\n"
+ .'* aic.cf52m1r.c2.np'."\n"
+ .'* aic.cf52m1r.c1.np'."\n"
+ .'* aic.cf52m1r.c3.np'."\n"
+ .'* aic.cf52m1r.c4.np'."\n"
+ .'* aic.cf52m1r.c6'."\n"
+ .'* ens.a6c2'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'enumValueTitles' => [],
+ 'example' => 'aic.cf53r.c6.np',
+ 'enum' => [],
+ ],
+ ],
+ [
+ 'name' => 'ImageId',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '镜像ID。',
+ 'description' => 'The ID of the image.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'yourImage ID',
+ ],
+ ],
+ [
+ 'name' => 'Resolution',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '分辨率。目前取值'."\n"
+ .'1920*1080'."\n"
+ .'1280*720'."\n"
+ .'1080*1920'."\n"
+ .'720*1280',
+ 'description' => 'The resolution. Examples:'."\n"
+ ."\n"
+ .'* 1920\\*864'."\n"
+ .'* 1080\\*1920'."\n"
+ .'* 1920\\*1080'."\n"
+ .'* 720\\*1280'."\n"
+ .'* 2400\\*1080'."\n"
+ .'* 1080\\*2400'."\n"
+ .'* 1280\\*720'."\n"
+ .'* 864\\*1920'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'enumValueTitles' => [],
+ 'example' => '720*1280',
+ 'enum' => [
+ '1920*1080',
+ '1080*1920',
+ '1280*720',
+ '720*1280',
+ '2400*1080',
+ '1920*864',
+ '1080*2400',
+ '864*1920',
+ ],
+ ],
+ ],
+ [
+ 'name' => 'Frequency',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The refresh rate. Unit: Hz. Valid values: 30 and 60.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'example' => '30',
+ 'default' => '30',
+ 'enum' => [
+ '30',
+ '60',
+ '120',
+ ],
+ ],
+ ],
+ [
+ 'name' => 'KeyPairName',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => 'keypair名称',
+ 'description' => 'The name of the key pair.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'TestKeyPairName',
+ ],
+ ],
+ [
+ 'name' => 'Amount',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '数量,最大支持10',
+ 'description' => 'The number of instances to create. Valid values: **1** to **100**.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => true,
+ 'maximum' => '10',
+ 'minimum' => '1',
+ 'example' => '1',
+ ],
+ ],
+ [
+ 'name' => 'Period',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '购买周期。',
+ 'description' => 'The subscription duration of the instance.'."\n"
+ ."\n"
+ .'* If you leave PeriodUnit empty, the instance is purchased on a monthly basis. Valid values: Day and Month.'."\n"
+ .'* If you set PeriodUnit to Day, you can set Period only to 3.'."\n"
+ .'* If you set PeriodUnit to Month, you can set Period to a value within the range of \\[1,9], or set the value to 12.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'example' => '1',
+ ],
+ ],
+ [
+ 'name' => 'PeriodUnit',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => 'Month(默认):按月计费的价格单位。',
+ 'description' => 'The unit of the subscription duration.'."\n"
+ ."\n"
+ .'* If you leave PeriodUnit empty, the instance is purchased on a monthly basis. Valid values: Day and Month.'."\n"
+ .'* If you set PeriodUnit to Day, you can set Period only to 3.'."\n"
+ .'* If you set PeriodUnit to Month, you can set Period to a value within the range of \\[1,9], or set the value to 12.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'Month',
+ ],
+ ],
+ [
+ 'name' => 'AutoRenew',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '是否自动续费,默认为false。',
+ 'description' => 'Specifies whether to enable auto-renewal for the subscription. Valid values:'."\n"
+ ."\n"
+ .'* true'."\n"
+ .'* false (default)'."\n",
+ 'type' => 'boolean',
+ 'required' => false,
+ 'example' => 'false',
+ ],
+ ],
+ [
+ 'name' => 'NameSpace',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The namespace.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'pre',
+ 'default' => 'default',
+ ],
+ ],
+ [
+ 'name' => 'ServerName',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The name of the service.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'AIC-Server',
+ 'maxLength' => 255,
+ 'minLength' => 0,
+ ],
+ ],
+ [
+ 'name' => 'AutoUseCoupon',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '是否使用代金券。'."\n"
+ .'取值:true;false'."\n"
+ .'默认值:true',
+ 'description' => 'Specifies whether to use coupons. Valid values:'."\n"
+ ."\n"
+ .'* true'."\n"
+ .'* false (default)'."\n",
+ 'type' => 'boolean',
+ 'required' => false,
+ 'example' => 'true',
+ 'default' => 'true',
+ ],
+ ],
+ [
+ 'name' => 'EnvironmentVar',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'Set one or more environment variables during EAIS instance initialization.',
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '[object Object]',
+ ],
+ ],
+ [
+ 'name' => 'Cidr',
+ 'in' => 'query',
+ 'schema' => [
+ 'type' => 'string',
+ 'required' => false,
+ ],
+ ],
+ [
+ 'name' => 'Tag',
+ 'in' => 'query',
+ 'style' => 'repeatList',
+ 'schema' => [
+ 'type' => 'array',
+ 'items' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'Key' => [
+ 'type' => 'string',
+ ],
+ 'Value' => [
+ 'type' => 'string',
+ ],
+ ],
+ ],
+ 'maxItems' => 100,
+ ],
+ ],
+ [
+ 'name' => 'InstanceBillingCycle',
+ 'in' => 'query',
+ 'schema' => [
+ 'type' => 'string',
+ 'required' => false,
+ 'enum' => [
+ 'Hour',
+ 'Day',
+ ],
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984',
+ ],
+ 'OrderId' => [
+ 'description' => 'The ID of the order.'."\n",
+ 'type' => 'string',
+ 'example' => '212630314490***',
+ ],
+ 'InstanceIds' => [
+ 'description' => 'The IDs of instances.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The ID of the instance.'."\n",
+ 'type' => 'string',
+ 'example' => 'cas-instance****',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'CallInterface',
+ 'errorMessage' => 'Call Interface Happen Error.',
+ ],
+ [
+ 'errorCode' => 'ens.interface.error',
+ 'errorMessage' => 'Failed to call API.',
+ ],
+ [
+ 'errorCode' => 'EnsNodeStockIsNotEnough',
+ 'errorMessage' => 'Insufficient inventory of purchased resources.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameterEnsRegionId',
+ 'errorMessage' => 'The entered node information is invalid. Please enter the correct node information.',
+ ],
+ [
+ 'errorCode' => 'InvalidImageIdNotFound',
+ 'errorMessage' => 'The image information entered is invalid. Please re-enter valid image information.',
+ ],
+ [
+ 'errorCode' => 'OrderFailed',
+ 'errorMessage' => 'Order failed, please try again.',
+ ],
+ [
+ 'errorCode' => 'SystemUseCouponFailed',
+ 'errorMessage' => 'Failed to use coupon.',
+ ],
+ [
+ 'errorCode' => 'SystemUseStoredCardFailed',
+ 'errorMessage' => 'Failed to use stored value card.',
+ ],
+ [
+ 'errorCode' => 'System.SystemError',
+ 'errorMessage' => 'system error.',
+ ],
+ [
+ 'errorCode' => 'SystemCanRefundCheckFailed',
+ 'errorMessage' => 'The business rule check of the cloud product fails, and this order cannot be refunded.',
+ ],
+ [
+ 'errorCode' => 'SystemOtsSystem',
+ 'errorMessage' => 'ots storage error.',
+ ],
+ [
+ 'errorCode' => 'SystemQueryImmortalError',
+ 'errorMessage' => 'Failed to call Juxiange.',
+ ],
+ [
+ 'errorCode' => 'SystemQueryInstanceInfoFailed',
+ 'errorMessage' => 'Failed to find instance information.',
+ ],
+ [
+ 'errorCode' => 'SystemResellerPayCalRefundUnitError',
+ 'errorMessage' => 'Ecological payment channel calculation unsubscribe information error.',
+ ],
+ [
+ 'errorCode' => 'SystemSaleValidateFailed',
+ 'errorMessage' => 'Sales Expression Validation System Error.',
+ ],
+ [
+ 'errorCode' => 'SystemTransferDeleteOldResourceFailed',
+ 'errorMessage' => 'Failed to delete the transferred instance in the transfer order.',
+ ],
+ [
+ 'errorCode' => 'SystemUnSupportOperationType',
+ 'errorMessage' => 'Unsupported operation type.',
+ ],
+ [
+ 'errorCode' => 'RiskRiskControlRejection',
+ 'errorMessage' => 'Risk Control Rejection.',
+ ],
+ [
+ 'errorCode' => 'AuthRamAuthFailed',
+ 'errorMessage' => 'ram sub-account authentication failed.',
+ ],
+ [
+ 'errorCode' => 'CommodityInvalidComponent',
+ 'errorMessage' => 'The module you purchased is illegal, please re-select.',
+ ],
+ [
+ 'errorCode' => 'CommodityInvalidItemCode',
+ 'errorMessage' => 'Specification code illegal.',
+ ],
+ [
+ 'errorCode' => 'PriceHsfTimeoutError',
+ 'errorMessage' => 'Time out when calling the request for quotation interface.',
+ ],
+ [
+ 'errorCode' => 'PricePatingConfigError',
+ 'errorMessage' => 'Inquiry related goods configuration error.',
+ ],
+ [
+ 'errorCode' => 'PricePricingPlanResultNotFound',
+ 'errorMessage' => 'Pricing plan price result not found.',
+ ],
+ [
+ 'errorCode' => 'PriceRatingGetRatingpricingPlan',
+ 'errorMessage' => 'Obtain a valid pricing plan exception.',
+ ],
+ [
+ 'errorCode' => 'OrderAbnormalResourceStatusForRenew',
+ 'errorMessage' => 'Invalid resource status for renewal.',
+ ],
+ [
+ 'errorCode' => 'OrderAccountStatusIllegal',
+ 'errorMessage' => 'Illegal account status.',
+ ],
+ [
+ 'errorCode' => 'OrderArrearage',
+ 'errorMessage' => 'User Arrears.',
+ ],
+ [
+ 'errorCode' => 'OrderBidUserOrderForbidden',
+ 'errorMessage' => 'Bid users cannot buy on the official website.',
+ ],
+ [
+ 'errorCode' => 'OrderCaptureFailed',
+ 'errorMessage' => 'The paid order of the instance has not been deducted successfully.',
+ ],
+ [
+ 'errorCode' => 'OrderExistsReleasedInstances',
+ 'errorMessage' => 'There are already released instances.',
+ ],
+ [
+ 'errorCode' => 'OrderGroupOrderSizeOverflow',
+ 'errorMessage' => 'The quantity of bound combined payment order exceeds the limit.',
+ ],
+ [
+ 'errorCode' => 'OrderHomeCurrencyCanNotDowngrade',
+ 'errorMessage' => 'Users in current currency cannot downgrade.',
+ ],
+ [
+ 'errorCode' => 'OrderHomeCurrencyCanNotUpgradeByValueTransfer',
+ 'errorMessage' => 'Users of current currency cannot upgrade through residual value transfer.',
+ ],
+ [
+ 'errorCode' => 'OrderInstanceHasInactiveChange',
+ 'errorMessage' => 'Instances exist temporary upgrade.',
+ ],
+ [
+ 'errorCode' => 'OrderInstHasUnpaidOrder',
+ 'errorMessage' => 'The instance has an unpaid order.',
+ ],
+ [
+ 'errorCode' => 'OrderInstHasUnsettledBills',
+ 'errorMessage' => 'The instance has an unsettled bill.',
+ ],
+ [
+ 'errorCode' => 'OrderLatestOrderIsHandling',
+ 'errorMessage' => 'Recent order is being processed, please try again later.',
+ ],
+ [
+ 'errorCode' => 'OrderMainOrderSizeOverflow',
+ 'errorMessage' => 'The quantity of the main order exceeds the limit.',
+ ],
+ [
+ 'errorCode' => 'OrderMissingModuleInfoError',
+ 'errorMessage' => 'Module parameter not specified.',
+ ],
+ [
+ 'errorCode' => 'OrderNoRealNameAuthentication',
+ 'errorMessage' => 'No real-name authentication.',
+ ],
+ [
+ 'errorCode' => 'OrderNotFound',
+ 'errorMessage' => 'The specified order information is not found.',
+ ],
+ [
+ 'errorCode' => 'OrderOpend',
+ 'errorMessage' => 'You have activated this product.',
+ ],
+ [
+ 'errorCode' => 'OrderPeriodInvalid',
+ 'errorMessage' => 'Illegal order cycle.',
+ ],
+ [
+ 'errorCode' => 'OrderQuantityInvalid',
+ 'errorMessage' => 'Illegal quantity ordered.',
+ ],
+ [
+ 'errorCode' => 'OrderQueryInstanceError',
+ 'errorMessage' => 'Query instance error.',
+ ],
+ [
+ 'errorCode' => 'OrderQueryInstanceNotExists',
+ 'errorMessage' => 'Instance data does not exist.',
+ ],
+ [
+ 'errorCode' => 'OrderQueryOrderExchangeRateFail',
+ 'errorMessage' => 'Failed to query order exchange rate information.',
+ ],
+ [
+ 'errorCode' => 'OrderQueryUserSettleInfoFail',
+ 'errorMessage' => 'Failed to query user settlement information.',
+ ],
+ [
+ 'errorCode' => 'OrderQuotaExceeded',
+ 'errorMessage' => 'Quantity exceeds limit.',
+ ],
+ [
+ 'errorCode' => 'OrderSysConstraintInvalid',
+ 'errorMessage' => 'System constraint check failed.',
+ ],
+ [
+ 'errorCode' => 'OrderTradeCompleteSettleInfoFail',
+ 'errorMessage' => 'Failed to complete the order settlement currency amount information.',
+ ],
+ [
+ 'errorCode' => 'TradeTradeOrderAfterPayCheckError',
+ 'errorMessage' => 'You have already paid for the subsequent orders of this instance. The current order has been automatically voided and you cannot pay any more.',
+ ],
+ [
+ 'errorCode' => 'PurchaseExistRenewchangeProd',
+ 'errorMessage' => 'There is a renewal change subscription that has not yet taken effect.',
+ ],
+ [
+ 'errorCode' => 'PurchaseExistToBeValidProdRuleError',
+ 'errorMessage' => 'Currently, there are temporary orders that are not in effect, and the upgrade operation cannot be performed.',
+ ],
+ [
+ 'errorCode' => 'PurchaseExistToBeValidRenewChangeProdRuleError',
+ 'errorMessage' => 'Currently, there is an uneffective renewal change subscription, and temporary upgrade operation cannot be performed.',
+ ],
+ [
+ 'errorCode' => 'PurchaseExistValidProdRuleError',
+ 'errorMessage' => 'Currently, there is a temporary order in effect, and operations such as upgrade/downgrade/expansion/pre-transfer cannot be performed.',
+ ],
+ [
+ 'errorCode' => 'ProductInstanceReleased',
+ 'errorMessage' => 'Instance released.',
+ ],
+ [
+ 'errorCode' => 'ProductInstanceTypeNotSupported',
+ 'errorMessage' => 'The instance type is not supported.',
+ ],
+ [
+ 'errorCode' => 'PatRiskRejectForTradeData',
+ 'errorMessage' => 'Payment order problem leads to risk control rejection.',
+ ],
+ [
+ 'errorCode' => 'PayAccountBookNotExist',
+ 'errorMessage' => 'There is no insufficient account balance in the account book, please retry after recharging.',
+ ],
+ [
+ 'errorCode' => 'PayAmountLimitExceeded',
+ 'errorMessage' => 'Payment limit exceeded, please resubmit.',
+ ],
+ [
+ 'errorCode' => 'PayBeforePayRiskRuleValidateFailed',
+ 'errorMessage' => 'The payment was blocked by risk control, and the payment failed.',
+ ],
+ [
+ 'errorCode' => 'PayCounponNotExist',
+ 'errorMessage' => 'Counpon does not exist.',
+ ],
+ [
+ 'errorCode' => 'PayCouponAmountNotEnough',
+ 'errorMessage' => 'Insufficient voucher balance or expired.',
+ ],
+ [
+ 'errorCode' => 'PayCouponNotMeetConsumptionRule',
+ 'errorMessage' => 'The coupon does not meet the conditions for use.',
+ ],
+ [
+ 'errorCode' => 'PayCurrencyInconsistency',
+ 'errorMessage' => 'Currency mismatch.',
+ ],
+ [
+ 'errorCode' => 'PayCurrencyNotSupported',
+ 'errorMessage' => 'Currency not supported.',
+ ],
+ [
+ 'errorCode' => 'PayForbiddenNoReasonFefund',
+ 'errorMessage' => 'Banned five days no reason refund.',
+ ],
+ [
+ 'errorCode' => 'PayHsfTimeoutError',
+ 'errorMessage' => 'Call payment system timeout.',
+ ],
+ [
+ 'errorCode' => 'PayInsufficientBalance',
+ 'errorMessage' => 'Account balance is insufficient, please recharge and try again.',
+ ],
+ [
+ 'errorCode' => 'PayInvalidCreditCard',
+ 'errorMessage' => 'Invalid credit card.',
+ ],
+ [
+ 'errorCode' => 'PayInvalidPayMethod',
+ 'errorMessage' => 'Illegal payment method.',
+ ],
+ [
+ 'errorCode' => 'PayMegrePayOrderHasThanOneChagreChannel',
+ 'errorMessage' => 'Payment failed, please retry or submit work order feedback.',
+ ],
+ [
+ 'errorCode' => 'PayNoCreditCard',
+ 'errorMessage' => 'No valid payment method, please check the payment method and try again.',
+ ],
+ [
+ 'errorCode' => 'PayOrderPayTimeInvalid',
+ 'errorMessage' => 'Order effective time is invalid.',
+ ],
+ [
+ 'errorCode' => 'PayPartRefundNotSupport',
+ 'errorMessage' => 'Not Capture, no partial refund.',
+ ],
+ [
+ 'errorCode' => 'PayPayChannelPayOrderInvalidStatus',
+ 'errorMessage' => 'Illegal status of payment order in payment channel.',
+ ],
+ [
+ 'errorCode' => 'PayPayChannelPayOrderNotExist',
+ 'errorMessage' => 'Payment channel payment order does not exist.',
+ ],
+ [
+ 'errorCode' => 'PayPayerAccountIllegal',
+ 'errorMessage' => 'Illegal payment account.',
+ ],
+ [
+ 'errorCode' => 'PayPayFailedParentRelationchanged',
+ 'errorMessage' => 'If the financial custody relationship changes, please void the order and place a new order for payment.',
+ ],
+ [
+ 'errorCode' => 'PayPayForbidUserCoupon',
+ 'errorMessage' => 'Coupon prohibited for orders.',
+ ],
+ [
+ 'errorCode' => 'PayQueryAvailableAmountFailed',
+ 'errorMessage' => 'Failed to query user availability, please try again later.',
+ ],
+ [
+ 'errorCode' => 'PayQueryAvailableEnduserAmountFailed',
+ 'errorMessage' => 'Failed to query the availability of quota direct customer main user, please try again later.',
+ ],
+ [
+ 'errorCode' => 'PayQueryParentRelationshipFailed',
+ 'errorMessage' => 'Failed to query current user hosting relationship, please try again later.',
+ ],
+ [
+ 'errorCode' => 'PayQueryPayChangeChannelNotEqual',
+ 'errorMessage' => 'Multi-order payment channels are inconsistent, please check whether the original order data payment channel is correct.',
+ ],
+ [
+ 'errorCode' => 'PayRefundFailed',
+ 'errorMessage' => 'Accumulated refund amount exceeds payment order amount.',
+ ],
+ [
+ 'errorCode' => 'PayResellerPayGetUrlError',
+ 'errorMessage' => 'Order payment failed, please try again later.',
+ ],
+ [
+ 'errorCode' => 'PayRiskRejectForPayerAccount',
+ 'errorMessage' => 'Payment account problem leads to risk control rejection.',
+ ],
+ [
+ 'errorCode' => 'PayStoredCardNotExist',
+ 'errorMessage' => 'Stored value card does not exist.',
+ ],
+ [
+ 'errorCode' => 'PaySystemError',
+ 'errorMessage' => 'Error calling payment system.',
+ ],
+ [
+ 'errorCode' => 'PayTaxCalcFailed',
+ 'errorMessage' => 'Failed to get user tax address.',
+ ],
+ [
+ 'errorCode' => 'PayWithholdingAgreementIllegal',
+ 'errorMessage' => 'Withholding Agreement Status Illegal.',
+ ],
+ [
+ 'errorCode' => 'AccountAliyunAccountFrozen',
+ 'errorMessage' => 'Alibaba Cloud account is frozen.',
+ ],
+ [
+ 'errorCode' => 'AccountAliyunAccountNotExist',
+ 'errorMessage' => 'Alibaba Cloud account does not exist.',
+ ],
+ [
+ 'errorCode' => 'RefundRefundInstanceNotFound',
+ 'errorMessage' => 'Unable to find instance information.',
+ ],
+ [
+ 'errorCode' => 'RefundRefundNoValidProd',
+ 'errorMessage' => 'Refund is not available to unsubscribe.',
+ ],
+ [
+ 'errorCode' => 'RefundRefundParamInvalid',
+ 'errorMessage' => 'Abnormal refund parameter.',
+ ],
+ [
+ 'errorCode' => 'RefundRefundQueryOrderFail',
+ 'errorMessage' => 'Failed to query order for refund field.',
+ ],
+ [
+ 'errorCode' => 'SystemConcurrentOperate',
+ 'errorMessage' => 'Concurrent operation causes failure.',
+ ],
+ [
+ 'errorCode' => 'PricePricingPlanNotFound',
+ 'errorMessage' => 'Pricing plan tree not found.',
+ ],
+ [
+ 'errorCode' => 'OrderInstanceHasTempUpgrade',
+ 'errorMessage' => 'Instances exist temporary upgrade.',
+ ],
+ [
+ 'errorCode' => 'PayQueryParentRelationchangedFailed',
+ 'errorMessage' => 'The financial custody relationship may change, please refresh and pay again.',
+ ],
+ [
+ 'errorCode' => 'PayforCreditPayInsufficientBalance',
+ 'errorMessage' => 'Insufficient quota, please contact your channel partner to increase the quota.',
+ ],
+ [
+ 'errorCode' => 'PayforAccountMoneyValidateError',
+ 'errorMessage' => 'The available amount of your channel partner\'s account is insufficient, please contact your channel partner to recharge in time.',
+ ],
+ [
+ 'errorCode' => 'BasicInfoUncompleted',
+ 'errorMessage' => 'You have not completed your basic personal information. Please complete the information and re-operate it.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ [
+ 'errorCode' => 'InvalidCidr',
+ 'errorMessage' => 'the cidr information filled in is illegal, please re-match.',
+ ],
+ ],
+ ],
+ 'eventInfo' => [
+ 'enable' => false,
+ 'eventNames' => [],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\",\\n \\"OrderId\\": \\"212630314490***\\",\\n \\"InstanceIds\\": [\\n \\"cas-instance****\\"\\n ]\\n}","errorExample":""},{"type":"xml","example":"<CreateARMServerInstancesResponse>\\n <RequestId>CEF72CEB-54B6-4AE8-B225-F876FF7BA984</RequestId>\\n <OrderId>212630314490***</OrderId>\\n <InstanceIds>cas-instance****</InstanceIds>\\n</CreateARMServerInstancesResponse>","errorExample":""}]',
+ 'title' => 'CreateARMServerInstances',
+ ],
+ 'RenewARMServerInstance' => [
+ 'summary' => 'Renews a subscription Android in Container (AIC) instance.',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'update',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'InstanceId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the instance that you want to renew.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'yourInstance ID',
+ ],
+ ],
+ [
+ 'name' => 'Period',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The renewal period. By default, instances are renewed on a monthly basis. Valid values: 1, 2, 3, 4, 5, 6, 7, 8, 9, and 12.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => true,
+ 'example' => '1',
+ ],
+ ],
+ [
+ 'name' => 'PeriodUnit',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The unit of the renewal period. Valid values:'."\n"
+ ."\n"
+ .'* Month (default)'."\n"
+ .'* Year'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'Month',
+ 'enum' => [
+ 'Year',
+ 'Month',
+ ],
+ ],
+ ],
+ [
+ 'name' => 'AutoRenew',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'Specifies whether to enable auto-renewal for the premium bandwidth plan. Valid values:'."\n"
+ ."\n"
+ .'* **true**.'."\n"
+ .'* **false** (default).'."\n",
+ 'type' => 'boolean',
+ 'required' => false,
+ 'example' => 'true',
+ 'default' => 'false',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => '370E61E0-6E6E-50FE-9259-EE706C55ABF1',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'OrderFailed',
+ 'errorMessage' => 'Order failed, please try again.',
+ ],
+ [
+ 'errorCode' => 'SystemUseCouponFailed',
+ 'errorMessage' => 'Failed to use coupon.',
+ ],
+ [
+ 'errorCode' => 'SystemUseStoredCardFailed',
+ 'errorMessage' => 'Failed to use stored value card.',
+ ],
+ [
+ 'errorCode' => 'System.SystemError',
+ 'errorMessage' => 'system error.',
+ ],
+ [
+ 'errorCode' => 'SystemCanRefundCheckFailed',
+ 'errorMessage' => 'The business rule check of the cloud product fails, and this order cannot be refunded.',
+ ],
+ [
+ 'errorCode' => 'SystemOtsSystem',
+ 'errorMessage' => 'ots storage error.',
+ ],
+ [
+ 'errorCode' => 'SystemQueryImmortalError',
+ 'errorMessage' => 'Failed to call Juxiange.',
+ ],
+ [
+ 'errorCode' => 'SystemQueryInstanceInfoFailed',
+ 'errorMessage' => 'Failed to find instance information.',
+ ],
+ [
+ 'errorCode' => 'SystemResellerPayCalRefundUnitError',
+ 'errorMessage' => 'Ecological payment channel calculation unsubscribe information error.',
+ ],
+ [
+ 'errorCode' => 'SystemSaleValidateFailed',
+ 'errorMessage' => 'Sales Expression Validation System Error.',
+ ],
+ [
+ 'errorCode' => 'SystemTransferDeleteOldResourceFailed',
+ 'errorMessage' => 'Failed to delete the transferred instance in the transfer order.',
+ ],
+ [
+ 'errorCode' => 'SystemUnSupportOperationType',
+ 'errorMessage' => 'Unsupported operation type.',
+ ],
+ [
+ 'errorCode' => 'RiskRiskControlRejection',
+ 'errorMessage' => 'Risk Control Rejection.',
+ ],
+ [
+ 'errorCode' => 'AuthRamAuthFailed',
+ 'errorMessage' => 'ram sub-account authentication failed.',
+ ],
+ [
+ 'errorCode' => 'CommodityInvalidComponent',
+ 'errorMessage' => 'The module you purchased is illegal, please re-select.',
+ ],
+ [
+ 'errorCode' => 'CommodityInvalidItemCode',
+ 'errorMessage' => 'Specification code illegal.',
+ ],
+ [
+ 'errorCode' => 'PriceHsfTimeoutError',
+ 'errorMessage' => 'Time out when calling the request for quotation interface.',
+ ],
+ [
+ 'errorCode' => 'PricePatingConfigError',
+ 'errorMessage' => 'Inquiry related goods configuration error.',
+ ],
+ [
+ 'errorCode' => 'PricePricingPlanResultNotFound',
+ 'errorMessage' => 'Pricing plan price result not found.',
+ ],
+ [
+ 'errorCode' => 'PriceRatingGetRatingpricingPlan',
+ 'errorMessage' => 'Obtain a valid pricing plan exception.',
+ ],
+ [
+ 'errorCode' => 'OrderAbnormalResourceStatusForRenew',
+ 'errorMessage' => 'Invalid resource status for renewal.',
+ ],
+ [
+ 'errorCode' => 'OrderAccountStatusIllegal',
+ 'errorMessage' => 'Illegal account status.',
+ ],
+ [
+ 'errorCode' => 'OrderArrearage',
+ 'errorMessage' => 'User Arrears.',
+ ],
+ [
+ 'errorCode' => 'OrderBidUserOrderForbidden',
+ 'errorMessage' => 'Bid users cannot buy on the official website.',
+ ],
+ [
+ 'errorCode' => 'OrderCaptureFailed',
+ 'errorMessage' => 'The paid order of the instance has not been deducted successfully.',
+ ],
+ [
+ 'errorCode' => 'OrderExistsReleasedInstances',
+ 'errorMessage' => 'There are already released instances.',
+ ],
+ [
+ 'errorCode' => 'OrderGroupOrderSizeOverflow',
+ 'errorMessage' => 'The quantity of bound combined payment order exceeds the limit.',
+ ],
+ [
+ 'errorCode' => 'OrderHomeCurrencyCanNotDowngrade',
+ 'errorMessage' => 'Users in current currency cannot downgrade.',
+ ],
+ [
+ 'errorCode' => 'OrderHomeCurrencyCanNotUpgradeByValueTransfer',
+ 'errorMessage' => 'Users of current currency cannot upgrade through residual value transfer.',
+ ],
+ [
+ 'errorCode' => 'OrderInstanceHasInactiveChange',
+ 'errorMessage' => 'Instances exist temporary upgrade.',
+ ],
+ [
+ 'errorCode' => 'OrderInstHasUnpaidOrder',
+ 'errorMessage' => 'The instance has an unpaid order.',
+ ],
+ [
+ 'errorCode' => 'OrderInstHasUnsettledBills',
+ 'errorMessage' => 'The instance has an unsettled bill.',
+ ],
+ [
+ 'errorCode' => 'OrderLatestOrderIsHandling',
+ 'errorMessage' => 'Recent order is being processed, please try again later.',
+ ],
+ [
+ 'errorCode' => 'OrderMainOrderSizeOverflow',
+ 'errorMessage' => 'The quantity of the main order exceeds the limit.',
+ ],
+ [
+ 'errorCode' => 'OrderMissingModuleInfoError',
+ 'errorMessage' => 'Module parameter not specified.',
+ ],
+ [
+ 'errorCode' => 'OrderNoRealNameAuthentication',
+ 'errorMessage' => 'No real-name authentication.',
+ ],
+ [
+ 'errorCode' => 'OrderNotFound',
+ 'errorMessage' => 'The specified order information is not found.',
+ ],
+ [
+ 'errorCode' => 'OrderOpend',
+ 'errorMessage' => 'You have activated this product.',
+ ],
+ [
+ 'errorCode' => 'OrderPeriodInvalid',
+ 'errorMessage' => 'Illegal order cycle.',
+ ],
+ [
+ 'errorCode' => 'OrderQuantityInvalid',
+ 'errorMessage' => 'Illegal quantity ordered.',
+ ],
+ [
+ 'errorCode' => 'OrderQueryInstanceError',
+ 'errorMessage' => 'Query instance error.',
+ ],
+ [
+ 'errorCode' => 'OrderQueryInstanceNotExists',
+ 'errorMessage' => 'Instance data does not exist.',
+ ],
+ [
+ 'errorCode' => 'OrderQueryOrderExchangeRateFail',
+ 'errorMessage' => 'Failed to query order exchange rate information.',
+ ],
+ [
+ 'errorCode' => 'OrderQueryUserSettleInfoFail',
+ 'errorMessage' => 'Failed to query user settlement information.',
+ ],
+ [
+ 'errorCode' => 'OrderQuotaExceeded',
+ 'errorMessage' => 'Quantity exceeds limit.',
+ ],
+ [
+ 'errorCode' => 'OrderSysConstraintInvalid',
+ 'errorMessage' => 'System constraint check failed.',
+ ],
+ [
+ 'errorCode' => 'OrderTradeCompleteSettleInfoFail',
+ 'errorMessage' => 'Failed to complete the order settlement currency amount information.',
+ ],
+ [
+ 'errorCode' => 'TradeTradeOrderAfterPayCheckError',
+ 'errorMessage' => 'You have already paid for the subsequent orders of this instance. The current order has been automatically voided and you cannot pay any more.',
+ ],
+ [
+ 'errorCode' => 'PurchaseExistRenewchangeProd',
+ 'errorMessage' => 'There is a renewal change subscription that has not yet taken effect.',
+ ],
+ [
+ 'errorCode' => 'PurchaseExistToBeValidProdRuleError',
+ 'errorMessage' => 'Currently, there are temporary orders that are not in effect, and the upgrade operation cannot be performed.',
+ ],
+ [
+ 'errorCode' => 'PurchaseExistToBeValidRenewChangeProdRuleError',
+ 'errorMessage' => 'Currently, there is an uneffective renewal change subscription, and temporary upgrade operation cannot be performed.',
+ ],
+ [
+ 'errorCode' => 'PurchaseExistValidProdRuleError',
+ 'errorMessage' => 'Currently, there is a temporary order in effect, and operations such as upgrade/downgrade/expansion/pre-transfer cannot be performed.',
+ ],
+ [
+ 'errorCode' => 'ProductInstanceReleased',
+ 'errorMessage' => 'Instance released.',
+ ],
+ [
+ 'errorCode' => 'ProductInstanceTypeNotSupported',
+ 'errorMessage' => 'The instance type is not supported.',
+ ],
+ [
+ 'errorCode' => 'PatRiskRejectForTradeData',
+ 'errorMessage' => 'Payment order problem leads to risk control rejection.',
+ ],
+ [
+ 'errorCode' => 'PayAccountBookNotExist',
+ 'errorMessage' => 'There is no insufficient account balance in the account book, please retry after recharging.',
+ ],
+ [
+ 'errorCode' => 'PayAmountLimitExceeded',
+ 'errorMessage' => 'Payment limit exceeded, please resubmit.',
+ ],
+ [
+ 'errorCode' => 'PayBeforePayRiskRuleValidateFailed',
+ 'errorMessage' => 'The payment was blocked by risk control, and the payment failed.',
+ ],
+ [
+ 'errorCode' => 'PayCounponNotExist',
+ 'errorMessage' => 'Counpon does not exist.',
+ ],
+ [
+ 'errorCode' => 'PayCouponAmountNotEnough',
+ 'errorMessage' => 'Insufficient voucher balance or expired.',
+ ],
+ [
+ 'errorCode' => 'PayCouponNotMeetConsumptionRule',
+ 'errorMessage' => 'The coupon does not meet the conditions for use.',
+ ],
+ [
+ 'errorCode' => 'PayCurrencyInconsistency',
+ 'errorMessage' => 'Currency mismatch.',
+ ],
+ [
+ 'errorCode' => 'PayCurrencyNotSupported',
+ 'errorMessage' => 'Currency not supported.',
+ ],
+ [
+ 'errorCode' => 'PayForbiddenNoReasonFefund',
+ 'errorMessage' => 'Banned five days no reason refund.',
+ ],
+ [
+ 'errorCode' => 'PayHsfTimeoutError',
+ 'errorMessage' => 'Call payment system timeout.',
+ ],
+ [
+ 'errorCode' => 'PayInsufficientBalance',
+ 'errorMessage' => 'Account balance is insufficient, please recharge and try again.',
+ ],
+ [
+ 'errorCode' => 'PayInvalidCreditCard',
+ 'errorMessage' => 'Invalid credit card.',
+ ],
+ [
+ 'errorCode' => 'PayInvalidPayMethod',
+ 'errorMessage' => 'Illegal payment method.',
+ ],
+ [
+ 'errorCode' => 'PayMegrePayOrderHasThanOneChagreChannel',
+ 'errorMessage' => 'Payment failed, please retry or submit work order feedback.',
+ ],
+ [
+ 'errorCode' => 'PayNoCreditCard',
+ 'errorMessage' => 'No valid payment method, please check the payment method and try again.',
+ ],
+ [
+ 'errorCode' => 'PayOrderPayTimeInvalid',
+ 'errorMessage' => 'Order effective time is invalid.',
+ ],
+ [
+ 'errorCode' => 'PayPartRefundNotSupport',
+ 'errorMessage' => 'Not Capture, no partial refund.',
+ ],
+ [
+ 'errorCode' => 'PayPayChannelPayOrderInvalidStatus',
+ 'errorMessage' => 'Illegal status of payment order in payment channel.',
+ ],
+ [
+ 'errorCode' => 'PayPayChannelPayOrderNotExist',
+ 'errorMessage' => 'Payment channel payment order does not exist.',
+ ],
+ [
+ 'errorCode' => 'PayPayerAccountIllegal',
+ 'errorMessage' => 'Illegal payment account.',
+ ],
+ [
+ 'errorCode' => 'PayPayFailedParentRelationchanged',
+ 'errorMessage' => 'If the financial custody relationship changes, please void the order and place a new order for payment.',
+ ],
+ [
+ 'errorCode' => 'PayPayForbidUserCoupon',
+ 'errorMessage' => 'Coupon prohibited for orders.',
+ ],
+ [
+ 'errorCode' => 'PayQueryAvailableAmountFailed',
+ 'errorMessage' => 'Failed to query user availability, please try again later.',
+ ],
+ [
+ 'errorCode' => 'PayQueryAvailableEnduserAmountFailed',
+ 'errorMessage' => 'Failed to query the availability of quota direct customer main user, please try again later.',
+ ],
+ [
+ 'errorCode' => 'PayQueryParentRelationshipFailed',
+ 'errorMessage' => 'Failed to query current user hosting relationship, please try again later.',
+ ],
+ [
+ 'errorCode' => 'PayQueryPayChangeChannelNotEqual',
+ 'errorMessage' => 'Multi-order payment channels are inconsistent, please check whether the original order data payment channel is correct.',
+ ],
+ [
+ 'errorCode' => 'PayRefundFailed',
+ 'errorMessage' => 'Accumulated refund amount exceeds payment order amount.',
+ ],
+ [
+ 'errorCode' => 'PayResellerPayGetUrlError',
+ 'errorMessage' => 'Order payment failed, please try again later.',
+ ],
+ [
+ 'errorCode' => 'PayRiskRejectForPayerAccount',
+ 'errorMessage' => 'Payment account problem leads to risk control rejection.',
+ ],
+ [
+ 'errorCode' => 'PayStoredCardNotExist',
+ 'errorMessage' => 'Stored value card does not exist.',
+ ],
+ [
+ 'errorCode' => 'PaySystemError',
+ 'errorMessage' => 'Error calling payment system.',
+ ],
+ [
+ 'errorCode' => 'PayTaxCalcFailed',
+ 'errorMessage' => 'Failed to get user tax address.',
+ ],
+ [
+ 'errorCode' => 'PayWithholdingAgreementIllegal',
+ 'errorMessage' => 'Withholding Agreement Status Illegal.',
+ ],
+ [
+ 'errorCode' => 'AccountAliyunAccountFrozen',
+ 'errorMessage' => 'Alibaba Cloud account is frozen.',
+ ],
+ [
+ 'errorCode' => 'AccountAliyunAccountNotExist',
+ 'errorMessage' => 'Alibaba Cloud account does not exist.',
+ ],
+ [
+ 'errorCode' => 'RefundRefundInstanceNotFound',
+ 'errorMessage' => 'Unable to find instance information.',
+ ],
+ [
+ 'errorCode' => 'RefundRefundNoValidProd',
+ 'errorMessage' => 'Refund is not available to unsubscribe.',
+ ],
+ [
+ 'errorCode' => 'RefundRefundParamInvalid',
+ 'errorMessage' => 'Abnormal refund parameter.',
+ ],
+ [
+ 'errorCode' => 'RefundRefundQueryOrderFail',
+ 'errorMessage' => 'Failed to query order for refund field.',
+ ],
+ [
+ 'errorCode' => 'SystemConcurrentOperate',
+ 'errorMessage' => 'Concurrent operation causes failure.',
+ ],
+ [
+ 'errorCode' => 'PricePricingPlanNotFound',
+ 'errorMessage' => 'Pricing plan tree not found.',
+ ],
+ [
+ 'errorCode' => 'OrderInstanceHasTempUpgrade',
+ 'errorMessage' => 'Instances exist temporary upgrade.',
+ ],
+ [
+ 'errorCode' => 'PayQueryParentRelationchangedFailed',
+ 'errorMessage' => 'The financial custody relationship may change, please refresh and pay again.',
+ ],
+ [
+ 'errorCode' => 'PayforCreditPayInsufficientBalance',
+ 'errorMessage' => 'Insufficient quota, please contact your channel partner to increase the quota.',
+ ],
+ [
+ 'errorCode' => 'PayforAccountMoneyValidateError',
+ 'errorMessage' => 'The available amount of your channel partner\'s account is insufficient, please contact your channel partner to recharge in time.',
+ ],
+ [
+ 'errorCode' => 'BasicInfoUncompleted',
+ 'errorMessage' => 'You have not completed your basic personal information. Please complete the information and re-operate it.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"370E61E0-6E6E-50FE-9259-EE706C55ABF1\\"\\n}","errorExample":""},{"type":"xml","example":"<RenewARMServerInstanceResponse>\\n <RequestId>370E61E0-6E6E-50FE-9259-EE706C55ABF1</RequestId>\\n</RenewARMServerInstanceResponse>","errorExample":""}]',
+ 'title' => 'RenewARMServerInstance',
+ ],
+ 'DescribeAICImages' => [
+ 'summary' => 'Queries information about images of the Android in Container (AIC) instance.',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'none',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeNodes' => [
+ 'FEATUREensZ35IDE',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'ImageId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The image ID of the AIC instance.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'm-ad0ddaddc2d54adeaa09b7c0f1e****',
+ ],
+ ],
+ [
+ 'name' => 'ImageUrl',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The URL of the AIC image repository.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '****.alibaba-inc.com/aic/socimage:test',
+ ],
+ ],
+ [
+ 'name' => 'PageNumber',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The page number. Pages start from page **1**. Default value: **1**.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '1',
+ ],
+ ],
+ [
+ 'name' => 'PageSize',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The number of entries per page. The maximum value is **100**. Default value: **10**.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '10',
+ ],
+ ],
+ [
+ 'name' => 'Status',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The status of the image. Valid values:'."\n"
+ ."\n"
+ .'* **verifying**'."\n"
+ .'* **disable**'."\n"
+ .'* **available**'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'enumValueTitles' => [
+ 'verifying' => 'verifying',
+ 'disable' => 'disable',
+ 'available' => 'available',
+ ],
+ 'example' => 'available',
+ ],
+ ],
+ [
+ 'name' => 'MinDate',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The beginning of the time range to query. Specify the time in the 2006-01-02 format. By default, the time range to query is not restricted.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '2022-01-02',
+ ],
+ ],
+ [
+ 'name' => 'MaxDate',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The end of the time range to query. Specify the time in the 2006-01-02 format. By default, the time range to query is not restricted.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '2022-02-02',
+ ],
+ ],
+ [
+ 'name' => 'ImageType',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The type of the image. Valid values:'."\n"
+ ."\n"
+ .'* **public**: public image'."\n"
+ .'* **private**: custom image'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'enumValueTitles' => [
+ 'private' => 'private',
+ 'public' => 'public',
+ ],
+ 'example' => 'public',
+ ],
+ ],
+ [
+ 'name' => 'Description',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The description of the image.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'Test operation of console',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => '72DC6C0A-D9A8-5345-A2BE-FE354CC728A0',
+ ],
+ 'Images' => [
+ 'description' => 'The information about the images.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The information about the image.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'ImageUrl' => [
+ 'description' => 'The URL of the AIC image repository.'."\n",
+ 'type' => 'string',
+ 'example' => '****.alibaba-inc.com/aic/socimage:test',
+ ],
+ 'ImageId' => [
+ 'description' => 'The image ID of the AIC instance.'."\n",
+ 'type' => 'string',
+ 'example' => 'm-ad0ddaddc2d54adeaa09b7c0f1e****',
+ ],
+ 'User' => [
+ 'description' => 'The username of the image repository.'."\n",
+ 'type' => 'string',
+ 'example' => 'user',
+ ],
+ 'Status' => [
+ 'description' => 'The status of the image. **Available** is returned for this parameter. Available indicates that the image is available.'."\n",
+ 'type' => 'string',
+ 'example' => 'available',
+ ],
+ 'CreationTime' => [
+ 'description' => 'The time when the image was created.'."\n",
+ 'type' => 'string',
+ 'example' => '2022-09-22 10:54:34',
+ ],
+ 'Description' => [
+ 'description' => 'The description of the image.'."\n",
+ 'type' => 'string',
+ 'example' => 'Test operation of console',
+ ],
+ 'AndroidVersion' => [
+ 'description' => '',
+ 'type' => 'string',
+ 'example' => '10',
+ ],
+ ],
+ ],
+ ],
+ 'PageNumber' => [
+ 'description' => 'The page number. Default value: **1**.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '1',
+ ],
+ 'PageSize' => [
+ 'description' => 'The number of entries per page.'."\n"
+ ."\n"
+ .'Default value: 10.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '10',
+ ],
+ 'TotalCount' => [
+ 'description' => 'The total number of entries returned.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '1',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"72DC6C0A-D9A8-5345-A2BE-FE354CC728A0\\",\\n \\"Images\\": [\\n {\\n \\"ImageUrl\\": \\"****.alibaba-inc.com/aic/socimage:test\\",\\n \\"ImageId\\": \\"m-ad0ddaddc2d54adeaa09b7c0f1e****\\",\\n \\"User\\": \\"user\\",\\n \\"Status\\": \\"available\\",\\n \\"CreationTime\\": \\"2022-01-22 10:54:34\\",\\n \\"Description\\": \\"控制台测试操作\\",\\n \\"AndroidVersion\\": \\"10\\"\\n }\\n ],\\n \\"PageNumber\\": 1,\\n \\"PageSize\\": 10,\\n \\"TotalCount\\": 1\\n}","errorExample":""},{"type":"xml","example":"<DescribeAICImagesResponse>\\n <RequestId>72DC6C0A-D9A8-5345-A2BE-FE354CC728A0</RequestId>\\n <Images>\\n <ImageUrl>****.alibaba-inc.com/aic/socimage:test</ImageUrl>\\n <ImageId>m-ad0ddaddc2d54adeaa09b7c0f1e****</ImageId>\\n <User>user</User>\\n <Status>available</Status>\\n <CreationTime>2022-01-22 10:54:34</CreationTime>\\n <Description>控制台测试操作</Description>\\n </Images>\\n <PageNumber>1</PageNumber>\\n <PageSize>10</PageSize>\\n <TotalCount>1</TotalCount>\\n</DescribeAICImagesResponse>","errorExample":""}]',
+ 'title' => 'DescribeAICImages',
+ ],
+ 'RecoverAICInstance' => [
+ 'summary' => 'Recovers an Android in Container (AIC) instance on the server.',
+ 'methods' => [
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'update',
+ 'abilityTreeCode' => '164702',
+ 'abilityTreeNodes' => [
+ 'FEATUREensZ35IDE',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'ServerId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the server.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'cas-instance****',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E\\"\\n}","errorExample":""},{"type":"xml","example":"<RecoverAICInstanceResponse>\\n <RequestId>473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E</RequestId>\\n</RecoverAICInstanceResponse>","errorExample":""}]',
+ 'title' => 'RecoverAICInstance',
+ ],
+ 'ReleaseAICInstance' => [
+ 'summary' => 'Releases an Android in Container (AIC) instance from the server.',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'delete',
+ 'abilityTreeCode' => '164703',
+ 'abilityTreeNodes' => [
+ 'FEATUREensZ35IDE',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'ServerId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the server.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'cas-instance****',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E\\"\\n}","errorExample":""},{"type":"xml","example":"<ReleaseAICInstanceResponse>\\n <RequestId>473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E</RequestId>\\n</ReleaseAICInstanceResponse>","errorExample":""}]',
+ 'title' => 'ReleaseAICInstance',
+ ],
+ 'RunServiceSchedule' => [
+ 'summary' => 'Schedules the nearest idle resources including instances and pods for your device based on the user ID and IP address and initializes the virtual environment.',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'systemTags' => [
+ 'operationType' => 'update',
+ 'abilityTreeCode' => '1776',
+ 'abilityTreeNodes' => [
+ 'FEATUREensZ35IDE',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'AppId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the application.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => '474bdef0-d149-4695-abfb-52912d9143f0',
+ ],
+ ],
+ [
+ 'name' => 'Uuid',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The UUID of the device.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'hdm_d4f1059a8e1afc0956bd71b497faa433',
+ ],
+ ],
+ [
+ 'name' => 'ClientIp',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The IP address of the client.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => '180.166.45.146',
+ ],
+ ],
+ [
+ 'name' => 'ServiceAction',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The scheduling operation. The value must be of the enumeration type. Valid values:'."\n"
+ ."\n"
+ .'Container scenario:'."\n"
+ ."\n"
+ .'* Start: selects and activates an idle cloud device.'."\n"
+ .'* Stop: stops and releases the cloud device.'."\n"
+ .'* Console: performs the scheduling operation when the device is in the scheduling state.'."\n"
+ ."\n"
+ .'Bare metal instance or virtual machine scenario:'."\n"
+ ."\n"
+ .'* PreSchedule: locks a virtual machine instance for scheduling.'."\n"
+ .'* Confirm: confirms the scheduling operation.'."\n"
+ .'* Cancel: cancels the scheduling operation.'."\n"
+ .'* Console: performs the scheduling operation when the device is in the scheduling state.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'enumValueTitles' => [
+ 'Start' => '',
+ 'Stop' => '',
+ 'Cancel' => '',
+ 'PreSchedule' => '',
+ 'Console' => '',
+ 'Confirm' => '',
+ ],
+ 'example' => 'Start',
+ ],
+ ],
+ [
+ 'name' => 'PodConfigName',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The parameter does not take effect.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'android',
+ ],
+ ],
+ [
+ 'name' => 'PreLockedTimeout',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The maximum duration for locking an idle device. Unit: seconds. This parameter takes effect only if you set ServiceAction to PreSchedule. Default value: 300.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'example' => '300',
+ ],
+ ],
+ [
+ 'name' => 'Directorys',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The directory to which the data file is mounted. The value must be a full path and cannot be \'/../\'. Example: \\["/data/app01", "/data/user"]. Specify the relative path of the virtual device for this parameter. For example, specify /data for this parameter when the actual path of the virtual device is /data/{input path}.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '[\\"/data/app01\\", \\"/data/user\\"]',
+ ],
+ ],
+ [
+ 'name' => 'ServiceCommands',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The service commands. The value must be a JSON string.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '[{\\"containerName\\": \\"android\\", \\"commands\\":[\\"cat /tmp/token.json\\"] }, { \\"commands\\":[\\"ls -l /data/data\\"] }]',
+ ],
+ ],
+ [
+ 'name' => 'ScheduleStrategy',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The scheduling policy of the device. The value must be a JSON string.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '{\\"selectLevel\\": \\"RegionId\\", \\"values\\": [\\"cn-chengdu-telecom-2\\"] }',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'CommandResults' => [
+ 'type' => 'object',
+ 'itemNode' => true,
+ 'properties' => [
+ 'CommandResult' => [
+ 'description' => 'The execution results of the commands.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => '',
+ 'type' => 'object',
+ 'properties' => [
+ 'Command' => [
+ 'description' => 'The command.'."\n",
+ 'type' => 'string',
+ 'example' => 'ls -l /data',
+ ],
+ 'ContainerName' => [
+ 'description' => 'The name of the container.'."\n",
+ 'type' => 'string',
+ 'example' => 'android',
+ ],
+ 'ResultMsg' => [
+ 'description' => 'The execution result of the command.'."\n",
+ 'type' => 'string',
+ 'example' => 'success',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'Index' => [
+ 'description' => 'The index number of the scheduled virtual device (pod).'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '1',
+ ],
+ 'InstanceId' => [
+ 'description' => 'The ID of the scheduled instance.'."\n",
+ 'type' => 'string',
+ 'example' => 'i-5qvji3mom4ec013dyygmtxlkj',
+ ],
+ 'InstanceIp' => [
+ 'description' => 'The IP address of the scheduled instance.'."\n",
+ 'type' => 'string',
+ 'example' => '172.16.246.11',
+ ],
+ 'InstancePort' => [
+ 'description' => 'The start port of the scheduled instance.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '1024',
+ ],
+ 'RequestId' => [
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E',
+ ],
+ 'RequestRepeated' => [
+ 'description' => 'Indicates whether the request is repeated. This parameter is not returned if ServcieAction is set to Console.'."\n",
+ 'type' => 'string',
+ 'example' => 'false',
+ ],
+ 'TcpPorts' => [
+ 'description' => 'The TCP port range of the scheduled instance or container. The value is in the ${from}-$-{to} format. Example: 80-88.'."\n",
+ 'type' => 'boolean',
+ 'example' => '"80-88"',
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'MissingParameter',
+ 'errorMessage' => 'The input parameter that is mandatory for processing this request is not supplied.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter',
+ 'errorMessage' => 'The errorMessage is %s. Please check it again.',
+ ],
+ [
+ 'errorCode' => 'LimitExceeded.SecurityGroup',
+ 'errorMessage' => 'The number of securityGroup exceeds the limit.',
+ ],
+ [
+ 'errorCode' => 'ens.interface.error',
+ 'errorMessage' => 'An error occurred while calling the API.',
+ ],
+ [
+ 'errorCode' => 'CallInterface',
+ 'errorMessage' => 'Call Interface Happen Error.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"CommandResults\\": {\\n \\"CommandResult\\": [\\n {\\n \\"Command\\": \\"ls -l /data\\",\\n \\"ContainerName\\": \\"android\\",\\n \\"ResultMsg\\": \\"success\\"\\n }\\n ]\\n },\\n \\"Index\\": 1,\\n \\"InstanceId\\": \\"i-5qvji3mom4ec013dyygmtxlkj\\",\\n \\"InstanceIp\\": \\"172.16.246.11\\",\\n \\"InstancePort\\": 1024,\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E\\",\\n \\"RequestRepeated\\": \\"false\\",\\n \\"TcpPorts\\": true\\n}","type":"json"}]',
+ 'title' => 'RunServiceSchedule',
+ ],
+ 'DescribeServcieSchedule' => [
+ 'summary' => 'You can call the DescribeServcieSchedule to query the real-time status of the instance device or container that is being occupied by the UUID.',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'systemTags' => [],
+ 'parameters' => [
+ [
+ 'name' => 'AppId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the application.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => '474bdef0-d149-4695-abfb-52912d91****',
+ ],
+ ],
+ [
+ 'name' => 'Uuid',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The unique ID of the device.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'hdm_f022bf160dc69e2d8eb421e508eb****',
+ ],
+ ],
+ [
+ 'name' => 'PodConfigName',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'This parameter does not take effect.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'android',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'Index' => [
+ 'description' => 'The index number of the scheduled virtual device (pod).'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '2',
+ ],
+ 'InstanceId' => [
+ 'description' => 'The ID of the scheduled instance.'."\n",
+ 'type' => 'string',
+ 'example' => 'i-5myukg7hnpbto7m024002****',
+ ],
+ 'InstanceIp' => [
+ 'description' => 'The ID of the scheduled instance.'."\n",
+ 'type' => 'string',
+ 'example' => '120.26.XX.XX',
+ ],
+ 'InstancePort' => [
+ 'description' => 'The start port of the scheduled instance.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '3306',
+ ],
+ 'PodAbstractInfo' => [
+ 'description' => 'The summary information about the scheduled virtual device.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'ContainerService' => [
+ 'description' => 'The name of the container service.'."\n",
+ 'type' => 'boolean',
+ 'example' => 'android',
+ ],
+ 'ContainerStatuses' => [
+ 'type' => 'object',
+ 'itemNode' => true,
+ 'properties' => [
+ 'ContainerStatus' => [
+ 'description' => 'The information about the container.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => '',
+ 'type' => 'object',
+ 'properties' => [
+ 'ContainerId' => [
+ 'description' => 'The ID of the container.'."\n",
+ 'type' => 'string',
+ 'example' => 'container_e79_1638372147094_158091_02_000001',
+ ],
+ 'Name' => [
+ 'description' => 'The name of the container.'."\n",
+ 'type' => 'string',
+ 'example' => 'nginx',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'Name' => [
+ 'description' => 'The name of the pod.'."\n",
+ 'type' => 'boolean',
+ 'example' => 'gcs-prod-websocket-eip-telecom',
+ ],
+ 'Namespace' => [
+ 'description' => 'The name of the namespace.'."\n",
+ 'type' => 'boolean',
+ 'example' => 'default-aliyun',
+ ],
+ 'ResourceScope' => [
+ 'description' => 'The pod scope.'."\n",
+ 'type' => 'boolean',
+ 'example' => 'FDN',
+ ],
+ 'Status' => [
+ 'description' => 'The status of the pod.'."\n",
+ 'type' => 'boolean',
+ 'example' => 'RUNNING',
+ ],
+ ],
+ ],
+ 'RequestId' => [
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984',
+ ],
+ 'RequestRepeated' => [
+ 'description' => 'Indicates whether the request is repeated.'."\n",
+ 'type' => 'boolean',
+ 'example' => 'false',
+ ],
+ 'TcpPorts' => [
+ 'description' => 'The TCP port range of the scheduled instance or container. The value is in the ${from}-$-{to} format. Example: 80-88.'."\n",
+ 'type' => 'string',
+ 'example' => '80-88',
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'MissingParameter',
+ 'errorMessage' => 'The input parameter that is mandatory for processing this request is not supplied.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter',
+ 'errorMessage' => 'The errorMessage is %s. Please check it again.',
+ ],
+ [
+ 'errorCode' => 'LimitExceeded.SecurityGroup',
+ 'errorMessage' => 'The number of securityGroup exceeds the limit.',
+ ],
+ [
+ 'errorCode' => 'ens.interface.error',
+ 'errorMessage' => 'An error occurred while calling the API.',
+ ],
+ [
+ 'errorCode' => 'CallInterface',
+ 'errorMessage' => 'Call Interface Happen Error.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Index\\": 2,\\n \\"InstanceId\\": \\"i-5myukg7hnpbto7m024002****\\",\\n \\"InstanceIp\\": \\"120.26.XX.XX\\",\\n \\"InstancePort\\": 3306,\\n \\"PodAbstractInfo\\": {\\n \\"ContainerService\\": true,\\n \\"ContainerStatuses\\": {\\n \\"ContainerStatus\\": [\\n {\\n \\"ContainerId\\": \\"container_e79_1638372147094_158091_02_000001\\",\\n \\"Name\\": \\"nginx\\"\\n }\\n ]\\n },\\n \\"Name\\": true,\\n \\"Namespace\\": true,\\n \\"ResourceScope\\": true,\\n \\"Status\\": true\\n },\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\",\\n \\"RequestRepeated\\": false,\\n \\"TcpPorts\\": \\"80-88\\"\\n}","type":"json"}]',
+ 'title' => 'DescribeServcieSchedule',
+ ],
+ 'RescaleDeviceService' => [
+ 'summary' => 'Scales out a bare metal device.',
+ 'methods' => [
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'update',
+ 'abilityTreeCode' => '32996',
+ 'abilityTreeNodes' => [
+ 'FEATUREensZ35IDE',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'RescaleType',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The scaling operation. Set the value to Add to add new resources.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'enumValueTitles' => [
+ 'Add' => '',
+ ],
+ 'example' => 'Add',
+ ],
+ ],
+ [
+ 'name' => 'RescaleLevel',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The region level of the scale-out. Set the value to RegionId. RegionId specifies that resource scale-out is performed based on the ID of the edge node.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'enumValueTitles' => [
+ 'RegionId' => '',
+ ],
+ 'example' => 'RegionId',
+ ],
+ ],
+ [
+ 'name' => 'Timeout',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The timeout period for asynchronous scale-out. Unit: seconds. Default value: 300.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int64',
+ 'required' => false,
+ 'example' => '1800',
+ ],
+ ],
+ [
+ 'name' => 'ServiceId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the service.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'service-01c6dd6e93f040698566',
+ ],
+ ],
+ [
+ 'name' => 'ResourceSelector',
+ 'in' => 'formData',
+ 'schema' => [
+ 'description' => 'The required resources. The value must be a JSON string.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => '[{\\"regionCode\\": \\"cn-wuxi-telecom_unicom_cmcc-3\\", \\"ispCode\\": \\"telecom\\", \\"count\\": 2 },{ \\"regionCode\\": \\"cn-shanghai-cmcc\\", \\"count\\": 4 }]',
+ ],
+ ],
+ [
+ 'name' => 'ResourceSpec',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The resource specification.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'ens.a6e.large',
+ ],
+ ],
+ [
+ 'name' => 'IpType',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The type of the network. The value must be of the enumerated data type. Valid values:'."\n"
+ ."\n"
+ .'* **1** (default): Internet'."\n"
+ .'* **2**: internal network'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'enumValueTitles' => [
+ 1 => '',
+ '',
+ ],
+ 'example' => '1',
+ ],
+ ],
+ [
+ 'name' => 'AppId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the application.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '7aedc50b-b1cb-4a7c-9e3d-4cf3c9ee55a4',
+ ],
+ ],
+ [
+ 'name' => 'ImageId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the image.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'm-5rynw9g1ow1e928lb83bqmbnf',
+ ],
+ ],
+ [
+ 'name' => 'ResourceInfo',
+ 'in' => 'formData',
+ 'schema' => [
+ 'description' => 'The information about the resource specification template. The value must be a JSON string.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '{\\"imageId\\":\\"m-5s4z4c10avgwvwtn33gl2vgob\\",\\"ipType\\":2,\\"specName\\":\\"ens.pfb-c3m7.medium\\"}',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => '3F3F3570-E721-53F6-853F-37B7725AC6CB',
+ ],
+ 'DeviceIds' => [
+ 'description' => 'The IDs of the devices.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The ID of the device.'."\n",
+ 'type' => 'string',
+ 'example' => '[\'b-5qco9b10iei79z48phno4bmsr\']',
+ ],
+ ],
+ 'ResourceDetailInfos' => [
+ 'description' => 'The key properties of the device.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => '',
+ 'type' => 'object',
+ 'properties' => [
+ 'RegionID' => [
+ 'description' => 'The ID of the edge node to which the device belongs.'."\n",
+ 'type' => 'string',
+ 'example' => 'cn-chongqing-1',
+ ],
+ 'ID' => [
+ 'description' => 'The ID of the device.'."\n",
+ 'type' => 'string',
+ 'example' => 'h-uf6009zoa6hdbjyqxcn1',
+ ],
+ 'IP' => [
+ 'description' => 'The IP address of the device.'."\n",
+ 'type' => 'string',
+ 'example' => '10.152.196.36',
+ ],
+ 'Server' => [
+ 'description' => 'The name of the server on which the device is deployed.'."\n",
+ 'type' => 'string',
+ 'example' => 'ens-nc2',
+ ],
+ 'Type' => [
+ 'description' => 'The type of the instance.'."\n",
+ 'type' => 'string',
+ 'example' => 'ens.ac6.large',
+ ],
+ 'Status' => [
+ 'description' => 'The status of the device.'."\n",
+ 'type' => 'string',
+ 'example' => 'Running',
+ ],
+ 'Mac' => [
+ 'description' => 'The media access control (MAC) address of the device.'."\n",
+ 'type' => 'string',
+ 'example' => '24:0B:88:04:71:E0',
+ ],
+ 'ISP' => [
+ 'description' => 'The Internet service provider (ISP) to which the device belongs.'."\n",
+ 'type' => 'string',
+ 'example' => 'telecom',
+ ],
+ ],
+ ],
+ ],
+ 'OrderId' => [
+ 'description' => 'The ID of the order.'."\n",
+ 'type' => 'string',
+ 'example' => 'b3b5bb9a-4e0b-4cac-8ebf-e5e015726723',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"3F3F3570-E721-53F6-853F-37B7725AC6CB\\",\\n \\"DeviceIds\\": [\\n \\"[\'b-5qco9b10iei79z48phno4bmsr\']\\"\\n ],\\n \\"ResourceDetailInfos\\": [\\n {\\n \\"RegionID\\": \\"cn-chongqing-1\\",\\n \\"ID\\": \\"h-uf6009zoa6hdbjyqxcn1\\",\\n \\"IP\\": \\"10.152.196.36\\",\\n \\"Server\\": \\"ens-nc2\\",\\n \\"Type\\": \\"ens.ac6.large\\",\\n \\"Status\\": \\"Running\\",\\n \\"Mac\\": \\"24:0B:88:04:71:E0\\",\\n \\"ISP\\": \\"telecom\\"\\n }\\n ],\\n \\"OrderId\\": \\"b3b5bb9a-4e0b-4cac-8ebf-e5e015726723\\"\\n}","type":"json"}]',
+ 'title' => 'RescaleDeviceService',
+ ],
+ 'DescribeDeviceService' => [
+ 'summary' => 'Queries the properties of instances and virtual devices in a specific edge application.',
+ 'methods' => [
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'get',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'ServiceId',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => 'Service ID',
+ 'description' => 'Service ID'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 's-cxxxxx',
+ ],
+ ],
+ [
+ 'name' => 'InstanceId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the instance.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'i-5sg1owx0g4ojy66ab2tez77r2',
+ ],
+ ],
+ [
+ 'name' => 'RegionId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the Edge Node Service (ENS) node.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'cn-chongqing-11',
+ ],
+ ],
+ [
+ 'name' => 'AppId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the application.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'a2bac6f4-75dc-455e-8389-2dc8e47526d3',
+ ],
+ ],
+ [
+ 'name' => 'EnsRegionId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'This parameter does not take effect.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'cn-chongqing-10',
+ ],
+ ],
+ [
+ 'name' => 'OrderId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the order.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '2661b1dd-3453-418d-8182-bb34f79e8d3c',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => '3A535110-3EE3-5EC5-B1ED-10B7067A1FC8',
+ ],
+ 'ResourceDetailInfos' => [
+ 'description' => 'The information about the devices.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'Equipment information.',
+ 'type' => 'object',
+ 'properties' => [
+ 'RegionID' => [
+ 'description' => 'The ID of the ENS node.'."\n",
+ 'type' => 'string',
+ 'example' => 'cn-jiaozuo-2',
+ ],
+ 'ID' => [
+ 'description' => 'The ID of the cloud device.'."\n",
+ 'type' => 'string',
+ 'example' => 'h-uf6009zoaexs5pefypbo',
+ ],
+ 'IP' => [
+ 'description' => 'The IP address.'."\n",
+ 'type' => 'string',
+ 'example' => '120.27.219.219',
+ ],
+ 'Server' => [
+ 'description' => 'The server name of the ENS node.'."\n",
+ 'type' => 'string',
+ 'example' => 'ens-nc2',
+ ],
+ 'Status' => [
+ 'description' => 'The status of the device.'."\n",
+ 'type' => 'string',
+ 'example' => 'Running',
+ ],
+ 'Type' => [
+ 'description' => 'The type of the device.'."\n",
+ 'type' => 'string',
+ 'example' => 'ens.ac6.large',
+ ],
+ 'Mac' => [
+ 'description' => 'The media access control (MAC) address of the device.'."\n",
+ 'type' => 'string',
+ 'example' => 'AA:BB:77:88:99:03',
+ ],
+ 'ISP' => [
+ 'description' => 'The Internet service provider (ISP).'."\n",
+ 'type' => 'string',
+ 'example' => 'cmcc',
+ ],
+ 'DeviceName' => [
+ 'description' => 'The name of the device.'."\n",
+ 'type' => 'string',
+ 'example' => '5JhF100NEgdBcpNren32',
+ ],
+ 'ImageID' => [
+ 'description' => 'The ID of the image.'."\n",
+ 'type' => 'string',
+ 'example' => 'm-2ze40oyhjorpyw61k7be',
+ ],
+ ],
+ ],
+ ],
+ 'AppStatus' => [
+ 'description' => 'The status information of the application.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'Phase' => [
+ 'description' => 'The status of the application. The value is of the enumeration type. Valid values:'."\n"
+ ."\n"
+ .'Three intermediate states:'."\n"
+ ."\n"
+ .'* CREATING'."\n"
+ .'* UPDATING'."\n"
+ .'* DELETING'."\n"
+ ."\n"
+ .'Four final states:'."\n"
+ ."\n"
+ .'* CREATE_FAILED'."\n"
+ .'* UPDATE_FAILED'."\n"
+ .'* DELETE_FAILED'."\n"
+ .'* RUNNING'."\n",
+ 'type' => 'string',
+ 'example' => 'CREATING',
+ ],
+ 'StatusDescrip' => [
+ 'description' => 'The description of the application status.'."\n",
+ 'type' => 'string',
+ 'example' => 'Creating in progress'."\n",
+ ],
+ 'UpdateTime' => [
+ 'description' => 'The time when the status was last updated.'."\n",
+ 'type' => 'string',
+ 'example' => '2021-01-26T05:04Z',
+ ],
+ ],
+ ],
+ 'AppMetaData' => [
+ 'description' => 'The basic properties of the application.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'AppId' => [
+ 'description' => 'The ID of the application.'."\n",
+ 'type' => 'string',
+ 'example' => '97a32f2a-aa2c-436a-b19c-05b20d258618',
+ ],
+ 'AppName' => [
+ 'description' => 'The name of the application.'."\n",
+ 'type' => 'string',
+ 'example' => 'iotx-api-admin',
+ ],
+ 'AppStableVersion' => [
+ 'description' => 'The stable version number of the application.'."\n",
+ 'type' => 'string',
+ 'example' => 'v1',
+ ],
+ 'AppType' => [
+ 'description' => 'The type of the application. The value is of the enumeration type. Valid values:'."\n"
+ ."\n"
+ .'* Common'."\n"
+ .'* Scheduler'."\n",
+ 'type' => 'string',
+ 'example' => 'Common',
+ ],
+ 'ClusterName' => [
+ 'description' => 'The name of the application cluster.'."\n",
+ 'type' => 'string',
+ 'example' => 'poc',
+ ],
+ 'CreateTime' => [
+ 'description' => 'The time when the application was created.'."\n",
+ 'type' => 'string',
+ 'example' => '2022-03-03T03:42:11',
+ ],
+ 'Description' => [
+ 'description' => 'The description of the application.'."\n",
+ 'type' => 'string',
+ 'example' => 'test application'."\n",
+ ],
+ ],
+ ],
+ 'ResourceInfos' => [
+ 'description' => 'The information about the instances.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'Resource information.',
+ 'type' => 'object',
+ 'properties' => [
+ 'AppVersion' => [
+ 'description' => 'The version of the application.'."\n",
+ 'type' => 'string',
+ 'example' => 'v1',
+ ],
+ 'AreaCode' => [
+ 'description' => 'The area code.'."\n",
+ 'type' => 'string',
+ 'example' => '410800',
+ ],
+ 'AreaName' => [
+ 'description' => 'The region name.'."\n",
+ 'type' => 'string',
+ 'example' => 'Jiaozuo City, Henan Province, Central China'."\n",
+ ],
+ 'CreateTime' => [
+ 'description' => 'The time when the application was created.'."\n",
+ 'type' => 'string',
+ 'example' => '2019-10-02T08:26Z',
+ ],
+ 'DeviceInfos' => [
+ 'description' => 'The information about the devices.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'Equipment information.',
+ 'type' => 'object',
+ 'properties' => [
+ 'Name' => [
+ 'description' => 'The name of the device.'."\n",
+ 'type' => 'string',
+ 'example' => 'test-api',
+ ],
+ 'Network' => [
+ 'description' => 'The network information.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'Network information.',
+ 'type' => 'object',
+ 'properties' => [
+ 'ContainerPorts' => [
+ 'description' => 'The port of the container.'."\n",
+ 'type' => 'string',
+ 'example' => '10000-10010',
+ ],
+ 'ExternalIp' => [
+ 'description' => 'The public IP address.'."\n",
+ 'type' => 'string',
+ 'example' => '39.105.62.120',
+ ],
+ 'HostPorts' => [
+ 'description' => 'The port range.'."\n",
+ 'type' => 'string',
+ 'example' => '80-8080',
+ ],
+ 'Protocol' => [
+ 'description' => 'The protocol of the gateway. The value is of the enumeration type. Valid values:'."\n"
+ ."\n"
+ .'* TCP'."\n"
+ .'* UDP'."\n",
+ 'type' => 'string',
+ 'example' => 'TCP',
+ ],
+ ],
+ ],
+ ],
+ 'Status' => [
+ 'description' => 'The status.'."\n",
+ 'type' => 'string',
+ 'example' => 'Running',
+ ],
+ ],
+ ],
+ ],
+ 'InstanceId' => [
+ 'description' => 'The ID of the instance.'."\n",
+ 'type' => 'string',
+ 'example' => 'i-5s9boobrmh5000kv4jmi0oeai',
+ ],
+ 'InstanceStatus' => [
+ 'description' => 'The status of the instance.'."\n",
+ 'type' => 'string',
+ 'example' => 'Running',
+ ],
+ 'InternalIps' => [
+ 'description' => 'The internal IP addresses.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'IP information.',
+ 'type' => 'object',
+ 'properties' => [
+ 'Ip' => [
+ 'description' => 'The internal IP address.'."\n",
+ 'type' => 'string',
+ 'example' => '10.0.2.3',
+ ],
+ ],
+ ],
+ ],
+ 'PublicIps' => [
+ 'description' => 'The public IP addresses.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'Public IP address.',
+ 'type' => 'object',
+ 'properties' => [
+ 'Ip' => [
+ 'description' => 'The public IP address.'."\n",
+ 'type' => 'string',
+ 'example' => '122.13.173.137',
+ ],
+ ],
+ ],
+ ],
+ 'RegionCode' => [
+ 'description' => 'The ID of the region.'."\n",
+ 'type' => 'string',
+ 'example' => 'cn-jiaozuo-2',
+ ],
+ 'RegionId' => [
+ 'description' => 'The ID of the ENS node.'."\n",
+ 'type' => 'string',
+ 'example' => 'cn-jiaozuo-2'."\n",
+ ],
+ 'RegionName' => [
+ 'description' => 'The name of the region.'."\n",
+ 'type' => 'string',
+ 'example' => 'China Jiaozuo-2'."\n",
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"3A535110-3EE3-5EC5-B1ED-10B7067A1FC8\\",\\n \\"ResourceDetailInfos\\": [\\n {\\n \\"RegionID\\": \\"cn-jiaozuo-2\\",\\n \\"ID\\": \\"h-uf6009zoaexs5pefypbo\\",\\n \\"IP\\": \\"120.27.219.219\\",\\n \\"Server\\": \\"ens-nc2\\",\\n \\"Status\\": \\"Running\\",\\n \\"Type\\": \\"ens.ac6.large\\",\\n \\"Mac\\": \\"AA:BB:77:88:99:03\\",\\n \\"ISP\\": \\"cmcc\\",\\n \\"DeviceName\\": \\"5JhF100NEgdBcpNren32\\",\\n \\"ImageID\\": \\"m-2ze40oyhjorpyw61k7be\\"\\n }\\n ],\\n \\"AppStatus\\": {\\n \\"Phase\\": \\"CREATING\\",\\n \\"StatusDescrip\\": \\"创建中\\",\\n \\"UpdateTime\\": \\"2021-01-26T05:04Z\\"\\n },\\n \\"AppMetaData\\": {\\n \\"AppId\\": \\"97a32f2a-aa2c-436a-b19c-05b20d258618\\",\\n \\"AppName\\": \\"iotx-api-admin\\",\\n \\"AppStableVersion\\": \\"v1\\",\\n \\"AppType\\": \\"Common\\",\\n \\"ClusterName\\": \\"poc\\",\\n \\"CreateTime\\": \\"2022-03-03T03:42:11\\",\\n \\"Description\\": \\"测试应用\\"\\n },\\n \\"ResourceInfos\\": [\\n {\\n \\"AppVersion\\": \\"v1\\",\\n \\"AreaCode\\": \\"410800\\",\\n \\"AreaName\\": \\"华中,河南省,焦作市\\",\\n \\"CreateTime\\": \\"2019-10-02T08:26Z\\",\\n \\"DeviceInfos\\": [\\n {\\n \\"Name\\": \\"test-api\\",\\n \\"Network\\": [\\n {\\n \\"ContainerPorts\\": \\"10000-10010\\",\\n \\"ExternalIp\\": \\"39.105.62.120\\",\\n \\"HostPorts\\": \\"80-8080\\",\\n \\"Protocol\\": \\"TCP\\"\\n }\\n ],\\n \\"Status\\": \\"Running\\"\\n }\\n ],\\n \\"InstanceId\\": \\"i-5s9boobrmh5000kv4jmi0oeai\\",\\n \\"InstanceStatus\\": \\"Running\\",\\n \\"InternalIps\\": [\\n {\\n \\"Ip\\": \\"10.0.2.3\\"\\n }\\n ],\\n \\"PublicIps\\": [\\n {\\n \\"Ip\\": \\"122.13.173.137\\"\\n }\\n ],\\n \\"RegionCode\\": \\"cn-jiaozuo-2\\",\\n \\"RegionId\\": \\"cn-jiaozuo-2\\\\n\\",\\n \\"RegionName\\": \\"中国焦作-2\\"\\n }\\n ]\\n}","type":"json"}]',
+ 'title' => 'DescribeDeviceService',
+ ],
+ 'DescribeDataPushResult' => [
+ 'summary' => 'Queries the push status of application data files on Edge Node Service (ENS) nodes.',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'systemTags' => [
+ 'operationType' => 'get',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'AppId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the application.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'e76f8985-7965-41fc-925b-9648bb6bf650',
+ ],
+ ],
+ [
+ 'name' => 'DataNames',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The name of the data file. Separate multiple names with commas (,). By default, all data files are queried.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '159828628258496/mirror_file/game-2553efe7-7bf8-40fb-a6e7-09c9c00a992a.tar',
+ ],
+ ],
+ [
+ 'name' => 'DataVersions',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The version number of the data file. Separate multiple numbers with commas (,). By default, all versions of data files are queried.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '90396',
+ ],
+ ],
+ [
+ 'name' => 'MinDate',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The beginning of the time range to query. Specify the time in the 2006-01-02 format. By default, the time range to query is not restricted.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '2022-02-15',
+ ],
+ ],
+ [
+ 'name' => 'MaxDate',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The end of the time range to query. Specify the time in the 2006-01-02 format. By default, the time range to query is not restricted.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '2022-02-20',
+ ],
+ ],
+ [
+ 'name' => 'PageNumber',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => '',
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'minimum' => '1',
+ 'example' => '1',
+ 'default' => '1',
+ ],
+ ],
+ [
+ 'name' => 'PageSize',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The number of entries per page. This parameter is optional if you want to return the push status of all data files.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'example' => '10',
+ 'default' => '10',
+ ],
+ ],
+ [
+ 'name' => 'RegionIds',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The IDs of ENS nodes. Separate multiple IDs with commas (,). By default, all ENS nodes are queried.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'cn-wuhan-telecom_unicom_cmcc-2,cn-jiaozuo-2',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'PageNumber' => [
+ 'description' => 'The page number.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '1',
+ ],
+ 'PageSize' => [
+ 'description' => 'The number of entries per page.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '10',
+ ],
+ 'PushResults' => [
+ 'type' => 'object',
+ 'itemNode' => true,
+ 'properties' => [
+ 'PushResult' => [
+ 'description' => 'The push results of data files.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => '',
+ 'type' => 'object',
+ 'properties' => [
+ 'Name' => [
+ 'description' => 'The name of the data file.'."\n",
+ 'type' => 'string',
+ 'example' => 'gcs-pre-websocket-eip-telecom',
+ ],
+ 'StatusStatS' => [
+ 'type' => 'object',
+ 'itemNode' => true,
+ 'properties' => [
+ 'StatusStat' => [
+ 'description' => 'The push status of data files.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => '',
+ 'type' => 'object',
+ 'properties' => [
+ 'RegionIdCount' => [
+ 'description' => 'The total number of ENS nodes.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '2',
+ ],
+ 'RegionIds' => [
+ 'type' => 'object',
+ 'itemNode' => true,
+ 'properties' => [
+ 'RegionId' => [
+ 'description' => 'The push status of data files on the ENS node.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => '',
+ 'type' => 'object',
+ 'properties' => [
+ 'RegionId' => [
+ 'description' => 'The ID of the ENS node.'."\n",
+ 'type' => 'string',
+ 'example' => 'cn-wuxi-5',
+ ],
+ 'StartTime' => [
+ 'description' => 'The start time of the push operation. The time is displayed in UTC.'."\n",
+ 'type' => 'string',
+ 'example' => '2021-12-28T16:00:00Z',
+ ],
+ 'StatusDescrip' => [
+ 'description' => 'The description of the status.'."\n",
+ 'type' => 'string',
+ 'example' => 'Success',
+ ],
+ 'UpdateTime' => [
+ 'description' => 'The time when the status was last updated. The time is displayed in UTC.'."\n",
+ 'type' => 'string',
+ 'example' => '2021-12-07T02:37:10Z',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'Status' => [
+ 'description' => 'The push status. The value is of the enumeration type. Valid values: SUCCESS FAILED PUSHING'."\n",
+ 'type' => 'string',
+ 'example' => 'FAILED',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'Version' => [
+ 'description' => 'The version number of the data file.'."\n",
+ 'type' => 'string',
+ 'example' => 'standard',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'RequestId' => [
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984',
+ ],
+ 'TotalCount' => [
+ 'description' => 'The total number of entries returned.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '6',
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'MissingParameter',
+ 'errorMessage' => 'The input parameter that is mandatory for processing this request is not supplied.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter',
+ 'errorMessage' => 'The errorMessage is %s. Please check it again.',
+ ],
+ [
+ 'errorCode' => 'LimitExceeded.SecurityGroup',
+ 'errorMessage' => 'The number of securityGroup exceeds the limit.',
+ ],
+ [
+ 'errorCode' => 'ens.interface.error',
+ 'errorMessage' => 'An error occurred while calling the API.',
+ ],
+ [
+ 'errorCode' => 'CallInterface',
+ 'errorMessage' => 'Call Interface Happen Error.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"PageNumber\\": 1,\\n \\"PageSize\\": 10,\\n \\"PushResults\\": {\\n \\"PushResult\\": [\\n {\\n \\"Name\\": \\"gcs-pre-websocket-eip-telecom\\",\\n \\"StatusStatS\\": {\\n \\"StatusStat\\": [\\n {\\n \\"RegionIdCount\\": 2,\\n \\"RegionIds\\": {\\n \\"RegionId\\": [\\n {\\n \\"RegionId\\": \\"cn-wuxi-5\\",\\n \\"StartTime\\": \\"2021-12-28T16:00:00Z\\",\\n \\"StatusDescrip\\": \\"Success\\",\\n \\"UpdateTime\\": \\"2021-12-07T02:37:10Z\\"\\n }\\n ]\\n },\\n \\"Status\\": \\"FAILED\\"\\n }\\n ]\\n },\\n \\"Version\\": \\"standard\\"\\n }\\n ]\\n },\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\",\\n \\"TotalCount\\": 6\\n}","type":"json"}]',
+ 'title' => 'DescribeDataPushResult',
+ ],
+ 'DescribeDataDownloadURL' => [
+ 'summary' => 'Queries the download URLs of application data on file servers and returns the file servers on which data is pushed.',
+ 'methods' => [
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'get',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'AppId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the application.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => '474bdef0-d149-4695-abfb-52912d9143f0',
+ ],
+ ],
+ [
+ 'name' => 'DataName',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The name of the data file.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'mirror_file/pk-1642597182026-878199448832413.tar',
+ ],
+ ],
+ [
+ 'name' => 'DataVersion',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The version number of the data file.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => '7895',
+ ],
+ ],
+ [
+ 'name' => 'ServerFilterStrategy',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The condition that you want to use to filter file servers. You can specify multiple canary release policies. By default, all resources are queried.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '{\\"name\\": \\"ScheduleToRegionId\\",\\"parameters\\":{\\"operator\\": \\"In\\",\\"values\\": [\\"cn-shijiazhuang-telecom_unicom_cmcc\\"]}}',
+ ],
+ ],
+ [
+ 'name' => 'ExpireTimeout',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'This parameter is reserved.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int64',
+ 'required' => false,
+ 'example' => '600',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'Data' => [
+ 'description' => 'The download URLs of data files.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'ServerList' => [
+ 'description' => 'The file servers.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => '',
+ 'type' => 'object',
+ 'properties' => [
+ 'Host' => [
+ 'description' => 'The host address of the file server.'."\n",
+ 'type' => 'string',
+ 'example' => '1.1.1.1:8080',
+ ],
+ 'RegionId' => [
+ 'description' => 'The ID of the Edge Node Service (ENS) node.'."\n",
+ 'type' => 'string',
+ 'example' => 'cn-chenzhou-5',
+ ],
+ ],
+ ],
+ ],
+ 'Url' => [
+ 'description' => 'The download URL of the data file.'."\n",
+ 'type' => 'string',
+ 'example' => '/file/1450088842124331/97a32f2a-aa2c-436a-b19c-05b20d258618/f0313053530fc727f81b7d03fad93cd2/e4c2e8edac362acab7123654b9e73432?ak=edgepaas-innerapi-daily&ts=1611229454&sign=Yycbax%2F4OsTgm6BLoxR6lPs5gKE%3D',
+ ],
+ 'ExpireTime' => [
+ 'description' => 'The time when the data file expires. The time is displayed in UTC.'."\n",
+ 'type' => 'string',
+ 'example' => '2021-12-10T03:36:27Z',
+ ],
+ ],
+ ],
+ 'RequestId' => [
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E',
+ ],
+ 'Code' => [
+ 'description' => 'The HTTP status code.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int64',
+ 'example' => '0',
+ ],
+ 'Message' => [
+ 'description' => 'The response message. Success is returned for a successful request.'."\n",
+ 'type' => 'string',
+ 'example' => 'Success',
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Data\\": {\\n \\"ServerList\\": [\\n {\\n \\"Host\\": \\"1.1.1.1:8080\\",\\n \\"RegionId\\": \\"cn-chenzhou-5\\"\\n }\\n ],\\n \\"Url\\": \\"/file/1450088842124331/97a32f2a-aa2c-436a-b19c-05b20d258618/f0313053530fc727f81b7d03fad93cd2/e4c2e8edac362acab7123654b9e73432?ak=edgepaas-innerapi-daily&ts=1611229454&sign=Yycbax%2F4OsTgm6BLoxR6lPs5gKE%3D\\",\\n \\"ExpireTime\\": \\"2021-12-10T03:36:27Z\\"\\n },\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E\\",\\n \\"Code\\": 0,\\n \\"Message\\": \\"Success\\"\\n}","type":"json"}]',
+ 'title' => 'DescribeDataDownloadURL',
+ ],
+ 'DescribeDataDistResult' => [
+ 'summary' => 'Queries the distribution status of data files on edge instances of an application.',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'systemTags' => [
+ 'operationType' => 'get',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'AppId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the application.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'e76f8985-7965-41fc-925b-9648bb6bf650',
+ ],
+ ],
+ [
+ 'name' => 'DataNames',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The name of the data file. Separate multiple names with commas (,). By default, all data files are queried.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'cloudgame-shanghai/deploy_app/20220215/1644895216305ACG_M21B-ota-1.1.2-D-0215.0628_V1_0002-pre-weiduan.zip',
+ ],
+ ],
+ [
+ 'name' => 'DataVersions',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The version number of the data file. Separate multiple numbers with commas (,). By default, all versions of data files are queried.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '4885',
+ ],
+ ],
+ [
+ 'name' => 'InstanceIds',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The IDs of ENS instances. Separate multiple IDs with commas (,). By default, all instances are queried.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'i-7ecpqvkicnchxccozrp,i-6ecpqvkicnchxccozrp',
+ ],
+ ],
+ [
+ 'name' => 'MinDate',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The beginning of the time range to query. Specify the time in the 2006-01-02 format. By default, the time range to query is not restricted.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '2022-01-02',
+ ],
+ ],
+ [
+ 'name' => 'MaxDate',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The end of the time range to query. Specify the time in the 2006-01-02 format. By default, the time range to query is not restricted.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '2022-02-01',
+ ],
+ ],
+ [
+ 'name' => 'PageNumber',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The page number. Pages start from page 1. This parameter is optional if you want to return the push status of all data files.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'minimum' => '1',
+ 'example' => '1',
+ 'default' => '1',
+ ],
+ ],
+ [
+ 'name' => 'PageSize',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The number of entries per page. This parameter is optional if you want to return the distribution status of all data files.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'example' => '10',
+ 'default' => '10',
+ ],
+ ],
+ [
+ 'name' => 'EnsRegionIds',
+ 'in' => 'query',
+ 'style' => 'json',
+ 'schema' => [
+ 'description' => 'The IDs of the ENS nodes.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The ID of the ENS node.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '[\\"cn-xiangyang-19\\"]',
+ ],
+ 'required' => false,
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'DistResults' => [
+ 'type' => 'object',
+ 'itemNode' => true,
+ 'properties' => [
+ 'DistResult' => [
+ 'description' => 'The distribution status of data files on edge instances.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The data distribution status of edge resource instances.',
+ 'type' => 'object',
+ 'properties' => [
+ 'Name' => [
+ 'description' => 'The name of the data file.'."\n",
+ 'type' => 'string',
+ 'example' => 'gcs-prod-websocket-eip-unicom',
+ ],
+ 'StatusStats' => [
+ 'type' => 'object',
+ 'itemNode' => true,
+ 'properties' => [
+ 'StatusStat' => [
+ 'description' => 'The distribution status statistics.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => '',
+ 'type' => 'object',
+ 'properties' => [
+ 'InstanceCount' => [
+ 'description' => 'The number of associated edge instances.'."\n",
+ 'type' => 'string',
+ 'example' => '10',
+ ],
+ 'Instances' => [
+ 'type' => 'object',
+ 'itemNode' => true,
+ 'properties' => [
+ 'Instance' => [
+ 'description' => 'The distribution status of the edge instance.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The distribution status of edge resource instances.',
+ 'type' => 'object',
+ 'properties' => [
+ 'InstanceId' => [
+ 'description' => 'The ID of the instance'."\n",
+ 'type' => 'string',
+ 'example' => 'i-5qzje8f5un1wmi341m2yetaxv',
+ ],
+ 'StartTime' => [
+ 'description' => 'The start time of the distribution. The time is displayed in UTC.'."\n",
+ 'type' => 'string',
+ 'example' => '2021-11-19T07:24:52Z',
+ ],
+ 'StatusDescrip' => [
+ 'description' => 'The description of the distribution status.'."\n",
+ 'type' => 'string',
+ 'example' => 'SUCCESS'."\n",
+ ],
+ 'UpdateTime' => [
+ 'description' => 'The time when the distribution status was last updated. The time is displayed in UTC.'."\n",
+ 'type' => 'string',
+ 'example' => '2021-10-11T02:38:19Z',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'Status' => [
+ 'description' => 'The distribution status. The value is of the enumeration type. Valid values:'."\n"
+ ."\n"
+ .'* SUCCESS: The distribution is successful.'."\n"
+ .'* FAILED: The distribution failed.'."\n"
+ .'* DISTING: The data is being distributed.'."\n"
+ .'* POD_RESTARTING: The idle pod is being restarted.'."\n"
+ .'* DELETED: The data is cleared or removed.'."\n",
+ 'type' => 'string',
+ 'example' => 'SUCCESS',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'Version' => [
+ 'description' => 'The version number of the data file.'."\n",
+ 'type' => 'string',
+ 'example' => 'standard',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'PageNumber' => [
+ 'description' => 'The page number.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '1',
+ ],
+ 'PageSize' => [
+ 'description' => 'The number of entries per page.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '10',
+ ],
+ 'RequestId' => [
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => '50373E71-7710-4620-8AAB-133CCE49451C',
+ ],
+ 'TotalCount' => [
+ 'description' => 'The total number of entries returned.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '49',
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'MissingParameter',
+ 'errorMessage' => 'The input parameter that is mandatory for processing this request is not supplied.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter',
+ 'errorMessage' => 'The errorMessage is %s. Please check it again.',
+ ],
+ [
+ 'errorCode' => 'LimitExceeded.SecurityGroup',
+ 'errorMessage' => 'The number of securityGroup exceeds the limit.',
+ ],
+ [
+ 'errorCode' => 'ens.interface.error',
+ 'errorMessage' => 'An error occurred while calling the API.',
+ ],
+ [
+ 'errorCode' => 'CallInterface',
+ 'errorMessage' => 'Call Interface Happen Error.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"DistResults\\": {\\n \\"DistResult\\": [\\n {\\n \\"Name\\": \\"gcs-prod-websocket-eip-unicom\\",\\n \\"StatusStats\\": {\\n \\"StatusStat\\": [\\n {\\n \\"InstanceCount\\": \\"10\\",\\n \\"Instances\\": {\\n \\"Instance\\": [\\n {\\n \\"InstanceId\\": \\"i-5qzje8f5un1wmi341m2yetaxv\\",\\n \\"StartTime\\": \\"2021-11-19T07:24:52Z\\",\\n \\"StatusDescrip\\": \\"成功\\",\\n \\"UpdateTime\\": \\"2021-10-11T02:38:19Z\\"\\n }\\n ]\\n },\\n \\"Status\\": \\"SUCCESS\\"\\n }\\n ]\\n },\\n \\"Version\\": \\"standard\\"\\n }\\n ]\\n },\\n \\"PageNumber\\": 1,\\n \\"PageSize\\": 10,\\n \\"RequestId\\": \\"50373E71-7710-4620-8AAB-133CCE49451C\\",\\n \\"TotalCount\\": 49\\n}","type":"json"}]',
+ 'title' => 'DescribeDataDistResult',
+ ],
+ 'DistApplicationData' => [
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'systemTags' => [
+ 'operationType' => 'update',
+ 'abilityTreeCode' => '18005',
+ 'abilityTreeNodes' => [
+ 'FEATUREensZ35IDE',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'AppId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the application. To obtain the application ID, call the ListApplications operation.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'e76f8985-7965-41fc-925b-9648bb6bf650',
+ ],
+ ],
+ [
+ 'name' => 'Data',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The list of data files that you want to distribute. The value must be a JSON string.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => '[{\\"name\\":\\"app01\\", \\"version\\":\\"1.0\\", \\"destPath\\":\\"/root/installed\\", \\"decompress\\":true, \\"targetDirName\\":\\"target01\\", \\"fileMode\\":755, \\"timeout\\":1000 }, { \\"name\\":\\"app02\\", \\"version\\":\\"1.1\\", \\"destPath\\":\\"/tmp/test.txt\\", \\"decompress\\":false }]',
+ ],
+ ],
+ [
+ 'name' => 'DistStrategy',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The canary release policy. The value must be a JSON string. You can specify multiple distribution policies. By default, all data files are distributed.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '{\\"name\\":\\"ScheduleToAllByMatchExpressions\\",\\"parameters\\":{\\"match_expressions\\":[{\\"key\\":\\"region_id\\",\\"operator\\":\\"In\\",\\"values\\":[\\"cn-wuhan-telecom_unicom_cmcc-2\\"]}]}}',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E',
+ ],
+ 'DistInstanceTotalCount' => [
+ 'description' => 'The total number of ENS instance IDs.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '2',
+ ],
+ 'DistInstanceIds' => [
+ 'type' => 'object',
+ 'itemNode' => true,
+ 'properties' => [
+ 'DistInstanceId' => [
+ 'description' => 'The list of ENS instance IDs.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The ID of the instance.'."\n",
+ 'type' => 'string',
+ 'example' => 'i-xxx',
+ ],
+ ],
+ ],
+ ],
+ 'DistResults' => [
+ 'type' => 'object',
+ 'itemNode' => true,
+ 'properties' => [
+ 'DistResult' => [
+ 'description' => 'The distribution result of the data file.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => '',
+ 'type' => 'object',
+ 'properties' => [
+ 'ResultDescrip' => [
+ 'description' => 'The description of the distribution result.'."\n",
+ 'type' => 'string',
+ 'example' => 'Success',
+ ],
+ 'Version' => [
+ 'description' => 'The version number of the data file.'."\n",
+ 'type' => 'string',
+ 'example' => 'standard',
+ ],
+ 'ResultCode' => [
+ 'description' => 'The error code. The value is of the enumerated data type.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '400',
+ ],
+ 'Name' => [
+ 'description' => 'The name of the data file.'."\n",
+ 'type' => 'string',
+ 'example' => 'gcs-prod-websocket-eip-unicom',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E\\",\\n \\"DistInstanceTotalCount\\": 2,\\n \\"DistInstanceIds\\": {\\n \\"DistInstanceId\\": [\\n \\"i-xxx\\"\\n ]\\n },\\n \\"DistResults\\": {\\n \\"DistResult\\": [\\n {\\n \\"ResultDescrip\\": \\"Success\\",\\n \\"Version\\": \\"standard\\",\\n \\"ResultCode\\": 400,\\n \\"Name\\": \\"gcs-prod-websocket-eip-unicom\\"\\n }\\n ]\\n }\\n}","type":"json"}]',
+ 'title' => 'DistApplicationData',
+ 'summary' => 'Distributes pushed data to the Edge Node Service (ENS) instances of the application. You can specify multiple canary release policies, decompress files, and restart containers.',
+ ],
+ 'CreateApplication' => [
+ 'summary' => 'Creates an edge application that allows you to manage Edge Node Service (ENS) nodes in containers, bare metal instances, and virtual machines.',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'systemTags' => [
+ 'operationType' => 'create',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'Template',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The edge application template. The value must be a JSON string that contains the following information:'."\n"
+ ."\n"
+ .'* Basic information such as the name of the application'."\n"
+ .'* Information such as resource specifications and network security configurations'."\n"
+ .'* Service specifications'."\n"
+ .'* Required resources'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => '{\\"appMetaData\\":{ \\"appName\\":\\"nginx\\", \\"clusterName\\":\\"poc\\", \\"appType\\":\\"Common\\", \\"description\\":\\"test\\" }, \\"resourceAttribute\\":{ \\"resourceType\\":\\"\\", \\"instanceSpec\\":\\"ens.sn1.tiny\\", \\"systemDiskSize\\":20, \\"dataDiskSize\\":0, \\"bandwithOut\\":10, \\"areaLevel\\":\\"National\\", \\"netSecurityStrategy\\":null, \\"initConfig\\":null }, \\"resourceSelector\\":[ { \\"count\\":1 } ], \\"workload\\":[ { \\"podCount\\":1, \\"serviceConfig\\":null, \\"name\\":\\"nginx\\", \\"podSpec\\":{ \\"containers\\":[ { \\"name\\":\\"android\\", \\"image\\":\\"edge-registry.alicdn.com/test/nginx\\" } ] }, \\"count\\":1 } ]}',
+ ],
+ ],
+ [
+ 'name' => 'Timeout',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The timeout period for asynchronous processing. Unit: seconds. Default value: 1800.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'example' => '1800',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'AppId' => [
+ 'description' => 'The ID of the application. This is the unique identifier of the edge application.'."\n",
+ 'type' => 'string',
+ 'example' => 'd0639abf-789a-4527-b420-031d2cd9ad9b',
+ ],
+ 'RequestId' => [
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984',
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'MissingParameter',
+ 'errorMessage' => 'The input parameter that is mandatory for processing this request is not supplied.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter',
+ 'errorMessage' => 'The errorMessage is %s. Please check it again.',
+ ],
+ [
+ 'errorCode' => 'ens.interface.error',
+ 'errorMessage' => 'An error occurred while calling the API.',
+ ],
+ [
+ 'errorCode' => 'CallInterface',
+ 'errorMessage' => 'Call Interface Happen Error.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"AppId\\": \\"d0639abf-789a-4527-b420-031d2cd9ad9b\\",\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\"\\n}","type":"json"}]',
+ 'title' => 'CreateApplication',
+ ],
+ 'DeleteApplication' => [
+ 'summary' => 'Releases all containers and resource instances related to a specific application in an asynchronous manner.',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'systemTags' => [
+ 'operationType' => 'delete',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'AppId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the application. To obtain the application ID, call the ListApplication operation.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'd0639abf-789a-4527-b420-031d2cd9ad9b',
+ ],
+ ],
+ [
+ 'name' => 'Timeout',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The timeout period for the asynchronous release. Unit: seconds. Default value: 300.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'example' => '1800',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => 'AAE90880-4970-4D81-A534-A6C0F3631F74',
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'MissingParameter',
+ 'errorMessage' => 'The input parameter that is mandatory for processing this request is not supplied.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter',
+ 'errorMessage' => 'The errorMessage is %s. Please check it again.',
+ ],
+ [
+ 'errorCode' => 'ens.interface.error',
+ 'errorMessage' => 'An error occurred while calling the API.',
+ ],
+ [
+ 'errorCode' => 'CallInterface',
+ 'errorMessage' => 'Call Interface Happen Error.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"AAE90880-4970-4D81-A534-A6C0F3631F74\\"\\n}","type":"json"}]',
+ 'title' => 'DeleteApplication',
+ ],
+ 'ListApplications' => [
+ 'summary' => 'Queries the created applications.',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'systemTags' => [
+ 'operationType' => 'get',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'ClusterNames',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The name of the application cluster. Separate multiple names with commas (,). If you want to query applications of all clusters in your account, specify All for this parameter. Default value: All.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'poc,pre',
+ ],
+ ],
+ [
+ 'name' => 'AppVersions',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The version number of the application. Separate multiple version numbers with commas (,). If you want to query data of all versions of applications, specify All for this parameter. By default, only data of applications in the stable versions are queried.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'v1,v2',
+ ],
+ ],
+ [
+ 'name' => 'Level',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The region level by which edge resources of the application are collected. The value is of the enumeration type. Valid values:'."\n"
+ ."\n"
+ .'* National: Chinese mainland'."\n"
+ .'* Big: area'."\n"
+ .'* Middle: province'."\n"
+ .'* Small: city'."\n"
+ .'* RegionId: edge node'."\n"
+ ."\n"
+ .'Default value: National.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'enumValueTitles' => [
+ 'Big' => '',
+ 'Small' => '',
+ 'National' => '',
+ 'RegionId' => '',
+ 'Middle' => '',
+ ],
+ 'example' => 'National',
+ 'enum' => [
+ 'National',
+ 'Big',
+ 'Middle',
+ 'Small',
+ 'RegionId',
+ ],
+ ],
+ ],
+ [
+ 'name' => 'OutAppInfoParams',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'Specifies whether to return other information about the application, such as statistics on resource instances and pods. The value must be a JSON string. By default, all information is returned.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '{\\"appInfo\\":true,\\"detailStat\\": true, \\"appVersionStat\\": true, \\"districtStat\\":true ,\\"instanceStat\\": true, \\"podCountStat\\": true}',
+ ],
+ ],
+ [
+ 'name' => 'PageNumber',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The page number. Pages start from page 1. This parameter is optional if you want to return the push status of all data files.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'minimum' => '1',
+ 'example' => '1',
+ 'default' => '1',
+ ],
+ ],
+ [
+ 'name' => 'PageSize',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The number of entries per page. This parameter is optional if you want to return all information about the applications.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'example' => '10',
+ 'default' => '10',
+ ],
+ ],
+ [
+ 'name' => 'MinDate',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The beginning of the time range to query. Specify the time in the 2006-01-02 format. By default, the time range to query is not restricted.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '2022-02-15',
+ ],
+ ],
+ [
+ 'name' => 'MaxDate',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The end of the time range to query. Specify the time in the 2006-01-02 format. By default, the time range to query is not restricted.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '2022-02-20',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'Applications' => [
+ 'type' => 'object',
+ 'itemNode' => true,
+ 'properties' => [
+ 'Application' => [
+ 'description' => 'Details about applications.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => '',
+ 'type' => 'object',
+ 'properties' => [
+ 'AppList' => [
+ 'type' => 'object',
+ 'itemNode' => true,
+ 'properties' => [
+ 'App' => [
+ 'description' => 'Details about the application.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => '',
+ 'type' => 'object',
+ 'properties' => [
+ 'AppId' => [
+ 'description' => 'The ID of the application.'."\n",
+ 'type' => 'string',
+ 'example' => 'e76f8985-7965-41fc-925b-9648bb6bf650',
+ ],
+ 'AppInfo' => [
+ 'description' => 'The information about the application, such as the resource specification, parameter configuration, and resources.'."\n",
+ 'type' => 'string',
+ 'example' => '{'."\n"
+ .' "AppStatus":{'."\n"
+ .' "Phase":"RUNNING",'."\n"
+ .' "StatusDescrip":"{\\"status\\":\\"UPDATE_SUCCESS\\",\\"step\\":\\"DONE\\",\\"descrip\\":\\"update to version:1022 success\\",\\"start_time\\":\\"2022-03-01 16:18:22\\"}",'."\n"
+ .' "UpdateTime":"2022-03-01 16:18:22",'."\n"
+ .' "OrderStatus":null'."\n"
+ .' },'."\n"
+ .' "ResourceAttribute":{'."\n"
+ .' "NetSecurityInfo":null,'."\n"
+ .' "InitConfig":null,'."\n"
+ .' "InventoryType":"Ens",'."\n"
+ .' "InstanceSpec":"ens.gi6s-c12g1.large",'."\n"
+ .' "SystemDiskSize":100,'."\n"
+ .' "DataDiskSize":0,'."\n"
+ .' "BandwithOut":5000,'."\n"
+ .' "SchedulingStrategy":"Disperse",'."\n"
+ .' "ImageId":"m-5or73kzkuxytv7hh6wxr6yc5q",'."\n"
+ .' "ResourceType":"Linux",'."\n"
+ .' "AreaLevel":"National",'."\n"
+ .' "IpType":"PublicIP"'."\n"
+ .' },'."\n"
+ .' "WorkloadAttribute":['."\n"
+ .' {'."\n"
+ .' "Name":"andorid",'."\n"
+ .' "Count":15,'."\n"
+ .' "ServiceConfig":{'."\n"
+ .' "PortsBindConfig":{'."\n"
+ .' "NetServiceContainer":"uravi-service",'."\n"
+ .' "Ports":['."\n"
+ .' {'."\n"
+ .' "Protocol":"TCP",'."\n"
+ .' "BindType":"Mapping",'."\n"
+ .' "StartNodePorts":"31000-31009",'."\n"
+ .' "ContainerPorts":"4440-4449"'."\n"
+ .' },'."\n"
+ .' {'."\n"
+ .' "Protocol":"TCP",'."\n"
+ .' "BindType":"PassThrough",'."\n"
+ .' "StartNodePorts":"59000-59000",'."\n"
+ .' "ContainerPorts":"59000-59000"'."\n"
+ .' },'."\n"
+ .' {'."\n"
+ .' "Protocol":"UDP",'."\n"
+ .' "BindType":"PassThrough",'."\n"
+ .' "StartNodePorts":"40001-40010",'."\n"
+ .' "ContainerPorts":"40001-40010"'."\n"
+ .' }'."\n"
+ .' ]'."\n"
+ .' },'."\n"
+ .' "ServiceContainerName":"android"'."\n"
+ .' }'."\n"
+ .' },'."\n"
+ .' {'."\n"
+ .' "Name":"coturn",'."\n"
+ .' "Count":1,'."\n"
+ .' "ServiceConfig":{'."\n"
+ .' "PortsBindConfig":{'."\n"
+ .' "NetServiceContainer":"coturn",'."\n"
+ .' "Ports":['."\n"
+ .' {'."\n"
+ .' "Protocol":"TCP",'."\n"
+ .' "BindType":"PassThrough",'."\n"
+ .' "StartNodePorts":"3478-3478",'."\n"
+ .' "ContainerPorts":"3478-3478"'."\n"
+ .' },'."\n"
+ .' {'."\n"
+ .' "Protocol":"UDP",'."\n"
+ .' "BindType":"PassThrough",'."\n"
+ .' "StartNodePorts":"3478-3478",'."\n"
+ .' "ContainerPorts":"3478-3478"'."\n"
+ .' }'."\n"
+ .' ]'."\n"
+ .' },'."\n"
+ .' "ServiceContainerName":"coturn"'."\n"
+ .' }'."\n"
+ .' },'."\n"
+ .' {'."\n"
+ .' "Name":"aic-manager",'."\n"
+ .' "Count":1,'."\n"
+ .' "ServiceConfig":null'."\n"
+ .' }'."\n"
+ .' ]'."\n"
+ .'}',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'ClusterName' => [
+ 'description' => 'The name of the cluster.'."\n",
+ 'type' => 'string',
+ 'example' => 'ay-ads-hz-h',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'PageNumber' => [
+ 'description' => 'The page number.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '1',
+ ],
+ 'PageSize' => [
+ 'description' => 'The number of entries per page.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '10',
+ ],
+ 'RequestId' => [
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => '50373E71-7710-4620-8AAB-133CCE49451C',
+ ],
+ 'TotalCount' => [
+ 'description' => 'The total number of entries returned.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '49',
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'MissingParameter',
+ 'errorMessage' => 'The input parameter that is mandatory for processing this request is not supplied.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter',
+ 'errorMessage' => 'The errorMessage is %s. Please check it again.',
+ ],
+ [
+ 'errorCode' => 'ens.interface.error',
+ 'errorMessage' => 'An error occurred while calling the API.',
+ ],
+ [
+ 'errorCode' => 'CallInterface',
+ 'errorMessage' => 'Call Interface Happen Error.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Applications\\": {\\n \\"Application\\": [\\n {\\n \\"AppList\\": {\\n \\"App\\": [\\n {\\n \\"AppId\\": \\"e76f8985-7965-41fc-925b-9648bb6bf650\\",\\n \\"AppInfo\\": \\"{\\\\n \\\\\\"AppStatus\\\\\\":{\\\\n \\\\\\"Phase\\\\\\":\\\\\\"RUNNING\\\\\\",\\\\n \\\\\\"StatusDescrip\\\\\\":\\\\\\"{\\\\\\\\\\\\\\"status\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"UPDATE_SUCCESS\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"step\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"DONE\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"descrip\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"update to version:1022 success\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"start_time\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"2022-03-01 16:18:22\\\\\\\\\\\\\\"}\\\\\\",\\\\n \\\\\\"UpdateTime\\\\\\":\\\\\\"2022-03-01 16:18:22\\\\\\",\\\\n \\\\\\"OrderStatus\\\\\\":null\\\\n },\\\\n \\\\\\"ResourceAttribute\\\\\\":{\\\\n \\\\\\"NetSecurityInfo\\\\\\":null,\\\\n \\\\\\"InitConfig\\\\\\":null,\\\\n \\\\\\"InventoryType\\\\\\":\\\\\\"Ens\\\\\\",\\\\n \\\\\\"InstanceSpec\\\\\\":\\\\\\"ens.gi6s-c12g1.large\\\\\\",\\\\n \\\\\\"SystemDiskSize\\\\\\":100,\\\\n \\\\\\"DataDiskSize\\\\\\":0,\\\\n \\\\\\"BandwithOut\\\\\\":5000,\\\\n \\\\\\"SchedulingStrategy\\\\\\":\\\\\\"Disperse\\\\\\",\\\\n \\\\\\"ImageId\\\\\\":\\\\\\"m-5or73kzkuxytv7hh6wxr6yc5q\\\\\\",\\\\n \\\\\\"ResourceType\\\\\\":\\\\\\"Linux\\\\\\",\\\\n \\\\\\"AreaLevel\\\\\\":\\\\\\"National\\\\\\",\\\\n \\\\\\"IpType\\\\\\":\\\\\\"PublicIP\\\\\\"\\\\n },\\\\n \\\\\\"WorkloadAttribute\\\\\\":[\\\\n {\\\\n \\\\\\"Name\\\\\\":\\\\\\"andorid\\\\\\",\\\\n \\\\\\"Count\\\\\\":15,\\\\n \\\\\\"ServiceConfig\\\\\\":{\\\\n \\\\\\"PortsBindConfig\\\\\\":{\\\\n \\\\\\"NetServiceContainer\\\\\\":\\\\\\"uravi-service\\\\\\",\\\\n \\\\\\"Ports\\\\\\":[\\\\n {\\\\n \\\\\\"Protocol\\\\\\":\\\\\\"TCP\\\\\\",\\\\n \\\\\\"BindType\\\\\\":\\\\\\"Mapping\\\\\\",\\\\n \\\\\\"StartNodePorts\\\\\\":\\\\\\"31000-31009\\\\\\",\\\\n \\\\\\"ContainerPorts\\\\\\":\\\\\\"4440-4449\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\"Protocol\\\\\\":\\\\\\"TCP\\\\\\",\\\\n \\\\\\"BindType\\\\\\":\\\\\\"PassThrough\\\\\\",\\\\n \\\\\\"StartNodePorts\\\\\\":\\\\\\"59000-59000\\\\\\",\\\\n \\\\\\"ContainerPorts\\\\\\":\\\\\\"59000-59000\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\"Protocol\\\\\\":\\\\\\"UDP\\\\\\",\\\\n \\\\\\"BindType\\\\\\":\\\\\\"PassThrough\\\\\\",\\\\n \\\\\\"StartNodePorts\\\\\\":\\\\\\"40001-40010\\\\\\",\\\\n \\\\\\"ContainerPorts\\\\\\":\\\\\\"40001-40010\\\\\\"\\\\n }\\\\n ]\\\\n },\\\\n \\\\\\"ServiceContainerName\\\\\\":\\\\\\"android\\\\\\"\\\\n }\\\\n },\\\\n {\\\\n \\\\\\"Name\\\\\\":\\\\\\"coturn\\\\\\",\\\\n \\\\\\"Count\\\\\\":1,\\\\n \\\\\\"ServiceConfig\\\\\\":{\\\\n \\\\\\"PortsBindConfig\\\\\\":{\\\\n \\\\\\"NetServiceContainer\\\\\\":\\\\\\"coturn\\\\\\",\\\\n \\\\\\"Ports\\\\\\":[\\\\n {\\\\n \\\\\\"Protocol\\\\\\":\\\\\\"TCP\\\\\\",\\\\n \\\\\\"BindType\\\\\\":\\\\\\"PassThrough\\\\\\",\\\\n \\\\\\"StartNodePorts\\\\\\":\\\\\\"3478-3478\\\\\\",\\\\n \\\\\\"ContainerPorts\\\\\\":\\\\\\"3478-3478\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\"Protocol\\\\\\":\\\\\\"UDP\\\\\\",\\\\n \\\\\\"BindType\\\\\\":\\\\\\"PassThrough\\\\\\",\\\\n \\\\\\"StartNodePorts\\\\\\":\\\\\\"3478-3478\\\\\\",\\\\n \\\\\\"ContainerPorts\\\\\\":\\\\\\"3478-3478\\\\\\"\\\\n }\\\\n ]\\\\n },\\\\n \\\\\\"ServiceContainerName\\\\\\":\\\\\\"coturn\\\\\\"\\\\n }\\\\n },\\\\n {\\\\n \\\\\\"Name\\\\\\":\\\\\\"aic-manager\\\\\\",\\\\n \\\\\\"Count\\\\\\":1,\\\\n \\\\\\"ServiceConfig\\\\\\":null\\\\n }\\\\n ]\\\\n}\\"\\n }\\n ]\\n },\\n \\"ClusterName\\": \\"ay-ads-hz-h\\"\\n }\\n ]\\n },\\n \\"PageNumber\\": 1,\\n \\"PageSize\\": 10,\\n \\"RequestId\\": \\"50373E71-7710-4620-8AAB-133CCE49451C\\",\\n \\"TotalCount\\": 49\\n}","type":"json"}]',
+ 'title' => 'ListApplications',
+ ],
+ 'DescribeApplication' => [
+ 'summary' => 'Queries the basic properties, resources, and container status of an application.',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'systemTags' => [
+ 'operationType' => 'get',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'AppId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the application. You can call the ListApplications operation to obtain the application ID.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'a2bac6f4-75dc-455e-8389-2dc8e47526d3',
+ ],
+ ],
+ [
+ 'name' => 'AppVersions',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The version number of the application. Separate multiple version numbers with commas (,). If you want to query data of all versions of applications, specify All for this parameter. By default, only data of applications in the stable versions are queried.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'v1,v2',
+ ],
+ ],
+ [
+ 'name' => 'Level',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The region level by which edge resources of the application are collected. The value is of the enumeration type. Valid values:'."\n"
+ ."\n"
+ .'* National: Chinese mainland'."\n"
+ .'* Big: area'."\n"
+ .'* Middle: province'."\n"
+ .'* Small: city'."\n"
+ .'* RegionId: edge node'."\n"
+ ."\n"
+ .'Default value: National.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'enumValueTitles' => [
+ 'Big' => '',
+ 'Small' => '',
+ 'National' => '',
+ 'RegionId' => '',
+ 'Middle' => '',
+ ],
+ 'example' => 'National',
+ 'enum' => [
+ 'National',
+ 'Big',
+ 'Middle',
+ 'Small',
+ 'RegionId',
+ ],
+ ],
+ ],
+ [
+ 'name' => 'OutDetailStatParams',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'Specifies whether to return other information about the application, such as statistics on resource instances and pods. The value must be a JSON string. By default, all information is returned.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '{\\"appInfo\\":true,\\"detailStat\\": true, \\"appVersionStat\\": true, \\"districtStat\\":true ,\\"instanceStat\\": true, \\"podCountStat\\": true}',
+ ],
+ ],
+ [
+ 'name' => 'ResourceSelector',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '资源筛选条件',
+ 'description' => 'The resource filtering condition.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '[{\\"regionCode\\": \\"cn-wuxi-telecom_unicom_cmcc-3\\", \\"ispCode\\": \\"telecom\\", \\"count\\": 2 },{ \\"regionCode\\": \\"cn-shanghai-cmcc\\", \\"count\\": 4 }]',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'Application' => [
+ 'description' => 'The returned application information.'."\n",
+ 'type' => 'string',
+ 'example' => '{'."\n"
+ .' "AppMetaData":{'."\n"
+ .' "AppId":"b0b27670-87d5-4c40-9ea8-adeeec2986ce",'."\n"
+ .' "AppName":"asp-yz",'."\n"
+ .' "ClusterName":"poc",'."\n"
+ .' "AppStableVersion":"0825",'."\n"
+ .' "AppType":"Scheduler",'."\n"
+ .' "Description":"Daily testing CPU environment",'."\n"
+ .' "CreateTime":"2020-08-25 16:36:16"'."\n"
+ .' },'."\n"
+ .' "AppStatus":{'."\n"
+ .' "Phase":"RUNNING",'."\n"
+ .' "StatusDescrip":"{\\"status\\":\\"UPDATE_SUCCESS\\",\\"step\\":\\"DONE\\",\\"descrip\\":\\"delVersion success\\",\\"start_time\\":\\"2021-08-18 14:46:45\\"}",'."\n"
+ .' "UpdateTime":"2021-08-18 14:46:45"'."\n"
+ .' },'."\n"
+ .' "ResourceAttribute":{'."\n"
+ .' "ResourceType":"Ens",'."\n"
+ .' "ResourceAgent":"Linux",'."\n"
+ .' "InstanceSpec":"ens.sn1.large",'."\n"
+ .' "SystemDiskSize":40,'."\n"
+ .' "DataDiskSize":0,'."\n"
+ .' "BandwithOut":10,'."\n"
+ .' "SchedulingStrategy":"Disperse",'."\n"
+ .' "AreaLevel":"RegionId",'."\n"
+ .' "IpType":"PublicIP"'."\n"
+ .' },'."\n"
+ .' "WorkloadAttribute":['."\n"
+ .' {'."\n"
+ .' "Name":"andorid",'."\n"
+ .' "PodCount":7,'."\n"
+ .' "ServiceConfig":{'."\n"
+ .' "PortsBindConfig":{'."\n"
+ .' "NetServiceContainer":"aspserver-android",'."\n"
+ .' "Ports":['."\n"
+ .' {'."\n"
+ .' "Protocol":"TCP",'."\n"
+ .' "BindType":"PassThrough",'."\n"
+ .' "StartNodePorts":"5000-5000",'."\n"
+ .' "ContainerPorts":"5000-5000"'."\n"
+ .' },'."\n"
+ .' {'."\n"
+ .' "Protocol":"UDP",'."\n"
+ .' "BindType":"PassThrough",'."\n"
+ .' "StartNodePorts":"4001-4010",'."\n"
+ .' "ContainerPorts":"4001-4010"'."\n"
+ .' }'."\n"
+ .' ]'."\n"
+ .' },'."\n"
+ .' "ServiceContainerName":"android"'."\n"
+ .' }'."\n"
+ .' },'."\n"
+ .' {'."\n"
+ .' "Name":"aic-manager",'."\n"
+ .' "PodCount":1,'."\n"
+ .' "ServiceConfig":null'."\n"
+ .' }'."\n"
+ .' ],'."\n"
+ .' "DetailStat":{'."\n"
+ .' "Level":"Small",'."\n"
+ .' "InstanceTotalCount":1,'."\n"
+ .' "InstanceRunningCount":0,'."\n"
+ .' "PodCountStat":['."\n"
+ .' {'."\n"
+ .' "Name":"andorid",'."\n"
+ .' "RunningCount":7,'."\n"
+ .' "ProducedCount":7,'."\n"
+ .' "Devices":null'."\n"
+ .' },'."\n"
+ .' {'."\n"
+ .' "Name":"aic-manager",'."\n"
+ .' "RunningCount":1,'."\n"
+ .' "ProducedCount":1,'."\n"
+ .' "Devices":null'."\n"
+ .' }'."\n"
+ .' ],'."\n"
+ .' "AppVersionStat":['."\n"
+ .' {'."\n"
+ .' "AppVersion":"08102",'."\n"
+ .' "Descrip":"White Screen Test 2",'."\n"
+ .' "CreateTime":"2021-08-10 11:20:04",'."\n"
+ .' "InstanceTotalCount":1,'."\n"
+ .' "InstanceRunningCount":0,'."\n"
+ .' "PodCountStat":['."\n"
+ .' {'."\n"
+ .' "Name":"andorid",'."\n"
+ .' "RunningCount":7,'."\n"
+ .' "ProducedCount":7,'."\n"
+ .' "Devices":null'."\n"
+ .' },'."\n"
+ .' {'."\n"
+ .' "Name":"aic-manager",'."\n"
+ .' "RunningCount":1,'."\n"
+ .' "ProducedCount":1,'."\n"
+ .' "Devices":null'."\n"
+ .' }'."\n"
+ .' ],'."\n"
+ .' "DistrictStat":['."\n"
+ .' {'."\n"
+ .' "AreaCode":"310100",'."\n"
+ .' "AreaName":"East China,,",'."\n"
+ .' "RegionCode":"310100",'."\n"
+ .' "RegionName":"",'."\n"
+ .' "IspCode":"telecom",'."\n"
+ .' "RegionIds":['."\n"
+ .' "cn-shanghai-telecom-2"'."\n"
+ .' ],'."\n"
+ .' "InstanceTotalCount":1,'."\n"
+ .' "InstanceRunningCount":0,'."\n"
+ .' "PodCountStat":['."\n"
+ .' {'."\n"
+ .' "Name":"andorid",'."\n"
+ .' "RunningCount":7,'."\n"
+ .' "ProducedCount":7,'."\n"
+ .' "Devices":null'."\n"
+ .' },'."\n"
+ .' {'."\n"
+ .' "Name":"aic-manager",'."\n"
+ .' "RunningCount":1,'."\n"
+ .' "ProducedCount":1,'."\n"
+ .' "Devices":null'."\n"
+ .' }'."\n"
+ .' ],'."\n"
+ .' "InstanceStat":['."\n"
+ .' {'."\n"
+ .' "InstanceId":"i-xxxxxxx",'."\n"
+ .' "PublicIps":['."\n"
+ .' {'."\n"
+ .' "PublicIp":"101.227.7.12",'."\n"
+ .' "Isp":"telecom"'."\n"
+ .' }'."\n"
+ .' ],'."\n"
+ .' "InternalIps":['."\n"
+ .' {'."\n"
+ .' "Ip":"10.0.1.4"'."\n"
+ .' }'."\n"
+ .' ],'."\n"
+ .' "RegionId":"cn-shanghai-telecom-2",'."\n"
+ .' "NcName":"",'."\n"
+ .' "InstanceStatus":"",'."\n"
+ .' "CreateTime":"2020-09-12 22:33:08",'."\n"
+ .' "PodCountStat":['."\n"
+ .' {'."\n"
+ .' "Name":"andorid",'."\n"
+ .' "RunningCount":7,'."\n"
+ .' "ProducedCount":7,'."\n"
+ .' "Devices":['."\n"
+ .' {'."\n"
+ .' "Name":"asp-yz-andorid-08102-zjzmcyaw-0",'."\n"
+ .' "Status":"Running",'."\n"
+ .' "Ports":null'."\n"
+ .' },'."\n"
+ .' {'."\n"
+ .' "Name":"asp-yz-andorid-08102-zjzmcyaw-1",'."\n"
+ .' "Status":"Running",'."\n"
+ .' "Ports":null'."\n"
+ .' },'."\n"
+ .' {'."\n"
+ .' "Name":"asp-yz-andorid-08102-zjzmcyaw-2",'."\n"
+ .' "Status":"Running",'."\n"
+ .' "Ports":null'."\n"
+ .' },'."\n"
+ .' {'."\n"
+ .' "Name":"asp-yz-andorid-08102-zjzmcyaw-3",'."\n"
+ .' "Status":"Running",'."\n"
+ .' "Ports":null'."\n"
+ .' },'."\n"
+ .' {'."\n"
+ .' "Name":"asp-yz-andorid-08102-zjzmcyaw-4",'."\n"
+ .' "Status":"Running",'."\n"
+ .' "Ports":null'."\n"
+ .' },'."\n"
+ .' {'."\n"
+ .' "Name":"asp-yz-andorid-08102-zjzmcyaw-5",'."\n"
+ .' "Status":"Running",'."\n"
+ .' "Ports":null'."\n"
+ .' },'."\n"
+ .' {'."\n"
+ .' "Name":"asp-yz-andorid-08102-zjzmcyaw-6",'."\n"
+ .' "Status":"Running",'."\n"
+ .' "Ports":null'."\n"
+ .' }'."\n"
+ .' ]'."\n"
+ .' },'."\n"
+ .' {'."\n"
+ .' "Name":"aic-manager",'."\n"
+ .' "RunningCount":1,'."\n"
+ .' "ProducedCount":1,'."\n"
+ .' "Devices":['."\n"
+ .' {'."\n"
+ .' "Name":"asp-yz-aic-manager-08102-zjzmcyaw-0",'."\n"
+ .' "Status":"Running",'."\n"
+ .' "Ports":null'."\n"
+ .' }'."\n"
+ .' ]'."\n"
+ .' }'."\n"
+ .' ],'."\n"
+ .' "AppVersionDescrip":""'."\n"
+ .' }'."\n"
+ .' ]'."\n"
+ .' }'."\n"
+ .' ]'."\n"
+ .' }'."\n"
+ .' ]'."\n"
+ .' }'."\n"
+ .'}',
+ ],
+ 'RequestId' => [
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E',
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'MissingParameter',
+ 'errorMessage' => 'The input parameter that is mandatory for processing this request is not supplied.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter',
+ 'errorMessage' => 'The errorMessage is %s. Please check it again.',
+ ],
+ [
+ 'errorCode' => 'ens.interface.error',
+ 'errorMessage' => 'An error occurred while calling the API.',
+ ],
+ [
+ 'errorCode' => 'CallInterface',
+ 'errorMessage' => 'Call Interface Happen Error.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Application\\": \\"{\\\\n \\\\\\"AppMetaData\\\\\\":{\\\\n \\\\\\"AppId\\\\\\":\\\\\\"b0b27670-87d5-4c40-9ea8-adeeec2986ce\\\\\\",\\\\n \\\\\\"AppName\\\\\\":\\\\\\"asp-yz\\\\\\",\\\\n \\\\\\"ClusterName\\\\\\":\\\\\\"poc\\\\\\",\\\\n \\\\\\"AppStableVersion\\\\\\":\\\\\\"0825\\\\\\",\\\\n \\\\\\"AppType\\\\\\":\\\\\\"Scheduler\\\\\\",\\\\n \\\\\\"Description\\\\\\":\\\\\\"日常测试CPU环境\\\\\\",\\\\n \\\\\\"CreateTime\\\\\\":\\\\\\"2020-08-25 16:36:16\\\\\\"\\\\n },\\\\n \\\\\\"AppStatus\\\\\\":{\\\\n \\\\\\"Phase\\\\\\":\\\\\\"RUNNING\\\\\\",\\\\n \\\\\\"StatusDescrip\\\\\\":\\\\\\"{\\\\\\\\\\\\\\"status\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"UPDATE_SUCCESS\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"step\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"DONE\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"descrip\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"delVersion success\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"start_time\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"2021-08-18 14:46:45\\\\\\\\\\\\\\"}\\\\\\",\\\\n \\\\\\"UpdateTime\\\\\\":\\\\\\"2021-08-18 14:46:45\\\\\\"\\\\n },\\\\n \\\\\\"ResourceAttribute\\\\\\":{\\\\n \\\\\\"ResourceType\\\\\\":\\\\\\"Ens\\\\\\",\\\\n \\\\\\"ResourceAgent\\\\\\":\\\\\\"Linux\\\\\\",\\\\n \\\\\\"InstanceSpec\\\\\\":\\\\\\"ens.sn1.large\\\\\\",\\\\n \\\\\\"SystemDiskSize\\\\\\":40,\\\\n \\\\\\"DataDiskSize\\\\\\":0,\\\\n \\\\\\"BandwithOut\\\\\\":10,\\\\n \\\\\\"SchedulingStrategy\\\\\\":\\\\\\"Disperse\\\\\\",\\\\n \\\\\\"AreaLevel\\\\\\":\\\\\\"RegionId\\\\\\",\\\\n \\\\\\"IpType\\\\\\":\\\\\\"PublicIP\\\\\\"\\\\n },\\\\n \\\\\\"WorkloadAttribute\\\\\\":[\\\\n {\\\\n \\\\\\"Name\\\\\\":\\\\\\"andorid\\\\\\",\\\\n \\\\\\"PodCount\\\\\\":7,\\\\n \\\\\\"ServiceConfig\\\\\\":{\\\\n \\\\\\"PortsBindConfig\\\\\\":{\\\\n \\\\\\"NetServiceContainer\\\\\\":\\\\\\"aspserver-android\\\\\\",\\\\n \\\\\\"Ports\\\\\\":[\\\\n {\\\\n \\\\\\"Protocol\\\\\\":\\\\\\"TCP\\\\\\",\\\\n \\\\\\"BindType\\\\\\":\\\\\\"PassThrough\\\\\\",\\\\n \\\\\\"StartNodePorts\\\\\\":\\\\\\"5000-5000\\\\\\",\\\\n \\\\\\"ContainerPorts\\\\\\":\\\\\\"5000-5000\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\"Protocol\\\\\\":\\\\\\"UDP\\\\\\",\\\\n \\\\\\"BindType\\\\\\":\\\\\\"PassThrough\\\\\\",\\\\n \\\\\\"StartNodePorts\\\\\\":\\\\\\"4001-4010\\\\\\",\\\\n \\\\\\"ContainerPorts\\\\\\":\\\\\\"4001-4010\\\\\\"\\\\n }\\\\n ]\\\\n },\\\\n \\\\\\"ServiceContainerName\\\\\\":\\\\\\"android\\\\\\"\\\\n }\\\\n },\\\\n {\\\\n \\\\\\"Name\\\\\\":\\\\\\"aic-manager\\\\\\",\\\\n \\\\\\"PodCount\\\\\\":1,\\\\n \\\\\\"ServiceConfig\\\\\\":null\\\\n }\\\\n ],\\\\n \\\\\\"DetailStat\\\\\\":{\\\\n \\\\\\"Level\\\\\\":\\\\\\"Small\\\\\\",\\\\n \\\\\\"InstanceTotalCount\\\\\\":1,\\\\n \\\\\\"InstanceRunningCount\\\\\\":0,\\\\n \\\\\\"PodCountStat\\\\\\":[\\\\n {\\\\n \\\\\\"Name\\\\\\":\\\\\\"andorid\\\\\\",\\\\n \\\\\\"RunningCount\\\\\\":7,\\\\n \\\\\\"ProducedCount\\\\\\":7,\\\\n \\\\\\"Devices\\\\\\":null\\\\n },\\\\n {\\\\n \\\\\\"Name\\\\\\":\\\\\\"aic-manager\\\\\\",\\\\n \\\\\\"RunningCount\\\\\\":1,\\\\n \\\\\\"ProducedCount\\\\\\":1,\\\\n \\\\\\"Devices\\\\\\":null\\\\n }\\\\n ],\\\\n \\\\\\"AppVersionStat\\\\\\":[\\\\n {\\\\n \\\\\\"AppVersion\\\\\\":\\\\\\"08102\\\\\\",\\\\n \\\\\\"Descrip\\\\\\":\\\\\\"白屏化测试2\\\\\\",\\\\n \\\\\\"CreateTime\\\\\\":\\\\\\"2021-08-10 11:20:04\\\\\\",\\\\n \\\\\\"InstanceTotalCount\\\\\\":1,\\\\n \\\\\\"InstanceRunningCount\\\\\\":0,\\\\n \\\\\\"PodCountStat\\\\\\":[\\\\n {\\\\n \\\\\\"Name\\\\\\":\\\\\\"andorid\\\\\\",\\\\n \\\\\\"RunningCount\\\\\\":7,\\\\n \\\\\\"ProducedCount\\\\\\":7,\\\\n \\\\\\"Devices\\\\\\":null\\\\n },\\\\n {\\\\n \\\\\\"Name\\\\\\":\\\\\\"aic-manager\\\\\\",\\\\n \\\\\\"RunningCount\\\\\\":1,\\\\n \\\\\\"ProducedCount\\\\\\":1,\\\\n \\\\\\"Devices\\\\\\":null\\\\n }\\\\n ],\\\\n \\\\\\"DistrictStat\\\\\\":[\\\\n {\\\\n \\\\\\"AreaCode\\\\\\":\\\\\\"310100\\\\\\",\\\\n \\\\\\"AreaName\\\\\\":\\\\\\"华东,,\\\\\\",\\\\n \\\\\\"RegionCode\\\\\\":\\\\\\"310100\\\\\\",\\\\n \\\\\\"RegionName\\\\\\":\\\\\\"\\\\\\",\\\\n \\\\\\"IspCode\\\\\\":\\\\\\"telecom\\\\\\",\\\\n \\\\\\"RegionIds\\\\\\":[\\\\n \\\\\\"cn-shanghai-telecom-2\\\\\\"\\\\n ],\\\\n \\\\\\"InstanceTotalCount\\\\\\":1,\\\\n \\\\\\"InstanceRunningCount\\\\\\":0,\\\\n \\\\\\"PodCountStat\\\\\\":[\\\\n {\\\\n \\\\\\"Name\\\\\\":\\\\\\"andorid\\\\\\",\\\\n \\\\\\"RunningCount\\\\\\":7,\\\\n \\\\\\"ProducedCount\\\\\\":7,\\\\n \\\\\\"Devices\\\\\\":null\\\\n },\\\\n {\\\\n \\\\\\"Name\\\\\\":\\\\\\"aic-manager\\\\\\",\\\\n \\\\\\"RunningCount\\\\\\":1,\\\\n \\\\\\"ProducedCount\\\\\\":1,\\\\n \\\\\\"Devices\\\\\\":null\\\\n }\\\\n ],\\\\n \\\\\\"InstanceStat\\\\\\":[\\\\n {\\\\n \\\\\\"InstanceId\\\\\\":\\\\\\"i-xxxxxxx\\\\\\",\\\\n \\\\\\"PublicIps\\\\\\":[\\\\n {\\\\n \\\\\\"PublicIp\\\\\\":\\\\\\"101.227.7.12\\\\\\",\\\\n \\\\\\"Isp\\\\\\":\\\\\\"telecom\\\\\\"\\\\n }\\\\n ],\\\\n \\\\\\"InternalIps\\\\\\":[\\\\n {\\\\n \\\\\\"Ip\\\\\\":\\\\\\"10.0.1.4\\\\\\"\\\\n }\\\\n ],\\\\n \\\\\\"RegionId\\\\\\":\\\\\\"cn-shanghai-telecom-2\\\\\\",\\\\n \\\\\\"NcName\\\\\\":\\\\\\"\\\\\\",\\\\n \\\\\\"InstanceStatus\\\\\\":\\\\\\"\\\\\\",\\\\n \\\\\\"CreateTime\\\\\\":\\\\\\"2020-09-12 22:33:08\\\\\\",\\\\n \\\\\\"PodCountStat\\\\\\":[\\\\n {\\\\n \\\\\\"Name\\\\\\":\\\\\\"andorid\\\\\\",\\\\n \\\\\\"RunningCount\\\\\\":7,\\\\n \\\\\\"ProducedCount\\\\\\":7,\\\\n \\\\\\"Devices\\\\\\":[\\\\n {\\\\n \\\\\\"Name\\\\\\":\\\\\\"asp-yz-andorid-08102-zjzmcyaw-0\\\\\\",\\\\n \\\\\\"Status\\\\\\":\\\\\\"Running\\\\\\",\\\\n \\\\\\"Ports\\\\\\":null\\\\n },\\\\n {\\\\n \\\\\\"Name\\\\\\":\\\\\\"asp-yz-andorid-08102-zjzmcyaw-1\\\\\\",\\\\n \\\\\\"Status\\\\\\":\\\\\\"Running\\\\\\",\\\\n \\\\\\"Ports\\\\\\":null\\\\n },\\\\n {\\\\n \\\\\\"Name\\\\\\":\\\\\\"asp-yz-andorid-08102-zjzmcyaw-2\\\\\\",\\\\n \\\\\\"Status\\\\\\":\\\\\\"Running\\\\\\",\\\\n \\\\\\"Ports\\\\\\":null\\\\n },\\\\n {\\\\n \\\\\\"Name\\\\\\":\\\\\\"asp-yz-andorid-08102-zjzmcyaw-3\\\\\\",\\\\n \\\\\\"Status\\\\\\":\\\\\\"Running\\\\\\",\\\\n \\\\\\"Ports\\\\\\":null\\\\n },\\\\n {\\\\n \\\\\\"Name\\\\\\":\\\\\\"asp-yz-andorid-08102-zjzmcyaw-4\\\\\\",\\\\n \\\\\\"Status\\\\\\":\\\\\\"Running\\\\\\",\\\\n \\\\\\"Ports\\\\\\":null\\\\n },\\\\n {\\\\n \\\\\\"Name\\\\\\":\\\\\\"asp-yz-andorid-08102-zjzmcyaw-5\\\\\\",\\\\n \\\\\\"Status\\\\\\":\\\\\\"Running\\\\\\",\\\\n \\\\\\"Ports\\\\\\":null\\\\n },\\\\n {\\\\n \\\\\\"Name\\\\\\":\\\\\\"asp-yz-andorid-08102-zjzmcyaw-6\\\\\\",\\\\n \\\\\\"Status\\\\\\":\\\\\\"Running\\\\\\",\\\\n \\\\\\"Ports\\\\\\":null\\\\n }\\\\n ]\\\\n },\\\\n {\\\\n \\\\\\"Name\\\\\\":\\\\\\"aic-manager\\\\\\",\\\\n \\\\\\"RunningCount\\\\\\":1,\\\\n \\\\\\"ProducedCount\\\\\\":1,\\\\n \\\\\\"Devices\\\\\\":[\\\\n {\\\\n \\\\\\"Name\\\\\\":\\\\\\"asp-yz-aic-manager-08102-zjzmcyaw-0\\\\\\",\\\\n \\\\\\"Status\\\\\\":\\\\\\"Running\\\\\\",\\\\n \\\\\\"Ports\\\\\\":null\\\\n }\\\\n ]\\\\n }\\\\n ],\\\\n \\\\\\"AppVersionDescrip\\\\\\":\\\\\\"\\\\\\"\\\\n }\\\\n ]\\\\n }\\\\n ]\\\\n }\\\\n ]\\\\n }\\\\n}\\",\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E\\"\\n}","type":"json"}]',
+ 'title' => 'DescribeApplication',
+ ],
+ 'UpgradeApplication' => [
+ 'summary' => 'Updates the container in an asynchronous manner. You can configure multiple canary release policies.',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'systemTags' => [
+ 'operationType' => 'update',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'AppId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the application.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'a2bac6f4-75dc-455e-8389-2dc8e47526d3',
+ ],
+ ],
+ [
+ 'name' => 'Template',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The information template for phased update. The value must be a JSON string and contain the following information:'."\n"
+ ."\n"
+ .'* Version range that you want to update'."\n"
+ .'* Configuration information of the target version'."\n"
+ .'* Canary release policy for resources'."\n"
+ .'* Intelligent upgrade policy that contains information such as the time window and resource usage limit'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => '{\\"fromAppVersions\\":{ \\"operator\\":\\"In\\", \\"values\\":[ \\"v1\\", \\"v2\\" ] }, \\"toAppVersion\\":\\"v3\\", \\"descrip\\":\\"xxx\\", \\"workload\\":[ { \\"name\\":\\"nginx\\", \\"podSpec\\":{ } } ], \\"upgradeStrategy\\":{ \\"name\\":\\"ScheduleToISP\\", \\"parameters\\":{ \\"operator\\":\\"In\\", \\"values\\":[ \\"telecom\\" ] } }, \\"autoUpgradeStrategy\\":{ \\"name\\":\\"AdjustToPodUsage\\", \\"checkInterval\\":600, \\"startTime\\":\\"2021-02-19 00:00:00\\", \\"startHourPoint\\":\\"0\\", \\"endHourPoint\\":\\"8\\", \\"endTime\\":\\"2021-02-19 08:00:00\\", \\"level\\":\\"RegionId\\", \\"rules\\":[ { \\"regionCodes\\":[ \\"cn-wuxi-telecom_unicom_cmcc\\", \\"cn-shijiazhuang-telecom_unicom_cmcc\\" ], \\"usageRatioLimit\\":{ \\"maxPodUsageRatio\\":50 }, \\"maxUpgradingRatio\\":50 }, { \\"regionCodes\\":[ \\"cn-wuhan-telecom_unicom_cmcc\\" ], \\"usageRatioLimit\\":{ \\"maxPodUsageRatio\\":30 }, \\"maxUpgradingRatio\\":20 }, { \\"regionCodes\\":[ \\"All\\" ], \\"usageRatioLimit\\":{ \\"maxPodUsageRatio\\":20 }, \\"maxUpgradingRatio\\":50, \\"maxUpgradingCount\\":2 } ] }}',
+ ],
+ ],
+ [
+ 'name' => 'Timeout',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The timeout period for asynchronous upgrade. Unit: seconds. Default value: 300.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'example' => '1800',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E',
+ ],
+ 'TaskId' => [
+ 'description' => 'The task ID. You can use the task ID to query the upgrade progress or status.'."\n",
+ 'type' => 'string',
+ 'example' => '6f24a774-6bd5-4026-bb7d-deffb1dad875',
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'MissingParameter',
+ 'errorMessage' => 'The input parameter that is mandatory for processing this request is not supplied.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter',
+ 'errorMessage' => 'The errorMessage is %s. Please check it again.',
+ ],
+ [
+ 'errorCode' => 'ens.interface.error',
+ 'errorMessage' => 'An error occurred while calling the API.',
+ ],
+ [
+ 'errorCode' => 'CallInterface',
+ 'errorMessage' => 'Call Interface Happen Error.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E\\",\\n \\"TaskId\\": \\"6f24a774-6bd5-4026-bb7d-deffb1dad875\\"\\n}","type":"json"}]',
+ 'title' => 'UpgradeApplication',
+ ],
+ 'RollbackApplication' => [
+ 'summary' => 'Rolls back the container version of a specific application.',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'systemTags' => [
+ 'operationType' => 'update',
+ 'abilityTreeCode' => '4389',
+ 'abilityTreeNodes' => [
+ 'FEATUREensZ35IDE',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'AppId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the application.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => '474bdef0-d149-4695-abfb-52912d91****',
+ ],
+ ],
+ [
+ 'name' => 'FromAppVersion',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The current version number.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'v2-1',
+ ],
+ ],
+ [
+ 'name' => 'ToAppVersion',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The target version number. By default, the system automatically rolls back the container version to the previous version.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'v2',
+ ],
+ ],
+ [
+ 'name' => 'Timeout',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The timeout period of the asynchronous rollback operation. Unit: seconds. Default value: 300.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'example' => '1800',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => 'C0003E8B-B930-4F59-ADC0-0E209A9012A8',
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'MissingParameter',
+ 'errorMessage' => 'The input parameter that is mandatory for processing this request is not supplied.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter',
+ 'errorMessage' => 'The errorMessage is %s. Please check it again.',
+ ],
+ [
+ 'errorCode' => 'ens.interface.error',
+ 'errorMessage' => 'An error occurred while calling the API.',
+ ],
+ [
+ 'errorCode' => 'CallInterface',
+ 'errorMessage' => 'Call Interface Happen Error.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"C0003E8B-B930-4F59-ADC0-0E209A9012A8\\"\\n}","type":"json"}]',
+ 'title' => 'RollbackApplication',
+ ],
+ 'RescaleApplication' => [
+ 'summary' => 'Scales resources in an asynchronous manner and deploys or releases the container.',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'systemTags' => [
+ 'operationType' => 'update',
+ 'abilityTreeCode' => '1939',
+ 'abilityTreeNodes' => [
+ 'FEATUREensZ35IDE',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'AppId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the application. You can query the application ID by calling the ListApplications operation.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => '474bdef0-d149-4695-abfb-52912d9143f0',
+ ],
+ ],
+ [
+ 'name' => 'RescaleType',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The scaling operation. The value must be of the enumerated data type. Valid values:'."\n"
+ ."\n"
+ .'* Add: adds new resources.'."\n"
+ .'* Del: releases resources.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'Add',
+ 'enum' => [
+ 'Add',
+ 'Del',
+ ],
+ ],
+ ],
+ [
+ 'name' => 'RescaleLevel',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The level of resource scaling. The value is of the enumeration type. Valid values:'."\n"
+ ."\n"
+ .'* AreaIspCode (default): scales resources based on the Internet service provider (ISP).'."\n"
+ .'* RegionId: scales resources based on the edge node.'."\n"
+ .'* InstanceId: scales resources based on the instance ID. Resource scale-out specifies resource hosting and scale-in specifies resource release.'."\n"
+ ."\n"
+ .'Default value: AreaIspCode.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'enumValueTitles' => [
+ 'AreaIspCode' => '',
+ 'InstanceId' => '',
+ 'RegionId' => '',
+ ],
+ 'example' => 'RegionId',
+ 'enum' => [
+ 'AreaIspCode',
+ 'RegionId',
+ 'InstanceId',
+ ],
+ ],
+ ],
+ [
+ 'name' => 'ResourceSelector',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The required resources. The value must be a JSON string.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => '[{\\"regionCode\\": \\"cn-wuxi-telecom_unicom_cmcc-3\\", \\"ispCode\\": \\"telecom\\", \\"count\\": 2 },{ \\"regionCode\\": \\"cn-shanghai-cmcc\\", \\"count\\": 4 }]',
+ ],
+ ],
+ [
+ 'name' => 'ToAppVersion',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The version number of the application deployment package. By default, the stable version number is used. This parameter takes effect only when you perform resource scale-out.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'v2',
+ ],
+ ],
+ [
+ 'name' => 'Timeout',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The timeout period for asynchronous scaling. Unit: seconds. Default value: 300.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'example' => '1800',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => 'AAE90880-4970-4D81-A534-A6C0F3631F74',
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'MissingParameter',
+ 'errorMessage' => 'The input parameter that is mandatory for processing this request is not supplied.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter',
+ 'errorMessage' => 'The errorMessage is %s. Please check it again.',
+ ],
+ [
+ 'errorCode' => 'ens.interface.error',
+ 'errorMessage' => 'An error occurred while calling the API.',
+ ],
+ [
+ 'errorCode' => 'CallInterface',
+ 'errorMessage' => 'Call Interface Happen Error.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"AAE90880-4970-4D81-A534-A6C0F3631F74\\"\\n}","type":"json"}]',
+ 'title' => 'RescaleApplication',
+ ],
+ 'PushApplicationData' => [
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'systemTags' => [
+ 'operationType' => 'update',
+ 'abilityTreeCode' => '1670',
+ 'abilityTreeNodes' => [
+ 'FEATUREensZ35IDE',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'Data',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The data files that you want to push. The value must be a JSON string.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => '[{\\"name\\":\\"app01\\", \\"version\\":\\"1.0\\", \\"size\\":100,\\"archiveType\\":\\"tar.gz\\", \\"md5\\":\\"\\", \\"url\\":\\"http://xxxx\\",\\"timeout\\": 1000 }, { \\"name\\":\\"app02\\", \\"version\\":\\"1.1\\", \\"size\\":10,\\"archiveType\\":\\"zip\\", \\"md5\\":\\"xxxx\\", \\"url\\":\\"http://xxxxxx\\",\\"timeout\\": 1000 }]',
+ ],
+ ],
+ [
+ 'name' => 'AppId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the application.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'e76f8985-7965-41fc-925b-9648bb6bf650',
+ ],
+ ],
+ [
+ 'name' => 'Timeout',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'This parameter does not take effect.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'example' => '1800',
+ ],
+ ],
+ [
+ 'name' => 'PushStrategy',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The push policy in the canary release environment. The value must be a JSON string. You can specify multiple push policies. By default, all data files are pushed.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '{\\"name\\": \\"ScheduleToRegionId\\", \\"parameters\\":{ \\"operator\\": \\"In\\", \\"values\\": [\\"cn-chegndu-telecom-4\\", \\"cn-shanghai-cmcc-4\\"] }}',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'PushResults' => [
+ 'type' => 'object',
+ 'itemNode' => true,
+ 'properties' => [
+ 'PushResult' => [
+ 'description' => 'The push results of data files.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The execution result of the pre push operation on the data file.',
+ 'type' => 'object',
+ 'properties' => [
+ 'Name' => [
+ 'description' => 'The name of the data file.'."\n",
+ 'type' => 'string',
+ 'example' => 'gcs-pre-websocket-eip-telecom',
+ ],
+ 'ResultCode' => [
+ 'description' => 'The push result. The value is of the enumeration type. Valid values:'."\n"
+ ."\n"
+ .'* 0: The push operation is successful.'."\n"
+ .'* 100: The push operation has been performed and the file is pushed.'."\n"
+ .'* 200: The push operation has been performed and the file is being pushed to specific file servers.'."\n"
+ .'* 300: The push operation failed. You must trigger the push operation again. The ResultDescrip parameter indicates the error description.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '100',
+ ],
+ 'ResultDescrip' => [
+ 'description' => 'The description of the push status.'."\n",
+ 'type' => 'string',
+ 'example' => 'success',
+ ],
+ 'Version' => [
+ 'description' => 'The version number of the data file.'."\n",
+ 'type' => 'string',
+ 'example' => 'standard',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'RequestId' => [
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E',
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"PushResults\\": {\\n \\"PushResult\\": [\\n {\\n \\"Name\\": \\"gcs-pre-websocket-eip-telecom\\",\\n \\"ResultCode\\": 100,\\n \\"ResultDescrip\\": \\"成功\\",\\n \\"Version\\": \\"standard\\"\\n }\\n ]\\n },\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E\\"\\n}","type":"json"}]',
+ 'title' => 'PushApplicationData',
+ 'summary' => 'Pushes the business or service data of an application to file servers.',
+ ],
+ 'DescribeEnsRegions' => [
+ 'summary' => 'Queries the Edge Node Service (ENS) nodes that you can use.',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'systemTags' => [
+ 'operationType' => 'list',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeNodes' => [
+ 'FEATUREens43DFLD',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'EnsRegionId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the node.'."\n"
+ ."\n"
+ .'By default, all available node IDs are returned.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'cn-dalian-unicom',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'Code' => [
+ 'description' => 'The service code. 0 is returned for a successful request. An error code is returned for a failed request.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '0',
+ ],
+ 'EnsRegions' => [
+ 'type' => 'object',
+ 'itemNode' => true,
+ 'properties' => [
+ 'EnsRegions' => [
+ 'description' => 'The information about the regions.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'Area' => [
+ 'description' => 'The code of the region.'."\n",
+ 'type' => 'string',
+ 'example' => 'NorthEastChina',
+ ],
+ 'EnName' => [
+ 'description' => 'The name of the node.'."\n",
+ 'type' => 'string',
+ 'example' => 'NorthChina',
+ ],
+ 'EnsRegionId' => [
+ 'description' => 'The ID of the node.'."\n",
+ 'type' => 'string',
+ 'example' => 'cn-dalian-unicom',
+ ],
+ 'Name' => [
+ 'description' => 'The name of the node.'."\n",
+ 'type' => 'string',
+ 'example' => 'Dalian Unicom'."\n",
+ ],
+ 'Province' => [
+ 'description' => 'The province where the node is deployed.'."\n",
+ 'type' => 'string',
+ 'example' => 'Liaoning Province'."\n"
+ ."\n",
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'RequestId' => [
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E',
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'MissingParameter',
+ 'errorMessage' => 'The input parameters that is mandatory for processing this request is not supplied.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'eventInfo' => [
+ 'enable' => false,
+ 'eventNames' => [],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": 0,\\n \\"EnsRegions\\": {\\n \\"EnsRegions\\": [\\n {\\n \\"Area\\": \\"NorthEastChina\\",\\n \\"EnName\\": \\"NorthChina\\",\\n \\"EnsRegionId\\": \\"cn-dalian-unicom\\",\\n \\"Name\\": \\"大连联通\\",\\n \\"Province\\": \\"辽宁省\\"\\n }\\n ]\\n },\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E\\"\\n}","errorExample":""},{"type":"xml","example":"<DescribeEnsRegionsResponse>\\n <Code>0</Code>\\n <EnsRegions>\\n <Area>NorthEastChina</Area>\\n <EnName>NorthChina</EnName>\\n <EnsRegionId>cn-dalian-unicom</EnsRegionId>\\n <Name>大连联通</Name>\\n <Province>辽宁省</Province>\\n </EnsRegions>\\n <RequestId>473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E</RequestId>\\n</DescribeEnsRegionsResponse>","errorExample":""}]',
+ 'title' => 'DescribeEnsRegions',
+ 'requestParamsDescription' => ' ',
+ 'responseParamsDescription' => ' ',
+ 'extraInfo' => ' ',
+ ],
+ 'DescribeEnsRegionIdResource' => [
+ 'summary' => 'Queries node resources.',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'systemTags' => [
+ 'operationType' => 'get',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'StartTime',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The beginning of the time range to query. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => '2020-06-16T06:33:15Z',
+ ],
+ ],
+ [
+ 'name' => 'EndTime',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The end time of the time range to query. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => '2020-06-16T06:33:15',
+ ],
+ ],
+ [
+ 'name' => 'OrderByParams',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The order in which the resources to return are sorted. Valid values:'."\n"
+ ."\n"
+ .'* InstanceCount: desc'."\n"
+ .'* Area: asc'."\n"
+ .'* InternetBandwidth: asc',
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'InstanceCount: desc',
+ ],
+ ],
+ [
+ 'name' => 'PageNumber',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The page number. Pages start from page **1**. Default value: **1**.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'minimum' => '1',
+ 'example' => '1',
+ 'default' => '1',
+ ],
+ ],
+ [
+ 'name' => 'PageSize',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The number of entries per page. Maximum value: **100**. Default value: **10**.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'maximum' => '100',
+ 'minimum' => '1',
+ 'example' => '10',
+ 'default' => '10',
+ ],
+ ],
+ [
+ 'name' => 'Isp',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The Internet service provider (ISP). Valid values:'."\n"
+ ."\n"
+ .'* cmcc: China Mobile'."\n"
+ .'* telecom: China Telecom'."\n"
+ .'* unicom: China Unicom'."\n"
+ .'* multiCarrier: multi-line ISP'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'cmcc',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'EnsRegionIdResources' => [
+ 'type' => 'object',
+ 'itemNode' => true,
+ 'properties' => [
+ 'EnsRegionIdResource' => [
+ 'description' => 'The returned data. For more information, see EnsRegionIdResources in sample JSON responses.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'Area' => [
+ 'description' => 'The region. Set the value to West.'."\n",
+ 'type' => 'string',
+ 'example' => 'West',
+ ],
+ 'AreaCode' => [
+ 'description' => 'The code of the region.'."\n",
+ 'type' => 'string',
+ 'example' => '300100',
+ ],
+ 'BizDate' => [
+ 'description' => 'The date when the transaction was processed.'."\n",
+ 'type' => 'string',
+ 'example' => '2019-10-30',
+ ],
+ 'EnsRegionId' => [
+ 'description' => 'The ID of the node.'."\n",
+ 'type' => 'string',
+ 'example' => 'cn-hangzhou-telecom',
+ ],
+ 'EnsRegionIdName' => [
+ 'description' => 'The name of the node.'."\n",
+ 'type' => 'string',
+ 'example' => 'Nanjing Mobile'."\n",
+ ],
+ 'InstanceCount' => [
+ 'description' => 'The number of instances.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '10',
+ ],
+ 'InternetBandwidth' => [
+ 'description' => 'The public bandwidth of the instance. Unit: Bits/s.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int64',
+ 'example' => '100',
+ ],
+ 'Isp' => [
+ 'description' => 'The ISP. Valid values:'."\n"
+ ."\n"
+ .'* cmcc: China Mobile'."\n"
+ .'* unicom: China Unicom'."\n"
+ .'* telecom: China Telecom'."\n"
+ .'* multiCarrier: multi-line ISP'."\n",
+ 'type' => 'string',
+ 'example' => 'cmcc',
+ ],
+ 'VCpu' => [
+ 'description' => 'The number of vCPUs.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '10',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'PageNumber' => [
+ 'description' => 'The page number.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '1',
+ ],
+ 'PageSize' => [
+ 'description' => 'The number of entries per page.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '10',
+ ],
+ 'RequestId' => [
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '476600B1-C9E2-4245-A26F-DC7EA8071425',
+ ],
+ 'TotalCount' => [
+ 'description' => 'The total number of queried nodes.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '58',
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ [
+ 'errorCode' => 'InsufficientEipCapacity',
+ 'errorMessage' => 'Insufficient EIP inventory under the specified territory.',
+ ],
+ [
+ 'errorCode' => 'CallInterface',
+ 'errorMessage' => 'Call Interface Happen Error.',
+ ],
+ ],
+ ],
+ 'eventInfo' => [
+ 'enable' => false,
+ 'eventNames' => [],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"EnsRegionIdResources\\": {\\n \\"EnsRegionIdResource\\": [\\n {\\n \\"Area\\": \\"West\\",\\n \\"AreaCode\\": \\"300100\\",\\n \\"BizDate\\": \\"2019-10-30\\",\\n \\"EnsRegionId\\": \\"cn-hangzhou-telecom\\",\\n \\"EnsRegionIdName\\": \\"南京移动\\",\\n \\"InstanceCount\\": 10,\\n \\"InternetBandwidth\\": 100,\\n \\"Isp\\": \\"cmcc\\",\\n \\"VCpu\\": 10\\n }\\n ]\\n },\\n \\"PageNumber\\": 1,\\n \\"PageSize\\": 10,\\n \\"RequestId\\": \\"476600B1-C9E2-4245-A26F-DC7EA8071425\\",\\n \\"TotalCount\\": 58\\n}","errorExample":""},{"type":"xml","example":"<DescribeEnsRegionIdResourceResponse>\\n<EnsRegionIdResources>\\n <EnsRegionIdResource>\\n <Area>SouthWest</Area>\\n <Isp>cmcc</Isp>\\n <EnsRegionId>cn-hangzhou-telecom</EnsRegionId>\\n <VCpu>100</VCpu>\\n <InternetBandwidth>500</InternetBandwidth>\\n <BizDate>2020-03-08</BizDate>\\n </EnsRegionIdResource>\\n</EnsRegionIdResources>\\n<RequestId>476600B1-C9E2-4245-A26F-DC7EA8071425</RequestId>\\n</DescribeEnsRegionIdResourceResponse>","errorExample":""}]',
+ 'title' => 'DescribeEnsRegionIdResource',
+ 'description' => '****',
+ 'requestParamsDescription' => ' ',
+ 'responseParamsDescription' => ' ',
+ 'extraInfo' => ' ',
+ ],
+ 'DescribeReservedResource' => [
+ 'summary' => 'Queries the specifications of resources that you can purchase.',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'systemTags' => [
+ 'operationType' => 'get',
+ ],
+ 'parameters' => [],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '6666C5A5-75ED-422E-A022-7121FA18C968',
+ ],
+ 'Images' => [
+ 'type' => 'object',
+ 'itemNode' => true,
+ 'properties' => [
+ 'Image' => [
+ 'description' => 'The information about the image.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => '',
+ 'type' => 'object',
+ 'properties' => [
+ 'ImageName' => [
+ 'description' => 'The name of the image.'."\n",
+ 'type' => 'string',
+ 'example' => 'centos_6_08_64_20G_alibase_****',
+ ],
+ 'ImageId' => [
+ 'description' => 'The ID of the image.'."\n",
+ 'type' => 'string',
+ 'example' => 'centos_6_08_64_20G_alibase_****',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'SupportResources' => [
+ 'type' => 'object',
+ 'itemNode' => true,
+ 'properties' => [
+ 'SupportResource' => [
+ 'description' => 'The resources.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The specifications of resources that you can purchase.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'EnsRegionId' => [
+ 'description' => 'The ID of the node.'."\n",
+ 'type' => 'string',
+ 'example' => 'cn-beijing-cmcc',
+ ],
+ 'DataDiskSizes' => [
+ 'type' => 'object',
+ 'itemNode' => true,
+ 'properties' => [
+ 'DataDiskSize' => [
+ 'description' => 'The sizes of data disks.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The size of the data disk. Unit: GB.'."\n",
+ 'type' => 'string',
+ 'example' => '2',
+ ],
+ ],
+ ],
+ ],
+ 'SupportResourcesCount' => [
+ 'description' => 'The number of resources that you can purchase.'."\n",
+ 'type' => 'string',
+ 'example' => '9',
+ ],
+ 'SystemDiskSizes' => [
+ 'type' => 'object',
+ 'itemNode' => true,
+ 'properties' => [
+ 'SystemDiskSize' => [
+ 'description' => 'The sizes of system disks.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The size of the system disk. Unit: GB.'."\n",
+ 'type' => 'string',
+ 'example' => '20',
+ ],
+ ],
+ ],
+ ],
+ 'InstanceSpec' => [
+ 'description' => 'The specifications of instances.'."\n",
+ 'type' => 'string',
+ 'example' => 'ens.sn1.stiny',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'Code' => [
+ 'description' => 'The returned service code. 0 indicates that the request was successful.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '0',
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'MissingParameter',
+ 'errorMessage' => 'The input parameters that is mandatory for processing this request is not supplied.',
+ ],
+ [
+ 'errorCode' => 'InstanceNotExists',
+ 'errorMessage' => 'The user have no instances.',
+ ],
+ [
+ 'errorCode' => 'CallInterface',
+ 'errorMessage' => 'Call Interface Happen Error.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'eventInfo' => [
+ 'enable' => false,
+ 'eventNames' => [],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"6666C5A5-75ED-422E-A022-7121FA18C968\\",\\n \\"Images\\": {\\n \\"Image\\": [\\n {\\n \\"ImageName\\": \\"centos_6_08_64_20G_alibase_****\\",\\n \\"ImageId\\": \\"centos_6_08_64_20G_alibase_****\\"\\n }\\n ]\\n },\\n \\"SupportResources\\": {\\n \\"SupportResource\\": [\\n {\\n \\"EnsRegionId\\": \\"cn-beijing-cmcc\\",\\n \\"DataDiskSizes\\": {\\n \\"DataDiskSize\\": [\\n \\"0\\"\\n ]\\n },\\n \\"SupportResourcesCount\\": \\"9\\",\\n \\"SystemDiskSizes\\": {\\n \\"SystemDiskSize\\": [\\n \\"20\\"\\n ]\\n },\\n \\"InstanceSpec\\": \\"ens.sn1.stiny\\"\\n }\\n ]\\n },\\n \\"Code\\": 0\\n}","errorExample":""},{"type":"xml","example":"<DescribeAvailableResourceResponse>\\n<SupportResources>\\n <SupportResource>\\n <DataDiskSizes>\\n <DataDiskSize>0</DataDiskSize>\\n </DataDiskSizes>\\n <EnsRegionId>cn-beijing-cmcc</EnsRegionId>\\n <InstanceSpec>ens.sn1.stiny</InstanceSpec>\\n <SupportResourcesCount>9</SupportResourcesCount>\\n <SystemDiskSizes>\\n <SystemDiskSize>20</SystemDiskSize>\\n </SystemDiskSizes>\\n </SupportResource>\\n</SupportResources>\\n<RequestId>6666C5A5-75ED-422E-A022-7121FA18C968</RequestId>\\n<Images>\\n <Image>\\n <ImageId>centos_6_08_64_20G_alibase_****</ImageId>\\n <ImageName>centos_6_08_64_20G_alibase_****</ImageName>\\n </Image>\\n</Images>\\n<Code>0</Code>\\n</DescribeAvailableResourceResponse>\\n","errorExample":""}]',
+ 'title' => 'DescribeReservedResource',
+ 'requestParamsDescription' => ' ',
+ 'responseParamsDescription' => ' ',
+ 'extraInfo' => ' ',
+ ],
+ 'DescribePrePaidInstanceStock' => [
+ 'summary' => 'Queries the specifications of resources that can be purchased in subscription billing mode.',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'systemTags' => [
+ 'operationType' => 'get',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'EnsRegionId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the edge node.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'cn-suzhou-telecom',
+ ],
+ ],
+ [
+ 'name' => 'SystemDiskSize',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The size of the system disk. Unit: GB.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => true,
+ 'minimum' => '20',
+ 'example' => '100',
+ ],
+ ],
+ [
+ 'name' => 'DataDiskSize',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The size of the data disk. Unit: GB.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => true,
+ 'example' => '20',
+ ],
+ ],
+ [
+ 'name' => 'InstanceSpec',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The specification of the instance.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'ens.sn1.stiny',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'AvaliableCount' => [
+ 'description' => 'The number of resources that you can purchase.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '84',
+ ],
+ 'Cores' => [
+ 'description' => 'The number of CPU cores.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '1',
+ ],
+ 'DataDiskSize' => [
+ 'description' => 'The size of the data disk.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '20',
+ ],
+ 'EnsRegionId' => [
+ 'description' => 'The ID of the node.'."\n",
+ 'type' => 'string',
+ 'example' => 'cn-suzhou-telecom',
+ ],
+ 'InstanceSpec' => [
+ 'description' => 'The specification of the instance.'."\n",
+ 'type' => 'string',
+ 'example' => 'ens.sn1.stiny',
+ ],
+ 'Memory' => [
+ 'description' => 'The memory size. Unit: GB.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '2048',
+ ],
+ 'RequestId' => [
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '007833C8-E819-4122-B636-0D48D7BF6DFB',
+ ],
+ 'SystemDiskSize' => [
+ 'description' => 'The size of the system disk.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '20',
+ ],
+ 'ResourceGap' => [
+ 'description' => 'The reason why resources are insufficient.'."\n",
+ 'type' => 'string',
+ 'example' => 'StockNotEnough',
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ [
+ 'errorCode' => 'InventoryExceeded',
+ 'errorMessage' => 'The Instance in stock are insufficient,please submit a ticket.',
+ ],
+ [
+ 'errorCode' => 'CallInterface',
+ 'errorMessage' => 'Call Interface Happen Error.',
+ ],
+ ],
+ ],
+ 'eventInfo' => [
+ 'enable' => false,
+ 'eventNames' => [],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"AvaliableCount\\": 84,\\n \\"Cores\\": 1,\\n \\"DataDiskSize\\": 20,\\n \\"EnsRegionId\\": \\"cn-suzhou-telecom\\",\\n \\"InstanceSpec\\": \\"ens.sn1.stiny\\",\\n \\"Memory\\": 2048,\\n \\"RequestId\\": \\"007833C8-E819-4122-B636-0D48D7BF6DFB\\",\\n \\"SystemDiskSize\\": 20,\\n \\"ResourceGap\\": \\"StockNotEnough\\"\\n}","errorExample":""},{"type":"xml","example":"<DescribePrePaidInstanceStockResesponse>\\n <AvaliableCount>84</AvaliableCount>\\n <Memory>2048</Memory>\\n <SystemDiskSize>20</SystemDiskSize>\\n <Cores>1</Cores>\\n <EnsRegionId>cn-suzhou-telecom</EnsRegionId>\\n <InstanceSpec>ens.sn1.stiny</InstanceSpec>\\n <RequestId>007833C8-E819-4122-B636-0D48D7BF6DFB</RequestId>\\n <DataDiskSize>20</DataDiskSize>\\n</DescribePrePaidInstanceStockResesponse>\\n","errorExample":""}]',
+ 'title' => 'DescribePrePaidInstanceStock',
+ 'requestParamsDescription' => ' ',
+ 'responseParamsDescription' => ' ',
+ 'extraInfo' => ' ',
+ ],
+ 'DescribeLoadBalancerSpec' => [
+ 'summary' => 'Queries the specifications of an Edge Load Balancer (ELB) instance.',
+ 'methods' => [
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'get',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'LoadBalancerSpec',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The specifications of the ELB instance.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'elb.s2.small',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E',
+ ],
+ 'PageNumber' => [
+ 'description' => 'The page number.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '10',
+ ],
+ 'PageSize' => [
+ 'description' => 'The number of entries per page. Maximum value: 100. Default value: 10.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '100',
+ ],
+ 'TotalCount' => [
+ 'description' => 'The total number of entries returned.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '7',
+ ],
+ 'LoadBalancerSpecs' => [
+ 'description' => 'The specifications. Valid values:'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => '',
+ 'type' => 'object',
+ 'properties' => [
+ 'DisplayName' => [
+ 'description' => 'The display name of the instance type.'."\n",
+ 'type' => 'string',
+ 'example' => 'elb.s1.small',
+ ],
+ 'LoadBalancerSpec' => [
+ 'description' => 'The specifications of the ELB instance.'."\n",
+ 'type' => 'string',
+ 'example' => 'elb.s1.small',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'ens.interface.error',
+ 'errorMessage' => 'An error occurred while call the API.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E\\",\\n \\"PageNumber\\": 10,\\n \\"PageSize\\": 100,\\n \\"TotalCount\\": 7,\\n \\"LoadBalancerSpecs\\": [\\n {\\n \\"DisplayName\\": \\"elb.s1.small\\",\\n \\"LoadBalancerSpec\\": \\"elb.s1.small\\"\\n }\\n ]\\n}","type":"json"}]',
+ 'title' => 'DescribeLoadBalancerSpec',
+ ],
+ 'DescribeElbAvailableResourceInfo' => [
+ 'summary' => 'Queries the specifications of resources that you can purchase when you create an instance.',
+ 'methods' => [
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'get',
+ ],
+ 'parameters' => [],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'description' => 'The information about resources.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'description' => 'The ID of the request. This parameter is a common parameter. Each request has a unique ID. You can use the ID to troubleshoot issues.'."\n",
+ 'type' => 'string',
+ 'example' => '25AAD194-4A37-51CF-B1CA-1E86FDAC23A6',
+ ],
+ 'ElbAvailableResourceInfo' => [
+ 'description' => 'The information about resources.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The information about a resource.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'EnsRegionId' => [
+ 'description' => 'The ID of the Edge Node Service (ENS) node.'."\n",
+ 'type' => 'string',
+ 'example' => 'cn-guangdong-10',
+ ],
+ 'EnName' => [
+ 'description' => 'The name of the node.'."\n",
+ 'type' => 'string',
+ 'example' => 'cn-guangdong-10',
+ ],
+ 'Area' => [
+ 'description' => 'The ID of the region.'."\n",
+ 'type' => 'string',
+ 'example' => 'SouthEast',
+ ],
+ 'Province' => [
+ 'description' => 'The province where the node is deployed.'."\n",
+ 'type' => 'string',
+ 'example' => 'Shanghai',
+ ],
+ 'Name' => [
+ 'description' => 'The Chinese name of the node.'."\n",
+ 'type' => 'string',
+ 'example' => 'test',
+ ],
+ 'CanBuyCount' => [
+ 'description' => 'The number of resources that you can purchase.'."\n",
+ 'type' => 'string',
+ 'example' => '1',
+ ],
+ 'LoadBalancerSpec' => [
+ 'description' => 'The specifications of the ELB instances.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The specification of the ELB instance.'."\n",
+ 'type' => 'string',
+ 'example' => 'elb.s2.small',
+ ],
+ ],
+ 'Ability' => [
+ 'type' => 'array',
+ 'items' => [
+ 'type' => 'string',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'eventInfo' => [
+ 'enable' => false,
+ 'eventNames' => [],
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"25AAD194-4A37-51CF-B1CA-1E86FDAC23A6\\",\\n \\"ElbAvailableResourceInfo\\": [\\n {\\n \\"EnsRegionId\\": \\"cn-guangdong-10\\",\\n \\"EnName\\": \\"cn-guangdong-10\\",\\n \\"Area\\": \\"SouthEast\\",\\n \\"Province\\": \\"Shanghai\\",\\n \\"Name\\": \\"test\\",\\n \\"CanBuyCount\\": \\"1\\",\\n \\"LoadBalancerSpec\\": [\\n \\"elb.s2.small\\"\\n ],\\n \\"Ability\\": [\\n \\"\\"\\n ]\\n }\\n ]\\n}","type":"json"}]',
+ 'title' => 'DescribeElbAvailableResourceInfo',
+ ],
+ 'DescribeCloudDiskTypes' => [
+ 'summary' => 'The specifications of available resources are queried when you create a disk.',
+ 'methods' => [
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'list',
+ 'tenantRelevance' => 'tenant',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'EnsRegionId',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => 'A short description of struct',
+ 'description' => 'The ID of the edge node.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'cn-chongqing-cmcc',
+ ],
+ ],
+ [
+ 'name' => 'EnsRegionIds',
+ 'in' => 'query',
+ 'style' => 'json',
+ 'schema' => [
+ 'description' => 'The edge nodes.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The ID of the edge node.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'cn-chongqing-cmcc',
+ ],
+ 'required' => false,
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '77990CEE-B714-5702-BDE6-943F702277DD',
+ ],
+ 'SupportResources' => [
+ 'type' => 'object',
+ 'itemNode' => true,
+ 'properties' => [
+ 'SupportResource' => [
+ 'description' => 'The specifications of resources that you can purchase.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The specifications of resource that you can purchase.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'Category' => [
+ 'description' => 'The category of the disk.'."\n"
+ ."\n"
+ .'* cloud_efficiency: ultra disk.'."\n"
+ .'* cloud_ssd: all-flash disk.'."\n"
+ .'* local_hdd: local HDD.'."\n"
+ .'* local_ssd: local SSD.'."\n",
+ 'type' => 'string',
+ 'example' => 'cloud_efficiency',
+ ],
+ 'EnsRegionId' => [
+ 'description' => 'The ID of the edge node.'."\n",
+ 'type' => 'string',
+ 'example' => 'cn-guangzhou-10',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'Invalid%s',
+ 'errorMessage' => 'The specified parameter %s is invalid.',
+ ],
+ [
+ 'errorCode' => 'Missing%s',
+ 'errorMessage' => 'You must specify the parameter %s.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ 'eventInfo' => [
+ 'enable' => false,
+ 'eventNames' => [],
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"77990CEE-B714-5702-BDE6-943F702277DD\\",\\n \\"SupportResources\\": {\\n \\"SupportResource\\": [\\n {\\n \\"Category\\": \\"cloud_efficiency\\",\\n \\"EnsRegionId\\": \\"cn-guangzhou-10\\"\\n }\\n ]\\n }\\n}","type":"json"}]',
+ 'title' => 'DescribeCloudDiskTypes',
+ ],
+ 'DescribeCloudDiskAvailableResourceInfo' => [
+ 'summary' => 'Queries the available resources in a region.',
+ 'methods' => [
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'get',
+ ],
+ 'parameters' => [],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '0AE4F26E-7527-569F-A987-E3CF269A3C11',
+ ],
+ 'SupportResources' => [
+ 'type' => 'object',
+ 'itemNode' => true,
+ 'properties' => [
+ 'SupportResource' => [
+ 'description' => 'The specifications of resources that you can purchase.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The specifications of resource that you can purchase.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'EnsRegionId' => [
+ 'description' => 'The ID of the edge node.'."\n",
+ 'type' => 'string',
+ 'example' => 'cn-beijing-cmcc',
+ ],
+ 'EnsRegionName' => [
+ 'description' => 'The name of the task node.'."\n",
+ 'type' => 'string',
+ 'example' => 'Beijing Mobile'."\n",
+ ],
+ 'DiskMinSize' => [
+ 'description' => 'The minimum size of the disk size. Unit: GiB.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int64',
+ 'example' => '20',
+ ],
+ 'DiskMaxSize' => [
+ 'description' => 'The maximum size of the disk. Unit: GiB.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int64',
+ 'example' => '80',
+ ],
+ 'CanBuyCount' => [
+ 'description' => 'The number of disks that you can purchase.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int64',
+ 'example' => '2',
+ ],
+ 'Category' => [
+ 'description' => 'The type of the disk.'."\n"
+ ."\n"
+ .'* cloud_efficiency:ultra disk.'."\n"
+ .'* cloud_ssd:all-flash disk.'."\n"
+ .'* local_hdd:local HDD.'."\n"
+ .'* local_ssd:local SSD.',
+ 'type' => 'string',
+ 'example' => 'cloud_ssd',
+ ],
+ 'DefaultDiskSize' => [
+ 'description' => 'The default size of the disk. Unit: GiB.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int64',
+ 'example' => '20',
+ ],
+ 'Ability' => [
+ 'type' => 'object',
+ 'itemNode' => true,
+ 'properties' => [
+ 'Ability' => [
+ 'description' => 'Node product capability.',
+ 'type' => 'array',
+ 'items' => [
+ 'type' => 'string',
+ 'description' => 'Node product capability.',
+ 'example' => 'cloud_efficiency: Efficient cloud storage'."\n"
+ .'cloud_ssd: Full Flash Cloud Drive',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'Missing%s',
+ 'errorMessage' => 'You must specify the parameter %s.',
+ ],
+ [
+ 'errorCode' => 'Invalid%s',
+ 'errorMessage' => 'The specified parameter %s is invalid.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'eventInfo' => [
+ 'enable' => false,
+ 'eventNames' => [],
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"0AE4F26E-7527-569F-A987-E3CF269A3C11\\",\\n \\"SupportResources\\": {\\n \\"SupportResource\\": [\\n {\\n \\"EnsRegionId\\": \\"cn-beijing-cmcc\\",\\n \\"EnsRegionName\\": \\"北京移动\\",\\n \\"DiskMinSize\\": 20,\\n \\"DiskMaxSize\\": 80,\\n \\"CanBuyCount\\": 2,\\n \\"Category\\": \\"cloud_ssd\\",\\n \\"DefaultDiskSize\\": 20,\\n \\"Ability\\": {\\n \\"Ability\\": [\\n \\"cloud_efficiency:高效云盘\\\\ncloud_ssd:全闪云盘\\"\\n ]\\n }\\n }\\n ]\\n }\\n}","type":"json"}]',
+ 'title' => 'DescribeCloudDiskAvailableResourceInfo',
+ ],
+ 'UntagResources' => [
+ 'summary' => 'Removes tags from resources.',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'update',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeNodes' => [
+ 'FEATUREensXWIJMI',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'ResourceType',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '资源类型',
+ 'description' => 'The type of the resource.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'instance',
+ 'enum' => [
+ 'instance',
+ 'eip',
+ 'disk',
+ 'network',
+ 'natgateway',
+ 'vswitch',
+ ],
+ ],
+ ],
+ [
+ 'name' => 'ResourceId',
+ 'in' => 'query',
+ 'style' => 'repeatList',
+ 'schema' => [
+ 'description' => 'The resource IDs. You can specify up to 50 resource IDs.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The ID of resource.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'i-5zy93g7z1hnkdmav84joxyzgn',
+ ],
+ 'required' => true,
+ 'maxItems' => 100,
+ ],
+ ],
+ [
+ 'name' => 'TagKey',
+ 'in' => 'query',
+ 'style' => 'repeatList',
+ 'schema' => [
+ 'description' => 'The keys of the tags. Valid values of N: 1 to 20.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The key of the tag.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'test_tag_key-2',
+ ],
+ 'required' => false,
+ 'maxItems' => 20,
+ ],
+ ],
+ [
+ 'name' => 'All',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'Specifies whether to remove all tags from the resource. This parameter takes effect only if you do not specify TagKey.N. Valid values:'."\n"
+ ."\n"
+ .'* **true**'."\n"
+ .'* **false** (default)'."\n",
+ 'type' => 'boolean',
+ 'required' => false,
+ 'example' => 'true',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '6AB7715D-8B97-5E81-854B-2429F8C7DEF2',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'SystemError',
+ 'errorMessage' => 'A system error occurred while processing your request',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ 403 => [
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'The operator is not permission for this operate ',
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"6AB7715D-8B97-5E81-854B-2429F8C7DEF2\\"\\n}","type":"json"}]',
+ 'title' => 'UntagResources',
+ ],
+ 'TagResources' => [
+ 'summary' => 'Creates and adds tags to specific Edge Node Service (ENS) resources.',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'create',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '200372',
+ 'abilityTreeNodes' => [
+ 'FEATUREensXWIJMI',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'Tag',
+ 'in' => 'query',
+ 'style' => 'repeatList',
+ 'schema' => [
+ 'description' => 'The tag that is bound to the instance.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => '',
+ 'type' => 'object',
+ 'properties' => [
+ 'Key' => [
+ 'description' => 'The key of tag N that is added to the resource. Valid values of N: 1 to 20. The tag value cannot be an empty string. The tag value can be up to 128 characters in length. It cannot start with aliyun or acs: and cannot contain http:// or https://.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'team',
+ ],
+ 'Value' => [
+ 'description' => 'The value of tag N that is added to the resource. Valid values of N: 1 to 20. The tag value can be an empty string. The tag value can be up to 128 characters in length. It cannot start with acs: or contain http:// or https://.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'Deep',
+ ],
+ ],
+ 'required' => true,
+ ],
+ 'required' => true,
+ 'maxItems' => 20,
+ ],
+ ],
+ [
+ 'name' => 'ResourceId',
+ 'in' => 'query',
+ 'style' => 'repeatList',
+ 'schema' => [
+ 'description' => 'The resource IDs. You can add up to 50 resource IDs in a call.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The ID of the resource.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'i-5****',
+ ],
+ 'required' => true,
+ 'maxItems' => 50,
+ ],
+ ],
+ [
+ 'name' => 'ResourceType',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The type of the resource. Set the value to instance.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'instance',
+ 'enum' => [
+ 'instance',
+ 'eip',
+ 'disk',
+ 'vswitch',
+ 'network',
+ 'natgateway',
+ ],
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => 'C50C391C-533A-55D3-AC97-5D9333DE288F',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'InvalidResourceId.NotFound',
+ 'errorMessage' => 'The specified ResourceIds are not found in our records.',
+ ],
+ [
+ 'errorCode' => 'ens.interface.error',
+ 'errorMessage' => 'Failed to call API.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ 403 => [
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'The operator is not permission for this operate',
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"C50C391C-533A-55D3-AC97-5D9333DE288F\\"\\n}","type":"json"}]',
+ 'title' => 'TagResources',
+ 'description' => 'Before you add tags to a resource, Alibaba Cloud checks the number of existing tags on the resource. If the number exceeds the upper limit, an error message is returned. Only instance resources, such as virtual machines and bare machines, are supported.'."\n",
+ ],
+ 'ListTagResources' => [
+ 'summary' => 'Queries tags that are added to Edge Node Service (ENS) instances.',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'list',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeNodes' => [
+ 'FEATUREensXWIJMI',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'ResourceType',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '资源类型',
+ 'description' => 'The resource type. Set the value to instance.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'instance',
+ 'enum' => [
+ 'instance',
+ 'disk',
+ 'eip',
+ 'network',
+ 'natgateway',
+ 'vswitch',
+ ],
+ ],
+ ],
+ [
+ 'name' => 'ResourceId',
+ 'in' => 'query',
+ 'style' => 'repeatList',
+ 'schema' => [
+ 'description' => 'The IDs of resources. Valid values of N: 1 to 50.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The ID of the resource.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'i-t252vwg7cib00ky8g0q',
+ ],
+ 'required' => false,
+ 'maxItems' => 50,
+ 'minItems' => 1,
+ ],
+ ],
+ [
+ 'name' => 'NextToken',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The token of the first page to query.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '153ba0bbb2be03f84eb48b699f0a4123',
+ ],
+ ],
+ [
+ 'name' => 'Tag',
+ 'in' => 'query',
+ 'style' => 'repeatList',
+ 'schema' => [
+ 'description' => 'The tags.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => '',
+ 'type' => 'object',
+ 'properties' => [
+ 'Key' => [
+ 'description' => 'The key of tag N of the instance. Valid values of N: **1** to **20**.'."\n"
+ ."\n"
+ .'* The key cannot start with `aliyun`, `acs:`, `http://`, or `https://`.'."\n"
+ .'* The key must be up to 64 characters in length.'."\n"
+ .'* The tag key cannot be an empty string.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'team',
+ ],
+ 'Value' => [
+ 'description' => 'The value of a tag that is attached to the topics you want to query. This parameter is not required. If you configure this parameter, you must also configure the **Key** parameter.**** If you include the Key and Value parameters in a request, this operation queries only the topics that use the specified tags. If you do not include these parameters in a request, this operation queries all topics that you can access.'."\n"
+ ."\n"
+ .'* Valid values of N: 1 to 20.'."\n"
+ .'* The value of this parameter can be an empty string.'."\n"
+ .'* The tag key can be up to 128 characters in length and cannot contain http:// or https://. The tag key cannot start with acs: or aliyun.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'tagValue',
+ ],
+ ],
+ 'required' => false,
+ ],
+ 'required' => false,
+ 'maxItems' => 50,
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => 'C78D9B61-69D8-5655-A312-A15DA5EA5D5E',
+ ],
+ 'TagResources' => [
+ 'description' => 'The tags that are added to specified one or more resources.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'A list of tags.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'ResourceId' => [
+ 'description' => 'The ID of the associated resources.'."\n",
+ 'type' => 'string',
+ 'example' => 'i-5zy93g7z1hnkdmav84joxyzgn',
+ ],
+ 'ResourceType' => [
+ 'description' => 'The type of the resource.'."\n",
+ 'type' => 'string',
+ 'example' => 'instance',
+ ],
+ 'TagKey' => [
+ 'description' => 'The tag key of the instance.'."\n",
+ 'type' => 'string',
+ 'example' => 'test_tag_key-2',
+ ],
+ 'TagValue' => [
+ 'description' => 'The value of the tag.'."\n",
+ 'type' => 'string',
+ 'example' => 'CLUSTER',
+ ],
+ ],
+ ],
+ ],
+ 'NextToken' => [
+ 'description' => 'The token of the first page to query.'."\n",
+ 'type' => 'string',
+ 'example' => 'abcfeg368547ccdef',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'CallInterface',
+ 'errorMessage' => 'Call Interface Happen Error.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ 403 => [
+ [
+ 'errorCode' => 'NoPermission ',
+ 'errorMessage' => 'The operator is not permission for this operate',
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"C78D9B61-69D8-5655-A312-A15DA5EA5D5E\\",\\n \\"TagResources\\": [\\n {\\n \\"ResourceId\\": \\"i-5zy93g7z1hnkdmav84joxyzgn\\",\\n \\"ResourceType\\": \\"instance\\",\\n \\"TagKey\\": \\"test_tag_key-2\\",\\n \\"TagValue\\": \\"CLUSTER\\"\\n }\\n ],\\n \\"NextToken\\": \\"abcfeg368547ccdef\\"\\n}","type":"json"}]',
+ 'title' => 'ListTagResources',
+ ],
+ 'DescribeBandwitdhByInternetChargeType' => [
+ 'summary' => 'Queries the metering method for the bandwidth.',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'systemTags' => [
+ 'operationType' => 'get',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'StartTime',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The beginning of the time range to query.'."\n"
+ ."\n"
+ .'* Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n"
+ .'* If the value of the seconds place is not 00, the start time is automatically set to the next minute.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => '2021-11-15T16:00:00Z',
+ ],
+ ],
+ [
+ 'name' => 'EndTime',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The end of the time range to query.'."\n"
+ ."\n"
+ .'* Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n"
+ .'* If the value of the seconds place is not 00, the start time is automatically set to the next minute.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => '2022-01-18T09:39:54Z',
+ ],
+ ],
+ [
+ 'name' => 'Isp',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The Internet service provider (ISP). Valid values:'."\n"
+ ."\n"
+ .'* cmcc: China Mobile'."\n"
+ .'* telecom: China Telecom'."\n"
+ .'* unicom: China Unicom'."\n"
+ .'* multiCarrier: multi-line ISP'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'unicom',
+ ],
+ ],
+ [
+ 'name' => 'EnsRegionId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The region ID of the instance.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'cn-hangzhou-cbn-2',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'BandwidthValue' => [
+ 'description' => 'The bandwidth. Unit: bit/s.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int64',
+ 'example' => '123',
+ ],
+ 'InternetChargeType' => [
+ 'description' => 'The metering method. Valid values:'."\n"
+ ."\n"
+ .'* BandwidthByDay: Pay by daily peak bandwidth'."\n"
+ .'* 95BandwidthByMonth: Pay by monthly 95th percentile bandwidth'."\n"
+ .'* PayByBandwidth4thMonth: Pay by monthly fourth peak bandwidth'."\n"
+ .'* PayByBandwidth: Pay by fixed bandwidth'."\n"
+ ."\n"
+ .'You can specify only one metering method for network usage and cannot overwrite the existing metering method.'."\n",
+ 'type' => 'string',
+ 'example' => '95BandwidthByMonth',
+ ],
+ 'RequestId' => [
+ 'description' => 'The ID of the request. This parameter is a common parameter. Each request has a unique ID. You can use the ID to troubleshoot issues.'."\n",
+ 'type' => 'string',
+ 'example' => '08027633-8501-5A36-B90D-F7C38B5EC75D',
+ ],
+ 'TimeStamp' => [
+ 'description' => 'The timestamp. The time follows the ISO 8601 standard. The time is displayed in UTC. Example: 2016-10-20T04:00:00Z.'."\n",
+ 'type' => 'string',
+ 'example' => '2019-10-12T05:45:00Z',
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ [
+ 'errorCode' => 'InsufficientEipCapacity',
+ 'errorMessage' => 'Insufficient EIP inventory under the specified territory.',
+ ],
+ [
+ 'errorCode' => 'CallInterface',
+ 'errorMessage' => 'Call Interface Happen Error.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"BandwidthValue\\": 123,\\n \\"InternetChargeType\\": \\"95BandwidthByMonth\\",\\n \\"RequestId\\": \\"08027633-8501-5A36-B90D-F7C38B5EC75D\\",\\n \\"TimeStamp\\": \\"2019-10-12T05:45:00Z\\"\\n}","type":"json"}]',
+ 'title' => 'DescribeBandwitdhByInternetChargeType',
+ ],
+ 'DescribeUserBandWidthData' => [
+ 'summary' => 'Queries the bandwidth that you use within a specified period of time.',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'systemTags' => [
+ 'operationType' => 'get',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'EnsRegionId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the node. You can specify only one node ID. By default, all nodes are queried.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'cn-taiyuan-telecom',
+ ],
+ ],
+ [
+ 'name' => 'InstanceId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the instance for which you want to query the data. You can specify only one instance ID. By default, all instances are queried.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'i-5inkeimcipxk26yqtzm4q****',
+ ],
+ ],
+ [
+ 'name' => 'StartTime',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The beginning of the time range to query.'."\n"
+ ."\n"
+ .'* Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n"
+ .'* If the value of the seconds place is not 00, the start time is automatically set to the next minute.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => '2019-05-21T10:22:00Z',
+ ],
+ ],
+ [
+ 'name' => 'EndTime',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The end of the time range to query.'."\n"
+ ."\n"
+ .'* Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n"
+ .'* If the value of the seconds place is not 00, the start time is automatically set to the next minute.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => '2019-05-21T12:22:00Z',
+ ],
+ ],
+ [
+ 'name' => 'Period',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The precision of the monitoring data that you want to obtain. Valid values: 300, 1200, 3600, and 14400. Default value: 300. Unit: seconds.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => '300',
+ ],
+ ],
+ [
+ 'name' => 'Isp',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The Internet service provider (ISP). Valid values:'."\n"
+ ."\n"
+ .'* cmcc: China Mobile'."\n"
+ .'* telecom: China Telecom'."\n"
+ .'* unicom: China Unicom'."\n"
+ .'* multiCarrier: multi-line ISP'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'cmcc',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'Code' => [
+ 'description' => 'The returned service code. 0 indicates that the request was successful.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '0',
+ ],
+ 'MonitorData' => [
+ 'description' => 'The monitoring data.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'BandWidthMonitorData' => [
+ 'description' => 'The bandwidth data.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => '',
+ 'type' => 'object',
+ 'properties' => [
+ 'DownBandWidth' => [
+ 'description' => 'The outbound bandwidth. Unit: bit/s.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int64',
+ 'example' => '0',
+ ],
+ 'InternetRX' => [
+ 'description' => 'The Internet traffic to the instance. Unit: bytes.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int64',
+ 'example' => '0',
+ ],
+ 'InternetTX' => [
+ 'description' => 'The Internet traffic from the instance. Unit: bytes.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int64',
+ 'example' => '0',
+ ],
+ 'TimeStamp' => [
+ 'description' => 'The timestamp when the monitoring data was queried. The time follows the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time is displayed in UTC.'."\n",
+ 'type' => 'string',
+ 'example' => '2019-10-12T05:45:00Z',
+ ],
+ 'UpBandWidth' => [
+ 'description' => 'The inbound bandwidth. Unit: bit/s.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int64',
+ 'example' => '0',
+ ],
+ ],
+ ],
+ ],
+ 'MaxDownBandWidth' => [
+ 'description' => 'The maximum outbound bandwidth within the queried time range. Unit: bit/s.'."\n",
+ 'type' => 'string',
+ 'example' => '16817468',
+ ],
+ 'MaxUpBandWidth' => [
+ 'description' => 'The maximum inbound bandwidth within the queried time range. Unit: bit/s.'."\n",
+ 'type' => 'string',
+ 'example' => '231008',
+ ],
+ ],
+ ],
+ 'RequestId' => [
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => '50373E71-7710-4620-8AAB-133CCE49451C',
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'MissingParameter',
+ 'errorMessage' => 'The input parameters that is mandatory for processing this request is not supplied.',
+ ],
+ [
+ 'errorCode' => 'USERNOTFOUND',
+ 'errorMessage' => 'The user is not in ens-controller.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": 0,\\n \\"MonitorData\\": {\\n \\"BandWidthMonitorData\\": [\\n {\\n \\"DownBandWidth\\": 0,\\n \\"InternetRX\\": 0,\\n \\"InternetTX\\": 0,\\n \\"TimeStamp\\": \\"2019-10-12T05:45:00Z\\",\\n \\"UpBandWidth\\": 0\\n }\\n ],\\n \\"MaxDownBandWidth\\": \\"16817468\\",\\n \\"MaxUpBandWidth\\": \\"231008\\"\\n },\\n \\"RequestId\\": \\"50373E71-7710-4620-8AAB-133CCE49451C\\"\\n}","errorExample":""},{"type":"xml","example":"<DescribeUserBandWidthDataResponse>\\n<code>200</code>\\n <RequestId>50373E71-7710-4620-8AAB-133CCE49451C</RequestId>\\n <MonitorData>\\n <MaxDownBandWidth>16817468</MaxDownBandWidth>\\n <MaxUpBandWidth>231008</MaxUpBandWidth>\\n <BandWidthMonitorData>\\n <UpBandWidth>0</UpBandWidth>\\n <DownBandWidth>0</DownBandWidth>\\n <InternetTX>0</InternetTX>\\n <InternetRX>0</InternetRX>\\n <TimeStamp>2019-10-12T05:45:00Z</TimeStamp>\\n </BandWidthMonitorData>\\n </MonitorData>\\n <Code>0</Code>\\n<requestId>50373E71-7710-4620-8AAB-133CCE49451C</requestId>\\n<successResponse>true</successResponse>\\n</DescribeUserBandWidthDataResponse>\\n","errorExample":""}]',
+ 'title' => 'DescribeUserBandWidthData',
+ 'requestParamsDescription' => ' ',
+ 'responseParamsDescription' => ' ',
+ 'extraInfo' => ' ',
+ ],
+ 'DescribeMeasurementData' => [
+ 'summary' => 'Queries the metering data of the user.',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'systemTags' => [
+ 'operationType' => 'get',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'StartDate',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The beginning of the time range to query. Specify the time in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => '2019-06-01T00:00:00Z',
+ ],
+ ],
+ [
+ 'name' => 'EndDate',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The end of the time range to query. Specify the time in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => '2019-08-30T00:00:00Z',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'MeasurementDatas' => [
+ 'type' => 'object',
+ 'itemNode' => true,
+ 'properties' => [
+ 'MeasurementData' => [
+ 'description' => 'The metering data returned.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'BandWidthFeeDatas' => [
+ 'type' => 'object',
+ 'itemNode' => true,
+ 'properties' => [
+ 'BandWidthFeeData' => [
+ 'description' => 'The bandwidth data returned.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'CostCode' => [
+ 'description' => 'The code of the bandwidth plan.'."\n",
+ 'type' => 'string',
+ 'example' => 'cn-cmcc-1',
+ ],
+ 'CostName' => [
+ 'description' => 'The name of the bandwidth plan.'."\n",
+ 'type' => 'string',
+ 'example' => 'Beijing, Shanghai, and Guangzhou Mobile'."\n",
+ ],
+ 'CostVal' => [
+ 'description' => 'The bandwidth consumption. Unit: bit/second.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '16486',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'ChargeModel' => [
+ 'description' => 'The metering method. Valid values:'."\n"
+ ."\n"
+ .'* ChargeByUnified: unified metering.'."\n"
+ .'* ChargeByGrade: differential metering.'."\n",
+ 'type' => 'string',
+ 'example' => 'ChargeByGrade',
+ ],
+ 'CostCycle' => [
+ 'description' => 'The metering cycle.'."\n",
+ 'type' => 'string',
+ 'example' => '2019-07-30',
+ ],
+ 'CostEndTime' => [
+ 'description' => 'The end time of the metering cycle.'."\n",
+ 'type' => 'string',
+ 'example' => '2019-07-30T16:00:00Z',
+ ],
+ 'CostStartTime' => [
+ 'description' => 'The start time of the metering cycle.'."\n",
+ 'type' => 'string',
+ 'example' => '2019-07-29T16:00:00Z',
+ ],
+ 'ResourceFeeData' => [
+ 'description' => 'The information about computing resources.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'Memory' => [
+ 'description' => 'The memory size. Unit: GB.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '24',
+ ],
+ 'Storage' => [
+ 'description' => 'The storage capacity. Unit: GB.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '60',
+ ],
+ 'Vcpu' => [
+ 'description' => 'The number of vCPUs.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '12',
+ ],
+ ],
+ ],
+ 'ResourceFeeDataDetails' => [
+ 'type' => 'object',
+ 'itemNode' => true,
+ 'properties' => [
+ 'ResourceFeeDataDetail' => [
+ 'description' => 'Details of the computing resources.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'CostCode' => [
+ 'description' => 'The code of the resource.'."\n",
+ 'type' => 'string',
+ 'example' => 'vCPU',
+ ],
+ 'CostName' => [
+ 'description' => 'The name of the resource.'."\n",
+ 'type' => 'string',
+ 'example' => 'vCPU',
+ ],
+ 'CostVal' => [
+ 'description' => 'The consumption of the resource.'."\n"
+ ."\n"
+ .'* Memory unit: GB.'."\n"
+ .'* CPU unit: vCPU.'."\n"
+ .'* Storage unit: GB.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '55',
+ ],
+ 'ResourceType' => [
+ 'description' => 'The type of the resource.'."\n",
+ 'type' => 'string',
+ 'example' => 'vCPU',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'RequestId' => [
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => '125B04C7-3D0D-4245-AF96-14E3758E3F06',
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'MissingParameter',
+ 'errorMessage' => 'The input parameters that is mandatory for processing this request is not supplied.',
+ ],
+ [
+ 'errorCode' => 'InstanceNotExists',
+ 'errorMessage' => 'The user have no instances.',
+ ],
+ [
+ 'errorCode' => 'CallInterface',
+ 'errorMessage' => 'Call Interface Happen Error.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"MeasurementDatas\\": {\\n \\"MeasurementData\\": [\\n {\\n \\"BandWidthFeeDatas\\": {\\n \\"BandWidthFeeData\\": [\\n {\\n \\"CostCode\\": \\"cn-cmcc-1\\",\\n \\"CostName\\": \\"北上广移动\\",\\n \\"CostVal\\": 16486\\n }\\n ]\\n },\\n \\"ChargeModel\\": \\"ChargeByGrade\\",\\n \\"CostCycle\\": \\"2019-07-30\\",\\n \\"CostEndTime\\": \\"2019-07-30T16:00:00Z\\",\\n \\"CostStartTime\\": \\"2019-07-29T16:00:00Z\\",\\n \\"ResourceFeeData\\": {\\n \\"Memory\\": 24,\\n \\"Storage\\": 60,\\n \\"Vcpu\\": 12\\n },\\n \\"ResourceFeeDataDetails\\": {\\n \\"ResourceFeeDataDetail\\": [\\n {\\n \\"CostCode\\": \\"vCPU\\",\\n \\"CostName\\": \\"vCPU\\",\\n \\"CostVal\\": 55,\\n \\"ResourceType\\": \\"vCPU\\"\\n }\\n ]\\n }\\n }\\n ]\\n },\\n \\"RequestId\\": \\"125B04C7-3D0D-4245-AF96-14E3758E3F06\\"\\n}","errorExample":""},{"type":"xml","example":"<DescribeMeasurementDataResponse>\\n<RequestId>6E17CBE3-8701-4F0A-B796-BCCA6759C167</RequestId>\\n<MeasurementDatas>\\n <MeasurementData>\\n <BandWidthFeeDatas>\\n <BandWidthFeeData>\\n <CostCode>cn-telecom-2</CostCode>\\n <CostVal>230283916</CostVal>\\n <CostName>地区中心电信</CostName>\\n </BandWidthFeeData>\\n <BandWidthFeeData>\\n <CostCode>cn-cmcc-1</CostCode>\\n <CostVal>16486</CostVal>\\n <CostName>北上广移动</CostName>\\n </BandWidthFeeData>\\n </BandWidthFeeDatas>\\n <CostCycle>2019-07-30</CostCycle>\\n <CostEndTime>2019-07-30T16:00:00Z</CostEndTime>\\n <CostStartTime>2019-07-29T16:00:00Z</CostStartTime>\\n <ResourceFeeData>\\n <Storage>220</Storage>\\n <Memory>22</Memory>\\n <Vcpu>11</Vcpu>\\n </ResourceFeeData>\\n <ResourceFeeDataDetails>\\n <ResourceFeeDataDetail>\\n <CostVal>55</CostVal>\\n <CostCode>vcpu</CostCode>\\n <ResourceType>Vcpu</ResourceType>\\n <CostName>vCPU</CostName>\\n </ResourceFeeDataDetail>\\n <ResourceFeeDataDetail>\\n <CostVal>110</CostVal>\\n <CostCode>memory</CostCode>\\n <ResourceType>Memory</ResourceType>\\n <CostName>内存</CostName>\\n </ResourceFeeDataDetail>\\n <ResourceFeeDataDetail>\\n <CostVal>2885</CostVal>\\n <CostCode>storage</CostCode>\\n <ResourceType>Storage</ResourceType>\\n <CostName/>\\n </ResourceFeeDataDetail>\\n </ResourceFeeDataDetails>\\n <ChargeModel>ChargeByGrade</ChargeModel>\\n </MeasurementData>\\n</MeasurementDatas>\\n</DescribeMeasurementDataResponse>\\n","errorExample":""}]',
+ 'title' => 'DescribeMeasurementData',
+ 'requestParamsDescription' => ' ',
+ 'responseParamsDescription' => ' ',
+ ],
+ 'DescribePrice' => [
+ 'summary' => 'Queries the most recent price of an Edge Node Service (ENS) instance.',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'systemTags' => [
+ 'operationType' => 'get',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'InstanceType',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '实列规格。',
+ 'description' => 'The specifications of instances.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'ens.sn1.tiny',
+ ],
+ ],
+ [
+ 'name' => 'EnsRegionId',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '节点ID。',
+ 'description' => 'The ID of the ENS node.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'cn-shanghai-unicom',
+ ],
+ ],
+ [
+ 'name' => 'Period',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '购买资源的时长,如果不指定PeriodUnit,则默认按月购买。目前只支持按Days和Month。如果PeriodUnit=Day时,Period仅可以3。如果PeriodUnit=Monthc时,则Period可以为1-9,12。',
+ 'description' => 'The subscription duration of the instance.'."\n"
+ ."\n"
+ .'* If you leave the PeriodUnit parameter empty, the instance is purchased on a monthly basis. Valid values: Day and Month.'."\n"
+ .'* If you set PeriodUnit to Day, you can set Period only to 3.'."\n"
+ .'* If you set PeriodUnit to Month, you can set Period to a number from 1 to 9, or set Period to 12.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => true,
+ 'maximum' => '12',
+ 'minimum' => '1',
+ 'example' => '1',
+ ],
+ ],
+ [
+ 'name' => 'SystemDisk.Size',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '系统盘大小,单位:GB',
+ 'description' => 'The size of the system disk. Unit: GB.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => true,
+ 'example' => '20',
+ ],
+ ],
+ [
+ 'name' => 'Quantity',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '数量。',
+ 'description' => 'The number of instances.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => true,
+ 'example' => '1',
+ ],
+ ],
+ [
+ 'name' => 'DataDisk.1.Size',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '数据盘大小,单位GB。如果此字段不为空,则以此段为准。',
+ 'description' => 'The size of the data disk. Unit: GB. If you specify this parameter, this parameter takes precedence over the Size property in DataDisks.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'example' => '50',
+ ],
+ ],
+ [
+ 'name' => 'InternetChargeType',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '带宽计费方式',
+ 'description' => 'The bandwidth metering method of the instance. Valid values:'."\n"
+ ."\n"
+ .'* BandwidthByDay: Pay by daily peak bandwidth'."\n"
+ .'* 95BandwidthByMonth: Pay by monthly 95th percentile bandwidth'."\n"
+ .'* PayByBandwidth4thMonth: Pay by monthly fourth peak bandwidth'."\n"
+ .'* PayByBandwidth: Pay by fixed bandwidth'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => '95BandwidthByMonth',
+ ],
+ ],
+ [
+ 'name' => 'DataDisks',
+ 'in' => 'query',
+ 'style' => 'json',
+ 'schema' => [
+ 'title' => '如果DataDisk.1.Size为空且此字段不为空时的则以此字段为准',
+ 'description' => 'If you leave DataDisk.1.Size empty, the value that you specified for this parameter is used.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'Category' => [
+ 'title' => '磁盘类型',
+ 'description' => 'The category of the disk.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'cloud_efficiency',
+ 'default' => 'cloud_efficiency',
+ 'enum' => [
+ 'cloud_efficiency',
+ 'cloud_ssd',
+ 'local_hdd',
+ 'local_ssd',
+ ],
+ ],
+ 'Size' => [
+ 'description' => 'The size of the data disk. Unit: GB.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int64',
+ 'required' => false,
+ 'minimum' => '20',
+ 'example' => '50',
+ ],
+ ],
+ 'required' => false,
+ 'description' => '',
+ ],
+ 'required' => false,
+ ],
+ ],
+ [
+ 'name' => 'PeriodUnit',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '查询云服务器ENS不同计费周期的价格。取值范围:'."\n"
+ .'Month(默认):按月计费的价格单位。'."\n"
+ .'Day:按天计费的价格单位。',
+ 'description' => 'The billing cycle of the ENS instance. Valid values:'."\n"
+ ."\n"
+ .'* Month (default):'."\n"
+ .'* Day'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'Month',
+ 'enum' => [
+ 'Month',
+ 'Day',
+ ],
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'PriceInfo' => [
+ 'description' => 'The price information.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'Price' => [
+ 'description' => 'The price.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'Currency' => [
+ 'description' => 'The type of currency.'."\n"
+ ."\n"
+ .'* USD: US dollar'."\n"
+ .'* JPY: Japanese Yen'."\n",
+ 'type' => 'string',
+ 'example' => 'USD',
+ ],
+ 'DiscountPrice' => [
+ 'description' => 'The discount.'."\n",
+ 'type' => 'number',
+ 'format' => 'float',
+ 'example' => '1',
+ ],
+ 'OriginalPrice' => [
+ 'description' => 'The original price.'."\n",
+ 'type' => 'number',
+ 'format' => 'float',
+ 'example' => '16125.00',
+ ],
+ 'TradePrice' => [
+ 'description' => 'The final price.'."\n",
+ 'type' => 'number',
+ 'format' => 'float',
+ 'example' => '126.75',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'RequestId' => [
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => '694EB8FF-446C-5B1E-8146-9629E492551F',
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'MissingParameter',
+ 'errorMessage' => 'The input parameter that is mandatory for processing this request is not supplied.',
+ ],
+ [
+ 'errorCode' => 'InstanceIdNotFound',
+ 'errorMessage' => 'The input parameter instancdId that is not found.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter',
+ 'errorMessage' => 'The input parameter is Invalid.',
+ ],
+ [
+ 'errorCode' => 'StockNotEnough',
+ 'errorMessage' => 'The specified configuration is unavailable. Reconfigure and try again.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ [
+ 'errorCode' => 'CallInterface',
+ 'errorMessage' => 'Call Interface Happen Error.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"PriceInfo\\": {\\n \\"Price\\": {\\n \\"Currency\\": \\"USD\\",\\n \\"DiscountPrice\\": 1,\\n \\"OriginalPrice\\": 16125,\\n \\"TradePrice\\": 126.75\\n }\\n },\\n \\"RequestId\\": \\"694EB8FF-446C-5B1E-8146-9629E492551F\\"\\n}","errorExample":""},{"type":"xml","example":"<DescribePriceResponse>\\n <PriceInfo>\\n <Price>\\n <Currency>USD</Currency>\\n <DiscountPrice>1</DiscountPrice>\\n <OriginalPrice>16125</OriginalPrice>\\n <TradePrice>126.75</TradePrice>\\n </Price>\\n </PriceInfo>\\n <RequestId>694EB8FF-446C-5B1E-8146-9629E492551F</RequestId>\\n</DescribePriceResponse>","errorExample":""}]',
+ 'title' => 'DescribePrice',
+ ],
+ 'ExportBillDetailData' => [
+ 'summary' => 'Exports billing details within a specific time range.',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'abilityTreeCode' => '4380',
+ 'abilityTreeNodes' => [
+ 'FEATUREens43DFLD',
+ ],
+ 'tenantRelevance' => 'tenant',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'StartDate',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '开始时间,UTC格式',
+ 'description' => 'The beginning of the time range to query. Specify the time in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => '2020-06-01T00:00:00Z',
+ ],
+ ],
+ [
+ 'name' => 'EndDate',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '结束时间UTC格式',
+ 'description' => 'The end of the time range to query. Specify the time in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => '2020-08-30T00:00:00Z',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'FilePath' => [
+ 'title' => '文件下载地址',
+ 'description' => 'The download path of the exported file.'."\n",
+ 'type' => 'string',
+ 'example' => 'http://test-oss.com/image_01.jpeg',
+ ],
+ 'RequestId' => [
+ 'title' => '请求ID,公共字段',
+ 'description' => 'The ID of the request. This parameter is a common parameter. Each request has a unique ID. You can use the ID to troubleshoot issues.'."\n",
+ 'type' => 'string',
+ 'example' => 'BEA05990-B90D-594F-8C8E-650AEEB94C5D',
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'MissingParameter',
+ 'errorMessage' => 'The input parameters that is mandatory for processing this request is not supplied.',
+ ],
+ [
+ 'errorCode' => 'InstanceNotExists',
+ 'errorMessage' => 'The user have no instances.',
+ ],
+ [
+ 'errorCode' => 'CallInterface',
+ 'errorMessage' => 'Call Interface Happen Error.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"FilePath\\": \\"http://test-oss.com/image_01.jpeg\\",\\n \\"RequestId\\": \\"BEA05990-B90D-594F-8C8E-650AEEB94C5D\\"\\n}","type":"json"}]',
+ 'title' => 'ExportBillDetailData',
+ ],
+ 'ExportMeasurementData' => [
+ 'summary' => 'Exports the metering data within a specific time range.',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'abilityTreeCode' => '1454',
+ 'abilityTreeNodes' => [
+ 'FEATUREens43DFLD',
+ ],
+ 'tenantRelevance' => 'tenant',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'StartDate',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '开始时间,UTC格式',
+ 'description' => 'The beginning of the time range to query. Specify the time in the yyyy-mm-ddthh:mm:ssz format. The time must be in UTC.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => '2019-06-01T00:00:00Z',
+ ],
+ ],
+ [
+ 'name' => 'EndDate',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '结束时间,UTC格式',
+ 'description' => 'The end of the time range to query. Specify the time in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => '2021-10-30T16:00:00Z',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'FilePath' => [
+ 'title' => '文件下载地址',
+ 'description' => 'The download path of the exported file.'."\n",
+ 'type' => 'string',
+ 'example' => 'http://test-oss.com/image_01.jpeg',
+ ],
+ 'RequestId' => [
+ 'title' => '请求ID,公共字段',
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => 'C0003E8B-B930-4F59-ADC0-0E209A9012A8',
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'MissingParameter',
+ 'errorMessage' => 'The input parameters that is mandatory for processing this request is not supplied.',
+ ],
+ [
+ 'errorCode' => 'InstanceNotExists',
+ 'errorMessage' => 'The user have no instances.',
+ ],
+ [
+ 'errorCode' => 'CallInterface',
+ 'errorMessage' => 'Call Interface Happen Error.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"FilePath\\": \\"http://test-oss.com/image_01.jpeg\\",\\n \\"RequestId\\": \\"C0003E8B-B930-4F59-ADC0-0E209A9012A8\\"\\n}","type":"json"}]',
+ 'title' => 'ExportMeasurementData',
+ ],
+ 'DescribeHistoryEvents' => [
+ 'summary' => 'Queries instance system events.',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'none',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '222214',
+ 'abilityTreeNodes' => [
+ 'FEATUREensZ4NH23',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'PageNumber',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The page number. Pages start from page 1. Default value: 1.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'example' => '1',
+ 'default' => '1',
+ ],
+ ],
+ [
+ 'name' => 'PageSize',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The number of entries per page.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'example' => '10',
+ 'default' => '10',
+ ],
+ ],
+ [
+ 'name' => 'EventTypes',
+ 'in' => 'query',
+ 'style' => 'simple',
+ 'schema' => [
+ 'description' => 'The list of event types.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The type of the event. Valid values:'."\n"
+ ."\n"
+ .'* Instance:SystemFailure.Redeploy: The instance is redeployed due to system issues.'."\n"
+ .'* Instance:SystemFailure.Reboot: The instance is restarted due to a system error.'."\n"
+ .'* Instance:RegionNetworkDown: The node network is interrupted.'."\n"
+ .'* Disk:Stalled: The disk performance is impaired.'."\n"
+ .'* EnsRegion:NetworkMigration: The instance is migrated due to a system error.'."\n"
+ .'* IP:SafeRisk: IP alerts.'."\n"
+ .'* IP:SafeBan: IP blocking.'."\n"
+ .'* Instance:SystemUpgrade.Migrate: The instance needs to be migrated due to underlying upgrades.'."\n"
+ .'* Instance:SystemMaintenance.Redeploy: The instance is redeployed due to system maintenance.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'Instance:SystemFailure.Reboot',
+ 'enum' => [
+ 'Instance:SystemFailure.Redeploy',
+ 'Instance:SystemFailure.Reboot',
+ 'Disk:Stalled',
+ 'EnsRegion:NetworkMigration',
+ 'IP:SafeRisk',
+ 'IP:SafeBan',
+ 'Instance:RegionNetworkDown',
+ 'Instance:SystemUpgrade.Migrate',
+ 'Instance:SystemMaintenance.Redeploy',
+ 'Instance:SystemMaintenance.Reboot',
+ ],
+ ],
+ 'required' => true,
+ 'maxItems' => 100,
+ 'minItems' => 1,
+ ],
+ ],
+ [
+ 'name' => 'EventLevels',
+ 'in' => 'query',
+ 'style' => 'simple',
+ 'schema' => [
+ 'description' => 'The levels of the event-triggered alerts.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The level of the specific event. Valid values:'."\n"
+ ."\n"
+ .'* CRITICAL'."\n"
+ .'* WARN'."\n"
+ .'* INFO'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'WARN',
+ 'enum' => [
+ 'CRITICAL',
+ 'WARN',
+ 'INFO',
+ ],
+ ],
+ 'required' => false,
+ ],
+ ],
+ [
+ 'name' => 'ResourceIds',
+ 'in' => 'query',
+ 'style' => 'simple',
+ 'schema' => [
+ 'description' => 'The IDs of resources.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The ID of the resource.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'i-55qi8m11rr53c4i964md8a00l',
+ ],
+ 'required' => false,
+ ],
+ ],
+ [
+ 'name' => 'EventStatus',
+ 'in' => 'query',
+ 'style' => 'simple',
+ 'schema' => [
+ 'description' => 'Event status list.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The status of the event. Valid values:'."\n"
+ ."\n"
+ .'* Inquiring'."\n"
+ .'* Scheduled'."\n"
+ .'* Executing'."\n"
+ .'* Executed'."\n"
+ .'* Failed'."\n"
+ .'* Canceled'."\n"
+ .'* Avoided'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'Inquiring',
+ 'enum' => [
+ 'Inquiring',
+ 'Scheduled',
+ 'Executing',
+ 'Executed',
+ 'Avoided',
+ 'Failed',
+ 'Canceled',
+ ],
+ ],
+ 'required' => false,
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'The data returned.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'Request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '5359599C-F656-57BD-8A0D-329A2FD511A6',
+ ],
+ 'Events' => [
+ 'description' => 'The queried events.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The queried event.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'EventId' => [
+ 'description' => 'The ID of the event.'."\n",
+ 'type' => 'string',
+ 'example' => 'e-d71ff150945b9c02eb6ebc0016328468',
+ ],
+ 'EventStatus' => [
+ 'description' => 'The status of the event. Valid values:'."\n"
+ ."\n"
+ .'* Inquiring'."\n"
+ .'* Scheduled'."\n"
+ .'* Executing'."\n"
+ .'* Executed'."\n"
+ .'* Failed'."\n"
+ .'* Canceled'."\n"
+ .'* Avoided'."\n",
+ 'type' => 'string',
+ 'example' => 'Inquiring',
+ ],
+ 'EventType' => [
+ 'description' => 'The type of the event. Description:'."\n"
+ ."\n"
+ .'* Instance:SystemFailure.Redeploy: The instance is redeployed due to system issues.'."\n"
+ .'* Instance:SystemFailure.Reboot: The instance is restarted due to a system error.'."\n"
+ .'* Instance:RegionNetworkDown: The node network is interrupted.'."\n"
+ .'* Disk:Stalled: The disk performance is impaired.'."\n"
+ .'* EnsRegion:NetworkMigration: The instance is migrated due to a system error.'."\n"
+ .'* IP:SafeRisk: IP alerts.'."\n"
+ .'* IP:SafeBan: IP blocking.'."\n"
+ .'* Instance:SystemUpgrade.Migrate: The instance needs to be migrated due to underlying upgrades.'."\n"
+ .'* Instance:SystemMaintenance.Redeploy: The instance is redeployed due to system maintenance.'."\n",
+ 'type' => 'string',
+ 'example' => 'Instance:SystemFailure.Reboot',
+ ],
+ 'ResourceId' => [
+ 'description' => 'The ID of the associated resources.'."\n",
+ 'type' => 'string',
+ 'example' => 'i-55qi8m11rr53c4i964md8a00l',
+ ],
+ 'EventLevel' => [
+ 'description' => 'The level of the specific event. Valid values:'."\n"
+ ."\n"
+ .'* CRITICAL'."\n"
+ .'* WARN'."\n"
+ .'* INFO'."\n",
+ 'type' => 'string',
+ 'example' => 'WARN',
+ ],
+ 'PublishTime' => [
+ 'description' => 'The release time in milliseconds.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int64',
+ 'example' => '1715578245000',
+ ],
+ 'ExtendedAttribute' => [
+ 'description' => 'The extended attributes.'."\n",
+ 'type' => 'string',
+ 'example' => '{}',
+ ],
+ 'Reason' => [
+ 'description' => 'The event cause.'."\n",
+ 'type' => 'string',
+ 'example' => '',
+ ],
+ 'NotBefore' => [
+ 'description' => 'The scheduled execution time of the event in milliseconds.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int64',
+ 'example' => '1715578245000',
+ ],
+ ],
+ ],
+ ],
+ 'PageNumber' => [
+ 'description' => 'The page number. Pages start from page 1. Default value: 1.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '1',
+ ],
+ 'PageSize' => [
+ 'description' => 'The number of entries per page.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '10',
+ ],
+ 'TotalCount' => [
+ 'description' => 'The total number of entries returned.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '30',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"5359599C-F656-57BD-8A0D-329A2FD511A6\\",\\n \\"Events\\": [\\n {\\n \\"EventId\\": \\"e-d71ff150945b9c02eb6ebc0016328468\\",\\n \\"EventStatus\\": \\"Inquiring\\",\\n \\"EventType\\": \\"Instance:SystemFailure.Reboot\\",\\n \\"ResourceId\\": \\"i-55qi8m11rr53c4i964md8a00l\\",\\n \\"EventLevel\\": \\"WARN\\",\\n \\"PublishTime\\": 1715578245000,\\n \\"ExtendedAttribute\\": \\"{}\\",\\n \\"Reason\\": \\"目前系统策略额度不够\\",\\n \\"NotBefore\\": 1715578245000\\n }\\n ],\\n \\"PageNumber\\": 1,\\n \\"PageSize\\": 10,\\n \\"TotalCount\\": 30\\n}","type":"json"}]',
+ 'title' => 'DescribeHistoryEvents',
+ 'description' => '* You must specify an event type to query. You can query multiple event types at the same time.'."\n",
+ ],
+ 'BatchEventRebootInstance' => [
+ 'summary' => 'The event that is used to immediately redeploy specified resources in batches or by appointment',
+ 'description' => '* This O\\&M operation supports only the following event types: Instance:SystemMaintenance.Reboot (instance reboot due to system problems)'."\n",
+ 'path' => '/',
+ 'methods' => [
+ 'post',
+ ],
+ 'schemes' => [
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'readAndWrite',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'none',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeNodes' => [
+ 'FEATUREensVRRV1Q',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'EventInfos',
+ 'in' => 'query',
+ 'style' => 'json',
+ 'schema' => [
+ 'description' => 'The details of events.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The event.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'EventId' => [
+ 'description' => 'The ID of the system event.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'e-4452cec5a8f8eb9b2879a054207687d6',
+ ],
+ 'ResourceId' => [
+ 'description' => 'A client ID.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'n-54hi3ffi63zrjt4wzx9mepeyh',
+ ],
+ 'PlanTime' => [
+ 'description' => 'The execution time of the reservation. The timestamp is measured in milliseconds. If the OpsType parameter is set to scheduled, this parameter is required.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int64',
+ 'required' => false,
+ 'example' => '1742452232000',
+ ],
+ 'OpsType' => [
+ 'description' => 'The type of the O\\&M task.'."\n"
+ ."\n"
+ .'* immediate'."\n"
+ .'* scheduled'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'immediate',
+ ],
+ ],
+ 'required' => false,
+ ],
+ 'required' => false,
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'The response parameters.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => 'C0003E8B-B930-4F59-ADC0-0E209A9012A8',
+ ],
+ 'Results' => [
+ 'description' => 'The result.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The result.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'Code' => [
+ 'description' => 'The status code.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '200',
+ ],
+ 'EventId' => [
+ 'description' => 'The ID of the system event.'."\n",
+ 'type' => 'string',
+ 'example' => 'e-d71ff150945b9c02eb6ebc0016328468',
+ ],
+ 'Message' => [
+ 'description' => 'The message of the operation. If the value of the Code parameter is 200, the value of this parameter is successful.'."\n",
+ 'type' => 'string',
+ 'example' => 'success',
+ ],
+ 'ResourceId' => [
+ 'description' => 'The resource IDs.'."\n",
+ 'type' => 'string',
+ 'example' => 'i-55qi8m11rr53c4i964md8a00l'."\n",
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"C0003E8B-B930-4F59-ADC0-0E209A9012A8\\",\\n \\"Results\\": [\\n {\\n \\"Code\\": 200,\\n \\"EventId\\": \\"e-d71ff150945b9c02eb6ebc0016328468\\",\\n \\"Message\\": \\"success\\",\\n \\"ResourceId\\": \\"i-55qi8m11rr53c4i964md8a00l\\\\n\\"\\n }\\n ]\\n}","type":"json"}]',
+ 'title' => 'BatchEventRebootInstance',
+ ],
+ 'EventRebootInstance' => [
+ 'summary' => 'Restart the instance across nodes after an O\\\\\\&M event occurs on an instance.',
+ 'description' => '* This O\\&M operation supports only the Instance:SystemMaintenance.Reboot event'."\n",
+ 'path' => '/',
+ 'methods' => [
+ 'post',
+ ],
+ 'schemes' => [
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'readAndWrite',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'none',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeNodes' => [
+ 'FEATUREensVRRV1Q',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'EventId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the system event.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'e-9d992570200d86b9126d78aa8c37b54b',
+ ],
+ ],
+ [
+ 'name' => 'ResourceId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the resource.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'i-5****',
+ ],
+ ],
+ [
+ 'name' => 'OpsType',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The type of the O\\&M task. Valid values:'."\n"
+ ."\n"
+ .'* immediate'."\n"
+ .'* scheduled'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'immediate',
+ 'enum' => [
+ 'immediate',
+ 'scheduled',
+ ],
+ ],
+ ],
+ [
+ 'name' => 'PlanTime',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The execution time of the reservation. The timestamp is measured in milliseconds. If the OpsType parameter is set to scheduled, this parameter is required.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int64',
+ 'required' => false,
+ 'example' => '1742452232000',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'description' => '成功响应',
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'Id of the request'."\n",
+ 'type' => 'string',
+ 'example' => '125B04C7-3D0D-4245-AF96-14E3758E3F06',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"125B04C7-3D0D-4245-AF96-14E3758E3F06\\"\\n}","type":"json"}]',
+ 'title' => 'EventRebootInstance',
+ ],
+ 'EventMigrateInstance' => [
+ 'summary' => 'Migrates the instance across nodes after an O\\\\\\&M event occurs on an instance.',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'none',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '259537',
+ 'abilityTreeNodes' => [
+ 'FEATUREensZ4NH23',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'EventId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the system event.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'e-d71ff150945b9c02eb6ebc0016328468'."\n",
+ ],
+ ],
+ [
+ 'name' => 'ResourceId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the resource.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'i-55qi8m11rr53c4i964md8a00l',
+ ],
+ ],
+ [
+ 'name' => 'OpsType',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The type of the O\\&M task. Valid values:'."\n"
+ ."\n"
+ .'* immediate'."\n"
+ .'* scheduled'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'immediate',
+ 'enum' => [
+ 'immediate',
+ 'scheduled',
+ ],
+ ],
+ ],
+ [
+ 'name' => 'PlanTime',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The execution time of the reservation. The timestamp is measured in milliseconds. If the OpsType parameter is set to scheduled, this parameter is required.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int64',
+ 'required' => false,
+ 'example' => '1742452232000',
+ ],
+ ],
+ [
+ 'name' => 'DataPolicy',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The data migration policy. Valid values:'."\n"
+ ."\n"
+ .'* abandon: does not migrate data. This is the default value.'."\n"
+ .'* force_transfer: forcibly migrates data.'."\n"
+ .'* try_transfer: Migrate data as much as possible.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'abandon',
+ 'default' => 'abandon',
+ 'enum' => [
+ 'abandon',
+ 'force_transfer',
+ 'try_transfer',
+ ],
+ ],
+ ],
+ [
+ 'name' => 'Password',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The password of the instance. This parameter is optional. If you do not specify this parameter, a random password is used.'."\n"
+ ."\n"
+ .'The password must be 8 to 30 characters in length. The password must contain uppercase letters, lowercase letters, digits, and special characters.'."\n"
+ ."\n"
+ .'Note that you cannot enter a password for scheduled execution.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'AAaa1234',
+ 'maxLength' => 30,
+ 'minLength' => 8,
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'The data returned.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '125B04C7-3D0D-4245-AF96-14E3758E3F06',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"125B04C7-3D0D-4245-AF96-14E3758E3F06\\"\\n}","type":"json"}]',
+ 'title' => 'EventMigrateInstance',
+ 'description' => '* This O\\&M operation is supported only by the Instance:SystemUpgrade.Migrate event.'."\n",
+ ],
+ 'BatchEventMigrateInstance' => [
+ 'summary' => 'Migrates multiple instances in a specified event at a time. You can execute the task immediately or schedule the task execution.',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'none',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '259539',
+ 'abilityTreeNodes' => [
+ 'FEATUREensZ4NH23',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'EventInfos',
+ 'in' => 'query',
+ 'style' => 'json',
+ 'schema' => [
+ 'description' => 'The details of events.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The details of each event.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'EventId' => [
+ 'description' => 'Event ID e-\\*.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'e-d71ff150945b9c02eb6ebc0016328468'."\n",
+ ],
+ 'ResourceId' => [
+ 'description' => 'Resource ID i-\\*.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'i-55qi8m11rr53c4i964md8a00l'."\n",
+ ],
+ 'PlanTime' => [
+ 'description' => 'The execution time of the reservation. The timestamp is measured in milliseconds. If the OpsType parameter is set to scheduled, this parameter is required.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int64',
+ 'required' => false,
+ 'example' => '1742452232000',
+ ],
+ 'OpsType' => [
+ 'description' => 'The type of the O\\&M task. Valid values:'."\n"
+ ."\n"
+ .'* immediate'."\n"
+ .'* scheduled'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'immediate',
+ 'default' => 'immediate',
+ 'enum' => [
+ 'immediate',
+ 'scheduled',
+ ],
+ ],
+ 'DataPolicy' => [
+ 'description' => 'The data migration policy. Valid values:'."\n"
+ ."\n"
+ .'* abandon: does not migrate data. This is the default value.'."\n"
+ .'* force_transfer: forcibly migrates data.'."\n"
+ .'* try_transfer: Migrate data as much as possible.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'abandon',
+ 'default' => 'abandon',
+ 'enum' => [
+ 'abandon',
+ 'force_transfer',
+ 'try_transfer',
+ ],
+ ],
+ 'Password' => [
+ 'description' => 'The password of the instance. This parameter is optional. If you do not specify this parameter, a random password is used.'."\n"
+ ."\n"
+ .'The password must be 8 to 30 characters in length. The password must contain uppercase letters, lowercase letters, digits, and special characters.'."\n"
+ ."\n"
+ .'Note that you cannot enter a password for scheduled execution.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'AAaa1234',
+ 'maxLength' => 30,
+ 'minLength' => 8,
+ ],
+ ],
+ 'required' => false,
+ ],
+ 'required' => false,
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'The data returned.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'Request ID.'."\n",
+ 'type' => 'string',
+ 'example' => 'FF53E96D-3F1A-42F0-8373-1C2B39D72D44',
+ ],
+ 'Results' => [
+ 'description' => 'The results.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The result.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'Code' => [
+ 'description' => 'The error code.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '200',
+ ],
+ 'EventId' => [
+ 'description' => 'The ID of the event.'."\n",
+ 'type' => 'string',
+ 'example' => 'e-d71ff150945b9c02eb6ebc0016328468',
+ ],
+ 'Message' => [
+ 'description' => 'When Code!=200, it indicates the specific error message.'."\n",
+ 'type' => 'string',
+ 'example' => 'success',
+ ],
+ 'ResourceId' => [
+ 'description' => 'The resource IDs.'."\n",
+ 'type' => 'string',
+ 'example' => 'i-55qi8m11rr53c4i964md8a00l'."\n",
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"FF53E96D-3F1A-42F0-8373-1C2B39D72D44\\",\\n \\"Results\\": [\\n {\\n \\"Code\\": 200,\\n \\"EventId\\": \\"e-d71ff150945b9c02eb6ebc0016328468\\",\\n \\"Message\\": \\"success\\",\\n \\"ResourceId\\": \\"i-55qi8m11rr53c4i964md8a00l\\\\n\\"\\n }\\n ]\\n}","type":"json"}]',
+ 'title' => 'BatchEventMigrateInstance',
+ 'description' => '## [](#)Request description'."\n"
+ ."\n"
+ .'* This O\\&M operation is supported only by the Instance:SystemUpgrade.Migrate event.'."\n",
+ ],
+ 'EventRedeployInstance' => [
+ 'summary' => 'The event that is used to immediately redeploy a specified resource or by appointment',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'readAndWrite',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'none',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeNodes' => [
+ 'FEATUREensVRRV1Q',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'EventId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the system event.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'e-d71ff150945b9c02eb6ebc0016328468',
+ ],
+ ],
+ [
+ 'name' => 'ResourceId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the resource.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'i-55qi8m11rr53c4i964md8a00l',
+ ],
+ ],
+ [
+ 'name' => 'OpsType',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The type of the O\\&M task. Valid values:'."\n"
+ ."\n"
+ .'* immediate'."\n"
+ .'* scheduled'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'immediate',
+ 'enum' => [
+ 'immediate',
+ 'scheduled',
+ ],
+ ],
+ ],
+ [
+ 'name' => 'PlanTime',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The execution time of the reservation. The timestamp is measured in milliseconds. If the OpsType parameter is set to scheduled, this parameter is required.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int64',
+ 'required' => false,
+ 'example' => '1742452232000',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'The data returned.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => '125B04C7-3D0D-4245-AF96-14E3758E3F06',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"125B04C7-3D0D-4245-AF96-14E3758E3F06\\"\\n}","type":"json"}]',
+ 'title' => 'EventRedeployInstance',
+ 'description' => '* This O\\&M operation supports only the following event types: Instance:SystemFailure.Redeploy (instance redeployment due to system problems) and Instance:SystemMaintenance.Redeploy (instance redeployment due to system maintenance).'."\n",
+ ],
+ 'BatchEventRedeployInstance' => [
+ 'summary' => 'Batch redeployment',
+ 'methods' => [
+ 'post',
+ ],
+ 'schemes' => [
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'none',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'EventInfos',
+ 'in' => 'query',
+ 'style' => 'json',
+ 'schema' => [
+ 'description' => 'List of events.',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'Event.',
+ 'type' => 'object',
+ 'properties' => [
+ 'EventId' => [
+ 'description' => 'System event ID.',
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'e-d71ff150945b9c02eb6ebc0016328468',
+ ],
+ 'ResourceId' => [
+ 'description' => 'Resource ID.',
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'i-55qi8m11rr53c4i964md8a00l'."\n",
+ ],
+ 'PlanTime' => [
+ 'description' => 'Scheduled execution time, in timestamp, unit is milliseconds. This field is required when OpsType=scheduled.',
+ 'type' => 'integer',
+ 'format' => 'int64',
+ 'required' => false,
+ 'enumValueTitles' => [
+ 'immediate' => 'immediate',
+ 'scheduled' => 'scheduled',
+ ],
+ 'example' => 'immediate',
+ ],
+ 'OpsType' => [
+ 'description' => 'Operation type, value range:'."\n"
+ ."\n"
+ .'- immediate: Execute immediately.'."\n"
+ .'- scheduled: Scheduled execution.',
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '1742452232000',
+ ],
+ ],
+ 'required' => false,
+ ],
+ 'required' => false,
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Return value.',
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'Request ID.',
+ 'type' => 'string',
+ 'example' => '125B04C7-3D0D-4245-AF96-14E3758E3F06',
+ ],
+ 'Results' => [
+ 'description' => 'List of results.',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'Result.',
+ 'type' => 'object',
+ 'properties' => [
+ 'Code' => [
+ 'description' => 'Status code.',
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '200',
+ ],
+ 'EventId' => [
+ 'description' => 'System event ID.',
+ 'type' => 'string',
+ 'example' => 'e-d71ff150945b9c02eb6ebc0016328468',
+ ],
+ 'Message' => [
+ 'description' => 'Operational message, when code=200, the message is \'successful\'.',
+ 'type' => 'string',
+ 'example' => 'success',
+ ],
+ 'ResourceId' => [
+ 'description' => 'Resource ID.',
+ 'type' => 'string',
+ 'example' => 'i-55qi8m11rr53c4i964md8a00l'."\n",
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"125B04C7-3D0D-4245-AF96-14E3758E3F06\\",\\n \\"Results\\": [\\n {\\n \\"Code\\": 200,\\n \\"EventId\\": \\"e-d71ff150945b9c02eb6ebc0016328468\\",\\n \\"Message\\": \\"success\\",\\n \\"ResourceId\\": \\"i-55qi8m11rr53c4i964md8a00l\\\\n\\"\\n }\\n ]\\n}","type":"json"}]',
+ 'title' => 'Batch Deploy Instances',
+ 'description' => '- This operation currently only supports event types: Instance:SystemFailure.Redeploy (redeploy instance due to system issues), Instance:SystemMaintenance.Redeploy (redeploy instance due to system maintenance)',
+ 'translator' => 'machine',
+ ],
+ 'ReleaseInstance' => [
+ 'summary' => 'Releases an instance. You can call this operation to release only Elastic IP Addresses (EIPs), Edge Load Balancer (ELB) instances, and cloud disk-based instances. We recommend that you call service-specific operations to release or unsubscribe from instances.',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'delete',
+ 'abilityTreeCode' => '25981',
+ 'abilityTreeNodes' => [
+ 'FEATUREens43DFLD',
+ ],
+ 'tenantRelevance' => 'tenant',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'InstanceId',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '实例id',
+ 'description' => 'The ID of the EIP.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'eip-****',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '4EC47282-1B74-4534-BD0E-403F3EE64CAF',
+ ],
+ 'ResourceType' => [
+ 'description' => 'The type of the resource.'."\n"
+ ."\n"
+ .'Valid values:'."\n"
+ ."\n"
+ .'* instance'."\n"
+ .'* eip'."\n"
+ .'* disk'."\n"
+ .'* network'."\n"
+ .'* natgateway'."\n"
+ .'* vswitch'."\n",
+ 'type' => 'string',
+ 'example' => 'eip',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'InstanceNotFound',
+ 'errorMessage' => 'The input parameter instancdId that is not found.',
+ ],
+ [
+ 'errorCode' => 'ens.interface.error',
+ 'errorMessage' => 'Failed to call API.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"4EC47282-1B74-4534-BD0E-403F3EE64CAF\\",\\n \\"ResourceType\\": \\"eip\\"\\n}","errorExample":""},{"type":"xml","example":"<ReleaseInstanceResponse>\\r\\n<RequestId>4EC47282-1B74-4534-BD0E-403F3EE64CAF</RequestId>\\r\\n</ReleaseInstanceResponse>","errorExample":""}]',
+ 'title' => 'ReleaseInstance',
+ 'description' => '* You can call this operation up to 10,000 times per second per account.'."\n"
+ .'* The maximum number of times that each user can call this operation per second is 50.'."\n",
+ 'requestParamsDescription' => ' ',
+ 'responseParamsDescription' => ' ',
+ 'extraInfo' => ' ',
+ ],
+ 'CreateEnsService' => [
+ 'summary' => 'Creates an edge service.',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'systemTags' => [
+ 'operationType' => 'create',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'EnsServiceId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the resource that you want to obtain. You can specify only one ID in a request.',
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'ens-20190806****',
+ ],
+ ],
+ [
+ 'name' => 'OrderType',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The operation to perform after you preview the created edge service. Valid values:'."\n"
+ ."\n"
+ .'* **Buy**: create'."\n"
+ .'* **Upgrade**: change'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'Buy',
+ 'enum' => [
+ 'Buy',
+ 'Upgrade',
+ ],
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'Code' => [
+ 'description' => 'The service code. 0 is returned for a successful request. An error code is returned for a failed request.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '0',
+ ],
+ 'RequestId' => [
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '9AF02B43-2D08-49D3-8AAF-65B9C792ED14',
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'MissingParameter',
+ 'errorMessage' => 'The input parameter domainName that is mandatory for processing this request is not supplied.',
+ ],
+ [
+ 'errorCode' => 'InstanceIdNotFound',
+ 'errorMessage' => 'The input parameter instancdId that is not found.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ [
+ 'errorCode' => 'CallInterface',
+ 'errorMessage' => 'Call Interface Happen Error.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": 0,\\n \\"RequestId\\": \\"9AF02B43-2D08-49D3-8AAF-65B9C792ED14\\"\\n}","errorExample":""},{"type":"xml","example":"<CreateEnsServiceResponse>\\n<RequestId>9AF02B43-2D08-49D3-8AAF-65B9C792ED14</RequestId>\\n<Code>0</Code>\\n</CreateEnsServiceResponse>","errorExample":""}]',
+ 'title' => 'CreateEnsService',
+ 'requestParamsDescription' => ' ',
+ 'responseParamsDescription' => ' ',
+ 'extraInfo' => ' ',
+ ],
+ 'DescribeNASAvailableResourceInfo' => [
+ 'summary' => 'Queries the specifications of resources that you can purchase when you create a NAS.',
+ 'methods' => [
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'get',
+ ],
+ 'parameters' => [],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'The data returned.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'Request ID.'."\n",
+ 'type' => 'string',
+ 'example' => 'AAE90880-4970-4D81-A534-A6C0F3631F74',
+ ],
+ 'Code' => [
+ 'description' => 'The returned service code. A value of 0 indicates that the operation was successful.'."\n",
+ 'type' => 'string',
+ 'example' => '0',
+ ],
+ 'Message' => [
+ 'description' => 'The error message.'."\n",
+ 'type' => 'string',
+ 'example' => 'you are not authorized to this workspace, or workspace not exists.',
+ ],
+ 'NasAvailableResourceInfo' => [
+ 'description' => 'The information of available NAS resources.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The array of available NAS resource information.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'EnsRegionId' => [
+ 'description' => 'The ID of the ENS node.'."\n",
+ 'type' => 'string',
+ 'example' => 'cn-chenzhou-telecom_unicom_cmcc',
+ ],
+ 'NasAvailableAmount' => [
+ 'description' => 'the number of available NAS resources.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '1',
+ ],
+ 'NasAvailableStorgeType' => [
+ 'description' => 'The types of available NAS resources.'."\n",
+ 'type' => 'string',
+ 'example' => 'capacity',
+ ],
+ 'EnsRegionName' => [
+ 'description' => 'The name of the ENS node.'."\n",
+ 'type' => 'string',
+ 'example' => '',
+ ],
+ 'Area' => [
+ 'description' => 'The region to which the ENS node belongs.'."\n",
+ 'type' => 'string',
+ 'example' => 'SouthWestChina',
+ ],
+ 'EnName' => [
+ 'description' => 'The English name.'."\n",
+ 'type' => 'string',
+ 'example' => 'cn-chenzhou-telecom_unicom_cmcc',
+ ],
+ 'Province' => [
+ 'description' => 'The province to which the ENS node belongs.'."\n",
+ 'type' => 'string',
+ 'example' => '',
+ ],
+ 'Ability' => [
+ 'description' => 'The product supported by the edge node.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The product supported by the edge node.'."\n",
+ 'type' => 'string',
+ 'example' => 'nas',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'IdempotentParameterMismatch',
+ 'errorMessage' => 'The request uses the same client token as a previous, but non-identical request. Do not reuse a client token with different requests, unless the requests are identical.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'eventInfo' => [
+ 'enable' => false,
+ 'eventNames' => [],
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"AAE90880-4970-4D81-A534-A6C0F3631F74\\",\\n \\"Code\\": \\"0\\",\\n \\"Message\\": \\"you are not authorized to this workspace, or workspace not exists.\\",\\n \\"NasAvailableResourceInfo\\": [\\n {\\n \\"EnsRegionId\\": \\"cn-chenzhou-telecom_unicom_cmcc\\",\\n \\"NasAvailableAmount\\": 1,\\n \\"NasAvailableStorgeType\\": \\"capacity\\",\\n \\"EnsRegionName\\": \\"中国杭州36\\",\\n \\"Area\\": \\"SouthWestChina\\",\\n \\"EnName\\": \\"cn-chenzhou-telecom_unicom_cmcc\\",\\n \\"Province\\": \\"湖北省\\",\\n \\"Ability\\": [\\n \\"nas\\"\\n ]\\n }\\n ]\\n}","type":"json"}]',
+ 'title' => 'DescribeNASAvailableResourceInfo',
+ ],
+ 'CreateEpnInstance' => [
+ 'summary' => 'Creates an edge private network (EPN) instance.',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'systemTags' => [
+ 'operationType' => 'create',
+ 'abilityTreeCode' => '1136',
+ 'abilityTreeNodes' => [
+ 'FEATUREensI1ZRKE',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'EPNInstanceType',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The type of the EPN instance. Set the value to **EdgeToEdge**.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'EdgeToEdge',
+ ],
+ ],
+ [
+ 'name' => 'EPNInstanceName',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The name of the EPN instance.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'test EPNInstanceName',
+ ],
+ ],
+ [
+ 'name' => 'InternetChargeType',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The billing method for network usage. Valid values:'."\n"
+ ."\n"
+ .'* **BandwidthByDay**: Pay by daily peak bandwidth.'."\n"
+ .'* **95BandwidthByMonth**: Pay by monthly 95th percentile bandwidth.'."\n"
+ .'* **PayByBandwidth4thMonth**: Pay by monthly fourth peak bandwidth.'."\n"
+ .'* **PayByBandwidth**: Pay by fixed bandwidth.'."\n"
+ ."\n"
+ .'You can specify only one metering method for network usage and cannot overwrite the existing metering method.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'BandwidthByDay',
+ 'enum' => [
+ 'BandwidthByDay',
+ '95BandwidthByMonth',
+ 'PayByBandwidth4thMonth',
+ 'PayByBandwidth',
+ 'FlowoutByDay',
+ ],
+ ],
+ ],
+ [
+ 'name' => 'NetworkingModel',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The networking mode. Valid values:'."\n"
+ ."\n"
+ .'* **SpeedUp**: intelligent acceleration network (Internet)'."\n"
+ .'* **Connection**: internal network'."\n"
+ .'* **SpeedUpAndConnection**: intelligent acceleration network and internal network'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'SpeedUp',
+ 'enum' => [
+ 'SpeedUp',
+ 'Connection',
+ 'SpeedUpAndConnection',
+ ],
+ ],
+ ],
+ [
+ 'name' => 'InternetMaxBandwidthOut',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The maximum outbound public bandwidth. Unit: Mbit/s. Valid values: 1 to 100.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => true,
+ 'example' => '1',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'EPNInstanceId' => [
+ 'description' => 'The ID of the EPN instance.'."\n",
+ 'type' => 'string',
+ 'example' => 'epn-xxxxx',
+ ],
+ 'RequestId' => [
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984',
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'StockNotEnough',
+ 'errorMessage' => 'The specified instance type has insufficient resource.',
+ ],
+ [
+ 'errorCode' => 'UserNotExist',
+ 'errorMessage' => 'The specified user is not authroized to perform this operation.',
+ ],
+ [
+ 'errorCode' => 'MissingParameter',
+ 'errorMessage' => 'The input parameter that is mandatory for processing this request is not supplied.',
+ ],
+ [
+ 'errorCode' => 'InstanceIdNotFound',
+ 'errorMessage' => 'The input parameter instancdId that is not found.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter',
+ 'errorMessage' => 'The input parameter is Invalid.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ [
+ 'errorCode' => 'InvalidDiskSize.ValueNotSupported',
+ 'errorMessage' => 'The specified disk capacity is invalid. Specify another capacity and try again.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.Bandwidth',
+ 'errorMessage' => 'The specified parameter InternetChargeType is not valid.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.Image',
+ 'errorMessage' => 'The specified image does not support.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.InstanceType',
+ 'errorMessage' => 'The specified parameter InstanceType is not valid.',
+ ],
+ [
+ 'errorCode' => 'InvalidAccountStatus.NotEnoughBalance',
+ 'errorMessage' => 'Your account does not have enough balance.',
+ ],
+ [
+ 'errorCode' => 'unsupported_Ipv6Feature',
+ 'errorMessage' => 'This ensregion does not support creating instance of the IPv6 type. Select another type.',
+ ],
+ [
+ 'errorCode' => 'Forbidden.CreateInstance',
+ 'errorMessage' => 'The user is not in the Goods whitelist of creating instance interface.',
+ ],
+ [
+ 'errorCode' => 'ENS_OperationUnsupported_KeyPairName',
+ 'errorMessage' => 'The KeyPairNameis not available or image not support ssh key.',
+ ],
+ [
+ 'errorCode' => 'ENS_DependencyViolation_WindowsInstance',
+ 'errorMessage' => 'The instance creating is window, only user password to login.',
+ ],
+ [
+ 'errorCode' => 'ENS_PASSWORDORKEYPAIRNAME_MODULE_NOT_CHOOSEN',
+ 'errorMessage' => 'The required module pwd or keyPairName is not inputed',
+ ],
+ [
+ 'errorCode' => 'InvalidPrivateIpAddress',
+ 'errorMessage' => 'Specified private IP address is not in the CIDR block of virtual switch.',
+ ],
+ [
+ 'errorCode' => 'InvalidVSwitchId.NotFound',
+ 'errorMessage' => 'Specified virtual switch does not exist.',
+ ],
+ [
+ 'errorCode' => 'InvalidPrivateIpAddress.Duplicated',
+ 'errorMessage' => 'Specified private IP address is duplicated.',
+ ],
+ [
+ 'errorCode' => 'CallInterface',
+ 'errorMessage' => 'Call Interface Happen Error.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"EPNInstanceId\\": \\"epn-xxxxx\\",\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\"\\n}","errorExample":""},{"type":"xml","example":"<CreateEpnInstanceResponse>\\n<EPNInstanceId>epn-bp1fg655nh68xyz9i***</EPNInstanceId>\\n<RequestId>CEF72CEB-54B6-4AE8-B225-F876FF7BA984</RequestId>\\n</CreateEpnInstanceResponse>","errorExample":""}]',
+ 'title' => 'CreateEpnInstance',
+ 'requestParamsDescription' => ' ',
+ 'responseParamsDescription' => ' ',
+ 'extraInfo' => ' ',
+ ],
+ 'DeleteEpnInstance' => [
+ 'summary' => 'Deletes an edge private network (EPN) instance.',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'systemTags' => [
+ 'operationType' => 'delete',
+ 'abilityTreeCode' => '4363',
+ 'abilityTreeNodes' => [
+ 'FEATUREensI1ZRKE',
+ ],
+ 'tenantRelevance' => 'tenant',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'EPNInstanceId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the EPN instance.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'epn-****',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E',
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'MissingParameter',
+ 'errorMessage' => 'The input parameter that is mandatory for processing this request is not supplied.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter',
+ 'errorMessage' => 'The errorMessage is %s. Please check it again.',
+ ],
+ [
+ 'errorCode' => 'ens.interface.error',
+ 'errorMessage' => 'An error occurred while calling the API.',
+ ],
+ [
+ 'errorCode' => 'CallInterface',
+ 'errorMessage' => 'Call Interface Happen Error.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E\\"\\n}","errorExample":""},{"type":"xml","example":"<DeleteEpnInstanceResponse>\\n<RequestId>CEF72CEB-54B6-4AE8-B225-F876FF7BA984</RequestId>\\n</DeleteEpnInstanceResponse>","errorExample":""}]',
+ 'title' => 'DeleteEpnInstance',
+ 'description' => 'You can delete an EPN instance only when the instance group information is empty.'."\n",
+ 'requestParamsDescription' => ' ',
+ 'responseParamsDescription' => ' ',
+ 'extraInfo' => ' ',
+ ],
+ 'DescribeEnsNetDistrict' => [
+ 'summary' => 'Queries regions in which ENS resources can be created.',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeNodes' => [
+ 'FEATUREensRIM251',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'NetLevelCode',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The level of the region.'."\n"
+ ."\n"
+ .'* **Big**: area'."\n"
+ .'* **Middle**: province'."\n"
+ .'* **Small**: city'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'Big',
+ ],
+ ],
+ [
+ 'name' => 'NetDistrictCode',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The code of the region.'."\n"
+ ."\n"
+ .'If you do not specify this parameter, only nodes in the regions of the level that is specified by the NetLevelCode parameter are queried.'."\n"
+ ."\n"
+ .'If you specify this parameter, only nodes in the regions of the level that is specified by this parameter are queried.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '100106',
+ ],
+ ],
+ [
+ 'name' => 'NetDistrictCodeNode',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '地区代码',
+ 'type' => 'boolean',
+ 'default' => 'false',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'Code' => [
+ 'description' => 'The returned service code. A value of 0 indicates that the operation was successful.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '0',
+ ],
+ 'EnsNetDistricts' => [
+ 'type' => 'object',
+ 'itemNode' => true,
+ 'properties' => [
+ 'EnsNetDistrict' => [
+ 'description' => 'The information about the regions.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The information about the ISPs in the area.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'EnsRegionIdCount' => [
+ 'description' => 'The number of nodes in the region.'."\n",
+ 'type' => 'string',
+ 'example' => '2',
+ ],
+ 'NetDistrictCode' => [
+ 'description' => 'The code of the region.'."\n",
+ 'type' => 'string',
+ 'example' => '100106',
+ ],
+ 'NetDistrictEnName' => [
+ 'description' => 'The name of the region.'."\n",
+ 'type' => 'string',
+ 'example' => 'southWest',
+ ],
+ 'NetDistrictFatherCode' => [
+ 'description' => 'The parent code of the region.'."\n",
+ 'type' => 'string',
+ 'example' => '100000',
+ ],
+ 'NetDistrictLevel' => [
+ 'description' => 'The level of the region.'."\n"
+ ."\n"
+ .'* **Big**: area'."\n"
+ .'* **Middle**: province'."\n"
+ .'* **Small**: city'."\n",
+ 'type' => 'string',
+ 'example' => 'Big',
+ ],
+ 'NetDistrictName' => [
+ 'description' => 'The name of the region.'."\n",
+ 'type' => 'string',
+ 'example' => 'southwest China'."\n",
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'RequestId' => [
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => 'F3B261DD-3858-4D3C-877D-303ADF374600',
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'MissingParameter',
+ 'errorMessage' => 'The input parameter domainName that is mandatory for processing this request is not supplied.',
+ ],
+ [
+ 'errorCode' => 'InstanceIdNotFound',
+ 'errorMessage' => 'The input parameter instancdId that is not found.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'CallInterface',
+ 'errorMessage' => 'Call Interface Happen Error.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'eventInfo' => [
+ 'enable' => false,
+ 'eventNames' => [],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": 0,\\n \\"EnsNetDistricts\\": {\\n \\"EnsNetDistrict\\": [\\n {\\n \\"EnsRegionIdCount\\": \\"2\\",\\n \\"NetDistrictCode\\": \\"100106\\",\\n \\"NetDistrictEnName\\": \\"southWest\\",\\n \\"NetDistrictFatherCode\\": \\"100000\\",\\n \\"NetDistrictLevel\\": \\"Big\\",\\n \\"NetDistrictName\\": \\"西南\\"\\n }\\n ]\\n },\\n \\"RequestId\\": \\"F3B261DD-3858-4D3C-877D-303ADF374600\\"\\n}","errorExample":""},{"type":"xml","example":"<EnsNetDistricts>\\n <EnsNetDistrict>\\n <NetDistrictCode>100106</NetDistrictCode>\\n <NetDistrictLevel>Big</NetDistrictLevel>\\n <NetDistrictFatherCode>100000</NetDistrictFatherCode>\\n <NetDistrictEnName>southWest</NetDistrictEnName>\\n <EnsRegionIdCount>\\n <count>1</count>\\n <name>电信</name>\\n <code>telecom</code>\\n <country>cn</country>\\n </EnsRegionIdCount>\\n <EnsRegionIdCount>\\n <count>1</count>\\n <name>联通</name>\\n <code>unicom</code>\\n <country>cn</country>\\n </EnsRegionIdCount>\\n <EnsRegionIdCount>\\n <count>1</count>\\n <name>移动</name>\\n <code>cmcc</code>\\n <country>cn</country>\\n </EnsRegionIdCount>\\n <EnsRegionIdCount>\\n <count>1</count>\\n <name>多线</name>\\n <code>multiCarrier</code>\\n <country>cn</country>\\n </EnsRegionIdCount>\\n <NetDistrictName>西南</NetDistrictName>\\n </EnsNetDistrict>\\n</EnsNetDistricts>\\n<RequestId>F3B261DD-3858-4D3C-877D-303ADF374600</RequestId>\\n<Code>0</Code>","errorExample":""}]',
+ 'title' => 'DescribeEnsNetDistrict',
+ 'requestParamsDescription' => ' ',
+ 'responseParamsDescription' => ' ',
+ 'extraInfo' => ' ',
+ ],
+ 'DescribeEpnBandWidthData' => [
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'systemTags' => [
+ 'operationType' => 'get',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'EnsRegionId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the Edge Node Service (ENS) node.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'cn-beijing-cmcc',
+ ],
+ ],
+ [
+ 'name' => 'InstanceId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the instance.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'i-5sg1owx0g4ojy66ab2tez77r2',
+ ],
+ ],
+ [
+ 'name' => 'StartTime',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The beginning of the time range to query.'."\n"
+ ."\n"
+ .'* Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n"
+ .'* If the value of the seconds place is not 00, the start time is automatically set to the next minute.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => '2021-12-15T16:00:00Z',
+ ],
+ ],
+ [
+ 'name' => 'EndTime',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The end of the time range to query.'."\n"
+ ."\n"
+ .'* Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n"
+ .'* If the value of the seconds place is not 00, the start time is automatically set to the next minute.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => '2021-12-16T16:00:00Z',
+ ],
+ ],
+ [
+ 'name' => 'Period',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The precision of the monitoring data that you want to obtain. Valid values: 300, 1200, 3600, and 14400. Default value: 300. Unit: seconds.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => '300',
+ ],
+ ],
+ [
+ 'name' => 'Isp',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The Internet service provider (ISP). Valid values:'."\n"
+ ."\n"
+ .'* cmcc: China Mobile'."\n"
+ .'* telecom: China Telecom'."\n"
+ .'* unicom: China Unicom'."\n"
+ .'* multiCarrier: multi-line ISP'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'cmcc',
+ ],
+ ],
+ [
+ 'name' => 'NetworkingModel',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The networking mode. Valid values:'."\n"
+ ."\n"
+ .'* **SpeedUp**: intelligent acceleration network (Internet)'."\n"
+ .'* **Connection**: internal network'."\n"
+ .'* **SpeedUpAndConnection**: intelligent acceleration network and internal network'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'SpeedUp',
+ 'enum' => [
+ 'SpeedUp',
+ 'Connection',
+ 'SpeedUpAndConnection',
+ ],
+ ],
+ ],
+ [
+ 'name' => 'EPNInstanceId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the EPN instance.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'epn-20200825134537VyK81T',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'MonitorData' => [
+ 'description' => 'The monitoring data of the instance.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'BandWidthMonitorData' => [
+ 'description' => 'The bandwidth data.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => '',
+ 'type' => 'object',
+ 'properties' => [
+ 'DownBandWidth' => [
+ 'description' => 'The outbound bandwidth. Unit: bit/s.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int64',
+ 'example' => '0',
+ ],
+ 'InternetRX' => [
+ 'description' => 'The Internet traffic to the instance. Unit: bytes.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int64',
+ 'example' => '0',
+ ],
+ 'InternetTX' => [
+ 'description' => 'The Internet traffic from the instance. Unit: bytes.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int64',
+ 'example' => '0',
+ ],
+ 'TimeStamp' => [
+ 'description' => 'The timestamp when the monitoring data was queried. The time follows the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time is displayed in UTC.'."\n",
+ 'type' => 'string',
+ 'example' => '2019-10-12T05:45:00Z',
+ ],
+ 'UpBandWidth' => [
+ 'description' => 'The inbound bandwidth. Unit: bit/s.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int64',
+ 'example' => '0',
+ ],
+ ],
+ ],
+ ],
+ 'MaxDownBandWidth' => [
+ 'description' => 'The maximum outbound bandwidth within the queried time range. Unit: bit/s.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int64',
+ 'example' => '16817468',
+ ],
+ 'MaxUpBandWidth' => [
+ 'description' => 'The maximum inbound bandwidth within the queried time range. Unit: bit/s.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int64',
+ 'example' => '231008',
+ ],
+ ],
+ ],
+ 'RequestId' => [
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '1D289DAA-F6DA-5FC4-AE47-F5C8B6277BFC',
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'MissingParameter',
+ 'errorMessage' => 'The input parameters that is mandatory for processing this request is not supplied.',
+ ],
+ [
+ 'errorCode' => 'USERNOTFOUND',
+ 'errorMessage' => 'The user is not in ens-controller.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"MonitorData\\": {\\n \\"BandWidthMonitorData\\": [\\n {\\n \\"DownBandWidth\\": 0,\\n \\"InternetRX\\": 0,\\n \\"InternetTX\\": 0,\\n \\"TimeStamp\\": \\"2019-10-12T05:45:00Z\\",\\n \\"UpBandWidth\\": 0\\n }\\n ],\\n \\"MaxDownBandWidth\\": 16817468,\\n \\"MaxUpBandWidth\\": 231008\\n },\\n \\"RequestId\\": \\"1D289DAA-F6DA-5FC4-AE47-F5C8B6277BFC\\"\\n}","type":"json"}]',
+ 'title' => 'DescribeEpnBandWidthData',
+ 'summary' => 'Queries the EPN bandwidth usage.',
+ ],
+ 'DescribeEpnBandwitdhByInternetChargeType' => [
+ 'summary' => 'Queries the metering method of the EPN bandwidth within a time period.',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'systemTags' => [
+ 'operationType' => 'get',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'StartTime',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The beginning of the time range to query.'."\n"
+ ."\n"
+ .'* Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n"
+ .'* If the value of the seconds place is not 00, the start time is automatically set to the next minute.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => '2021-12-02T16:00:00Z',
+ ],
+ ],
+ [
+ 'name' => 'EndTime',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The end of the time range to query.'."\n"
+ ."\n"
+ .'* Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n"
+ .'* If the value of the seconds place is not 00, the start time is automatically set to the next minute.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => '2021-12-06T15:59:59Z',
+ ],
+ ],
+ [
+ 'name' => 'Isp',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The Internet service provider (ISP). Valid values:'."\n"
+ ."\n"
+ .'* cmcc: China Mobile'."\n"
+ .'* telecom: China Telecom'."\n"
+ .'* unicom: China Unicom'."\n"
+ .'* multiCarrier: multi-line ISP'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'telecom',
+ ],
+ ],
+ [
+ 'name' => 'EnsRegionId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the Edge Node Service (ENS) node.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'cn-changsha-unicom',
+ ],
+ ],
+ [
+ 'name' => 'NetworkingModel',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The networking mode. Valid values:'."\n"
+ ."\n"
+ .'* **SpeedUp**: intelligent acceleration network (Internet)'."\n"
+ .'* **Connection**: internal network'."\n"
+ .'* **SpeedUpAndConnection**: intelligent acceleration network and internal network'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'Connection',
+ 'enum' => [
+ 'SpeedUp',
+ 'Connection',
+ 'SpeedUpAndConnection',
+ ],
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'BandwidthValue' => [
+ 'description' => 'The bandwidth. Unit: bit/s.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int64',
+ 'example' => '123',
+ ],
+ 'InternetChargeType' => [
+ 'description' => 'The metering method. Valid values:'."\n"
+ ."\n"
+ .'* BandwidthByDay: Pay by daily peak bandwidth'."\n"
+ .'* 95BandwidthByMonth: Pay by monthly 95th percentile bandwidth'."\n"
+ .'* PayByBandwidth4thMonth: Pay by monthly fourth peak bandwidth'."\n"
+ .'* PayByBandwidth: Pay by fixed bandwidth'."\n"
+ ."\n"
+ .'You can specify only one metering method for network usage and cannot overwrite the existing metering method.'."\n",
+ 'type' => 'string',
+ 'example' => 'BandwidthByDay',
+ ],
+ 'RequestId' => [
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '216BCED0-E055-5DDB-8E06-4084A62A4A44',
+ ],
+ 'TimeStamp' => [
+ 'description' => 'The timestamp when the monitoring data was queried. The time follows the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time is displayed in UTC.'."\n",
+ 'type' => 'string',
+ 'example' => '2019-10-12T05:45:00Z',
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ [
+ 'errorCode' => 'InsufficientEipCapacity',
+ 'errorMessage' => 'Insufficient EIP inventory under the specified territory.',
+ ],
+ [
+ 'errorCode' => 'CallInterface',
+ 'errorMessage' => 'Call Interface Happen Error.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"BandwidthValue\\": 123,\\n \\"InternetChargeType\\": \\"BandwidthByDay\\",\\n \\"RequestId\\": \\"216BCED0-E055-5DDB-8E06-4084A62A4A44\\",\\n \\"TimeStamp\\": \\"2019-10-12T05:45:00Z\\"\\n}","type":"json"}]',
+ 'title' => 'DescribeEpnBandwitdhByInternetChargeType',
+ ],
+ 'DescribeEpnInstanceAttribute' => [
+ 'summary' => 'Queries networking information about an EPN instance.',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'systemTags' => [
+ 'operationType' => 'get',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'EPNInstanceId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the EPN instance.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'epn-xxxx',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'ConfVersions' => [
+ 'description' => 'The information about the EPN configurations.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'ConfVersion' => [
+ 'description' => 'The version number.'."\n",
+ 'type' => 'string',
+ 'example' => '2017-10-11',
+ ],
+ 'EnsRegionId' => [
+ 'description' => 'The ID of the node.'."\n",
+ 'type' => 'string',
+ 'example' => 'cn-chengdu-telecom',
+ ],
+ ],
+ ],
+ ],
+ 'EPNInstanceId' => [
+ 'description' => 'The ID of the EPN instance.'."\n",
+ 'type' => 'string',
+ 'example' => 'epn-xxxx',
+ ],
+ 'EPNInstanceName' => [
+ 'description' => 'The name of the EPN instance.'."\n",
+ 'type' => 'string',
+ 'example' => 'epn-test',
+ ],
+ 'Instances' => [
+ 'description' => 'The information about the instance.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'EnsRegionId' => [
+ 'description' => 'The ID of the node.'."\n",
+ 'type' => 'string',
+ 'example' => 'cn-chengdu-telecom-4',
+ ],
+ 'InstanceId' => [
+ 'description' => 'The ID of the instance.'."\n",
+ 'type' => 'string',
+ 'example' => 'epn-xxx',
+ ],
+ 'InstanceName' => [
+ 'description' => 'The name of the instance.'."\n",
+ 'type' => 'string',
+ 'example' => 'epn-test',
+ ],
+ 'Isp' => [
+ 'description' => 'The ISP. Valid values:'."\n"
+ ."\n"
+ .'* cmcc: China Mobile'."\n"
+ .'* unicom: China Unicom'."\n"
+ .'* telecom: China Telecom'."\n",
+ 'type' => 'string',
+ 'example' => 'cmcc',
+ ],
+ 'PrivateIpAddress' => [
+ 'description' => 'The private IP address.'."\n",
+ 'type' => 'string',
+ 'example' => '192.168.1.12',
+ ],
+ 'PublicIpAddress' => [
+ 'description' => 'The public IP address.'."\n",
+ 'type' => 'string',
+ 'example' => '20.3.XX.XX',
+ ],
+ 'Status' => [
+ 'description' => 'The status of the instance. Valid values:'."\n"
+ ."\n"
+ .'* Running'."\n"
+ .'* Stopped'."\n"
+ .'* Expired'."\n",
+ 'type' => 'string',
+ 'example' => 'Running',
+ ],
+ ],
+ ],
+ ],
+ 'NetworkingModel' => [
+ 'description' => 'The networking mode. Valid values:'."\n"
+ ."\n"
+ .'* SpeedUp: intelligent acceleration network (Internet)'."\n"
+ .'* Connection: internal network'."\n"
+ .'* SpeedUpAndConnection: intelligent acceleration network and internal network'."\n",
+ 'type' => 'string',
+ 'example' => 'SpeedUp',
+ ],
+ 'RequestId' => [
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E',
+ ],
+ 'VSwitches' => [
+ 'description' => 'Details of the vSwitch.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'CidrBlock' => [
+ 'description' => 'The CIDR block.'."\n",
+ 'type' => 'string',
+ 'example' => '10.0.0.1/24',
+ ],
+ 'EnsRegionId' => [
+ 'description' => 'The ID of the node.'."\n",
+ 'type' => 'string',
+ 'example' => ' cn-chengdu-telecom-4',
+ ],
+ 'VSwitchId' => [
+ 'description' => 'The ID of the vSwitch.'."\n",
+ 'type' => 'string',
+ 'example' => 'vs-xxxx',
+ ],
+ 'VSwitchName' => [
+ 'description' => 'The name of the vSwitch.'."\n",
+ 'type' => 'string',
+ 'example' => 'vs-test',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'MissingParameter',
+ 'errorMessage' => 'The input parameter that is mandatory for processing this request is not supplied.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter',
+ 'errorMessage' => 'The errorMessage is %s. Please check it again.',
+ ],
+ [
+ 'errorCode' => 'ens.interface.error',
+ 'errorMessage' => 'An error occurred while calling the API.',
+ ],
+ [
+ 'errorCode' => 'CallInterface',
+ 'errorMessage' => 'Call Interface Happen Error.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"ConfVersions\\": [\\n {\\n \\"ConfVersion\\": \\"2017-10-11\\",\\n \\"EnsRegionId\\": \\"cn-chengdu-telecom\\"\\n }\\n ],\\n \\"EPNInstanceId\\": \\"epn-xxxx\\",\\n \\"EPNInstanceName\\": \\"epn-test\\",\\n \\"Instances\\": [\\n {\\n \\"EnsRegionId\\": \\"cn-chengdu-telecom-4\\",\\n \\"InstanceId\\": \\"epn-xxx\\",\\n \\"InstanceName\\": \\"epn-test\\",\\n \\"Isp\\": \\"cmcc\\",\\n \\"PrivateIpAddress\\": \\"192.168.1.12\\",\\n \\"PublicIpAddress\\": \\"20.3.XX.XX\\",\\n \\"Status\\": \\"Running\\"\\n }\\n ],\\n \\"NetworkingModel\\": \\"SpeedUp\\",\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E\\",\\n \\"VSwitches\\": [\\n {\\n \\"CidrBlock\\": \\"10.0.0.1/24\\",\\n \\"EnsRegionId\\": \\"\\\\t cn-chengdu-telecom-4\\",\\n \\"VSwitchId\\": \\"vs-xxxx\\",\\n \\"VSwitchName\\": \\"vs-test\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"<DescribeEpnInstanceAttributeResponse>\\n <ConfVersions>\\n <ConfVersion>2017-10-11</ConfVersion>\\n <EnsRegionId>cn-chengdu-telecom</EnsRegionId>\\n </ConfVersions>\\n <EPNInstanceId>epn-xxxx</EPNInstanceId>\\n <EPNInstanceName>epn-test</EPNInstanceName>\\n <Instances>\\n <EnsRegionId>cn-chengdu-telecom-4</EnsRegionId>\\n <InstanceId>epn-xxx</InstanceId>\\n <InstanceName>epn-test</InstanceName>\\n <Isp>cmcc</Isp>\\n <PrivateIpAddress>192.168.1.12</PrivateIpAddress>\\n <PublicIpAddress>20.3.XX.XX</PublicIpAddress>\\n <Status>Running</Status>\\n </Instances>\\n <NetworkingModel>SpeedUp</NetworkingModel>\\n <RequestId>473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E</RequestId>\\n <VSwitches>\\n <CidrBlock>10.0.0.1/24</CidrBlock>\\n <EnsRegionId>\\t cn-chengdu-telecom-4</EnsRegionId>\\n <VSwitchId>vs-xxxx</VSwitchId>\\n <VSwitchName>vs-test</VSwitchName>\\n </VSwitches>\\n</DescribeEpnInstanceAttributeResponse>","errorExample":""}]',
+ 'title' => 'DescribeEpnInstanceAttribute',
+ 'description' => 'In internal networking mode, the value of Instances is empty in the response. In public networking mode, the value of VSwitches is empty in the response.'."\n",
+ 'requestParamsDescription' => ' ',
+ 'responseParamsDescription' => ' ',
+ 'extraInfo' => ' ',
+ ],
+ 'DescribeEpnInstances' => [
+ 'summary' => 'Queries EPN instances.',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'systemTags' => [
+ 'operationType' => 'get',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'EPNInstanceId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The version number.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '2017-11-10',
+ ],
+ ],
+ [
+ 'name' => 'EPNInstanceName',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The name of the EPN instance.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'testEPNInstanceName',
+ ],
+ ],
+ [
+ 'name' => 'PageNumber',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The page number. Default value: **1**.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'minimum' => '1',
+ 'example' => '1',
+ 'default' => '1',
+ ],
+ ],
+ [
+ 'name' => 'PageSize',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The number of entries per page. Valid values: **1 to 50**. Default value: **10**.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'example' => '10',
+ 'default' => '10',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'EPNInstances' => [
+ 'type' => 'object',
+ 'itemNode' => true,
+ 'properties' => [
+ 'EPNInstance' => [
+ 'description' => 'Details of EPN instances.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'CreationTime' => [
+ 'description' => 'The time when the instance was created. The time is displayed in UTC.'."\n",
+ 'type' => 'string',
+ 'example' => '2019-11-01T06:08:46Z',
+ ],
+ 'EPNInstanceId' => [
+ 'description' => 'The ID of the EPN instance.'."\n",
+ 'type' => 'string',
+ 'example' => 'epn****',
+ ],
+ 'EPNInstanceName' => [
+ 'description' => 'The name of the EPN instance.'."\n",
+ 'type' => 'string',
+ 'example' => 'ens_test_epn',
+ ],
+ 'EPNInstanceType' => [
+ 'description' => 'Set the value to EdgeToEdge.'."\n",
+ 'type' => 'string',
+ 'example' => 'EdgeToEdge',
+ ],
+ 'EndTime' => [
+ 'description' => 'The end of the time range during which the data was queried. The time is displayed in UTC.'."\n",
+ 'type' => 'string',
+ 'example' => '2019-11-01T06:08:46Z',
+ ],
+ 'InternetMaxBandwidthOut' => [
+ 'description' => 'The inbound bandwidth. Unit: Mbit/s.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '40',
+ ],
+ 'ModifyTime' => [
+ 'description' => 'The time when the instance was last modified. The time is displayed in UTC.'."\n",
+ 'type' => 'string',
+ 'example' => '2019-11-01T06:08:46Z',
+ ],
+ 'NetworkingModel' => [
+ 'description' => 'The networking mode. Valid values:'."\n"
+ ."\n"
+ .'* SpeedUp: intelligent acceleration network (Internet)'."\n"
+ .'* Connection: internal network'."\n"
+ .'* SpeedUpAndConnection: intelligent acceleration network and internal network'."\n",
+ 'type' => 'string',
+ 'example' => 'SpeedUp',
+ ],
+ 'StartTime' => [
+ 'description' => 'The beginning of the time range during which the data was queried. The time is displayed in UTC.'."\n",
+ 'type' => 'string',
+ 'example' => '2019-11-01T06:08:46Z',
+ ],
+ 'Status' => [
+ 'description' => 'The status of the instance. Valid values:'."\n"
+ ."\n"
+ .'* Running'."\n"
+ .'* Excuting'."\n"
+ .'* Stopped'."\n",
+ 'type' => 'string',
+ 'example' => 'Running',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'PageNumber' => [
+ 'description' => 'The page number.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '1',
+ ],
+ 'PageSize' => [
+ 'description' => 'The number of entries per page.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '40',
+ ],
+ 'RequestId' => [
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => 'A1707FC0-430C-423A-B624-284046B20399',
+ ],
+ 'TotalCount' => [
+ 'description' => 'The total number of pages returned.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '1',
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'MissingParameter',
+ 'errorMessage' => 'The input parameter that is mandatory for processing this request is not supplied.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter',
+ 'errorMessage' => 'The errorMessage is %s. Please check it again.',
+ ],
+ [
+ 'errorCode' => 'ens.interface.error',
+ 'errorMessage' => 'An error occurred while calling the API.',
+ ],
+ [
+ 'errorCode' => 'CallInterface',
+ 'errorMessage' => 'Call Interface Happen Error.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"EPNInstances\\": {\\n \\"EPNInstance\\": [\\n {\\n \\"CreationTime\\": \\"2019-11-01T06:08:46Z\\",\\n \\"EPNInstanceId\\": \\"epn****\\",\\n \\"EPNInstanceName\\": \\"ens_test_epn\\",\\n \\"EPNInstanceType\\": \\"EdgeToEdge\\",\\n \\"EndTime\\": \\"2019-11-01T06:08:46Z\\",\\n \\"InternetMaxBandwidthOut\\": 40,\\n \\"ModifyTime\\": \\"2019-11-01T06:08:46Z\\",\\n \\"NetworkingModel\\": \\"SpeedUp\\",\\n \\"StartTime\\": \\"2019-11-01T06:08:46Z\\",\\n \\"Status\\": \\"Running\\"\\n }\\n ]\\n },\\n \\"PageNumber\\": 1,\\n \\"PageSize\\": 40,\\n \\"RequestId\\": \\"A1707FC0-430C-423A-B624-284046B20399\\",\\n \\"TotalCount\\": 1\\n}","errorExample":""},{"type":"xml","example":"<TotalCount>1</TotalCount>\\n<EPNInstances>\\n <EPNInstance>\\n <Status>Running</Status>\\n <EPNInstanceType>EdgeToEdge</EPNInstanceType>\\n <ModifyTime>2019-11-01T06:08:46Z</ModifyTime>\\n <InternetMaxBandwidthOut>40</InternetMaxBandwidthOut>\\n <EndTime>2019-11-01T06:08:46Z</EndTime>\\n <NetworkingModel>SpeedUp</NetworkingModel>\\n <StartTime>2019-11-01T06:08:46Z</StartTime>\\n <CreationTime>2019-11-01T06:08:46Z</CreationTime>\\n <EPNInstanceId>epn****</EPNInstanceId>\\n <EPNInstanceName>ens_test_epn</EPNInstanceName>\\n </EPNInstance>\\n</EPNInstances>\\n<PageSize>40</PageSize>\\n<RequestId>A1707FC0-430C-423A-B624-284046B20399</RequestId>\\n<PageNumber>1</PageNumber>","errorExample":""}]',
+ 'title' => 'DescribeEpnInstances',
+ 'requestParamsDescription' => ' ',
+ 'responseParamsDescription' => ' ',
+ 'extraInfo' => ' ',
+ ],
+ 'DescribeEpnMeasurementData' => [
+ 'summary' => 'Queries the metering data of the edge private network (EPN).',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'systemTags' => [
+ 'operationType' => 'get',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'StartDate',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The beginning of the time range to query. Specify the time in the yyyy-mm-ddthh:mm:ssz format. The time must be in UTC.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => '2021-09-30T16:00:00Z',
+ ],
+ ],
+ [
+ 'name' => 'EndDate',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The end of the time range to query. Specify the time in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => '2022-01-30T16:00:00Z',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'MeasurementDatas' => [
+ 'type' => 'object',
+ 'itemNode' => true,
+ 'properties' => [
+ 'MeasurementData' => [
+ 'description' => 'The metering data returned.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'Measurement data.',
+ 'type' => 'object',
+ 'properties' => [
+ 'BandWidthFeeDatas' => [
+ 'type' => 'object',
+ 'itemNode' => true,
+ 'properties' => [
+ 'BandWidthFeeData' => [
+ 'description' => 'The bandwidth data returned.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'Bandwidth data.',
+ 'type' => 'object',
+ 'properties' => [
+ 'CostCode' => [
+ 'description' => 'The code of the billable item.'."\n",
+ 'type' => 'string',
+ 'example' => 'cn-cmcc-1',
+ ],
+ 'CostName' => [
+ 'description' => 'The name of the billable item.'."\n",
+ 'type' => 'string',
+ 'example' => 'Beijing, Shanghai, and Guangzhou Mobile'."\n",
+ ],
+ 'CostType' => [
+ 'description' => 'Metering method'."\n"
+ ."\n"
+ .'* SpeedUp: bandwidth of intelligent acceleration'."\n"
+ .'* IntranetConnection: internal bandwidth'."\n",
+ 'type' => 'string',
+ 'example' => 'SpeedUp',
+ ],
+ 'CostVal' => [
+ 'description' => 'The value of the billable item.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '16486',
+ ],
+ 'IspLine' => [
+ 'description' => 'This parameter is unavailable.'."\n",
+ 'type' => 'string',
+ 'example' => 'This parameter is not currently in use.'."\n",
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'ChargeModel' => [
+ 'description' => 'The metering method. Valid values:'."\n"
+ ."\n"
+ .'* ChargeByUnified: unified metering.'."\n"
+ .'* ChargeByGrade: differential metering.'."\n",
+ 'type' => 'string',
+ 'example' => 'ChargeByGrade',
+ ],
+ 'CostCycle' => [
+ 'description' => 'The metering cycle.'."\n",
+ 'type' => 'string',
+ 'example' => '2019-07-30',
+ ],
+ 'CostEndTime' => [
+ 'description' => 'The end time of the metering cycle.'."\n",
+ 'type' => 'string',
+ 'example' => '2019-07-30T16:00:00Z',
+ ],
+ 'CostStartTime' => [
+ 'description' => 'The start time of the metering cycle.'."\n",
+ 'type' => 'string',
+ 'example' => '2019-07-29T16:00:00Z',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'RequestId' => [
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => 'A6328C33-6304-5291-8641-0A00A99D0DD0',
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'MissingParameter',
+ 'errorMessage' => 'The input parameters that is mandatory for processing this request is not supplied.',
+ ],
+ [
+ 'errorCode' => 'InstanceNotExists',
+ 'errorMessage' => 'The user have no instances.',
+ ],
+ [
+ 'errorCode' => 'CallInterface',
+ 'errorMessage' => 'Call Interface Happen Error.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"MeasurementDatas\\": {\\n \\"MeasurementData\\": [\\n {\\n \\"BandWidthFeeDatas\\": {\\n \\"BandWidthFeeData\\": [\\n {\\n \\"CostCode\\": \\"cn-cmcc-1\\",\\n \\"CostName\\": \\"北上广移动\\",\\n \\"CostType\\": \\"SpeedUp\\",\\n \\"CostVal\\": 16486,\\n \\"IspLine\\": \\"此参数暂不使用。\\"\\n }\\n ]\\n },\\n \\"ChargeModel\\": \\"ChargeByGrade\\",\\n \\"CostCycle\\": \\"2019-07-30\\",\\n \\"CostEndTime\\": \\"2019-07-30T16:00:00Z\\",\\n \\"CostStartTime\\": \\"2019-07-29T16:00:00Z\\"\\n }\\n ]\\n },\\n \\"RequestId\\": \\"A6328C33-6304-5291-8641-0A00A99D0DD0\\"\\n}","type":"json"}]',
+ 'title' => 'DescribeEpnMeasurementData',
+ ],
+ 'JoinPublicIpsToEpnInstance' => [
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'systemTags' => [
+ 'operationType' => 'update',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'EPNInstanceId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the EPN instance.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'epn-xxxx',
+ ],
+ ],
+ [
+ 'name' => 'InstanceInfos',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The information about the public IP address that you want to add to the EPN instance.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'InstanceInfos=[{"PublicIpAddress":"2.230.XX.XX"},{"PublicIpAddress":"2.230.XX.XX"}]',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984',
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'MissingParameter',
+ 'errorMessage' => 'The input parameter that is mandatory for processing this request is not supplied.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter',
+ 'errorMessage' => 'The errorMessage is %s. Please check it again.',
+ ],
+ [
+ 'errorCode' => 'ens.interface.error',
+ 'errorMessage' => 'An error occurred while calling the API.',
+ ],
+ [
+ 'errorCode' => 'CallInterface',
+ 'errorMessage' => 'Call Interface Happen Error.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\"\\n}","errorExample":""},{"type":"xml","example":"<JoinPublicIpsToEpnInstanceResponse>\\n<RequestId>CEF72CEB-54B6-4AE8-B225-F876FF7BA984</RequestId>\\n</JoinPublicIpsToEpnInstanceResponse>","errorExample":""}]',
+ 'title' => 'JoinPublicIpsToEpnInstance',
+ 'summary' => 'Assigns public IP addresses to an EPN instance.',
+ 'requestParamsDescription' => ' ',
+ 'responseParamsDescription' => ' ',
+ 'extraInfo' => ' ',
+ ],
+ 'JoinVSwitchesToEpnInstance' => [
+ 'summary' => 'Performs networking.',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'systemTags' => [
+ 'operationType' => 'update',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'EPNInstanceId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the edge network instance.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'epn-xxxx',
+ ],
+ ],
+ [
+ 'name' => 'VSwitchesInfo',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The information about the internal networking to which you want to add the edge network instance.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => '[{"VSwitchId":"vs-ixxxx"},{"VSwitchId":"vs-ixxxx"}]',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984',
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'MissingParameter',
+ 'errorMessage' => 'The input parameter that is mandatory for processing this request is not supplied.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'CallInterface',
+ 'errorMessage' => 'Call Interface Happen Error.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter',
+ 'errorMessage' => 'The errorMessage is %s. Please check it again.',
+ ],
+ [
+ 'errorCode' => 'ens.interface.error',
+ 'errorMessage' => 'An error occurred while calling the API.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\"\\n}","errorExample":""},{"type":"xml","example":"<JoinVSwitchesToEpnInstanceResponse>\\n<RequestId>CEF72CEB-54B6-4AE8-B225-F876FF7BA984</RequestId>\\n</JoinVSwitchesToEpnInstanceResponse>","errorExample":""}]',
+ 'title' => 'JoinVSwitchesToEpnInstance',
+ 'description' => 'For the Internal Connection mode and the Intelligent Acceleration and Internal Connection mode, instances of the vSwitch take effect automatically. You do not need to manually add instances. For public connections such as intelligent acceleration, you need to call an operation to manually add the instances to Internet-facing instances.'."\n",
+ 'requestParamsDescription' => ' ',
+ 'responseParamsDescription' => ' ',
+ 'extraInfo' => ' ',
+ ],
+ 'ModifyEpnInstance' => [
+ 'summary' => 'Modifies an Edge Private Network (EPN) instance.',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'systemTags' => [
+ 'operationType' => 'update',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'EPNInstanceId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the EPN instance.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'epn-****',
+ ],
+ ],
+ [
+ 'name' => 'EPNInstanceName',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The name of the EPN instance.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'ens_test_epn',
+ ],
+ ],
+ [
+ 'name' => 'NetworkingModel',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The networking mode. Valid values:'."\n"
+ ."\n"
+ .'* **SpeedUp**: Intelligent acceleration network (Internet).'."\n"
+ .'* **Connection**: Internal network.'."\n"
+ .'* **SpeedUpAndConnection**: Intelligent acceleration network and internal network.'."\n"
+ ."\n"
+ .'> The internal network supports only **Connection** and **SpeedUpAndConnection**.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'SpeedUp',
+ 'enum' => [
+ 'SpeedUp',
+ 'Connection',
+ 'SpeedUpAndConnection',
+ ],
+ ],
+ ],
+ [
+ 'name' => 'InternetMaxBandwidthOut',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The maximum outbound public bandwidth. Unit: Mbit/s. Valid values: 1 Mbit/s to 100 Mbit/s.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'example' => '10',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E',
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'MissingParameter',
+ 'errorMessage' => 'The input parameter that is mandatory for processing this request is not supplied.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'CallInterface',
+ 'errorMessage' => 'Call Interface Happen Error.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter',
+ 'errorMessage' => 'The errorMessage is %s. Please check it again.',
+ ],
+ [
+ 'errorCode' => 'ens.interface.error',
+ 'errorMessage' => 'An error occurred while calling the API.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E\\"\\n}","errorExample":""},{"type":"xml","example":"<ModifyEpnInstanceResponse>\\n<RequestId>CEF72CEB-54B6-4AE8-B225-F876FF7BA984</RequestId>\\n</ModifyEpnInstanceResponse>","errorExample":""}]',
+ 'title' => 'ModifyEpnInstance',
+ 'requestParamsDescription' => ' ',
+ 'responseParamsDescription' => ' ',
+ 'extraInfo' => ' ',
+ ],
+ 'RemovePublicIpsFromEpnInstance' => [
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'systemTags' => [
+ 'operationType' => 'update',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'EPNInstanceId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the EPN instance.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'epn-xxxx',
+ ],
+ ],
+ [
+ 'name' => 'InstanceInfos',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The information about the public IP addresses that you want to delete.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => '[{"PublicIpAddress":"2.230.XX.XX"},{"PublicIpAddress":"2.230.XX.XX"}]',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E Request ID.'."\n",
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'MissingParameter',
+ 'errorMessage' => 'The input parameter that is mandatory for processing this request is not supplied.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter',
+ 'errorMessage' => 'The errorMessage is %s. Please check it again.',
+ ],
+ [
+ 'errorCode' => 'ens.interface.error',
+ 'errorMessage' => 'An error occurred while calling the API.',
+ ],
+ [
+ 'errorCode' => 'CallInterface',
+ 'errorMessage' => 'Call Interface Happen Error.',
+ ],
+ ],
+ ],
+ 'eventInfo' => [
+ 'enable' => false,
+ 'eventNames' => [],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E\\\\t 请求ID。\\"\\n}","errorExample":""},{"type":"xml","example":"<RemovePublicIpsFromEpnInstanceResponse>\\n<RequestId>CEF72CEB-54B6-4AE8-B225-F876FF7BA984</RequestId>\\n</RemovePublicIpsFromEpnInstanceResponse>","errorExample":""}]',
+ 'title' => 'RemovePublicIpsFromEpnInstance',
+ 'summary' => 'Removes IP addresses from an edge private network (EPN) instance.',
+ ],
+ 'RemoveVSwitchesFromEpnInstance' => [
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'systemTags' => [
+ 'operationType' => 'update',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'EPNInstanceId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of theEPN instance.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'epn-****',
+ ],
+ ],
+ [
+ 'name' => 'VSwitchesInfo',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The internal networking information that you want to delete.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'VSwitchesInfo=[{"VSwitchId":"vs-ixxxx"},{"VSwitchId":"vs-ixxxx"}]',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984',
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'MissingParameter',
+ 'errorMessage' => 'The input parameter that is mandatory for processing this request is not supplied.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter',
+ 'errorMessage' => 'The errorMessage is %s. Please check it again.',
+ ],
+ [
+ 'errorCode' => 'ens.interface.error',
+ 'errorMessage' => 'An error occurred while calling the API.',
+ ],
+ [
+ 'errorCode' => 'CallInterface',
+ 'errorMessage' => 'Call Interface Happen Error.',
+ ],
+ ],
+ ],
+ 'eventInfo' => [
+ 'enable' => false,
+ 'eventNames' => [],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\"\\n}","errorExample":""},{"type":"xml","example":"<RemoveVSwitchesFromEpnInstanceResponse>\\n<RequestId>CEF72CEB-54B6-4AE8-B225-F876FF7BA984</RequestId>\\n</RemoveVSwitchesFromEpnInstanceResponse>","errorExample":""}]',
+ 'title' => 'RemoveVSwitchesFromEpnInstance',
+ 'summary' => 'Deletes the networking information. This operation is applicable only for instances that reside in the internal network.',
+ 'requestParamsDescription' => ' ',
+ 'responseParamsDescription' => ' ',
+ 'extraInfo' => ' ',
+ ],
+ 'StartEpnInstance' => [
+ 'summary' => 'Starts an edge network instance.',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'systemTags' => [
+ 'operationType' => 'update',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'EPNInstanceId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the EPN instance.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'epn-****',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E',
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'MissingParameter',
+ 'errorMessage' => 'The input parameter that is mandatory for processing this request is not supplied.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter',
+ 'errorMessage' => 'The errorMessage is %s. Please check it again.',
+ ],
+ [
+ 'errorCode' => 'ens.interface.error',
+ 'errorMessage' => 'An error occurred while calling the API.',
+ ],
+ [
+ 'errorCode' => 'CallInterface',
+ 'errorMessage' => 'Call Interface Happen Error.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E\\"\\n}","errorExample":""},{"type":"xml","example":"<StartEpnInstanceResponse>\\n<RequestId>CEF72CEB-54B6-4AE8-B225-F876FF7BA984</RequestId>\\n</StartEpnInstanceResponse>","errorExample":""}]',
+ 'title' => 'StartEpnInstance',
+ 'requestParamsDescription' => ' ',
+ 'responseParamsDescription' => ' ',
+ 'extraInfo' => ' ',
+ ],
+ 'StopEpnInstance' => [
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'systemTags' => [
+ 'operationType' => 'update',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'EPNInstanceId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the EPN instance.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'epn-20201014152822q2S9tQ',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E',
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'MissingParameter',
+ 'errorMessage' => 'The input parameter that is mandatory for processing this request is not supplied.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter',
+ 'errorMessage' => 'The errorMessage is %s. Please check it again.',
+ ],
+ [
+ 'errorCode' => 'ens.interface.error',
+ 'errorMessage' => 'An error occurred while calling the API.',
+ ],
+ [
+ 'errorCode' => 'CallInterface',
+ 'errorMessage' => 'Call Interface Happen Error.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E\\"\\n}","type":"json"}]',
+ 'title' => 'StopEpnInstance',
+ 'summary' => 'Stops an EPN instance.',
+ ],
+ 'DescribeEnsResourceUsage' => [
+ 'summary' => 'Queries the usage summary of ENS virtual machines (VMs), disks, and networks.',
+ 'methods' => [
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'get',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'ExpiredStartTime',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => 'vm实例使用结束时间查询开始范围,格式: yyyy-MM-dd或yyyy-MM-dd HH:mm:ss',
+ 'description' => 'The beginning of the time range to query. Format: yyyy-MM-dd or yyyy-MM-dd HH:mm:ss.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '2018-06-15T09:07:23Z',
+ ],
+ ],
+ [
+ 'name' => 'ExpiredEndTime',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => 'vm实例使用结束时间查询结束范围,,格式: yyyy-MM-dd或yyyy-MM-dd HH:mm:ss',
+ 'description' => 'The end of the time range to query. Format: yyyy-MM-dd or yyyy-MM-dd HH:mm:ss.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '2018-06-15T09:07:23Z',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E Request ID.',
+ ],
+ 'EnsResourceUsage' => [
+ 'description' => 'The resource usage data.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'Resource usage data.',
+ 'type' => 'object',
+ 'properties' => [
+ 'ServiceType' => [
+ 'description' => 'The type of the service. Valid values:'."\n"
+ ."\n"
+ .'* 1: subscription instance.'."\n"
+ .'* 2: edge service instance.'."\n"
+ .'* 3: pay-as-you-go instance.'."\n",
+ 'type' => 'string',
+ 'example' => '1',
+ ],
+ 'InstanceCount' => [
+ 'description' => 'The number of instances.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '2',
+ ],
+ 'CpuSum' => [
+ 'description' => 'The CPU usage. Unit: cores.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int64',
+ 'example' => '2',
+ ],
+ 'GpuSum' => [
+ 'description' => 'The number of GPUs.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int64',
+ 'example' => '6',
+ ],
+ 'DownCount' => [
+ 'description' => 'The number of stopped VMs.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '7',
+ ],
+ 'ExpiredCount' => [
+ 'description' => 'The number of expired VM instances.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '1',
+ ],
+ 'ExpiringCount' => [
+ 'description' => 'The number of VM instances that are about to expire.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '0',
+ ],
+ 'RunningCount' => [
+ 'description' => 'The number of running instances.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '19',
+ ],
+ 'DiskCount' => [
+ 'description' => 'The number of data disks.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '4',
+ ],
+ 'StorageSum' => [
+ 'description' => 'The total disk size.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int64',
+ 'example' => '5000',
+ ],
+ 'ComputeResourceCount' => [
+ 'description' => 'The number of edge services. This parameter is available only when you set the ServiceType parameter to 2.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '2',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'ens.interface.error',
+ 'errorMessage' => 'An error occurred while call the API.',
+ ],
+ [
+ 'errorCode' => 'Invalid%s',
+ 'errorMessage' => 'The specified parameter %s is invalid.',
+ ],
+ [
+ 'errorCode' => 'Missing%s',
+ 'errorMessage' => 'You must specify the parameter %s.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'eventInfo' => [
+ 'enable' => false,
+ 'eventNames' => [],
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E\\\\t 请求ID。\\",\\n \\"EnsResourceUsage\\": [\\n {\\n \\"ServiceType\\": \\"1\\",\\n \\"InstanceCount\\": 2,\\n \\"CpuSum\\": 2,\\n \\"GpuSum\\": 6,\\n \\"DownCount\\": 7,\\n \\"ExpiredCount\\": 1,\\n \\"ExpiringCount\\": 0,\\n \\"RunningCount\\": 19,\\n \\"DiskCount\\": 4,\\n \\"StorageSum\\": 5000,\\n \\"ComputeResourceCount\\": 2\\n }\\n ]\\n}","type":"json"}]',
+ 'title' => 'DescribeEnsResourceUsage',
+ ],
+ 'ModifyInstanceChargeType' => [
+ 'summary' => 'Changes the billing method of Edge Node Service (ENS) instances. You can switch between the pay-as-you-go and subscription billing methods for instances. You can also change the billing method for disks that you created with pay-as-you-go instances to subscription.',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'readAndWrite',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'update',
+ 'riskType' => 'high',
+ 'chargeType' => 'paid',
+ 'abilityTreeNodes' => [
+ 'FEATUREensEEGRIW',
+ ],
+ 'tenantRelevance' => 'tenant',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'InstanceIds',
+ 'in' => 'query',
+ 'style' => 'json',
+ 'schema' => [
+ 'description' => 'The IDs of the instances.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The ID of the instance.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'i-5xlrc9wdeo3xxxxxx',
+ ],
+ 'required' => true,
+ 'maxItems' => 20,
+ 'minItems' => 1,
+ ],
+ ],
+ [
+ 'name' => 'InstanceChargeType',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The new billing method. Valid values:'."\n"
+ ."\n"
+ .'PrePaid'."\n"
+ ."\n"
+ .'PostPaid (default)'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'PostPaid',
+ 'enum' => [
+ 'PostPaid',
+ 'PrePaid',
+ ],
+ ],
+ ],
+ [
+ 'name' => 'AutoRenew',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'Specifies whether to enable auto-renewal when you change the billing method from pay-as-you-go to subscription. Valid values:'."\n"
+ ."\n"
+ .'true: enables auto-renewal for the instance.'."\n"
+ ."\n"
+ .'false'."\n",
+ 'type' => 'boolean',
+ 'required' => false,
+ 'example' => 'false',
+ 'default' => 'false',
+ ],
+ ],
+ [
+ 'name' => 'Period',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The subscription duration. This parameter is required if you set the InstanceChargeType parameter to PrePaid. Valid values:'."\n"
+ ."\n"
+ .'If the PeriodUnit parameter is set to Day, Period can only be set to 3.'."\n"
+ ."\n"
+ .'If PeriodUnit is Month, Period can be set to 1 to 9 or 12.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '1',
+ 'enum' => [
+ '1',
+ '2',
+ '3',
+ '4',
+ '5',
+ '6',
+ '7',
+ '8',
+ '9',
+ '12',
+ ],
+ ],
+ ],
+ [
+ 'name' => 'PeriodUnit',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The unit of the subscription duration. This parameter is required if you set the InstanceChargeType parameter to PrePaid. Valid values:'."\n"
+ ."\n"
+ .'Month'."\n"
+ ."\n"
+ .'Day'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'enumValueTitles' => [],
+ 'example' => 'Month',
+ 'enum' => [
+ 'Year',
+ 'Month',
+ 'Day',
+ ],
+ ],
+ ],
+ [
+ 'name' => 'IncludeDataDisks',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'Specifies whether to change the billing method of all data disks that are created with the instance to subscription when you change the billing method of the instance from pay-as-you-go to subscription. Valid values:'."\n"
+ ."\n"
+ .'true'."\n"
+ ."\n"
+ .'false (default)'."\n",
+ 'type' => 'boolean',
+ 'required' => false,
+ 'example' => 'true',
+ 'default' => 'true',
+ ],
+ ],
+ [
+ 'name' => 'AutoPay',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'Specifies whether to enable auto-payment when you change the billing method from pay-as-you-go to subscription. Valid values:'."\n"
+ ."\n"
+ .'true: enables auto-payment. Make sure that your account has sufficient balance.'."\n"
+ ."\n"
+ .'false (default): does not enable auto-payment. The order is generated but not paid.'."\n",
+ 'type' => 'boolean',
+ 'required' => false,
+ 'example' => 'false',
+ 'default' => 'false',
+ ],
+ ],
+ [
+ 'name' => 'BillingCycle',
+ 'in' => 'query',
+ 'schema' => [
+ 'type' => 'string',
+ 'required' => false,
+ 'enum' => [
+ 'Month',
+ 'Day',
+ 'Hour',
+ ],
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'The response parameters.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => 'E2CE5821-7A18-5F7B-A18A-1C751B933D2A',
+ ],
+ 'InstanceIds' => [
+ 'description' => 'The IDs of the instances.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The ID of the instance.'."\n",
+ 'type' => 'string',
+ 'example' => 'i-5xu1chy7ckxxxx',
+ ],
+ ],
+ 'OrderId' => [
+ 'description' => 'The ID of the order.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int64',
+ 'example' => '21522202681****',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'VALIDATE.MODULE.FAILED',
+ 'errorMessage' => 'Required module is not selected.',
+ ],
+ [
+ 'errorCode' => 'ens.interface.error',
+ 'errorMessage' => 'Failed to call API.',
+ ],
+ [
+ 'errorCode' => 'OrderFailed',
+ 'errorMessage' => 'Order failed, please try again.',
+ ],
+ [
+ 'errorCode' => 'SystemUseCouponFailed',
+ 'errorMessage' => 'Failed to use coupon.',
+ ],
+ [
+ 'errorCode' => 'SystemUseStoredCardFailed',
+ 'errorMessage' => 'Failed to use stored value card.',
+ ],
+ [
+ 'errorCode' => 'System.SystemError',
+ 'errorMessage' => 'system error.',
+ ],
+ [
+ 'errorCode' => 'SystemCanRefundCheckFailed',
+ 'errorMessage' => 'The business rule check of the cloud product fails, and this order cannot be refunded.',
+ ],
+ [
+ 'errorCode' => 'SystemOtsSystem',
+ 'errorMessage' => 'ots storage error.',
+ ],
+ [
+ 'errorCode' => 'SystemQueryImmortalError',
+ 'errorMessage' => 'Failed to call Juxiange.',
+ ],
+ [
+ 'errorCode' => 'SystemQueryInstanceInfoFailed',
+ 'errorMessage' => 'Failed to find instance information.',
+ ],
+ [
+ 'errorCode' => 'SystemResellerPayCalRefundUnitError',
+ 'errorMessage' => 'Ecological payment channel calculation unsubscribe information error.',
+ ],
+ [
+ 'errorCode' => 'SystemSaleValidateFailed',
+ 'errorMessage' => 'Sales Expression Validation System Error.',
+ ],
+ [
+ 'errorCode' => 'SystemTransferDeleteOldResourceFailed',
+ 'errorMessage' => 'Failed to delete the transferred instance in the transfer order.',
+ ],
+ [
+ 'errorCode' => 'SystemUnSupportOperationType',
+ 'errorMessage' => 'Unsupported operation type.',
+ ],
+ [
+ 'errorCode' => 'RiskRiskControlRejection',
+ 'errorMessage' => 'Risk Control Rejection.',
+ ],
+ [
+ 'errorCode' => 'AuthRamAuthFailed',
+ 'errorMessage' => 'ram sub-account authentication failed.',
+ ],
+ [
+ 'errorCode' => 'CommodityInvalidComponent',
+ 'errorMessage' => 'The module you purchased is illegal, please re-select.',
+ ],
+ [
+ 'errorCode' => 'CommodityInvalidItemCode',
+ 'errorMessage' => 'Specification code illegal.',
+ ],
+ [
+ 'errorCode' => 'PriceHsfTimeoutError',
+ 'errorMessage' => 'Time out when calling the request for quotation interface.',
+ ],
+ [
+ 'errorCode' => 'PricePatingConfigError',
+ 'errorMessage' => 'Inquiry related goods configuration error.',
+ ],
+ [
+ 'errorCode' => 'PricePricingPlanResultNotFound',
+ 'errorMessage' => 'Pricing plan price result not found.',
+ ],
+ [
+ 'errorCode' => 'PriceRatingGetRatingpricingPlan',
+ 'errorMessage' => 'Obtain a valid pricing plan exception.',
+ ],
+ [
+ 'errorCode' => 'OrderAbnormalResourceStatusForRenew',
+ 'errorMessage' => 'Invalid resource status for renewal.',
+ ],
+ [
+ 'errorCode' => 'OrderAccountStatusIllegal',
+ 'errorMessage' => 'Illegal account status.',
+ ],
+ [
+ 'errorCode' => 'OrderArrearage',
+ 'errorMessage' => 'User Arrears.',
+ ],
+ [
+ 'errorCode' => 'OrderBidUserOrderForbidden',
+ 'errorMessage' => 'Bid users cannot buy on the official website.',
+ ],
+ [
+ 'errorCode' => 'OrderCaptureFailed',
+ 'errorMessage' => 'The paid order of the instance has not been deducted successfully.',
+ ],
+ [
+ 'errorCode' => 'OrderExistsReleasedInstances',
+ 'errorMessage' => 'There are already released instances.',
+ ],
+ [
+ 'errorCode' => 'OrderGroupOrderSizeOverflow',
+ 'errorMessage' => 'The quantity of bound combined payment order exceeds the limit.',
+ ],
+ [
+ 'errorCode' => 'OrderHomeCurrencyCanNotDowngrade',
+ 'errorMessage' => 'Users in current currency cannot downgrade.',
+ ],
+ [
+ 'errorCode' => 'OrderHomeCurrencyCanNotUpgradeByValueTransfer',
+ 'errorMessage' => 'Users of current currency cannot upgrade through residual value transfer.',
+ ],
+ [
+ 'errorCode' => 'OrderInstanceHasInactiveChange',
+ 'errorMessage' => 'Instances exist temporary upgrade.',
+ ],
+ [
+ 'errorCode' => 'OrderInstHasUnpaidOrder',
+ 'errorMessage' => 'The instance has an unpaid order.',
+ ],
+ [
+ 'errorCode' => 'OrderInstHasUnsettledBills',
+ 'errorMessage' => 'The instance has an unsettled bill.',
+ ],
+ [
+ 'errorCode' => 'OrderLatestOrderIsHandling',
+ 'errorMessage' => 'Recent order is being processed, please try again later.',
+ ],
+ [
+ 'errorCode' => 'OrderMainOrderSizeOverflow',
+ 'errorMessage' => 'The quantity of the main order exceeds the limit.',
+ ],
+ [
+ 'errorCode' => 'OrderMissingModuleInfoError',
+ 'errorMessage' => 'Module parameter not specified.',
+ ],
+ [
+ 'errorCode' => 'OrderNoRealNameAuthentication',
+ 'errorMessage' => 'No real-name authentication.',
+ ],
+ [
+ 'errorCode' => 'OrderNotFound',
+ 'errorMessage' => 'The specified order information is not found.',
+ ],
+ [
+ 'errorCode' => 'OrderOpend',
+ 'errorMessage' => 'You have activated this product.',
+ ],
+ [
+ 'errorCode' => 'OrderPeriodInvalid',
+ 'errorMessage' => 'Illegal order cycle.',
+ ],
+ [
+ 'errorCode' => 'OrderQuantityInvalid',
+ 'errorMessage' => 'Illegal quantity ordered.',
+ ],
+ [
+ 'errorCode' => 'OrderQueryInstanceError',
+ 'errorMessage' => 'Query instance error.',
+ ],
+ [
+ 'errorCode' => 'OrderQueryInstanceNotExists',
+ 'errorMessage' => 'Instance data does not exist.',
+ ],
+ [
+ 'errorCode' => 'OrderQueryOrderExchangeRateFail',
+ 'errorMessage' => 'Failed to query order exchange rate information.',
+ ],
+ [
+ 'errorCode' => 'OrderQueryUserSettleInfoFail',
+ 'errorMessage' => 'Failed to query user settlement information.',
+ ],
+ [
+ 'errorCode' => 'OrderQuotaExceeded',
+ 'errorMessage' => 'Quantity exceeds limit.',
+ ],
+ [
+ 'errorCode' => 'OrderSysConstraintInvalid',
+ 'errorMessage' => 'System constraint check failed.',
+ ],
+ [
+ 'errorCode' => 'OrderTradeCompleteSettleInfoFail',
+ 'errorMessage' => 'Failed to complete the order settlement currency amount information.',
+ ],
+ [
+ 'errorCode' => 'TradeTradeOrderAfterPayCheckError',
+ 'errorMessage' => 'You have already paid for the subsequent orders of this instance. The current order has been automatically voided and you cannot pay any more.',
+ ],
+ [
+ 'errorCode' => 'PurchaseExistRenewchangeProd',
+ 'errorMessage' => 'There is a renewal change subscription that has not yet taken effect.',
+ ],
+ [
+ 'errorCode' => 'PurchaseExistToBeValidProdRuleError',
+ 'errorMessage' => 'Currently, there are temporary orders that are not in effect, and the upgrade operation cannot be performed.',
+ ],
+ [
+ 'errorCode' => 'PurchaseExistToBeValidRenewChangeProdRuleError',
+ 'errorMessage' => 'Currently, there is an uneffective renewal change subscription, and temporary upgrade operation cannot be performed.',
+ ],
+ [
+ 'errorCode' => 'PurchaseExistValidProdRuleError',
+ 'errorMessage' => 'Currently, there is a temporary order in effect, and operations such as upgrade/downgrade/expansion/pre-transfer cannot be performed.',
+ ],
+ [
+ 'errorCode' => 'ProductInstanceReleased',
+ 'errorMessage' => 'Instance released.',
+ ],
+ [
+ 'errorCode' => 'ProductInstanceTypeNotSupported',
+ 'errorMessage' => 'The instance type is not supported.',
+ ],
+ [
+ 'errorCode' => 'PatRiskRejectForTradeData',
+ 'errorMessage' => 'Payment order problem leads to risk control rejection.',
+ ],
+ [
+ 'errorCode' => 'PayAccountBookNotExist',
+ 'errorMessage' => 'There is no insufficient account balance in the account book, please retry after recharging.',
+ ],
+ [
+ 'errorCode' => 'PayAmountLimitExceeded',
+ 'errorMessage' => 'Payment limit exceeded, please resubmit.',
+ ],
+ [
+ 'errorCode' => 'PayBeforePayRiskRuleValidateFailed',
+ 'errorMessage' => 'The payment was blocked by risk control, and the payment failed.',
+ ],
+ [
+ 'errorCode' => 'PayCounponNotExist',
+ 'errorMessage' => 'Counpon does not exist.',
+ ],
+ [
+ 'errorCode' => 'PayCouponAmountNotEnough',
+ 'errorMessage' => 'Insufficient voucher balance or expired.',
+ ],
+ [
+ 'errorCode' => 'PayCouponNotMeetConsumptionRule',
+ 'errorMessage' => 'The coupon does not meet the conditions for use.',
+ ],
+ [
+ 'errorCode' => 'PayCurrencyInconsistency',
+ 'errorMessage' => 'Currency mismatch.',
+ ],
+ [
+ 'errorCode' => 'PayCurrencyNotSupported',
+ 'errorMessage' => 'Currency not supported.',
+ ],
+ [
+ 'errorCode' => 'PayForbiddenNoReasonFefund',
+ 'errorMessage' => 'Banned five days no reason refund.',
+ ],
+ [
+ 'errorCode' => 'PayHsfTimeoutError',
+ 'errorMessage' => 'Call payment system timeout.',
+ ],
+ [
+ 'errorCode' => 'PayInsufficientBalance',
+ 'errorMessage' => 'Account balance is insufficient, please recharge and try again.',
+ ],
+ [
+ 'errorCode' => 'PayInvalidCreditCard',
+ 'errorMessage' => 'Invalid credit card.',
+ ],
+ [
+ 'errorCode' => 'PayInvalidPayMethod',
+ 'errorMessage' => 'Illegal payment method.',
+ ],
+ [
+ 'errorCode' => 'PayMegrePayOrderHasThanOneChagreChannel',
+ 'errorMessage' => 'Payment failed, please retry or submit work order feedback.',
+ ],
+ [
+ 'errorCode' => 'PayNoCreditCard',
+ 'errorMessage' => 'No valid payment method, please check the payment method and try again.',
+ ],
+ [
+ 'errorCode' => 'PayOrderPayTimeInvalid',
+ 'errorMessage' => 'Order effective time is invalid.',
+ ],
+ [
+ 'errorCode' => 'PayPartRefundNotSupport',
+ 'errorMessage' => 'Not Capture, no partial refund.',
+ ],
+ [
+ 'errorCode' => 'PayPayChannelPayOrderInvalidStatus',
+ 'errorMessage' => 'Illegal status of payment order in payment channel.',
+ ],
+ [
+ 'errorCode' => 'PayPayChannelPayOrderNotExist',
+ 'errorMessage' => 'Payment channel payment order does not exist.',
+ ],
+ [
+ 'errorCode' => 'PayPayerAccountIllegal',
+ 'errorMessage' => 'Illegal payment account.',
+ ],
+ [
+ 'errorCode' => 'PayPayFailedParentRelationchanged',
+ 'errorMessage' => 'If the financial custody relationship changes, please void the order and place a new order for payment.',
+ ],
+ [
+ 'errorCode' => 'PayPayForbidUserCoupon',
+ 'errorMessage' => 'Coupon prohibited for orders.',
+ ],
+ [
+ 'errorCode' => 'PayQueryAvailableAmountFailed',
+ 'errorMessage' => 'Failed to query user availability, please try again later.',
+ ],
+ [
+ 'errorCode' => 'PayQueryAvailableEnduserAmountFailed',
+ 'errorMessage' => 'Failed to query the availability of quota direct customer main user, please try again later.',
+ ],
+ [
+ 'errorCode' => 'PayQueryParentRelationshipFailed',
+ 'errorMessage' => 'Failed to query current user hosting relationship, please try again later.',
+ ],
+ [
+ 'errorCode' => 'PayQueryPayChangeChannelNotEqual',
+ 'errorMessage' => 'Multi-order payment channels are inconsistent, please check whether the original order data payment channel is correct.',
+ ],
+ [
+ 'errorCode' => 'PayRefundFailed',
+ 'errorMessage' => 'Accumulated refund amount exceeds payment order amount.',
+ ],
+ [
+ 'errorCode' => 'PayResellerPayGetUrlError',
+ 'errorMessage' => 'Order payment failed, please try again later.',
+ ],
+ [
+ 'errorCode' => 'PayRiskRejectForPayerAccount',
+ 'errorMessage' => 'Payment account problem leads to risk control rejection.',
+ ],
+ [
+ 'errorCode' => 'PayStoredCardNotExist',
+ 'errorMessage' => 'Stored value card does not exist.',
+ ],
+ [
+ 'errorCode' => 'PaySystemError',
+ 'errorMessage' => 'Error calling payment system.',
+ ],
+ [
+ 'errorCode' => 'PayTaxCalcFailed',
+ 'errorMessage' => 'Failed to get user tax address.',
+ ],
+ [
+ 'errorCode' => 'PayWithholdingAgreementIllegal',
+ 'errorMessage' => 'Withholding Agreement Status Illegal.',
+ ],
+ [
+ 'errorCode' => 'AccountAliyunAccountFrozen',
+ 'errorMessage' => 'Alibaba Cloud account is frozen.',
+ ],
+ [
+ 'errorCode' => 'AccountAliyunAccountNotExist',
+ 'errorMessage' => 'Alibaba Cloud account does not exist.',
+ ],
+ [
+ 'errorCode' => 'RefundRefundInstanceNotFound',
+ 'errorMessage' => 'Unable to find instance information.',
+ ],
+ [
+ 'errorCode' => 'RefundRefundNoValidProd',
+ 'errorMessage' => 'Refund is not available to unsubscribe.',
+ ],
+ [
+ 'errorCode' => 'RefundRefundParamInvalid',
+ 'errorMessage' => 'Abnormal refund parameter.',
+ ],
+ [
+ 'errorCode' => 'RefundRefundQueryOrderFail',
+ 'errorMessage' => 'Failed to query order for refund field.',
+ ],
+ [
+ 'errorCode' => 'SystemConcurrentOperate',
+ 'errorMessage' => 'Concurrent operation causes failure.',
+ ],
+ [
+ 'errorCode' => 'PricePricingPlanNotFound',
+ 'errorMessage' => 'Pricing plan tree not found.',
+ ],
+ [
+ 'errorCode' => 'OrderInstanceHasTempUpgrade',
+ 'errorMessage' => 'Instances exist temporary upgrade.',
+ ],
+ [
+ 'errorCode' => 'PayQueryParentRelationchangedFailed',
+ 'errorMessage' => 'The financial custody relationship may change, please refresh and pay again.',
+ ],
+ [
+ 'errorCode' => 'PayforCreditPayInsufficientBalance',
+ 'errorMessage' => 'Insufficient quota, please contact your channel partner to increase the quota.',
+ ],
+ [
+ 'errorCode' => 'PayforAccountMoneyValidateError',
+ 'errorMessage' => 'The available amount of your channel partner\'s account is insufficient, please contact your channel partner to recharge in time.',
+ ],
+ [
+ 'errorCode' => 'BasicInfoUncompleted',
+ 'errorMessage' => 'You have not completed your basic personal information. Please complete the information and re-operate it.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ [
+ 'errorCode' => 'IncorrectInstanceStatus',
+ 'errorMessage' => 'The current status of the instance does not support this operation.',
+ ],
+ [
+ 'errorCode' => 'InstanceIdNotFound',
+ 'errorMessage' => 'The input parameter instancdId that is not found.',
+ ],
+ [
+ 'errorCode' => 'EnsPostOpenError',
+ 'errorMessage' => 'Commodity opening failed.',
+ ],
+ [
+ 'errorCode' => 'EnsServiceArrearage',
+ 'errorMessage' => 'User account is arrearage.',
+ ],
+ [
+ 'errorCode' => 'InvalidDeletionAppointmentNotSupported',
+ 'errorMessage' => 'The scheduled release time of the current instance is set to prohibit this operation.',
+ ],
+ [
+ 'errorCode' => 'InvalidDeletionProtectionNotSupported',
+ 'errorMessage' => 'The current instance has release protection enabled. This operation is not allowed.',
+ ],
+ [
+ 'errorCode' => 'InstanceForbidOperate',
+ 'errorMessage' => 'There are currently uncompleted operations on the instance. Please wait for the instance renewal, configuration change, or payment type conversion to be completed before retrying.',
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"E2CE5821-7A18-5F7B-A18A-1C751B933D2A\\",\\n \\"InstanceIds\\": [\\n \\"i-5xu1chy7ckxxxx\\"\\n ],\\n \\"OrderId\\": 0\\n}","type":"json"}]',
+ 'title' => 'ModifyInstanceChargeType',
+ 'description' => 'Before you call this operation, make sure that you fully understand the billing methods and pricing of ENS.'."\n"
+ ."\n"
+ .'The instances must be in the Running or Stopped state, and you have no overdue payments for them.'."\n",
+ ],
+ 'DescribeInstanceBandwidthDetail' => [
+ 'summary' => 'Queries the detailed bandwidth data of an instance, which is collected every 5 minutes.',
+ 'methods' => [
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'list',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'StartTime',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '开始时间,格式: yyyy-MM-dd HH:mm:ss',
+ 'description' => 'The beginning of the time range to query. Specify the time in the yyyy-MM-dd HH:mm:ss format.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => '2024-01-11 00:00:00',
+ ],
+ ],
+ [
+ 'name' => 'EndTime',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '截止时间,与开始时间差最大为86400秒。开始和截止为左闭右开查询。格式: yyyy-MM-dd HH:mm:ss',
+ 'description' => 'The end of the time range to query. The maximum interval between the beginning time and the end time is 86400 seconds. The interval is left-closed and right-open. Specify the time in the yyyy-MM-dd HH:mm:ss format.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => '2024-01-11 30:00:00',
+ ],
+ ],
+ [
+ 'name' => 'ServiceType',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '服务类型,如vm,eip,esk,meta等',
+ 'description' => 'The type of the service, such as vm, eip, esk, and meta.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'vm',
+ ],
+ ],
+ [
+ 'name' => 'InstanceType',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '实例类型,无特殊查询可不填写。如vm,eip, single_tenant,nc等',
+ 'description' => 'The type of the instance, such as vm, eip, single_tenant, and nc. You can leave this parameter empty. The type of the instance, such as vm, eip, single_tenant, and nc.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'vm',
+ ],
+ ],
+ [
+ 'name' => 'EnsRegionId',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => 'ENS节点ID',
+ 'description' => 'The ID of the ENS node.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'cn-beijing-cmcc',
+ ],
+ ],
+ [
+ 'name' => 'InstanceId',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '实例ID(bucket)',
+ 'description' => 'The plan ID.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'i-6ecpqvkicnchxccozrpxxxx',
+ ],
+ ],
+ [
+ 'name' => 'PageNumber',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '查询分页,默认值为: 1',
+ 'description' => 'The page number. Default value: 1.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'example' => '1',
+ 'default' => '1',
+ ],
+ ],
+ [
+ 'name' => 'PageSize',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '分页大小,默认单次200条',
+ 'description' => 'The number of entries per page. Default value: 200.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'example' => '10',
+ 'default' => '200',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'Id of the request'."\n",
+ 'type' => 'string',
+ 'example' => 'C0003E8B-B930-4F59-ADC0-0E209A9012A8',
+ ],
+ 'Bandwidths' => [
+ 'description' => 'Details about the maximum public bandwidth.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'Details about the maximum public bandwidth.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'InstanceId' => [
+ 'title' => '实例ID',
+ 'description' => 'The plan ID.'."\n",
+ 'type' => 'string',
+ 'example' => 'i-6ecpqvkicnchxccozrpxxxx',
+ ],
+ 'ServiceType' => [
+ 'title' => '服务类型,如vm,eip,esk,meta等',
+ 'description' => 'The type of the service, such as vm, eip, esk, and meta.'."\n",
+ 'type' => 'string',
+ 'example' => 'vm',
+ ],
+ 'InstanceType' => [
+ 'title' => '实例类型,如vm,eip, single_tenant,nc等',
+ 'description' => 'The type of the instance, such as vm, eip, single_tenant, and nc.'."\n",
+ 'type' => 'string',
+ 'example' => 'vm',
+ ],
+ 'AliUid' => [
+ 'title' => '用户ID',
+ 'description' => 'The user ID.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int64',
+ 'example' => '1972653484384661',
+ ],
+ 'EnsRegionId' => [
+ 'title' => '节点ID',
+ 'description' => 'The node ID.'."\n",
+ 'type' => 'string',
+ 'example' => 'cn-yichang-2',
+ ],
+ 'TxBw' => [
+ 'title' => '出向带宽, 单位: bps',
+ 'description' => 'null'."\n",
+ 'type' => 'integer',
+ 'format' => 'int64',
+ 'example' => '25415638',
+ ],
+ 'RxBw' => [
+ 'title' => '入向带宽, 单位: bps',
+ 'description' => 'null'."\n",
+ 'type' => 'integer',
+ 'format' => 'int64',
+ 'example' => '43795230',
+ ],
+ 'Ip' => [
+ 'title' => '实例IP',
+ 'description' => 'null'."\n",
+ 'type' => 'string',
+ 'example' => '203.107.***',
+ ],
+ 'Isp' => [
+ 'title' => 'ip所属运营商',
+ 'description' => 'The Internet service provider to which the IP address belongs.'."\n",
+ 'type' => 'string',
+ 'example' => 'cmcc',
+ ],
+ 'FlowType' => [
+ 'title' => '带宽类型,1: 公网,2: 内网',
+ 'description' => 'The type of the bandwidth. Valid values: 1, which indicates public network bandwidth. 2, which indicates internal network bandwidth.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '1',
+ ],
+ 'BizTime' => [
+ 'title' => '带宽业务时间,带宽计算粒度为5分钟',
+ 'description' => 'The bandwidth service time. The data granularity is 5 minutes.'."\n",
+ 'type' => 'string',
+ 'example' => '2024-01-11 00:00:00',
+ ],
+ ],
+ ],
+ ],
+ 'PageNumber' => [
+ 'title' => '当前页数',
+ 'description' => 'The page number of the current page.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '1',
+ ],
+ 'PageSize' => [
+ 'title' => '分页大小',
+ 'description' => 'The number of records per page.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '10',
+ ],
+ 'TotalCount' => [
+ 'title' => '总记录数',
+ 'description' => 'The total number of entries.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '1',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'ParamNotEnough',
+ 'errorMessage' => '参数不足',
+ ],
+ [
+ 'errorCode' => 'ParamScopeError',
+ 'errorMessage' => '参数值错误',
+ ],
+ [
+ 'errorCode' => 'ParamTypeError',
+ 'errorMessage' => '参数类型错误',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ 'eventInfo' => [
+ 'enable' => false,
+ 'eventNames' => [],
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"C0003E8B-B930-4F59-ADC0-0E209A9012A8\\",\\n \\"Bandwidths\\": [\\n {\\n \\"InstanceId\\": \\"i-6ecpqvkicnchxccozrpxxxx\\",\\n \\"ServiceType\\": \\"vm\\",\\n \\"InstanceType\\": \\"vm\\",\\n \\"AliUid\\": 1972653484384661,\\n \\"EnsRegionId\\": \\"cn-yichang-2\\",\\n \\"TxBw\\": 25415638,\\n \\"RxBw\\": 43795230,\\n \\"Ip\\": \\"203.107.***\\",\\n \\"Isp\\": \\"cmcc\\",\\n \\"FlowType\\": 1,\\n \\"BizTime\\": \\"2024-01-11 00:00:00\\"\\n }\\n ],\\n \\"PageNumber\\": 1,\\n \\"PageSize\\": 10,\\n \\"TotalCount\\": 1\\n}","type":"json"}]',
+ 'title' => 'DescribeInstanceBandwidthDetail',
+ 'description' => '* You can call this operation up to 800 times per second per account.'."\n"
+ .'* You can call this operation up to 100 times per second per user.'."\n"
+ .'* You can specify multiple request parameters to filter query results. Specified request parameters have logical AND relations. Only the specified parameters are included in the filter conditions. However, if InstanceIds is set to an empty JSON array, this parameter is regarded as a valid filter condition and an empty result is returned.'."\n",
+ ],
+ 'ModifyInstanceBootConfiguration' => [
+ 'summary' => 'Modifies the boot configuration of a heterogeneous PC Farm bare metal instance.',
+ 'methods' => [
+ 'get',
+ ],
+ 'schemes' => [
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'update',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'InstanceId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the instance for which you want to modify the configuration. You can specify only one ID.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'i-instance****',
+ ],
+ ],
+ [
+ 'name' => 'BootType',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The startup type.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'pxe',
+ ],
+ ],
+ [
+ 'name' => 'BootSet',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The startup method.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'legacy',
+ ],
+ ],
+ [
+ 'name' => 'DiskSet',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'Specifies whether the startup depends on the disk.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'on',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'Id of the request'."\n",
+ 'type' => 'string',
+ 'example' => '6666C5A5-75ED-422E-A022-7121FA18C968',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'InstanceNotFound',
+ 'errorMessage' => 'Instance not found, please check the InstanceId.',
+ ],
+ [
+ 'errorCode' => 'Parameter.Invalid',
+ 'errorMessage' => 'The parameter is invalid. Please check your parameters and try it again.',
+ ],
+ [
+ 'errorCode' => 'IncorrectInstanceStatus',
+ 'errorMessage' => 'The current status of the instance does not support this operation.',
+ ],
+ [
+ 'errorCode' => 'InvalidInstanceType.NotSupported',
+ 'errorMessage' => 'The specified InstanceType is not Supported.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ 'eventInfo' => [
+ 'enable' => false,
+ 'eventNames' => [],
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"6666C5A5-75ED-422E-A022-7121FA18C968\\"\\n}","type":"json"}]',
+ 'title' => 'ModifyInstanceBootConfiguration',
+ 'description' => '* If an instance is in the Starting state, you cannot reset the password of the instance.'."\n"
+ .'* If the instance is in the Running state, you cannot change the password of the instance.'."\n"
+ .'* After resetting the password, you must restart the instance in the ENS console or call the RebootInstance operation to apply the change. The restart operation within the instance does not apply the change.'."\n",
+ ],
+ 'DescribeEnsRouteTables' => [
+ 'summary' => 'Queries route tables.',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'list',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '200640',
+ 'abilityTreeNodes' => [
+ 'FEATUREensGMWJSM',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'PageNumber',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The page number.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'example' => '1',
+ ],
+ ],
+ [
+ 'name' => 'PageSize',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The number of entries per page.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'maximum' => '100',
+ 'example' => '30',
+ 'default' => '10',
+ ],
+ ],
+ [
+ 'name' => 'RouteTableId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the route table.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'vtb-5p1cifr72di****',
+ ],
+ ],
+ [
+ 'name' => 'NetworkId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the network.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'n-257gqcdfvx6n****',
+ ],
+ ],
+ [
+ 'name' => 'EnsRegionId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the ENS node.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'cn-xian-unicom',
+ ],
+ ],
+ [
+ 'name' => 'EnsRegionIds',
+ 'in' => 'query',
+ 'style' => 'flat',
+ 'schema' => [
+ 'description' => 'The IDs of edge nodes. You can specify 1 to 100 IDs.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The IDs of edge nodes.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'cn-chengdu-telecom-4',
+ ],
+ 'required' => false,
+ 'maxItems' => 100,
+ ],
+ ],
+ [
+ 'name' => 'Type',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The SNAT type.'."\n"
+ ."\n"
+ .'* FullCone: full cone NAT.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'FullCone',
+ ],
+ ],
+ [
+ 'name' => 'AssociateType',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The type of the resource with which the route table is associated. Valid values:'."\n"
+ ."\n"
+ .'* **VSwitch**'."\n"
+ .'* **Gateway**'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'Gateway',
+ ],
+ ],
+ [
+ 'name' => 'RouteTableName',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The name of the route table.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'tftest-nat04',
+ 'maxLength' => 128,
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => 'DC51ACB0-460D-5CA0-BA2D-E1F3B5547AE9',
+ ],
+ 'PageNumber' => [
+ 'description' => 'The page number.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '1',
+ ],
+ 'TotalCount' => [
+ 'description' => 'The total number of entries returned.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '10',
+ ],
+ 'PageSize' => [
+ 'description' => 'The number of entries per page.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '30',
+ ],
+ 'RouteTables' => [
+ 'description' => 'The information about the route tables.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The information about the route table.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'CreationTime' => [
+ 'description' => 'The time when the route table was created. The time follows the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time is displayed in UTC.'."\n",
+ 'type' => 'string',
+ 'example' => '2024-03-08T08:35:18Z',
+ ],
+ 'Status' => [
+ 'description' => 'The status. Valid values:'."\n"
+ ."\n"
+ .'* Available: The route table is available.'."\n",
+ 'type' => 'string',
+ 'example' => 'Available',
+ ],
+ 'RouteTableId' => [
+ 'description' => 'The ID of the route table.'."\n",
+ 'type' => 'string',
+ 'example' => 'rt-5xde2bit9****',
+ ],
+ 'NetworkId' => [
+ 'description' => 'The ID of the network.'."\n",
+ 'type' => 'string',
+ 'example' => 'n-5v9lufsezl4g****',
+ ],
+ 'VSwitchIds' => [
+ 'description' => 'The vSwitches that are associated with the route table.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The vSwitch that is associated with the route table.'."\n",
+ 'type' => 'string',
+ 'example' => 'vsw-5f649tc4****',
+ ],
+ ],
+ 'EnsRegionId' => [
+ 'description' => 'The ID of the edge node.'."\n",
+ 'type' => 'string',
+ 'example' => 'cn-beijing-15',
+ ],
+ 'Type' => [
+ 'description' => 'The type of the route table. Examples:'."\n"
+ ."\n"
+ .'* Custom: custom route table.'."\n"
+ .'* System: system route table.'."\n",
+ 'type' => 'string',
+ 'example' => 'System',
+ ],
+ 'RouteTableName' => [
+ 'description' => 'The name of the route table that you want to query.'."\n"
+ ."\n"
+ .'The name must be 2 to 128 characters in length, and can contain letters, digits, periods (.), underscores (\\_), and hyphens (-).'."\n",
+ 'type' => 'string',
+ 'example' => 'test-tf-vtb7',
+ ],
+ 'AssociateType' => [
+ 'description' => 'The type of the resource with which the route table is associated. Valid values:'."\n"
+ ."\n"
+ .'* **VSwitch**'."\n"
+ .'* **Gateway**'."\n",
+ 'type' => 'string',
+ 'example' => 'VSwitch',
+ ],
+ 'Description' => [
+ 'description' => 'The description.'."\n",
+ 'type' => 'string',
+ 'example' => 'test',
+ ],
+ 'IsDefaultGatewayRouteTable' => [
+ 'description' => 'Specifies whether it is the default gateway route table.'."\n",
+ 'type' => 'boolean',
+ 'example' => 'false',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'ens.interface.error',
+ 'errorMessage' => 'Failed to call API.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"DC51ACB0-460D-5CA0-BA2D-E1F3B5547AE9\\",\\n \\"PageNumber\\": 1,\\n \\"TotalCount\\": 10,\\n \\"PageSize\\": 30,\\n \\"RouteTables\\": [\\n {\\n \\"CreationTime\\": \\"2024-03-08T08:35:18Z\\",\\n \\"Status\\": \\"Available\\",\\n \\"RouteTableId\\": \\"rt-5xde2bit9****\\",\\n \\"NetworkId\\": \\"n-5v9lufsezl4g****\\",\\n \\"VSwitchIds\\": [\\n \\"vsw-5f649tc4****\\"\\n ],\\n \\"EnsRegionId\\": \\"cn-beijing-15\\",\\n \\"Type\\": \\"System\\",\\n \\"RouteTableName\\": \\"test-tf-vtb7\\",\\n \\"AssociateType\\": \\"VSwitch\\",\\n \\"Description\\": \\"test\\",\\n \\"IsDefaultGatewayRouteTable\\": false\\n }\\n ]\\n}","type":"json"}]',
+ 'title' => 'DescribeEnsRouteTables',
+ ],
+ 'DeleteHaVips' => [
+ 'summary' => 'Deletes a high-availability VIP (HAVIP).',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'delete',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '203967',
+ 'abilityTreeNodes' => [
+ 'FEATUREensVS72SQ',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'HaVipIds',
+ 'in' => 'query',
+ 'style' => 'json',
+ 'schema' => [
+ 'title' => '高可用VIP实例ID集合。',
+ 'description' => 'The IDs of high-availability virtual IP addresses (HAVIPs).'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The ID of the HAVIP.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'havpid-id',
+ ],
+ 'required' => true,
+ 'maxItems' => 100,
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'The information returned.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'Request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '6666C5A5-75ED-422E-A022-7121FA18C968',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"6666C5A5-75ED-422E-A022-7121FA18C968\\"\\n}","type":"json"}]',
+ 'title' => 'DeleteHaVips',
+ ],
+ 'ModifySnatEntry' => [
+ 'summary' => 'Modifies a specified SNAT entry.',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'update',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '221946',
+ 'abilityTreeNodes' => [
+ 'FEATUREensHCNR8B',
+ ],
+ 'tenantRelevance' => 'tenant',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'SnatEntryId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => '',
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'snat-5tfjp36fsrb36zs36faj0****',
+ ],
+ ],
+ [
+ 'name' => 'SnatEntryName',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => '',
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'test0',
+ 'maxLength' => 128,
+ ],
+ ],
+ [
+ 'name' => 'IspAffinity',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => '',
+ 'type' => 'boolean',
+ 'required' => false,
+ 'example' => 'true',
+ ],
+ ],
+ [
+ 'name' => 'EipAffinity',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'Specifies whether to enable IP affinity. Default value: true. Valid values:'."\n"
+ ."\n"
+ .'* **false**'."\n"
+ .'* **true**'."\n"
+ ."\n"
+ .'> Description After you enable IP affinity, if multiple EIPs are associated with an SNAT entry, one client uses the same EIP to for communication. If IP affinity is disabled, the client uses a random EIP for communication.'."\n",
+ 'type' => 'boolean',
+ 'required' => false,
+ 'example' => 'false',
+ ],
+ ],
+ [
+ 'name' => 'SnatIp',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'Separate multiple EIPs in the SNAT entry with commas (,).'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '120.XXX.XXX.71',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response',
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => '',
+ 'type' => 'string',
+ 'example' => '125B04C7-3D0D-4245-AF96-14E3758E3F06',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'Missing%s',
+ 'errorMessage' => 'You must specify the parameter %s.',
+ ],
+ [
+ 'errorCode' => 'Invalid%s',
+ 'errorMessage' => 'The specified parameter %s is invalid.',
+ ],
+ [
+ 'errorCode' => 'InvalidSnatEntryId.NotFound',
+ 'errorMessage' => 'The specified snatEntry is not found.',
+ ],
+ [
+ 'errorCode' => 'ens.interface.error',
+ 'errorMessage' => 'Failed to call API.',
+ ],
+ [
+ 'errorCode' => 'IncorretSnatEntryStatus',
+ 'errorMessage' => 'Snat entry status blocked this operation.',
+ ],
+ [
+ 'errorCode' => 'Forbidden.SnatIpUsedInDnat',
+ 'errorMessage' => 'The snatIp is already in use in the DNAT rule.',
+ ],
+ [
+ 'errorCode' => 'InvalidSnatIp.NotFound',
+ 'errorMessage' => 'Specified SnatIp does not found on the NAT Gateway.',
+ ],
+ [
+ 'errorCode' => 'QuotaExceeded.SnatIp',
+ 'errorMessage' => 'Public ip number exceeds quota.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"125B04C7-3D0D-4245-AF96-14E3758E3F06\\"\\n}","type":"json"}]',
+ 'title' => 'ModifySnatEntry',
+ ],
+ 'DescribeVSwitchAttributes' => [
+ 'summary' => 'Call the DescribeVSwitchAttributes interface to query the configuration of a specified VSwitch.',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '255249',
+ 'abilityTreeNodes' => [
+ 'FEATUREensD2JHRI',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'VSwitchId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the VSwitch.',
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'vsw-5****',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response',
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'The request ID.',
+ 'type' => 'string',
+ 'example' => 'C0003****2A8',
+ ],
+ 'EnsRegionId' => [
+ 'description' => 'The ENS node ID.',
+ 'type' => 'string',
+ 'example' => 'cn-xian-unicom',
+ ],
+ 'NetworkId' => [
+ 'description' => 'The network ID.',
+ 'type' => 'string',
+ 'example' => 'n-257gqcdfvx6n****',
+ ],
+ 'VSwitchName' => [
+ 'description' => 'The name of the VSwitch.',
+ 'type' => 'string',
+ 'example' => 'Test-switch',
+ ],
+ 'CidrBlock' => [
+ 'description' => 'The IPv4 CIDR block of the network.',
+ 'type' => 'string',
+ 'example' => '10.0.0.0/24',
+ ],
+ 'Status' => [
+ 'description' => 'The status of the VSwitch, as follows:'."\n"
+ ."\n"
+ .'- Pending'."\n"
+ .'- Available'."\n"
+ .'- Releasing',
+ 'type' => 'string',
+ 'example' => 'Available',
+ ],
+ 'Description' => [
+ 'description' => 'The description of the VSwitch.',
+ 'type' => 'string',
+ 'example' => 'This is my vswitch.',
+ ],
+ 'CreatedTime' => [
+ 'description' => 'The creation time, in UTC format (yyyy-MM-ddTHH:mm:ssZ).',
+ 'type' => 'string',
+ 'example' => '2019-06-01T00:00:00Z',
+ ],
+ 'InstanceIds' => [
+ 'type' => 'object',
+ 'itemNode' => true,
+ 'properties' => [
+ 'InstanceId' => [
+ 'description' => 'A list of instance IDs.',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The instance ID.',
+ 'type' => 'string',
+ 'example' => 'i-5****4evfn',
+ ],
+ ],
+ ],
+ ],
+ 'NetworkInterfaceIds' => [
+ 'type' => 'object',
+ 'itemNode' => true,
+ 'properties' => [
+ 'NetworkInterfaceId' => [
+ 'description' => 'A list of elastic network interface IDs.',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The elastic network interface ID.',
+ 'type' => 'string',
+ 'example' => 'eni-5****yfjm',
+ ],
+ ],
+ ],
+ ],
+ 'LoadBalancerIds' => [
+ 'type' => 'object',
+ 'itemNode' => true,
+ 'properties' => [
+ 'LoadBalancerId' => [
+ 'description' => 'A list of load balancer instance IDs.',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The load balancer instance ID.',
+ 'type' => 'string',
+ 'example' => 'lb-5****',
+ ],
+ ],
+ ],
+ ],
+ 'NatGatewayIds' => [
+ 'type' => 'object',
+ 'itemNode' => true,
+ 'properties' => [
+ 'NatGatewayId' => [
+ 'description' => 'A list of NAT gateway IDs.',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The NAT gateway ID.',
+ 'type' => 'string',
+ 'example' => 'nat-5****',
+ ],
+ ],
+ ],
+ ],
+ 'HaVipIds' => [
+ 'type' => 'object',
+ 'itemNode' => true,
+ 'properties' => [
+ 'HaVipId' => [
+ 'description' => 'A list of high-availability VIP instance IDs.',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The high-availability VIP instance ID.',
+ 'type' => 'string',
+ 'example' => 'havip-5****',
+ ],
+ ],
+ ],
+ ],
+ 'VSwitchId' => [
+ 'description' => 'The ID of the VSwitch.',
+ 'type' => 'string',
+ 'example' => 'vsw-5****',
+ ],
+ 'AvailableIpAddressCount' => [
+ 'description' => 'The number of available IP addresses in the VSwitch.',
+ 'type' => 'integer',
+ 'format' => 'int64',
+ 'example' => '253',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'ens.interface.error',
+ 'errorMessage' => 'Failed to call API.',
+ ],
+ [
+ 'errorCode' => 'InvalidVSwitchId.NotFound',
+ 'errorMessage' => 'Specified virtual switch does not exist.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"C0003****2A8\\",\\n \\"EnsRegionId\\": \\"cn-xian-unicom\\",\\n \\"NetworkId\\": \\"n-257gqcdfvx6n****\\",\\n \\"VSwitchName\\": \\"Test-switch\\",\\n \\"CidrBlock\\": \\"10.0.0.0/24\\",\\n \\"Status\\": \\"Available\\",\\n \\"Description\\": \\"This is my vswitch.\\",\\n \\"CreatedTime\\": \\"2019-06-01T00:00:00Z\\",\\n \\"InstanceIds\\": {\\n \\"InstanceId\\": [\\n \\"i-5****4evfn\\"\\n ]\\n },\\n \\"NetworkInterfaceIds\\": {\\n \\"NetworkInterfaceId\\": [\\n \\"eni-5****yfjm\\"\\n ]\\n },\\n \\"LoadBalancerIds\\": {\\n \\"LoadBalancerId\\": [\\n \\"lb-5****\\"\\n ]\\n },\\n \\"NatGatewayIds\\": {\\n \\"NatGatewayId\\": [\\n \\"nat-5****\\"\\n ]\\n },\\n \\"HaVipIds\\": {\\n \\"HaVipId\\": [\\n \\"havip-5****\\"\\n ]\\n },\\n \\"VSwitchId\\": \\"vsw-5****\\",\\n \\"AvailableIpAddressCount\\": 253\\n}","type":"json"}]',
+ 'title' => 'Query the Configuration of a VSwitch',
+ 'translator' => 'machine',
+ ],
+ 'ModifyEnsRouteEntry' => [
+ 'summary' => 'Modifies the name and description of a custom route.',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'update',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '255297',
+ 'abilityTreeNodes' => [
+ 'FEATUREensGMWJSM',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'RouteEntryId',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '要创建自定义路由条目的路由表ID。',
+ 'description' => 'The ID of the custom route.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'rte-5****',
+ ],
+ ],
+ [
+ 'name' => 'RouteEntryName',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '要创建的自定义路由条目的名称。',
+ 'description' => 'The name of the route.'."\n"
+ ."\n"
+ .'The name must be 1 to 128 characters in length and cannot start with `http://` or `https://`.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'test',
+ 'maxLength' => 128,
+ 'minLength' => 1,
+ ],
+ ],
+ [
+ 'name' => 'Description',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '自定义路由条目的描述信息。',
+ 'description' => 'The description of the route entry. The description must be 1 to 256 characters in length and cannot start with http:// or https://.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'test',
+ 'maxLength' => 256,
+ 'minLength' => 1,
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'Request ID.'."\n",
+ 'type' => 'string',
+ 'example' => 'C0003E8B-B930-4F59-ADC0-0E209A9012A8',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'Invalid%s',
+ 'errorMessage' => 'The specified parameter %s is invalid.',
+ ],
+ [
+ 'errorCode' => 'Missing%s',
+ 'errorMessage' => 'You must specify the parameter %s.',
+ ],
+ [
+ 'errorCode' => 'ens.interface.error',
+ 'errorMessage' => 'Failed to call API.',
+ ],
+ [
+ 'errorCode' => 'InvalidRouteEntryId.NotFound',
+ 'errorMessage' => 'Specified RouteEntryId does not exist.',
+ ],
+ [
+ 'errorCode' => 'InvalidRouteEntryType.NotSupported',
+ 'errorMessage' => 'The specified route type does not support this operation.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"C0003E8B-B930-4F59-ADC0-0E209A9012A8\\"\\n}","type":"json"}]',
+ 'title' => 'ModifyEnsRouteEntry',
+ ],
+ 'ListProductAbilities' => [
+ 'summary' => 'Lists all service capabilities.',
+ 'methods' => [
+ 'get',
+ ],
+ 'schemes' => [
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'list',
+ 'abilityTreeCode' => '260010',
+ 'abilityTreeNodes' => [
+ 'FEATUREensJVO8RM',
+ ],
+ ],
+ 'parameters' => [],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => 'xxxxx-75ED-422E-A022-7121FA18C968',
+ ],
+ 'ProductAbilities' => [
+ 'description' => 'Products supported by the edge node.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The product supported by the edge node.'."\n",
+ 'type' => 'string',
+ 'example' => 'eip',
+ ],
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"xxxxx-75ED-422E-A022-7121FA18C968\\",\\n \\"ProductAbilities\\": [\\n \\"eip\\"\\n ]\\n}","type":"json"}]',
+ 'title' => 'ListProductAbilities',
+ ],
+ 'DescribeInstanceBootConfiguration' => [
+ 'summary' => 'Queries the boot configuration of a heterogeneous PC Farm bare metal instance.',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeNodes' => [
+ 'FEATUREensPPKHPZ',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'InstanceId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the instance.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'i-****',
+ ],
+ ],
+ [
+ 'name' => 'BootType',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The startup type.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'pxe',
+ ],
+ ],
+ [
+ 'name' => 'BootSet',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The startup method.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'legacy',
+ ],
+ ],
+ [
+ 'name' => 'DiskSet',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'Specifies whether the startup depends on the disk.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'on',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'Id of the request'."\n",
+ 'type' => 'string',
+ 'example' => 'F3B261DD-3858-4D3C-877D-303ADF374600',
+ ],
+ 'Instances' => [
+ 'description' => 'Schema of Response'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'BootType' => [
+ 'description' => 'The startup type.'."\n",
+ 'type' => 'string',
+ 'example' => 'disk',
+ ],
+ 'DiskSet' => [
+ 'description' => 'Specifies whether the startup depends on the disk.'."\n",
+ 'type' => 'string',
+ 'example' => 'off',
+ ],
+ 'BootSet' => [
+ 'description' => 'The startup method.'."\n",
+ 'type' => 'string',
+ 'example' => 'legacy',
+ ],
+ 'InstanceId' => [
+ 'description' => 'The ID of the instance.'."\n",
+ 'type' => 'string',
+ 'example' => 'i-****',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'InstanceNotFound',
+ 'errorMessage' => 'Instance not found, please check the InstanceId.',
+ ],
+ [
+ 'errorCode' => 'Parameter.Invalid',
+ 'errorMessage' => 'The parameter is invalid. Please check your parameters and try it again.',
+ ],
+ [
+ 'errorCode' => 'IncorrectInstanceStatus',
+ 'errorMessage' => 'The current status of the instance does not support this operation.',
+ ],
+ [
+ 'errorCode' => 'InvalidInstanceType.NotSupported',
+ 'errorMessage' => 'The specified InstanceType is not Supported.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ 'eventInfo' => [
+ 'enable' => false,
+ 'eventNames' => [],
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"F3B261DD-3858-4D3C-877D-303ADF374600\\",\\n \\"Instances\\": {\\n \\"BootType\\": \\"disk\\",\\n \\"DiskSet\\": \\"off\\",\\n \\"BootSet\\": \\"legacy\\",\\n \\"InstanceId\\": \\"i-****\\"\\n }\\n}","type":"json"}]',
+ 'title' => 'DescribeInstanceBootConfiguration',
+ 'description' => 'Queries the boot configuration of a heterogeneous PC Farm bare metal instance.'."\n",
+ ],
+ 'ImportImage' => [
+ 'summary' => 'Call ImportImage to import your image file to the cloud server.',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'create',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '173495',
+ 'abilityTreeNodes' => [
+ 'FEATUREensU96TR9',
+ ],
+ 'tenantRelevance' => 'publicInformation',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'ImageName',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '镜像名称。长度为[2, 128]个英文或中文字符。必须以大小字母或中文开头,不能以http://和https://开头。可以包含数字、半角冒号(:)、下划线(_)或者连字符(-)。',
+ 'description' => 'Image name. The length should be [2, 128] English or Chinese characters. It must start with a letter (uppercase or lowercase) or a Chinese character, and cannot start with http:// or https://. It can contain numbers, colons (:), underscores (_), or hyphens (-).',
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => '镜像名称',
+ ],
+ ],
+ [
+ 'name' => 'ComputeType',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '镜像类型'."\n"
+ .'ens_vm'."\0".':ens虚机镜像(默认)',
+ 'description' => '`Image Type`'."\n"
+ .'ens_vm: ens virtual machine image (default)',
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'ens_vm',
+ 'enum' => [
+ 'ens_vm',
+ ],
+ ],
+ ],
+ [
+ 'name' => 'OSSRegion',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '镜像所在Region,暂时只支持cn-beijing',
+ 'description' => 'The Region where the image is located. Currently, only cn-beijing is supported.',
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'cn-beijing',
+ 'enum' => [],
+ ],
+ ],
+ [
+ 'name' => 'OSSBucket',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '镜像文件所在的OSS Bucket。',
+ 'description' => 'The OSS Bucket where the image file is located.',
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'tmp-hybrid',
+ ],
+ ],
+ [
+ 'name' => 'OSSObject',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '镜像文件名。',
+ 'description' => 'The name of the image file.',
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'image-test',
+ ],
+ ],
+ [
+ 'name' => 'OSType',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '操作系统平台类型。取值范围:'."\n"
+ .'● windows。'."\n"
+ .'● linux。'."\n"
+ .'暂时只支持:linux。',
+ 'description' => 'Operating system platform type. Allowed values:'."\n"
+ ."\n"
+ .'- windows.'."\n"
+ .'- linux.'."\n"
+ ."\n"
+ .'Currently, only linux is supported.',
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'linux',
+ 'enum' => [
+ 'linux',
+ 'windows',
+ ],
+ ],
+ ],
+ [
+ 'name' => 'Platform',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '操作系统发行版。取值范围:'."\n"
+ .'* centos'."\n"
+ .'* ubuntu',
+ 'description' => 'Operating system distribution. Allowed values:'."\n"
+ .'* centos'."\n"
+ .'* ubuntu',
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'centos',
+ 'enum' => [],
+ ],
+ ],
+ [
+ 'name' => 'ImageFormat',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '镜像格式。取值范围:'."\n"
+ .'● QCOW2。'."\n"
+ .'只支持QCOW2。',
+ 'description' => 'Image format. Allowed values:</br>'."\n"
+ .'qcow2.</br>'."\n"
+ .'Currently, only qcow2 is supported.',
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'qcow2',
+ 'enum' => [
+ 'qcow2',
+ 'raw',
+ ],
+ ],
+ ],
+ [
+ 'name' => 'Architecture',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '系统架构。取值范围:'."\n"
+ .'● x86_64。'."\n"
+ .'现只支持:x86_64。',
+ 'description' => 'System architecture. Allowed values:</br>'."\n"
+ ."\n"
+ .'- x86_64.</br>'."\n"
+ ."\n"
+ .'Currently, only x86_64 is supported.',
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'x86_64',
+ 'enum' => [
+ 'x86_64',
+ ],
+ ],
+ ],
+ [
+ 'name' => 'OSVersion',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'Operating system distribution version',
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '6.8',
+ ],
+ ],
+ [
+ 'name' => 'DiskDeviceMapping',
+ 'in' => 'query',
+ 'style' => 'json',
+ 'schema' => [
+ 'description' => 'List of custom image information being created.',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'List of custom image information being created.',
+ 'type' => 'object',
+ 'properties' => [
+ 'OSSRegion' => [
+ 'description' => 'The Region where the image is located.',
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'cn-beijing',
+ ],
+ 'OSSBucket' => [
+ 'description' => 'The OSS Bucket where the image is stored.',
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'www-cn',
+ ],
+ 'OSSObject' => [
+ 'description' => 'The filename (key) of the image file after it is uploaded to the OSS Bucket.',
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'image-bucket',
+ ],
+ ],
+ 'required' => false,
+ ],
+ 'required' => false,
+ ],
+ ],
+ [
+ 'name' => 'TargetOSSRegionId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The target OSS region where the image will be stored.</br>'."\n"
+ ."\n"
+ .'> Currently, only cn-beijing and ap-southeast-1 are supported.',
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'cn-beijing',
+ 'enum' => [
+ 'cn-beijing',
+ 'ap-southeast-1',
+ ],
+ ],
+ ],
+ [
+ 'name' => 'LicenseType',
+ 'in' => 'query',
+ 'schema' => [
+ 'type' => 'string',
+ 'required' => false,
+ 'default' => 'Aliyun',
+ 'enum' => [
+ 'Aliyun',
+ 'BYOL',
+ ],
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Response schema',
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'ID of the request',
+ 'type' => 'string',
+ 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984',
+ ],
+ 'ImageId' => [
+ 'description' => 'Image ID.',
+ 'type' => 'string',
+ 'example' => 'm-5wn1dh*******b48f440ntvad',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\",\\n \\"ImageId\\": \\"m-5wn1dh*******b48f440ntvad\\"\\n}","type":"json"}]',
+ 'title' => 'Import Image',
+ 'translator' => 'machine',
+ ],
+ 'DescribeForwardEntryAttribute' => [
+ 'summary' => 'You can call the DescribeForwardEntryAttribute operation to query the details of a DNAT rule.',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'ForwardEntryId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the DNAT entry.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'fwd-5tfi6f0rutmd00xrhkag7****',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'The response data.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '6666C5A5-75ED-422E-A022-7121FA18C968',
+ ],
+ 'NatGatewayId' => [
+ 'description' => 'The ID of the NAT gateway.'."\n",
+ 'type' => 'string',
+ 'example' => 'nat-5t7nh1cfm6kxiszlttr38****',
+ ],
+ 'ForwardEntryId' => [
+ 'description' => 'The ID of the DNAT entry.'."\n",
+ 'type' => 'string',
+ 'example' => 'fwd-5tfi6f0rutmd00xrhkag7****',
+ ],
+ 'ExternalIp' => [
+ 'description' => 'The EIP in the DNAT entry. The public IP address is used to access the Internet.'."\n",
+ 'type' => 'string',
+ 'example' => '36.XXX.XXX.72',
+ ],
+ 'InternalIp' => [
+ 'description' => 'The private IP address of the instance that uses the DNAT entry for Internet communication.'."\n",
+ 'type' => 'string',
+ 'example' => '10.XXX.XXX.50',
+ ],
+ 'ForwardEntryName' => [
+ 'description' => 'The name of the DNAT entry.'."\n",
+ 'type' => 'string',
+ 'example' => 'test0',
+ ],
+ 'Status' => [
+ 'description' => 'The status of the DNAT entry.'."\n"
+ ."\n"
+ .'* Pending: The DNAT entry is being created or modified.'."\n"
+ .'* Available: The DNAT entry is available.'."\n"
+ .'* Deleting: The DNAT entry is being deleted.'."\n",
+ 'type' => 'string',
+ 'example' => 'Available',
+ ],
+ 'CreationTime' => [
+ 'description' => 'The creation time. The time is displayed in UTC.'."\n",
+ 'type' => 'string',
+ 'example' => '2020-04-26T15:38:27Z',
+ ],
+ 'ExternalPort' => [
+ 'description' => 'The external port or port range that is used for port forwarding.'."\n"
+ ."\n"
+ .'* Valid values: 1 to 65535.'."\n"
+ .'* To specify a port range, separate the first port and the last port with a forward slash (/), such as 10/20.'."\n",
+ 'type' => 'string',
+ 'example' => '22',
+ ],
+ 'InternalPort' => [
+ 'description' => 'The internal port or port range that is used for port forwarding.'."\n"
+ ."\n"
+ .'* Valid values: 1 to 65535.'."\n"
+ .'* To specify a port range, separate the first port and the last port with a forward slash (/), such as 10/20.'."\n",
+ 'type' => 'string',
+ 'example' => '22',
+ ],
+ 'IpProtocol' => [
+ 'description' => 'The protocol. Valid values:'."\n"
+ ."\n"
+ .'* **TCP**: forwards TCP packets.'."\n"
+ .'* **UDP**: forwards UDP packets.'."\n"
+ .'* **Any**: forwards all packets.'."\n",
+ 'type' => 'string',
+ 'example' => 'Any',
+ ],
+ 'HealthCheckPort' => [
+ 'description' => 'The DNAT probe port. The port must be within the internal port range. By default, this parameter is empty.'."\n",
+ 'type' => 'string',
+ 'example' => '80',
+ ],
+ 'StandbyExternalIp' => [
+ 'description' => 'The secondary EIP that is used to access the Internet. You need to select a secondary EIP that is bound to NAT. After the DNAT entry is created, the secondary EIP takes effect.'."\n",
+ 'type' => 'string',
+ 'example' => '101.XXX.XXX.4',
+ ],
+ 'StandbyStatus' => [
+ 'description' => 'The status of the secondary EIP.'."\n"
+ ."\n"
+ .'* Running'."\n"
+ .'* Stopping'."\n"
+ .'* Stopped'."\n"
+ .'* Starting'."\n",
+ 'type' => 'string',
+ 'example' => 'Stopped',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'Invalid%s',
+ 'errorMessage' => 'The specified parameter %s is invalid.',
+ ],
+ [
+ 'errorCode' => 'Missing%s',
+ 'errorMessage' => 'You must specify the parameter %s.',
+ ],
+ [
+ 'errorCode' => 'InvalidForwardEntryId.NotFound',
+ 'errorMessage' => 'The specified forwardEntry is not found.',
+ ],
+ [
+ 'errorCode' => 'ens.interface.error',
+ 'errorMessage' => 'Failed to call API.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"6666C5A5-75ED-422E-A022-7121FA18C968\\",\\n \\"NatGatewayId\\": \\"nat-5t7nh1cfm6kxiszlttr38****\\",\\n \\"ForwardEntryId\\": \\"fwd-5tfi6f0rutmd00xrhkag7****\\",\\n \\"ExternalIp\\": \\"36.XXX.XXX.72\\",\\n \\"InternalIp\\": \\"10.XXX.XXX.50\\",\\n \\"ForwardEntryName\\": \\"test0\\",\\n \\"Status\\": \\"Available\\",\\n \\"CreationTime\\": \\"2020-04-26T15:38:27Z\\",\\n \\"ExternalPort\\": \\"22\\",\\n \\"InternalPort\\": \\"22\\",\\n \\"IpProtocol\\": \\"Any\\",\\n \\"HealthCheckPort\\": \\"80\\",\\n \\"StandbyExternalIp\\": \\"101.XXX.XXX.4\\",\\n \\"StandbyStatus\\": \\"Stopped\\"\\n}","type":"json"}]',
+ 'title' => 'DescribeForwardEntryAttribute',
+ ],
+ 'ModifyInstanceNetworkAttribute' => [
+ 'summary' => 'Modifies the private IP address or vSwitch of a VPC-type ECS instance.',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'update',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '249175',
+ 'abilityTreeNodes' => [
+ 'FEATUREensVJ32Z2',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'InstanceId',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '要创建自定义路由条目的路由表ID。',
+ 'description' => 'The ID of the ENS instance.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'i-5myukg7hnpbto7m024002****',
+ ],
+ ],
+ [
+ 'name' => 'VSwitchId',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '自定义路由条目的目标网段。',
+ 'description' => 'The vSwitch IDs.'."\n"
+ ."\n"
+ .'* If you set this parameter to the ID of the current vSwitch, the vSwitch of the ECS instance remains unchanged.'."\n"
+ .'* The input ID is a new vSwitch, and the new and old vSwitches must belong to the same node.'."\n"
+ .'* By default, if this parameter is not specified, a private IP address is randomly assigned from within the CIDR block of the specified vSwitch.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'vsw-5rllcjb3ol6duzjdnbm1o****',
+ ],
+ ],
+ [
+ 'name' => 'PrivateIpAddress',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '自定义路由条目的下一跳的类型',
+ 'description' => 'The new private IP address of the ECS instance. By default, if this parameter is empty, a private IP address is randomly assigned from the CIDR block of the specified vSwitch.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '192.168.XX.XX',
+ 'enum' => [],
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '125B04C7-3D0D-4245-AF96-14E3758E3F06',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'ens.interface.error',
+ 'errorMessage' => 'Failed to call API.',
+ ],
+ [
+ 'errorCode' => 'InvalidDependence.%s',
+ 'errorMessage' => 'The Specified operation is denied due to %s.',
+ ],
+ [
+ 'errorCode' => 'InvalidInstanceId.NotFound',
+ 'errorMessage' => 'The specified InstanceId does not exist.',
+ ],
+ [
+ 'errorCode' => 'IncorrectInstanceStatus',
+ 'errorMessage' => 'The current status of the resource does not support this operation.',
+ ],
+ [
+ 'errorCode' => 'InvalidInstanceType.NotSupported',
+ 'errorMessage' => 'The specified InstanceType is not Supported.',
+ ],
+ [
+ 'errorCode' => 'IncorrectNetworkInterfaceStatus',
+ 'errorMessage' => 'The operation could not be completed because the status of the specified network interface is invalid for this action.',
+ ],
+ [
+ 'errorCode' => 'InvalidVSwitchId.NotFound',
+ 'errorMessage' => 'Specified virtual switch does not exist.',
+ ],
+ [
+ 'errorCode' => 'IncorrectVSwitchStatus',
+ 'errorMessage' => 'The current status of virtual switch does not support this operation.',
+ ],
+ [
+ 'errorCode' => 'InvalidPrivateIpAddress.Mismatch',
+ 'errorMessage' => 'Specified private IP address is not in the CIDR block of virtual switch.',
+ ],
+ [
+ 'errorCode' => 'InvalidPrivateIpAddress.Duplicated',
+ 'errorMessage' => 'The specified private IP address is duplicated.',
+ ],
+ [
+ 'errorCode' => 'InvalidVSwitchId.IpNotEnough',
+ 'errorMessage' => 'The specified virtual switch has not enough available ip.',
+ ],
+ [
+ 'errorCode' => 'Invalid%s',
+ 'errorMessage' => 'The specified parameter %s is invalid.',
+ ],
+ [
+ 'errorCode' => 'Missing%s',
+ 'errorMessage' => 'You must specify the parameter %s.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"125B04C7-3D0D-4245-AF96-14E3758E3F06\\"\\n}","type":"json"}]',
+ 'title' => 'ModifyInstanceNetworkAttribute',
+ 'description' => 'The instance that you want to manage must be in the Stopped state. When you modify the parameters of a scaling group, the following limits apply:'."\n"
+ ."\n"
+ .'* Instance:'."\n"
+ ."\n"
+ .' * Instances that are associated with SLB are not supported.'."\n"
+ ."\n"
+ .'* Network:'."\n"
+ ."\n"
+ .' * Instances that are associated with EIPs are not supported.'."\n"
+ .' * Instances that are associated with high-availability virtual IP addresses are not supported.'."\n"
+ .' * Instances that have been used as next hops in the routing table are not supported.'."\n"
+ .' * Secondary ENIs cannot be attached to the ECS instance.'."\n"
+ .' * Instances configured with secondary IP addresses are not supported.'."\n",
+ ],
+ 'CreateSecurityGroupPermissions' => [
+ 'summary' => 'Create an ENS security group rule.',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'create',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '255792',
+ 'abilityTreeNodes' => [
+ 'FEATUREensMBU7KJ',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'SecurityGroupId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The IDs of the security groups.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'sg-bp67acfmxazb4p****',
+ ],
+ ],
+ [
+ 'name' => 'Permissions',
+ 'in' => 'query',
+ 'style' => 'json',
+ 'schema' => [
+ 'description' => 'The security group rules.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The security group rule.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'Direction' => [
+ 'description' => 'The direction in which the security group rule is applied.'."\n"
+ ."\n"
+ .'* egress'."\n"
+ .'* ingress'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'ingress',
+ 'enum' => [
+ 'egress',
+ 'ingress',
+ ],
+ ],
+ 'IpProtocol' => [
+ 'description' => 'Protocol type. Valid values:'."\n"
+ ."\n"
+ .'* TCP'."\n"
+ .'* UDP'."\n"
+ .'* ICMP: the ICMP protocol'."\n"
+ .'* ICMPv6: the ICMP protocol for IPv6.'."\n"
+ .'* ALL: All protocols are supported.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'TCP',
+ 'enum' => [
+ 'TCP',
+ 'UDP',
+ 'ICMP',
+ 'ALL',
+ 'GRE',
+ 'tcp',
+ 'udp',
+ 'icmp',
+ 'all',
+ 'gre',
+ 'ICMPV6',
+ 'icmpv6',
+ ],
+ ],
+ 'PortRange' => [
+ 'description' => 'The destination port range of the security group rule. Valid values:'."\n"
+ ."\n"
+ .'* If you set IpProtocol to TCP or UDP, the valid values of this parameter are 1 to 65535. Specify a port range in the format of \\<Start port number>/\\<End port number>. Example: 1/200.'."\n"
+ .'* If you set IpProtocol to ICMP, the port range is -1/-1.'."\n"
+ .'* ICMPv6:-1/-1.'."\n"
+ .'* If you set IpProtocol to ALL, the port number range is -1/-1.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => '80/80',
+ ],
+ 'SourcePortRange' => [
+ 'description' => 'The range of source port numbers for the protocols specified in the security group rule. Valid values:'."\n"
+ ."\n"
+ .'* If you set IpProtocol to TCP or UDP, the valid values of this parameter are 1 to 65535. Specify a port range in the format of \\<Start port number>/\\<End port number>. Example: 1/200.'."\n"
+ .'* If you set IpProtocol to ICMP, the port range is -1/-1.'."\n"
+ .'* ICMPv6:-1/-1.'."\n"
+ .'* If you set IpProtocol to ALL, the port range is -1/-1.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '22/22',
+ ],
+ 'Policy' => [
+ 'description' => 'The action specified in the security group rule. Valid values:'."\n"
+ ."\n"
+ .'* Accept'."\n"
+ .'* Drop'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'Accept',
+ 'enum' => [
+ 'Accept',
+ 'Drop',
+ ],
+ ],
+ 'DestCidrIp' => [
+ 'description' => 'The destination IPv4 CIDR block. CIDR blocks and IPv4 addresses are supported.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '10.XX.XX.14/32',
+ ],
+ 'SourceCidrIp' => [
+ 'description' => 'The source IPv4 CIDR block. CIDR blocks and IPv4 addresses are supported.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '0.0.0.0/0',
+ ],
+ 'Description' => [
+ 'description' => 'The description of the storage gateway. It must be 2 to 256 characters in length and cannot start with http:// or https://.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'testDescription',
+ 'maxLength' => 256,
+ ],
+ 'Priority' => [
+ 'description' => 'The priority of the security group rule. A smaller value specifies a higher priority. Valid values: 1 to 100.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => true,
+ 'maximum' => '100',
+ 'minimum' => '1',
+ 'example' => '1',
+ ],
+ 'Ipv6SourceCidrIp' => [
+ 'description' => 'The source IPv6 CIDR block of the security group rule. or IPv6 address.'."\n"
+ ."\n"
+ .'> This parameter and the `DestCidrIp` parameter cannot be set at the same time.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '::/0',
+ ],
+ 'Ipv6DestCidrIp' => [
+ 'description' => 'The destination IPv6 CIDR block. IPv6 CIDR blocks and IPv6 addresses are supported.'."\n"
+ ."\n"
+ .'> This parameter and the `DestCidrIp` parameter cannot be set at the same time.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '::/0',
+ ],
+ ],
+ 'required' => false,
+ ],
+ 'required' => true,
+ 'maxItems' => 200,
+ 'minItems' => 1,
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'Request ID.'."\n",
+ 'type' => 'string',
+ 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'ens.interface.error',
+ 'errorMessage' => 'Failed to call API.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.PortRange',
+ 'errorMessage' => 'The parameter PortRange is not valid.',
+ ],
+ [
+ 'errorCode' => 'AuthorizationLimitExceed',
+ 'errorMessage' => 'The limit of authorization records in the security group reaches.',
+ ],
+ [
+ 'errorCode' => 'InvalidSecurityGroupId.NotFound',
+ 'errorMessage' => 'The specified SecurityGroupId does not exist.',
+ ],
+ [
+ 'errorCode' => 'SecurityGroupRuleConflict.Duplicated',
+ 'errorMessage' => 'The SecurityGroup rule already exists.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.CidrIp',
+ 'errorMessage' => 'The parameter CidrIp is not valid.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.SourceIpConflict',
+ 'errorMessage' => 'The Parameters SourceCidrIp and Ipv6SourceCidrIp cannot be set at the same time.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.DestIpConflict',
+ 'errorMessage' => 'The Parameters DestCidrIp and Ipv6DestCidrIp cannot be set at the same time.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.Ipv4ProtocolConflictWithIpv6Address',
+ 'errorMessage' => 'IPv6 address cannot be specified for IPv4-specific protocol.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.Ipv6ProtocolConflictWithIpv4Address',
+ 'errorMessage' => 'IPv4 address cannot be specified for IPv6-specific protocol.',
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\"\\n}","type":"json"}]',
+ 'title' => 'CreateSecurityGroupPermissions',
+ ],
+ 'DeleteSecurityGroupPermissions' => [
+ 'summary' => 'Deletes an ENS security group rule.',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'delete',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '255795',
+ 'abilityTreeNodes' => [
+ 'FEATUREensMBU7KJ',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'SecurityGroupId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the security group.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'sg-bp67acfmxazb4p**** ',
+ ],
+ ],
+ [
+ 'name' => 'Permissions',
+ 'in' => 'query',
+ 'style' => 'json',
+ 'schema' => [
+ 'description' => 'The security group rules.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The security group rule.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'Direction' => [
+ 'description' => 'The direction in which the security group rule is applied.'."\n"
+ ."\n"
+ .'* egress'."\n"
+ .'* ingress'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'ingress',
+ 'enum' => [
+ 'egress',
+ 'ingress',
+ ],
+ ],
+ 'IpProtocol' => [
+ 'description' => 'Protocol type. Valid values:'."\n"
+ ."\n"
+ .'* TCP'."\n"
+ .'* UDP'."\n"
+ .'* ICMP: the ICMP protocol'."\n"
+ .'* ICMPv6: the IPv6 ICMP protocol.'."\n"
+ .'* ALL: All protocols are supported.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'TCP',
+ 'enum' => [
+ 'TCP',
+ 'UDP',
+ 'ICMP',
+ 'ALL',
+ 'GRE',
+ 'tcp',
+ 'udp',
+ 'icmp',
+ 'all',
+ 'gre',
+ 'icmpv6',
+ 'ICMPV6',
+ ],
+ ],
+ 'PortRange' => [
+ 'description' => 'The destination port range of the security group rule. Valid values:'."\n"
+ ."\n"
+ .'* If you set IpProtocol to TCP or UDP, the valid values of this parameter are 1 to 65535. Specify a port range in the format of \\<Start port number>/\\<End port number>. Example: 1/200.'."\n"
+ .'* If you set IpProtocol to ICMP, the port range is -1/-1.'."\n"
+ .'* If you set IpProtocol to ALL, the port number range is -1/-1.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => '80/80',
+ ],
+ 'SourcePortRange' => [
+ 'description' => 'The range of source port numbers for the protocols specified in the security group rule. Valid values:'."\n"
+ ."\n"
+ .'* If you set IpProtocol to TCP or UDP, the valid values of this parameter are 1 to 65535. Specify a port range in the format of \\<Start port number>/\\<End port number>. Example: 1/200.'."\n"
+ .'* If you set IpProtocol to ICMP, the port range is -1/-1.'."\n"
+ .'* If you set IpProtocol to ALL, the port range is -1/-1.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '22/22',
+ ],
+ 'Policy' => [
+ 'description' => 'The action specified in the security group rule. Valid values:'."\n"
+ ."\n"
+ .'* Accept'."\n"
+ .'* Drop'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'Accept',
+ 'enum' => [
+ 'Accept',
+ 'Drop',
+ ],
+ ],
+ 'DestCidrIp' => [
+ 'description' => 'The destination IPv4 CIDR block. CIDR blocks and IPv4 addresses are supported.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '10.XX.XX.91',
+ ],
+ 'SourceCidrIp' => [
+ 'description' => 'The source IPv4 CIDR block. CIDR blocks and IPv4 addresses are supported.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '0.XX.XX.0/0',
+ ],
+ 'Priority' => [
+ 'description' => 'The priority of the security group rule. A smaller value specifies a higher priority. Valid values: 1 to 100.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => true,
+ 'maximum' => '100',
+ 'minimum' => '1',
+ 'example' => '1',
+ ],
+ 'Ipv6SourceCidrIp' => [
+ 'description' => 'The source IPv6 CIDR block of the security group rule. IPv6 CIDR blocks and IPv6 addresses are supported.'."\n"
+ ."\n"
+ .'> This parameter and the `DestCidrIp` parameter cannot be set at the same time.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '::/0',
+ ],
+ 'Ipv6DestCidrIp' => [
+ 'description' => 'The destination IPv6 CIDR block. IPv6 CIDR blocks and IPv6 addresses are supported.'."\n"
+ ."\n"
+ .'> This parameter and the `DestCidrIp` parameter cannot be set at the same time.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '::/0',
+ ],
+ ],
+ 'required' => false,
+ ],
+ 'required' => true,
+ 'maxItems' => 200,
+ 'minItems' => 1,
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => 'AAE90880-4970-4D81-A534-A6C0F3631F74',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'ens.interface.error',
+ 'errorMessage' => 'Failed to call API.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.PortRange',
+ 'errorMessage' => 'The parameter PortRange is not valid.',
+ ],
+ [
+ 'errorCode' => 'InvalidSecurityGroupId.NotFound',
+ 'errorMessage' => 'The specified SecurityGroupId does not exist.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.CidrIp',
+ 'errorMessage' => 'The parameter CidrIp is not valid.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.SourceIpConflict',
+ 'errorMessage' => 'The Parameters SourceCidrIp and Ipv6SourceCidrIp cannot be set at the same time.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.DestIpConflict',
+ 'errorMessage' => 'The Parameters DestCidrIp and Ipv6DestCidrIp cannot be set at the same time.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.Ipv4ProtocolConflictWithIpv6Address',
+ 'errorMessage' => 'IPv6 address cannot be specified for IPv4-specific protocol.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.Ipv6ProtocolConflictWithIpv4Address',
+ 'errorMessage' => 'IPv4 address cannot be specified for IPv6-specific protocol.',
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"AAE90880-4970-4D81-A534-A6C0F3631F74\\"\\n}","type":"json"}]',
+ 'title' => 'DeleteSecurityGroupPermissions',
+ ],
+ 'ManageAICLogin' => [
+ 'summary' => 'Log on to the AIC instance. You can associate or disassociate an AIC instance based on the uploaded AIC public key.',
+ 'path' => '',
+ 'methods' => [
+ 'post',
+ ],
+ 'schemes' => [
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'readAndWrite',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'none',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeNodes' => [
+ 'FEATUREensZ35IDE',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'KeyName',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '公钥名',
+ 'description' => 'Public Key Name'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'mykey',
+ 'maxLength' => 128,
+ ],
+ ],
+ [
+ 'name' => 'KeyGroup',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '公钥分组',
+ 'description' => 'Public Key Grouping'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'g-test',
+ 'maxLength' => 128,
+ ],
+ ],
+ [
+ 'name' => 'InstanceId',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '实例Id',
+ 'description' => 'The instance ID.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'aic-xxx-1',
+ ],
+ ],
+ [
+ 'name' => 'ActionName',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '管理动作',
+ 'description' => 'Manage actions'."\n"
+ ."\n"
+ .'Valid value:'."\n"
+ ."\n"
+ .'* open'."\n"
+ .'* close'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'open',
+ 'enum' => [
+ 'open',
+ 'close',
+ ],
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'Id of the request'."\n",
+ 'type' => 'string',
+ 'example' => 'F3B261DD-3858-4D3C-877D-303ADF374600',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'Interface.Call.Failed',
+ 'errorMessage' => '%s.',
+ ],
+ [
+ 'errorCode' => 'Interface.Call.Error',
+ 'errorMessage' => 'The interface call error',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"F3B261DD-3858-4D3C-877D-303ADF374600\\"\\n}","type":"json"}]',
+ 'title' => 'ManageAICLogin',
+ ],
+ 'ListAICPublicKeys' => [
+ 'summary' => 'Query the list of AIC public keys that meet the conditions. Paged query is supported.',
+ 'path' => '',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'none',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeNodes' => [
+ 'FEATUREensZ35IDE',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'KeyName',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '公钥名',
+ 'description' => 'Public key name'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'mykey',
+ ],
+ ],
+ [
+ 'name' => 'KeyGroup',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '公钥分组',
+ 'description' => 'Public key grouping'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'g-test',
+ ],
+ ],
+ [
+ 'name' => 'KeyType',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '公钥类型',
+ 'description' => 'Public key type'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'adb',
+ ],
+ ],
+ [
+ 'name' => 'PageNumber',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '当前页码',
+ 'description' => 'The page number of the page to return.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'minimum' => '1',
+ 'example' => '1',
+ 'default' => '1',
+ ],
+ ],
+ [
+ 'name' => 'PageSize',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '每页显示的记录数量',
+ 'description' => 'The number of entries per page.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'maximum' => '100',
+ 'minimum' => '1',
+ 'example' => '10',
+ 'default' => '10',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => '请求的唯一标识符',
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => 'xxxsxxxxx',
+ ],
+ 'PublicKeys' => [
+ 'title' => '公钥列表',
+ 'description' => 'Public key list'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'title' => '公钥',
+ 'description' => 'The public key.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'KeyName' => [
+ 'title' => '公钥名',
+ 'description' => 'Public key name'."\n",
+ 'type' => 'string',
+ 'example' => 'mykey',
+ ],
+ 'KeyGroup' => [
+ 'title' => '公钥分组',
+ 'description' => 'Public key grouping'."\n",
+ 'type' => 'string',
+ 'example' => 'test-group',
+ ],
+ 'KeyType' => [
+ 'title' => '公钥类型',
+ 'description' => 'Public key type'."\n",
+ 'type' => 'string',
+ 'example' => 'adb',
+ ],
+ 'Content' => [
+ 'title' => '公钥内容',
+ 'description' => 'Public key content'."\n",
+ 'type' => 'string',
+ 'example' => 'fvsvshbvjfksvj',
+ ],
+ 'Description' => [
+ 'title' => '公钥描述',
+ 'description' => 'Public key description'."\n",
+ 'type' => 'string',
+ 'example' => '测试',
+ ],
+ 'CreationTime' => [
+ 'title' => '创建时间',
+ 'description' => 'The creation time of the voiceprint.'."\n",
+ 'type' => 'string',
+ 'example' => '2025-10-09T15:13:21+08:00',
+ ],
+ ],
+ ],
+ ],
+ 'PageNumber' => [
+ 'title' => '分页时的当前页码',
+ 'description' => 'Current page number when paging'."\n",
+ 'type' => 'integer',
+ 'format' => 'int64',
+ 'example' => '1',
+ ],
+ 'PageSize' => [
+ 'title' => '每页显示的记录数量',
+ 'description' => 'The number of entries per page.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int64',
+ 'example' => '10',
+ ],
+ 'TotalCount' => [
+ 'title' => '总数',
+ 'description' => 'The total number of entries returned.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int64',
+ 'example' => '10',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'Interface.Call.Failed',
+ 'errorMessage' => '%s.',
+ ],
+ [
+ 'errorCode' => 'Interface.Call.Error',
+ 'errorMessage' => 'The interface call error',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"xxxsxxxxx\\",\\n \\"PublicKeys\\": [\\n {\\n \\"KeyName\\": \\"mykey\\",\\n \\"KeyGroup\\": \\"test-group\\",\\n \\"KeyType\\": \\"adb\\",\\n \\"Content\\": \\"fvsvshbvjfksvj\\",\\n \\"Description\\": \\"测试\\",\\n \\"CreationTime\\": \\"2025-10-09T15:13:21+08:00\\"\\n }\\n ],\\n \\"PageNumber\\": 1,\\n \\"PageSize\\": 10,\\n \\"TotalCount\\": 10\\n}","type":"json"}]',
+ 'title' => 'ListAICPublicKeys',
+ ],
+ 'DeleteAICPublicKey' => [
+ 'summary' => 'Deletes a specified AIC public key. You can delete a public key only if it is not associated with the public key.',
+ 'path' => '',
+ 'methods' => [
+ 'post',
+ ],
+ 'schemes' => [
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'none',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeNodes' => [
+ 'FEATUREensZ35IDE',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'KeyName',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '公钥名',
+ 'description' => 'Public Key Name'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'mykey',
+ 'maxLength' => 128,
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'Id of the request'."\n",
+ 'type' => 'string',
+ 'example' => 'AAE90880-4970-4D81-A534-A6C0F3631F74',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'Interface.Call.Failed',
+ 'errorMessage' => '%s.',
+ ],
+ [
+ 'errorCode' => 'Interface.Call.Error',
+ 'errorMessage' => 'The interface call error',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"AAE90880-4970-4D81-A534-A6C0F3631F74\\"\\n}","type":"json"}]',
+ 'title' => 'DeleteAICPublicKey',
+ ],
+ 'ListAICPublicKeyDeliveries' => [
+ 'summary' => 'Queries the related information of AIC public keys. Paged query is supported.',
+ 'path' => '',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'none',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeNodes' => [
+ 'FEATUREensZ35IDE',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'KeyName',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '公钥名',
+ 'description' => 'Public Key Name'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'mykey',
+ ],
+ ],
+ [
+ 'name' => 'KeyGroup',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '公钥分组',
+ 'description' => 'Public Key Grouping'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'g-test',
+ ],
+ ],
+ [
+ 'name' => 'KeyType',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '公钥类型',
+ 'description' => 'Public key type'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'adb',
+ ],
+ ],
+ [
+ 'name' => 'InstanceId',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '实例Id',
+ 'description' => 'The instance ID.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'aic-xxxx-0',
+ ],
+ ],
+ [
+ 'name' => 'PageNumber',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '当前页码',
+ 'description' => 'The page number of the page to return.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'minimum' => '1',
+ 'example' => '1',
+ 'default' => '1',
+ ],
+ ],
+ [
+ 'name' => 'PageSize',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '每页显示的记录数量',
+ 'description' => 'The number of entries per page.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'maximum' => '100',
+ 'minimum' => '1',
+ 'example' => '10',
+ 'default' => '10',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => '请求的唯一标识符',
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => 'xxxsxxxxx',
+ ],
+ 'PublicKeyDeliverInfo' => [
+ 'title' => '公钥列表',
+ 'description' => 'Public Key List'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'title' => '公钥',
+ 'description' => 'The public key.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'KeyName' => [
+ 'title' => '公钥名',
+ 'description' => 'Public Key Name'."\n",
+ 'type' => 'string',
+ 'example' => 'mykey',
+ ],
+ 'KeyGroup' => [
+ 'title' => '公钥分组',
+ 'description' => 'Public Key Grouping'."\n",
+ 'type' => 'string',
+ 'example' => 'test-group',
+ ],
+ 'KeyType' => [
+ 'title' => '公钥类型',
+ 'description' => 'Public key type'."\n",
+ 'type' => 'string',
+ 'example' => 'adb',
+ ],
+ 'InstanceId' => [
+ 'title' => '实例Id',
+ 'description' => 'The instance ID.'."\n",
+ 'type' => 'string',
+ 'example' => 'aic-xxxx-0',
+ ],
+ 'CreationTime' => [
+ 'title' => '创建时间',
+ 'description' => 'The creation time.'."\n",
+ 'type' => 'string',
+ 'example' => '2025-10-09T15:13:21+08:00',
+ ],
+ ],
+ ],
+ ],
+ 'PageNumber' => [
+ 'title' => '分页时的当前页码',
+ 'description' => 'Current page number when paging'."\n",
+ 'type' => 'integer',
+ 'format' => 'int64',
+ 'example' => '1',
+ ],
+ 'PageSize' => [
+ 'title' => '每页显示的记录数量',
+ 'description' => 'The number of entries per page.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int64',
+ 'example' => '10',
+ ],
+ 'TotalCount' => [
+ 'title' => '总数',
+ 'description' => 'The total number of entries returned.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int64',
+ 'example' => '10',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'Interface.Call.Failed',
+ 'errorMessage' => '%s.',
+ ],
+ [
+ 'errorCode' => 'Interface.Call.Error',
+ 'errorMessage' => 'The interface call error',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"xxxsxxxxx\\",\\n \\"PublicKeyDeliverInfo\\": [\\n {\\n \\"KeyName\\": \\"mykey\\",\\n \\"KeyGroup\\": \\"test-group\\",\\n \\"KeyType\\": \\"adb\\",\\n \\"InstanceId\\": \\"aic-xxxx-0\\",\\n \\"CreationTime\\": \\"2025-10-09T15:13:21+08:00\\"\\n }\\n ],\\n \\"PageNumber\\": 1,\\n \\"PageSize\\": 10,\\n \\"TotalCount\\": 10\\n}","type":"json"}]',
+ 'title' => 'ListAICPublicKeyDeliveries',
+ ],
+ 'ShareAICImage' => [
+ 'summary' => 'Share the specified AIC image to other users.',
+ 'path' => '',
+ 'methods' => [
+ 'post',
+ ],
+ 'schemes' => [
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'readAndWrite',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'none',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeNodes' => [
+ 'FEATUREensZ35IDE',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'ImageId',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '镜像名',
+ 'description' => 'The image name.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'mykey',
+ 'maxLength' => 128,
+ ],
+ ],
+ [
+ 'name' => 'Users',
+ 'in' => 'query',
+ 'style' => 'json',
+ 'schema' => [
+ 'title' => '用户组',
+ 'description' => 'The user groups.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'title' => '用户id',
+ 'description' => 'The user ID.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '14134343',
+ ],
+ 'required' => true,
+ 'maxItems' => 10,
+ 'minItems' => 1,
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'Id of the request'."\n",
+ 'type' => 'string',
+ 'example' => 'AAE90880-4970-4D81-A534-A6C0F3631F74',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'Interface.Call.Failed',
+ 'errorMessage' => '%s.',
+ ],
+ [
+ 'errorCode' => 'Interface.Call.Error',
+ 'errorMessage' => 'The interface call error',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"AAE90880-4970-4D81-A534-A6C0F3631F74\\"\\n}","type":"json"}]',
+ 'title' => 'ShareAICImage',
+ ],
+ 'UploadAICPublicKey' => [
+ 'summary' => 'Upload a new AIC public key.',
+ 'path' => '',
+ 'methods' => [
+ 'post',
+ ],
+ 'schemes' => [
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'create',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeNodes' => [
+ 'FEATUREensZ35IDE',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'KeyName',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '公钥名',
+ 'description' => 'Public Key Name'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'mykey',
+ 'maxLength' => 128,
+ 'minLength' => 8,
+ ],
+ ],
+ [
+ 'name' => 'KeyGroup',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '公钥分组',
+ 'description' => 'Public Key Grouping'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'g-test',
+ 'maxLength' => 128,
+ ],
+ ],
+ [
+ 'name' => 'KeyType',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '公钥类型',
+ 'description' => 'Public key type'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'adb',
+ ],
+ ],
+ [
+ 'name' => 'Content',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '公钥内容',
+ 'description' => 'Public Key'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'verify_dffeb6610035dcb77b413a59c3',
+ 'maxLength' => 1024,
+ ],
+ ],
+ [
+ 'name' => 'Description',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '描述',
+ 'description' => 'The description of the document.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '测试',
+ 'maxLength' => 128,
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'Id of the request'."\n",
+ 'type' => 'string',
+ 'example' => '125B04C7-3D0D-4245-AF96-14E3758E3F06',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'Interface.Call.Failed',
+ 'errorMessage' => '%s.',
+ ],
+ [
+ 'errorCode' => 'Interface.Call.Error',
+ 'errorMessage' => 'The interface call error',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"125B04C7-3D0D-4245-AF96-14E3758E3F06\\"\\n}","type":"json"}]',
+ 'title' => 'UploadAICPublicKey',
+ ],
+ 'DescribeSDGSharedDisks' => [
+ 'summary' => 'You can query the information of shared disks in a specified SDG.',
+ 'path' => '',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'none',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '205308',
+ 'abilityTreeNodes' => [
+ 'FEATUREensZ35IDE',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'SdgId',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => 'sdg的id',
+ 'description' => 'sdg ID'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'sdg-xxxx',
+ ],
+ ],
+ [
+ 'name' => 'RegionId',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '区域id',
+ 'description' => 'The region ID.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'cn-hangzhou-xx',
+ ],
+ ],
+ [
+ 'name' => 'Namespace',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '命名空间',
+ 'description' => 'The namespace.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'default',
+ ],
+ ],
+ [
+ 'name' => 'PageNumber',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '页码,用于分页查询',
+ 'description' => 'The page number, which is used for paged query'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'minimum' => '1',
+ 'example' => '1',
+ 'default' => '1',
+ ],
+ ],
+ [
+ 'name' => 'PageSize',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '每页显示的记录数量',
+ 'description' => 'The number of entries per page.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'maximum' => '100',
+ 'minimum' => '1',
+ 'example' => '10',
+ 'default' => '10',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => '请求的唯一标识符',
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => 'xxxsxxxxx',
+ ],
+ 'SharedDisks' => [
+ 'title' => '共享盘列表',
+ 'description' => 'Shared disk list'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'title' => '共享磁盘列表中的第一个磁盘',
+ 'description' => 'First disk in the shared disk list'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'SdgId' => [
+ 'title' => '共享盘的SdgId',
+ 'description' => 'SdgId of the shared disk'."\n",
+ 'type' => 'string',
+ 'example' => 'sdg-fqehhfdjv',
+ ],
+ 'RegionId' => [
+ 'title' => '节点id',
+ 'description' => 'The node ID.'."\n",
+ 'type' => 'string',
+ 'example' => 'cn-hangzhou-1',
+ ],
+ 'Namespace' => [
+ 'title' => '命名空间',
+ 'description' => 'The namespace of the service.'."\n",
+ 'type' => 'string',
+ 'example' => 'default',
+ ],
+ 'DiskId' => [
+ 'title' => '共享盘id',
+ 'description' => 'shared disk id'."\n",
+ 'type' => 'string',
+ 'example' => 'd-57kvvpuj1rk2ghumlgs6',
+ ],
+ 'SharedNum' => [
+ 'title' => '共享挂载数',
+ 'description' => 'Number of shared mounts'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '10',
+ ],
+ 'Status' => [
+ 'title' => '共享盘状态',
+ 'description' => 'Shared disk status'."\n",
+ 'type' => 'string',
+ 'example' => 'avaliable',
+ ],
+ 'DiskType' => [
+ 'title' => '共享盘类型',
+ 'description' => 'Shared disk type'."\n",
+ 'type' => 'string',
+ 'example' => 'standard',
+ ],
+ 'CreationTime' => [
+ 'title' => '共享盘创建时间',
+ 'description' => 'The time when the shared disk was created.'."\n",
+ 'type' => 'string',
+ 'example' => '2025-10-09T15:13:21+08:00',
+ ],
+ ],
+ ],
+ ],
+ 'PageNumber' => [
+ 'title' => '分页时的当前页码',
+ 'description' => 'Current page number when paging'."\n",
+ 'type' => 'integer',
+ 'format' => 'int64',
+ 'example' => '1',
+ ],
+ 'PageSize' => [
+ 'title' => '每页显示的记录数量',
+ 'description' => 'The number of entries per page.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int64',
+ 'example' => '10',
+ ],
+ 'TotalCount' => [
+ 'title' => '总数',
+ 'description' => 'The total number of entries returned.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int64',
+ 'example' => '10',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'Interface.Call.Failed',
+ 'errorMessage' => '%s.',
+ ],
+ [
+ 'errorCode' => 'Interface.Call.Error',
+ 'errorMessage' => 'The interface call error',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"xxxsxxxxx\\",\\n \\"SharedDisks\\": [\\n {\\n \\"SdgId\\": \\"sdg-fqehhfdjv\\",\\n \\"RegionId\\": \\"cn-hangzhou-1\\",\\n \\"Namespace\\": \\"default\\",\\n \\"DiskId\\": \\"d-57kvvpuj1rk2ghumlgs6\\",\\n \\"SharedNum\\": 10,\\n \\"Status\\": \\"avaliable\\",\\n \\"DiskType\\": \\"standard\\",\\n \\"CreationTime\\": \\"2025-10-09T15:13:21+08:00\\"\\n }\\n ],\\n \\"PageNumber\\": 1,\\n \\"PageSize\\": 10,\\n \\"TotalCount\\": 10\\n}","type":"json"}]',
+ 'title' => 'DescribeSDGSharedDisks',
+ ],
+ 'DescribeClusterKubeConfig' => [
+ 'summary' => 'Queries the certificate of a Container Service for Kubernetes (ACK) edge cluster.',
+ 'methods' => [
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'get',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'ClusterId',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => 'A short description of struct',
+ 'description' => 'The cluster ID.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'c8f0377146d104687ac562eef9403****',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'The information about the cluster.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E',
+ ],
+ 'ClusterId' => [
+ 'description' => 'The cluster ID.'."\n",
+ 'type' => 'string',
+ 'example' => 'c8f0377146d104687ac562eef9403****',
+ ],
+ 'Kubeconfig' => [
+ 'description' => 'The cluster certificate.'."\n",
+ 'type' => 'string',
+ 'example' => 'apiVersion: v1'."\n"
+ .'clusters:'."\n"
+ .'- cluster:'."\n"
+ .' certificate-authority-data:***'."\n"
+ .' server: https://****:6443'."\n"
+ .' name: kubernetes'."\n"
+ .'contexts:'."\n"
+ .'- context:'."\n"
+ .' cluster: kubernetes'."\n"
+ .' user: "2580306074811*****"'."\n"
+ .' name: 258*******'."\n"
+ .'kind: Config'."\n"
+ .'users:'."\n"
+ .'- name: "2580306074811*****"'."\n"
+ .' user:'."\n"
+ .' client-certificate-data:***'."\n"
+ .' client-key-data: ***',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'BadRequest',
+ 'errorMessage' => '请求参数错误 ',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ 404 => [
+ [
+ 'errorCode' => 'StatusNotFound',
+ 'errorMessage' => '证书不存在',
+ ],
+ ],
+ 500 => [
+ [
+ 'errorCode' => 'InternalServerError',
+ 'errorMessage' => '内部服务错误',
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E\\",\\n \\"ClusterId\\": \\"c8f0377146d104687ac562eef9403****\\",\\n \\"Kubeconfig\\": \\"apiVersion: v1\\\\nclusters:\\\\n- cluster:\\\\n certificate-authority-data:***\\\\n server: https://****:6443\\\\n name: kubernetes\\\\ncontexts:\\\\n- context:\\\\n cluster: kubernetes\\\\n user: \\\\\\"2580306074811*****\\\\\\"\\\\n name: 258*******\\\\nkind: Config\\\\nusers:\\\\n- name: \\\\\\"2580306074811*****\\\\\\"\\\\n user:\\\\n client-certificate-data:***\\\\n client-key-data: ***\\"\\n}","type":"json"}]',
+ 'title' => 'DescribeClusterKubeConfig',
+ 'description' => '* The maximum number of times that each user can call this operation per second is 100.'."\n",
+ ],
+ 'DescribeCluster' => [
+ 'summary' => 'Queries Container Service for Kubernetes (ACK) edge clusters.',
+ 'methods' => [
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'get',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'ClusterId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The cluster ID.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'c8f0377146d104687ac562eef9403****',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984',
+ ],
+ 'Clusters' => [
+ 'description' => 'An array that consists of the information about clusters.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'Information about a cluster.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'Name' => [
+ 'description' => 'The cluster name.'."\n",
+ 'type' => 'string',
+ 'example' => 'vc-a622bb**',
+ ],
+ 'ClusterId' => [
+ 'description' => 'The cluster ID.'."\n",
+ 'type' => 'string',
+ 'example' => 'c8f0377146d104687ac562eef9403****',
+ ],
+ 'CurrentVersion' => [
+ 'description' => 'The version of the cluster.'."\n",
+ 'type' => 'string',
+ 'example' => '1.18.8',
+ ],
+ 'NextVersion' => [
+ 'description' => 'The next version of the cluster.'."\n",
+ 'type' => 'string',
+ 'example' => '1.20.8',
+ ],
+ 'Status' => [
+ 'description' => 'The health status of the instance.'."\n"
+ ."\n"
+ .'Valid values:'."\n"
+ ."\n"
+ .'* healthy'."\n"
+ .'* unhealthy'."\n",
+ 'type' => 'string',
+ 'enumValueTitles' => [
+ 'healthy' => 'healthy',
+ 'unhealthy' => 'unhealthy',
+ ],
+ 'example' => 'healthy',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'BadRequest',
+ 'errorMessage' => '请求参数错误 ',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Permission denied.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter.%s',
+ 'errorMessage' => 'The specified field %s invalid. Please check it again.',
+ ],
+ ],
+ 500 => [
+ [
+ 'errorCode' => 'InternalServerError',
+ 'errorMessage' => '内部服务错误',
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ 'eventInfo' => [
+ 'enable' => false,
+ 'eventNames' => [],
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\",\\n \\"Clusters\\": [\\n {\\n \\"Name\\": \\"vc-a622bb**\\",\\n \\"ClusterId\\": \\"c8f0377146d104687ac562eef9403****\\",\\n \\"CurrentVersion\\": \\"1.18.8\\",\\n \\"NextVersion\\": \\"1.20.8\\",\\n \\"Status\\": \\"healthy\\"\\n }\\n ]\\n}","type":"json"}]',
+ 'title' => 'DescribeCluster',
+ 'description' => '* You can call this operation up to 100 times per second per account.'."\n",
+ ],
+ ],
+ 'endpoints' => [
+ [
+ 'regionId' => 'cn-wulanchabu',
+ 'endpoint' => 'ens.aliyuncs.com',
+ ],
+ [
+ 'regionId' => 'ap-southeast-1',
+ 'endpoint' => 'ens.ap-southeast-1.aliyuncs.com',
+ ],
+ [
+ 'regionId' => 'cn-shanghai',
+ 'endpoint' => 'ens.aliyuncs.com',
+ ],
+ [
+ 'regionId' => 'cn-chengdu',
+ 'endpoint' => 'ens.aliyuncs.com',
+ ],
+ [
+ 'regionId' => 'cn-zhangjiakou',
+ 'endpoint' => 'ens.aliyuncs.com',
+ ],
+ [
+ 'regionId' => 'cn-hangzhou',
+ 'endpoint' => 'ens.aliyuncs.com',
+ ],
+ [
+ 'regionId' => 'cn-heyuan',
+ 'endpoint' => 'ens.aliyuncs.com',
+ ],
+ [
+ 'regionId' => 'cn-beijing',
+ 'endpoint' => 'ens.aliyuncs.com',
+ ],
+ ],
+];