summaryrefslogtreecommitdiff
path: root/data/en_us/hsm/2023-11-13
diff options
context:
space:
mode:
Diffstat (limited to 'data/en_us/hsm/2023-11-13')
-rw-r--r--data/en_us/hsm/2023-11-13/api-docs.php12037
1 files changed, 12037 insertions, 0 deletions
diff --git a/data/en_us/hsm/2023-11-13/api-docs.php b/data/en_us/hsm/2023-11-13/api-docs.php
new file mode 100644
index 0000000..8dd2cbe
--- /dev/null
+++ b/data/en_us/hsm/2023-11-13/api-docs.php
@@ -0,0 +1,12037 @@
+<?php return [
+ 'version' => '1.0',
+ 'info' => [
+ 'style' => 'RPC',
+ 'product' => 'hsm',
+ 'version' => '2023-11-13',
+ ],
+ 'directories' => [
+ [
+ 'id' => 263960,
+ 'title' => null,
+ 'type' => 'directory',
+ 'children' => [
+ 'ConfigAuditLog',
+ 'GetAuditLogStatus',
+ 'InitializeAuditLog',
+ ],
+ ],
+ [
+ 'id' => 263964,
+ 'title' => null,
+ 'type' => 'directory',
+ 'children' => [
+ 'GetImage',
+ 'ListImages',
+ 'ConfigImageRemark',
+ 'CopyImage',
+ 'ExportImage',
+ ],
+ ],
+ [
+ 'id' => 263970,
+ 'title' => null,
+ 'type' => 'directory',
+ 'children' => [
+ 'EnableBackup',
+ 'GetBackup',
+ 'ListBackups',
+ 'ConfigBackupTask',
+ 'ResetBackup',
+ 'ConfigBackupRemark',
+ ],
+ ],
+ [
+ 'id' => 263977,
+ 'title' => null,
+ 'type' => 'directory',
+ 'children' => [
+ 'DeleteCluster',
+ 'JoinCluster',
+ 'ConfigClusterSubnet',
+ 'SyncCluster',
+ 'InitializeCluster',
+ 'SwitchClusterMaster',
+ 'ConfigClusterName',
+ 'LeaveCluster',
+ 'CreateCluster',
+ 'ListClusters',
+ 'ConfigClusterCertificate',
+ 'GetCluster',
+ 'ConfigClusterWhitelist',
+ 'QuickDeployCluster',
+ 'RotateClusterManagedCert',
+ 'DownloadClusterManagedCert',
+ ],
+ ],
+ [
+ 'id' => 263994,
+ 'title' => null,
+ 'type' => 'directory',
+ 'children' => [
+ 'ConfigInstanceIpAddress',
+ 'RestoreInstance',
+ 'ResetInstance',
+ 'QuickInitInstance',
+ 'ConfigInstanceWhitelist',
+ 'ResumeInstance',
+ 'GetInstance',
+ 'PauseInstance',
+ 'ListInstances',
+ 'ConfigInstanceRemark',
+ ],
+ ],
+ [
+ 'id' => 264005,
+ 'title' => null,
+ 'type' => 'directory',
+ 'children' => [
+ 'GetJob',
+ 'MoveResourceGroup',
+ 'DescribeRegions',
+ ],
+ ],
+ ],
+ 'components' => [
+ 'schemas' => [],
+ ],
+ 'apis' => [
+ 'ConfigAuditLog' => [
+ 'summary' => 'Enables or disables the audit log feature and delivers audit logs to buckets.',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'update',
+ 'riskType' => 'none',
+ 'chargeType' => 'paid',
+ 'abilityTreeNodes' => [
+ 'FEATUREhsmVF2KT5',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'RegionId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the region.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'cn-hangzhou',
+ ],
+ ],
+ [
+ 'name' => 'AuditOssBucket',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The bucket to which audit logs are delivered.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'hsm-log',
+ ],
+ ],
+ [
+ 'name' => 'AuditAction',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'Specifies whether to enable the audit log feature. Valid values:'."\n"
+ ."\n"
+ .'* enable'."\n"
+ .'* disable'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'enumValueTitles' => [],
+ 'example' => 'enable',
+ 'enum' => [
+ 'disable',
+ 'enable',
+ ],
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'description' => 'The response.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '42B118FB-16A6-56FB-B877-D58637EEC6AF',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 403 => [
+ [
+ 'errorCode' => 'OSSPermissionDenied.Error',
+ 'errorMessage' => '获取OSS bucket权限失败,请检查对应OSS权限设置: %s',
+ ],
+ ],
+ 500 => [
+ [
+ 'errorCode' => 'InternalError',
+ 'errorMessage' => 'The request processing has failed due to some unknown error.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"42B118FB-16A6-56FB-B877-D58637EEC6AF\\"\\n}","type":"json"}]',
+ 'title' => 'ConfigAuditLog',
+ 'description' => '* The region of the bucket must be the same as the region where the security audit feature is enabled.'."\n"
+ .'* If the security audit feature is enabled, do not delete Object Storage Service (OSS) buckets. If you delete OSS buckets, audit logs fail to be delivered.'."\n"
+ .'* Only electronic virtual security modules (EVSMs) and general virtual security modules (GVSMs) within the Chinese mainland support the security audit feature.'."\n",
+ ],
+ 'GetAuditLogStatus' => [
+ 'summary' => 'Queries the status of the audit log feature in the current region.',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '203664',
+ 'abilityTreeNodes' => [
+ 'FEATUREhsmVF2KT5',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'RegionId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the region.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'cn-hangzhou',
+ ],
+ ],
+ [
+ 'name' => 'GetOssBucket',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'Specifies whether to obtain the list of OSS buckets that can be used to store audit logs. Valid values:'."\n"
+ ."\n"
+ .'* true'."\n"
+ .'* false'."\n",
+ 'type' => 'boolean',
+ 'required' => false,
+ 'example' => 'true',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'description' => 'The response parameters.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '4C467B38-3910-447D-87BC-AC049166F216',
+ ],
+ 'Success' => [
+ 'description' => 'Indicates whether the request is successful. Valid values:'."\n"
+ ."\n"
+ .'* true'."\n"
+ .'* false'."\n",
+ 'type' => 'boolean',
+ 'example' => 'true',
+ ],
+ 'RegionId' => [
+ 'description' => 'The ID of the region.'."\n",
+ 'type' => 'string',
+ 'example' => 'cn-hangzhou',
+ ],
+ 'AuditLogStatus' => [
+ 'description' => 'Indicates whether the audit log feature is enabled. Valid values:'."\n"
+ ."\n"
+ .'* enable'."\n"
+ .'* disable'."\n",
+ 'type' => 'string',
+ 'enumValueTitles' => [],
+ 'example' => 'enable',
+ 'enum' => [
+ 'enable',
+ 'disable',
+ ],
+ ],
+ 'GrantedServiceAccess' => [
+ 'description' => 'Indicates whether Cloud Hardware Security Module is authorized to deliver logs. Valid values:'."\n"
+ ."\n"
+ .'* true'."\n"
+ .'* false'."\n",
+ 'type' => 'boolean',
+ 'example' => 'true',
+ ],
+ 'AuditOssBucket' => [
+ 'description' => 'The bucket that stores audit logs.'."\n",
+ 'type' => 'string',
+ 'example' => 'bucket-test',
+ ],
+ 'OssBuckets' => [
+ 'description' => 'A list of buckets that can be used to store audit logs.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The name of the bucket.'."\n",
+ 'type' => 'string',
+ 'example' => 'bucket-test',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 403 => [
+ [
+ 'errorCode' => 'OSSPermissionDenied.Error',
+ 'errorMessage' => '获取对应OSS bucket权限失败,请检查OSS权限设置: %s',
+ ],
+ ],
+ 500 => [
+ [
+ 'errorCode' => 'InternalError',
+ 'errorMessage' => 'The request processing has failed due to some unknown error.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"4C467B38-3910-447D-87BC-AC049166F216\\",\\n \\"Success\\": true,\\n \\"RegionId\\": \\"cn-hangzhou\\",\\n \\"AuditLogStatus\\": \\"enable\\",\\n \\"GrantedServiceAccess\\": true,\\n \\"AuditOssBucket\\": \\"bucket-test\\",\\n \\"OssBuckets\\": [\\n \\"bucket-test\\"\\n ]\\n}","type":"json"}]',
+ 'title' => 'GetAuditLogStatus',
+ ],
+ 'InitializeAuditLog' => [
+ 'summary' => 'Authorizes Cloud Hardware Security Module to deliver logs.',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'update',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeNodes' => [
+ 'FEATUREhsmVF2KT5',
+ ],
+ ],
+ 'parameters' => [],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '4FE969D9-E1C7-5274-BE7D-8C3534587605',
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'CreateServiceLinkedRole.Error %s',
+ 'errorMessage' => 'sdfsfa %s',
+ ],
+ ],
+ 404 => [
+ [
+ 'errorCode' => 'EntityNotExist.Service',
+ 'errorMessage' => '服务不存在: %s',
+ ],
+ [
+ 'errorCode' => 'EntityNotExist.User',
+ 'errorMessage' => '角色不存在: %s',
+ ],
+ [
+ 'errorCode' => 'NoPermission.Client',
+ 'errorMessage' => '当前账户无创建服务角色权限!',
+ ],
+ ],
+ 409 => [
+ [
+ 'errorCode' => 'EntityAlreadyExists.Role',
+ 'errorMessage' => '服务角色已存在,请勿重复创建!',
+ ],
+ ],
+ 500 => [
+ [
+ 'errorCode' => 'InternalError',
+ 'errorMessage' => 'The request processing has failed due to some unknown error.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"4FE969D9-E1C7-5274-BE7D-8C3534587605\\"\\n}","type":"json"}]',
+ 'title' => 'InitializeAuditLog',
+ ],
+ 'GetImage' => [
+ 'summary' => 'Queries information about an image.',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'abilityTreeCode' => '203665',
+ 'abilityTreeNodes' => [
+ 'FEATUREhsmQEGDGS',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'ImageId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the image.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'image-wz9c5ths5dfuwx47****',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '4C467B38-3910-447D-87BC-AC049166F216',
+ ],
+ 'Image' => [
+ 'description' => 'The image information.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'BackupId' => [
+ 'description' => 'The ID of the backup.'."\n",
+ 'type' => 'string',
+ 'example' => 'backup-1618017313',
+ ],
+ 'ExportTime' => [
+ 'description' => 'The time when the image was generated. The value is accurate to the millisecond. The value is a UNIX timestamp.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int64',
+ 'example' => '1786776567788',
+ ],
+ 'ImageId' => [
+ 'description' => 'The ID of the image.'."\n",
+ 'type' => 'string',
+ 'example' => 'image-wz9c5ths5dfuwx47****',
+ ],
+ 'InstanceId' => [
+ 'description' => 'The ID of the hardware security module (HSM).'."\n",
+ 'type' => 'string',
+ 'example' => 'hsm-cn-9lb32vll****',
+ ],
+ 'RegionId' => [
+ 'description' => 'The ID of the region.'."\n",
+ 'type' => 'string',
+ 'example' => 'cn-hangzhou',
+ ],
+ 'Remark' => [
+ 'description' => 'The description of the backup.'."\n",
+ 'type' => 'string',
+ 'example' => 'hsm-test',
+ ],
+ 'Status' => [
+ 'description' => 'The status of the image. Valid values:'."\n"
+ ."\n"
+ .'* NEW'."\n"
+ .'* DELETED'."\n"
+ .'* CREATING'."\n"
+ .'* NORMAL'."\n",
+ 'type' => 'string',
+ 'enumValueTitles' => [],
+ 'example' => 'NEW',
+ 'enum' => [
+ 'CREATING',
+ 'NEW',
+ 'NORMAL',
+ 'DELETED',
+ ],
+ ],
+ 'Mode' => [
+ 'description' => 'The image generation mode. Valid values:'."\n"
+ ."\n"
+ .'* PERIODIC'."\n"
+ .'* MANUAL'."\n",
+ 'type' => 'string',
+ 'enumValueTitles' => [],
+ 'example' => 'MANUAL',
+ 'enum' => [
+ 'MANUAL',
+ 'PERIODIC',
+ ],
+ ],
+ 'VsmDigest' => [
+ 'description' => 'The digest of the HSM.'."\n",
+ 'type' => 'string',
+ 'example' => '3kGeHnmQzXwSsfF0Jk9eJYhe2gP6An0/HlYIiZh1****',
+ ],
+ 'SourceImageUid' => [
+ 'description' => 'The ID of the source image.'."\n",
+ 'type' => 'string',
+ 'example' => 'image-kklhhhh****',
+ ],
+ 'SourceRegionId' => [
+ 'description' => 'The region ID of the source image.'."\n",
+ 'type' => 'string',
+ 'example' => 'cn-beijing',
+ ],
+ 'SourceBackupUid' => [
+ 'description' => 'The ID of the source backup.'."\n",
+ 'type' => 'string',
+ 'example' => 'backup-gfuiasdfa****',
+ ],
+ 'SourceInstanceId' => [
+ 'description' => 'The ID of the source HSM.'."\n",
+ 'type' => 'string',
+ 'example' => 'hsm-wz9fnmvx190shfbk****',
+ ],
+ 'CopyTime' => [
+ 'description' => 'The time when the image was copied. The value is accurate to the millisecond. The value is a UNIX timestamp.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int64',
+ 'example' => '1641275680000',
+ ],
+ ],
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 403 => [
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'caller has no permission',
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"4C467B38-3910-447D-87BC-AC049166F216\\",\\n \\"Image\\": {\\n \\"BackupId\\": \\"backup-1618017313\\",\\n \\"ExportTime\\": 1786776567788,\\n \\"ImageId\\": \\"image-wz9c5ths5dfuwx47****\\",\\n \\"InstanceId\\": \\"hsm-cn-9lb32vll****\\",\\n \\"RegionId\\": \\"cn-hangzhou\\",\\n \\"Remark\\": \\"hsm-test\\",\\n \\"Status\\": \\"NEW\\",\\n \\"Mode\\": \\"MANUAL\\",\\n \\"VsmDigest\\": \\"3kGeHnmQzXwSsfF0Jk9eJYhe2gP6An0/HlYIiZh1****\\",\\n \\"SourceImageUid\\": \\"image-kklhhhh****\\",\\n \\"SourceRegionId\\": \\"cn-beijing\\",\\n \\"SourceBackupUid\\": \\"backup-gfuiasdfa****\\",\\n \\"SourceInstanceId\\": \\"hsm-wz9fnmvx190shfbk****\\",\\n \\"CopyTime\\": 1641275680000\\n }\\n}","type":"json"}]',
+ 'title' => 'GetImage',
+ ],
+ 'ListImages' => [
+ 'summary' => 'Queries the images that meet the specified conditions.',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'list',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '203777',
+ 'abilityTreeNodes' => [
+ 'FEATUREhsmQEGDGS',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'BackupId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the backup.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'backup-fdb897sdf****',
+ ],
+ ],
+ [
+ 'name' => 'RegionId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the region.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'cn-hangzhou',
+ ],
+ ],
+ [
+ 'name' => 'PageSize',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The number of images per page. Valid values: 1 to 1000.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => true,
+ 'example' => '20',
+ ],
+ ],
+ [
+ 'name' => 'CurrentPage',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The page number.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => true,
+ 'example' => '1',
+ ],
+ ],
+ [
+ 'name' => 'Mode',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The image generation mode. Valid values:'."\n"
+ ."\n"
+ .'* PERIODIC: It is automatically generated.'."\n"
+ .'* MANUAL: It is manually generated.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'enumValueTitles' => [],
+ 'example' => 'MANUAL',
+ 'enum' => [
+ 'MANUAL',
+ 'PERIODIC',
+ ],
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '4C467B38-3910-447D-87BC-AC049166F216',
+ ],
+ 'TotalCount' => [
+ 'description' => 'The total number of images returned.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '1000',
+ ],
+ 'PageSize' => [
+ 'description' => 'The number of images per page.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '20',
+ ],
+ 'CurrentPage' => [
+ 'description' => 'The page number.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '1',
+ ],
+ 'Images' => [
+ 'description' => 'The images returned.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The image details.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'BackupId' => [
+ 'description' => 'The ID of the backup.'."\n",
+ 'type' => 'string',
+ 'example' => 'backup-fdb897sdf****',
+ ],
+ 'ExportTime' => [
+ 'description' => 'The time when the image was generated. Unit: milliseconds. The value is a UNIX timestamp.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int64',
+ 'example' => '1782849566738',
+ ],
+ 'ImageId' => [
+ 'description' => 'The ID of the image.'."\n",
+ 'type' => 'string',
+ 'example' => 'image-d79x4k11pmg19****',
+ ],
+ 'InstanceId' => [
+ 'description' => 'The ID of the hardware security module (HSM).'."\n",
+ 'type' => 'string',
+ 'example' => 'hsm-cn-6ja1xknf****',
+ ],
+ 'RegionId' => [
+ 'description' => 'The ID of the region.'."\n",
+ 'type' => 'string',
+ 'example' => 'cn-hangzhou',
+ ],
+ 'Remark' => [
+ 'description' => 'The description of the backup.'."\n",
+ 'type' => 'string',
+ 'example' => 'hsm-test',
+ ],
+ 'Status' => [
+ 'description' => 'The status of the image. Valid values:'."\n"
+ ."\n"
+ .'* NEW: It is disabled.'."\n"
+ .'* DELETED: It is deleted.'."\n"
+ .'* CREATING: It is being created.'."\n"
+ .'* NORMAL: It is created.'."\n",
+ 'type' => 'string',
+ 'enumValueTitles' => [],
+ 'example' => 'CREATING',
+ 'enum' => [
+ 'NORMAL',
+ 'NEW',
+ 'DELETED',
+ 'CREATING',
+ ],
+ ],
+ 'Mode' => [
+ 'description' => 'The image generation mode. Valid values:'."\n"
+ ."\n"
+ .'* PERIODIC: It is automatically generated.'."\n"
+ .'* MANUAL: It is manually generated.'."\n",
+ 'type' => 'string',
+ 'enumValueTitles' => [],
+ 'example' => 'MANUAL',
+ 'enum' => [
+ 'PERIODIC',
+ 'MANUAL',
+ ],
+ ],
+ 'VsmDigest' => [
+ 'description' => 'The digest of the HSM.'."\n",
+ 'type' => 'string',
+ 'example' => '3kGeHnmQzXwSsfF0Jk9eJYhe2gP6An0/HlYIiZh1****',
+ ],
+ 'SourceImageUid' => [
+ 'description' => 'The ID of the source image.'."\n",
+ 'type' => 'string',
+ 'example' => 'image-ooopjygsn****',
+ ],
+ 'SourceBackupUid' => [
+ 'description' => 'The ID of the source backup.'."\n",
+ 'type' => 'string',
+ 'example' => 'backup-hodfhaol****',
+ ],
+ 'SourceRegionId' => [
+ 'description' => 'The ID of the region in which the source image resides.'."\n",
+ 'type' => 'string',
+ 'example' => 'cn-shanghai',
+ ],
+ 'SourceInstanceId' => [
+ 'description' => 'The ID of the source HSM.'."\n",
+ 'type' => 'string',
+ 'example' => 'hsm-cn-wz9i2dmefudfxtmb****',
+ ],
+ 'CopyTime' => [
+ 'description' => 'The time when the image was copied. Unit: milliseconds. The value is a UNIX timestamp.'."\n",
+ 'type' => 'string',
+ 'example' => '1641275680000',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 403 => [
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'caller has no permission',
+ ],
+ [
+ 'errorCode' => 'Backup.Deleted',
+ 'errorMessage' => 'Backup has been deleted.',
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"4C467B38-3910-447D-87BC-AC049166F216\\",\\n \\"TotalCount\\": 1000,\\n \\"PageSize\\": 20,\\n \\"CurrentPage\\": 1,\\n \\"Images\\": [\\n {\\n \\"BackupId\\": \\"backup-fdb897sdf****\\",\\n \\"ExportTime\\": 1782849566738,\\n \\"ImageId\\": \\"image-d79x4k11pmg19****\\",\\n \\"InstanceId\\": \\"hsm-cn-6ja1xknf****\\",\\n \\"RegionId\\": \\"cn-hangzhou\\",\\n \\"Remark\\": \\"hsm-test\\",\\n \\"Status\\": \\"CREATING\\",\\n \\"Mode\\": \\"MANUAL\\",\\n \\"VsmDigest\\": \\"3kGeHnmQzXwSsfF0Jk9eJYhe2gP6An0/HlYIiZh1****\\",\\n \\"SourceImageUid\\": \\"image-ooopjygsn****\\",\\n \\"SourceBackupUid\\": \\"backup-hodfhaol****\\",\\n \\"SourceRegionId\\": \\"cn-shanghai\\",\\n \\"SourceInstanceId\\": \\"hsm-cn-wz9i2dmefudfxtmb****\\",\\n \\"CopyTime\\": \\"1641275680000\\"\\n }\\n ]\\n}","type":"json"}]',
+ 'title' => 'ListImages',
+ ],
+ 'ConfigImageRemark' => [
+ 'summary' => 'Modifies the description of an image.',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'deprecated' => false,
+ 'systemTags' => [],
+ 'parameters' => [
+ [
+ 'name' => 'ImageId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the image.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'image-d79x4k11pmg19****',
+ ],
+ ],
+ [
+ 'name' => 'Remark',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The description of the image.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'hsm-****',
+ ],
+ ],
+ ],
+ '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' => '4C467B38-3910-447D-87BC-AC049166F216',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'InvalidApiParam.Error',
+ 'errorMessage' => 'api param is invalid',
+ ],
+ ],
+ 403 => [
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'caller has no permission',
+ ],
+ ],
+ 500 => [
+ [
+ 'errorCode' => 'InternalError',
+ 'errorMessage' => 'The request processing has failed due to some unknown error.',
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"4C467B38-3910-447D-87BC-AC049166F216\\"\\n}","type":"json"}]',
+ 'title' => 'ConfigImageRemark',
+ ],
+ 'CopyImage' => [
+ 'summary' => 'Copies an image to another region.',
+ 'methods' => [
+ 'post',
+ ],
+ 'schemes' => [
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'update',
+ 'abilityTreeCode' => '218511',
+ 'abilityTreeNodes' => [
+ 'FEATUREhsmQEGDGS',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'ImageUid',
+ 'in' => 'formData',
+ 'schema' => [
+ 'description' => 'The ID of the image.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'image-hafiudfahdd****',
+ ],
+ ],
+ [
+ 'name' => 'TargetRegionId',
+ 'in' => 'formData',
+ 'schema' => [
+ 'description' => 'The ID of the destination region.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'cn-beijing',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'PlainResult<OpenApiAsyncJob>',
+ 'description' => 'The details of the task.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'JobId' => [
+ 'description' => 'The ID of the task.'."\n",
+ 'type' => 'string',
+ 'example' => 'job-202401250936hze747fd7e0007005',
+ ],
+ 'Type' => [
+ 'description' => 'The operation type. Valid values:'."\n"
+ ."\n"
+ .'* create'."\n"
+ .'* cancel'."\n",
+ 'type' => 'string',
+ 'example' => 'create',
+ ],
+ 'Completed' => [
+ 'description' => 'Indicates whether the task is complete.'."\n",
+ 'type' => 'boolean',
+ 'example' => 'true',
+ ],
+ 'CreateTime' => [
+ 'description' => 'The time when the task is created. The value is accurate to the millisecond. The value is a UNIX timestamp.'."\n",
+ 'type' => 'string',
+ 'example' => '1724379766191',
+ ],
+ 'Status' => [
+ 'description' => 'The task status.'."\n",
+ 'type' => 'string',
+ 'example' => 'running',
+ ],
+ 'Response' => [
+ 'description' => 'The response returned after the task succeeds.'."\n",
+ 'type' => 'string',
+ 'example' => 'success',
+ ],
+ 'Error' => [
+ 'description' => 'The error message returned if the task fails.'."\n",
+ 'type' => 'string',
+ 'example' => 'OperationTimeout',
+ ],
+ 'Progress' => [
+ 'description' => 'The progress of the task. Unit: percent (%).'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '100',
+ ],
+ 'RequestId' => [
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '4C467B38-3910-447D-87BC-AC049166F216',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'SwitchMaster.InstanceInvalid',
+ 'errorMessage' => 'Instance not in the cluster.',
+ ],
+ [
+ 'errorCode' => 'LeaveCluster.MasterLast',
+ 'errorMessage' => 'Master instance can not leave a cluster until all other instances are left.',
+ ],
+ [
+ 'errorCode' => 'Certificate.ChainInvalid',
+ 'errorMessage' => 'Certificate chain invalid. Please make sure issuer certificate is the trust anchor and cluster certificate is signed by issuer certificate.',
+ ],
+ [
+ 'errorCode' => 'Certificate.FormatInvalid',
+ 'errorMessage' => 'Certificate format invalid. Cluster/Issuer certificate must be in PEM format.',
+ ],
+ [
+ 'errorCode' => 'ConfigClusterSubnet.DuplicateZone',
+ 'errorMessage' => 'VSwitches should not contain duplicate zones.',
+ ],
+ [
+ 'errorCode' => 'InvalidApiParam.Error',
+ 'errorMessage' => 'api param is invalid',
+ ],
+ [
+ 'errorCode' => 'InvalidClusterName',
+ 'errorMessage' => 'Invalid parameter clusterName.',
+ ],
+ [
+ 'errorCode' => 'InvalidPageSize',
+ 'errorMessage' => 'Invalid parameter pageSize.',
+ ],
+ [
+ 'errorCode' => 'InvalidCurrentPage',
+ 'errorMessage' => 'Invalid parameter currentPage.',
+ ],
+ [
+ 'errorCode' => 'InvalidRegionId',
+ 'errorMessage' => 'Invalid parameter regionId.',
+ ],
+ [
+ 'errorCode' => 'InvalidZoneId',
+ 'errorMessage' => 'Invalid parameter zoneId.',
+ ],
+ [
+ 'errorCode' => 'InvalidVSwitch',
+ 'errorMessage' => 'Invalid parameter vSwitch.',
+ ],
+ [
+ 'errorCode' => 'InvalidVpc',
+ 'errorMessage' => 'Invalid parameter vpcId.',
+ ],
+ [
+ 'errorCode' => 'InvalidVsmType',
+ 'errorMessage' => 'Invalid parameter vsmType.',
+ ],
+ [
+ 'errorCode' => 'InvalidIp',
+ 'errorMessage' => 'Invalid parameter IP.',
+ ],
+ [
+ 'errorCode' => 'InvalidAliuid',
+ 'errorMessage' => 'Invalid parameter aliuid.',
+ ],
+ [
+ 'errorCode' => 'InvalidClusterId',
+ 'errorMessage' => 'Invalid parameter clusterId.',
+ ],
+ [
+ 'errorCode' => 'InvalidInstanceId',
+ 'errorMessage' => 'Invalid parameter instanceId.',
+ ],
+ [
+ 'errorCode' => 'InvalidBackupId',
+ 'errorMessage' => 'Invalid parameter backupId.',
+ ],
+ [
+ 'errorCode' => 'InvalidImageId',
+ 'errorMessage' => 'Invalid parameter imageId.',
+ ],
+ [
+ 'errorCode' => 'HsmInstanceNotExist.Error',
+ 'errorMessage' => 'hsm instance not exist',
+ ],
+ [
+ 'errorCode' => 'HSMIntanceNotActived.Error',
+ 'errorMessage' => 'hsm intance is not actived',
+ ],
+ [
+ 'errorCode' => 'WhiteListMaxCount.Error',
+ 'errorMessage' => 'whilte list is more than max count',
+ ],
+ [
+ 'errorCode' => 'ClusterIdIsNotExists.Error',
+ 'errorMessage' => 'cluster ID non-exists',
+ ],
+ [
+ 'errorCode' => 'InstanceListIsEmpty.Error',
+ 'errorMessage' => 'instance list is empty',
+ ],
+ [
+ 'errorCode' => 'InstanceIdIsEmpty.Error',
+ 'errorMessage' => 'instance id is empty',
+ ],
+ [
+ 'errorCode' => 'InstanceIsNotExistsInCluster.Error',
+ 'errorMessage' => 'cluster has no such instance',
+ ],
+ [
+ 'errorCode' => 'InstanceIsExistsInCluster.Error',
+ 'errorMessage' => 'instance already in the cluster',
+ ],
+ [
+ 'errorCode' => 'RegionNoEmpty.Error',
+ 'errorMessage' => 'region no. is empty',
+ ],
+ [
+ 'errorCode' => 'ClusterNameEmpty.Error',
+ 'errorMessage' => 'empty cluster name not allowed',
+ ],
+ [
+ 'errorCode' => 'ClusterNameIsExists.Error',
+ 'errorMessage' => 'the cluster name is already taken',
+ ],
+ [
+ 'errorCode' => 'IpNotValid.Error',
+ 'errorMessage' => 'ip not valid',
+ ],
+ [
+ 'errorCode' => 'ClusterIsEmpty.Error',
+ 'errorMessage' => 'cluster is empty',
+ ],
+ [
+ 'errorCode' => 'NoMasterFoundInCluster.Error',
+ 'errorMessage' => 'cluster has no master instance',
+ ],
+ [
+ 'errorCode' => 'HsmInstanceIdNotFound.Error',
+ 'errorMessage' => 'no such instance',
+ ],
+ [
+ 'errorCode' => 'NoInstanceFoundInCluster.Error',
+ 'errorMessage' => 'cluster is empty',
+ ],
+ [
+ 'errorCode' => 'Whitelist.Invalid',
+ 'errorMessage' => 'Whitelist blocks not in CIDR format.',
+ ],
+ [
+ 'errorCode' => 'Whitelist.TooLong',
+ 'errorMessage' => 'Whitelist too long, exceeds 10 CIDR blocks.',
+ ],
+ ],
+ 403 => [
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'User has no permission to access this resource.',
+ ],
+ [
+ 'errorCode' => 'Trial.Forbidden',
+ 'errorMessage' => 'Current user is not allowed for trials!',
+ ],
+ [
+ 'errorCode' => 'Forbidden.InstanceInCluster',
+ 'errorMessage' => 'This API is forbidden for instances in cluster.',
+ ],
+ [
+ 'errorCode' => 'JoinCluster.InstanceIncorrectState',
+ 'errorMessage' => 'Instance not in Active/Pending state.',
+ ],
+ [
+ 'errorCode' => 'InstanceNotPaused',
+ 'errorMessage' => 'Please pause the instance before reset.',
+ ],
+ [
+ 'errorCode' => 'InstanceNotActive',
+ 'errorMessage' => 'Instance is not active.',
+ ],
+ [
+ 'errorCode' => 'ConfigIp.IncorrectState',
+ 'errorMessage' => 'Instance not in pending or active state, can not config IP address.',
+ ],
+ [
+ 'errorCode' => 'SwitchMaster.IncorrectState',
+ 'errorMessage' => 'Cluster not initialized, please initialize the cluster first.',
+ ],
+ [
+ 'errorCode' => 'SyncCluster.IncorrectState',
+ 'errorMessage' => 'Cluster not initialized, please initialize the cluster first.',
+ ],
+ [
+ 'errorCode' => 'LeaveCluster.InstanceInvalid',
+ 'errorMessage' => 'The instance is not in the cluster.',
+ ],
+ [
+ 'errorCode' => 'DeleteCluster.IncorrectState',
+ 'errorMessage' => 'Cluster not empty, please remove all instances first.',
+ ],
+ [
+ 'errorCode' => 'JoinCluster.InstanceVSwitchNotInCluster',
+ 'errorMessage' => 'Instance\'s vSwitch is not in cluster config, please change instance\'s vSwitch first.',
+ ],
+ [
+ 'errorCode' => 'JoinCluster.InstanceInitialized',
+ 'errorMessage' => 'Initialized instance can not join a cluster.',
+ ],
+ [
+ 'errorCode' => 'JoinCluster.IncorrectState',
+ 'errorMessage' => 'Cluster not initialized, please initialize the cluster first.',
+ ],
+ [
+ 'errorCode' => 'InitializeCluster.InstanceNotInitialized',
+ 'errorMessage' => 'Cluster master instance not initialized, please initialize cluster master instance first.',
+ ],
+ [
+ 'errorCode' => 'InitializeCluster.IncorrectConfig',
+ 'errorMessage' => 'Cluster subnet not configured, please config cluster subnet first.',
+ ],
+ [
+ 'errorCode' => 'InitializeCluster.IncorrectState',
+ 'errorMessage' => 'Cluster initialized, do not re-initialize.',
+ ],
+ [
+ 'errorCode' => 'Cluster.CN.ActionForbidden',
+ 'errorMessage' => 'This API is forbidden for non-international site cluster.',
+ ],
+ [
+ 'errorCode' => 'Cluster.INTL.ActionForbidden',
+ 'errorMessage' => 'This API is forbidden for international site cluster.',
+ ],
+ [
+ 'errorCode' => 'ConfigClusterCertificate.IncorrectState',
+ 'errorMessage' => 'Cluster initialized or certificates already configured.',
+ ],
+ [
+ 'errorCode' => 'ConfigClusterSubnet.InvalidVpcId',
+ 'errorMessage' => 'VPC Id invalid. Cluster VPC is the same as cluster master\'s VPC.',
+ ],
+ [
+ 'errorCode' => 'ConfigClusterSubnet.InvalidVSwitchId',
+ 'errorMessage' => 'VSwitch Id invalid. VSwitches should contain all current cluster vSwitches.',
+ ],
+ [
+ 'errorCode' => 'ConfigClusterSubnet.IncorrectState',
+ 'errorMessage' => 'Cluster not in NEW state, can not config cluster subnet.',
+ ],
+ [
+ 'errorCode' => 'ClusterName.Exist',
+ 'errorMessage' => 'Cluster name already exists, please use another name.',
+ ],
+ [
+ 'errorCode' => 'Image.ImageStatusInValid',
+ 'errorMessage' => 'Image status is invalid.',
+ ],
+ [
+ 'errorCode' => 'CopyImage.ImageAlreadyCopied',
+ 'errorMessage' => 'Image already copied, secondary copy is not supported.',
+ ],
+ [
+ 'errorCode' => 'Image.ActionForbiddenINTL',
+ 'errorMessage' => 'This API is forbidden for international site.',
+ ],
+ [
+ 'errorCode' => 'Image.ActionForbiddenCN',
+ 'errorMessage' => 'This API is forbidden for non-international site.',
+ ],
+ [
+ 'errorCode' => 'CopyImage.RegionInvalid',
+ 'errorMessage' => 'Source region or target region invalid.',
+ ],
+ [
+ 'errorCode' => 'Backup.ActionForbiddenINTL',
+ 'errorMessage' => 'This API is forbidden for international site.',
+ ],
+ [
+ 'errorCode' => 'CopyImage.TargetRegionImageAlreadyExists',
+ 'errorMessage' => 'Target region has the same digest image.',
+ ],
+ ],
+ [
+ [
+ 'errorCode' => 'Resource.NotFound',
+ 'errorMessage' => 'Resource not found.',
+ ],
+ ],
+ [
+ [
+ 'errorCode' => 'ClusterAPI.NotSupported',
+ 'errorMessage' => 'ClusterAPI not supported in this region.',
+ ],
+ ],
+ 409 => [
+ [
+ 'errorCode' => 'Conflict.InstanceModifying',
+ 'errorMessage' => 'Instance is being modified by a previous request. Please try again later.',
+ ],
+ [
+ 'errorCode' => 'Conflict',
+ 'errorMessage' => 'Resource is being updated by a previous request. Current request is redundant.',
+ ],
+ [
+ 'errorCode' => 'Cluster.Conflict',
+ 'errorMessage' => 'The cluster is being updated by a previous request. Please try again later.',
+ ],
+ ],
+ 500 => [
+ [
+ 'errorCode' => 'ConfigWhitelistFailed.Error',
+ 'errorMessage' => 'config white list error',
+ ],
+ [
+ 'errorCode' => 'ActionFailed.Error',
+ 'errorMessage' => 'internal error, please try again',
+ ],
+ [
+ 'errorCode' => 'InternalError',
+ 'errorMessage' => 'The request processing has failed due to some unknown error.',
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"JobId\\": \\"job-202401250936hze747fd7e0007005\\",\\n \\"Type\\": \\"create\\",\\n \\"Completed\\": true,\\n \\"CreateTime\\": \\"1724379766191\\",\\n \\"Status\\": \\"running\\",\\n \\"Response\\": \\"success\\",\\n \\"Error\\": \\"OperationTimeout\\",\\n \\"Progress\\": 100,\\n \\"RequestId\\": \\"4C467B38-3910-447D-87BC-AC049166F216\\"\\n}","type":"json"}]',
+ 'title' => 'CopyImage',
+ 'description' => 'This operation requires that the destination region does not have the same image. This operation is available only for hardware security modules (HSMs) outside the Chinese mainland.'."\n",
+ ],
+ 'ExportImage' => [
+ 'summary' => 'Exports the image for a specified hardware security module (HSM).',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'none',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '203656',
+ 'abilityTreeNodes' => [
+ 'FEATUREhsmV7VE3Y',
+ 'FEATUREhsm01FLNB',
+ 'FEATUREhsmGIFYCG',
+ 'FEATUREhsmLBBV5W',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'InstanceId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the HSM.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'hsm-cn-vj30bil8****',
+ ],
+ ],
+ [
+ 'name' => 'ImageId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the image.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'image-8vbdd5uc6v10ecn5****',
+ ],
+ ],
+ ],
+ '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' => '4C467B38-3910-447D-87BC-AC049166F216',
+ ],
+ 'Job' => [
+ 'description' => 'The information about the asynchronous task returned.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'JobId' => [
+ 'description' => 'The ID of the task.'."\n",
+ 'type' => 'string',
+ 'example' => 'b1748ca6-6b55-49f4-a6d4-2d694a9f3693',
+ ],
+ 'Type' => [
+ 'description' => 'The type of the task operation. Valid values:'."\n"
+ ."\n"
+ .'* create'."\n"
+ .'* cancel'."\n",
+ 'type' => 'string',
+ 'example' => 'create',
+ ],
+ 'Completed' => [
+ 'description' => 'Indicates whether the task is complete. Valid values:'."\n"
+ ."\n"
+ .'* true'."\n"
+ .'* false'."\n",
+ 'type' => 'boolean',
+ 'example' => 'true',
+ ],
+ 'Status' => [
+ 'description' => 'The task status. Valid values:'."\n"
+ ."\n"
+ .'* running'."\n"
+ .'* cancel'."\n"
+ .'* fail'."\n"
+ .'* success'."\n",
+ 'type' => 'string',
+ 'enumValueTitles' => [
+ 'running' => '',
+ 'cancel' => '',
+ 'fail' => '',
+ 'success' => '',
+ ],
+ 'example' => 'running',
+ 'enum' => [
+ 'running',
+ 'success',
+ 'fail',
+ 'cancel',
+ ],
+ ],
+ 'Response' => [
+ 'description' => 'The response returned after the operation succeeds.'."\n",
+ 'type' => 'string',
+ 'example' => 'success',
+ ],
+ 'Error' => [
+ 'description' => 'The error message returned if the operation is abnormal or fails.'."\n",
+ 'type' => 'string',
+ 'example' => 'Job.Canceled',
+ ],
+ 'Process' => [
+ 'description' => 'The progress of the task. Unit: percent (%).'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '100',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'InvalidApiParam.Error',
+ 'errorMessage' => 'api param is invalid',
+ ],
+ ],
+ 403 => [
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'User has no permission to access this resource.',
+ ],
+ [
+ 'errorCode' => 'Backup.ActionForbidden',
+ 'errorMessage' => 'This API is forbidden for this backup type.',
+ ],
+ ],
+ 500 => [
+ [
+ 'errorCode' => 'InternalError',
+ 'errorMessage' => 'The request processing has failed due to some unknown error.',
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"4C467B38-3910-447D-87BC-AC049166F216\\",\\n \\"Job\\": {\\n \\"JobId\\": \\"b1748ca6-6b55-49f4-a6d4-2d694a9f3693\\",\\n \\"Type\\": \\"create\\",\\n \\"Completed\\": true,\\n \\"Status\\": \\"running\\",\\n \\"Response\\": \\"success\\",\\n \\"Error\\": \\"Job.Canceled\\",\\n \\"Process\\": 100\\n }\\n}","type":"json"}]',
+ 'title' => 'ExportImage',
+ ],
+ 'EnableBackup' => [
+ 'summary' => 'Binds a backup to a specified hardware security module (HSM).',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'update',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '203669',
+ 'abilityTreeNodes' => [
+ 'FEATUREhsmQEGDGS',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'InstanceId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the HSM.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'hsm-cn-mp90fxef****',
+ ],
+ ],
+ [
+ 'name' => 'BackupId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the backup.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'backup-1736207****',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '4C467B38-3910-447D-87BC-AC049166F216',
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'InvalidApiParam.Error',
+ 'errorMessage' => 'api param is invalid',
+ ],
+ ],
+ 403 => [
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'caller has no permission',
+ ],
+ [
+ 'errorCode' => 'Backup.ActionForbidden',
+ 'errorMessage' => 'This API is forbidden for this backup type.',
+ ],
+ ],
+ 500 => [
+ [
+ 'errorCode' => 'InternalError',
+ 'errorMessage' => 'The request processing has failed due to some unknown error.',
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"4C467B38-3910-447D-87BC-AC049166F216\\"\\n}","type":"json"}]',
+ 'title' => 'EnableBackup',
+ 'description' => 'This operation is available only for backups in the Chinese mainland.'."\n",
+ ],
+ 'GetBackup' => [
+ 'summary' => 'Queries the information about a specified backup.',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'abilityTreeCode' => '203668',
+ 'abilityTreeNodes' => [
+ 'FEATUREhsmQEGDGS',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'BackupId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the backup.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'backup-fdb897sdf****',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'description' => 'The response parameters.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '4C467B38-3910-447D-87BC-AC049166F216',
+ ],
+ 'Backup' => [
+ 'description' => 'The information about the backup.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'BackupId' => [
+ 'description' => 'The ID of the backup.'."\n",
+ 'type' => 'string',
+ 'example' => 'backup-fdb897sdf****',
+ ],
+ 'CreateTime' => [
+ 'description' => 'The time when the backup is created. The value is accurate to the millisecond. The value is a UNIX timestamp.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int64',
+ 'example' => '1682417553781',
+ ],
+ 'ExpireTime' => [
+ 'description' => 'The expiration time of the backup. The value is accurate to the millisecond. The value is a UNIX timestamp.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int64',
+ 'example' => '1682417553781',
+ ],
+ 'InstanceId' => [
+ 'description' => 'The ID of the hardware security module (HSM) that is associated with the backup.'."\n",
+ 'type' => 'string',
+ 'example' => 'hsm-cn-5yd35431****',
+ ],
+ 'Name' => [
+ 'description' => 'The name of the backup.'."\n",
+ 'type' => 'string',
+ 'example' => 'backup-te****',
+ ],
+ 'RegionId' => [
+ 'description' => 'The ID of the region.'."\n",
+ 'type' => 'string',
+ 'example' => 'cn-hangzhou',
+ ],
+ 'Remark' => [
+ 'description' => 'The description of the backup.'."\n",
+ 'type' => 'string',
+ 'example' => 'test',
+ ],
+ 'Status' => [
+ 'description' => 'The status of the backup. Valid values:'."\n"
+ ."\n"
+ .'* NEW'."\n"
+ .'* EXPIRED'."\n"
+ .'* ENABLED'."\n",
+ 'type' => 'string',
+ 'enumValueTitles' => [],
+ 'example' => 'NEW',
+ 'enum' => [
+ 'EXPIRED',
+ 'ENABLED',
+ 'NEW',
+ ],
+ ],
+ 'MaxImageCount' => [
+ 'description' => 'The maximum number of images.'."\n",
+ 'type' => 'string',
+ 'example' => '3',
+ ],
+ 'Type' => [
+ 'description' => 'The type of the backup. Valid values:'."\n"
+ ."\n"
+ .'* DEFAULT'."\n"
+ .'* NORMAL'."\n",
+ 'type' => 'string',
+ 'enumValueTitles' => [],
+ 'example' => 'DEFAULT',
+ 'enum' => [
+ 'DEFAULT',
+ 'NORMAL',
+ ],
+ ],
+ 'BackupPeriod' => [
+ 'description' => 'The automatic backup cycle. Unit: days.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int64',
+ 'example' => '3',
+ ],
+ 'NextImageCreateTime' => [
+ 'description' => 'The next time when the image is created. The value is accurate to the millisecond. The value is a UNIX timestamp.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int64',
+ 'example' => '1682417553781',
+ ],
+ 'BackupHourInDay' => [
+ 'description' => 'The backup time in the 24-hour format.'."\n",
+ 'type' => 'string',
+ 'example' => '10',
+ ],
+ 'SpInstanceId' => [
+ 'description' => 'The ID of the backup. This parameter is available only for HSM backups in the Chinese mainland.'."\n",
+ 'type' => 'string',
+ 'example' => 'backup-fdb897sdfg53****',
+ ],
+ 'AutoImageCount' => [
+ 'description' => 'The number of images that are automatically backed up.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int64',
+ 'example' => '1',
+ ],
+ 'OwnerInstanceId' => [
+ 'description' => 'The ID of the HSM to which the backup belongs. This parameter is available only for HSM backups outside the Chinese mainland and the value of this parameter is consistent with the value of InstanceId.'."\n",
+ 'type' => 'string',
+ 'example' => 'hsm-cn-huoahd****',
+ ],
+ 'ReleaseTime' => [
+ 'description' => 'The time when the backup is released. The value is accurate to the millisecond. The value is a UNIX timestamp.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int64',
+ 'example' => '1641275680000',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 403 => [
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'caller has no permission',
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"4C467B38-3910-447D-87BC-AC049166F216\\",\\n \\"Backup\\": {\\n \\"BackupId\\": \\"backup-fdb897sdf****\\",\\n \\"CreateTime\\": 1682417553781,\\n \\"ExpireTime\\": 1682417553781,\\n \\"InstanceId\\": \\"hsm-cn-5yd35431****\\",\\n \\"Name\\": \\"backup-te****\\",\\n \\"RegionId\\": \\"cn-hangzhou\\",\\n \\"Remark\\": \\"test\\",\\n \\"Status\\": \\"NEW\\",\\n \\"MaxImageCount\\": \\"3\\",\\n \\"Type\\": \\"DEFAULT\\",\\n \\"BackupPeriod\\": 3,\\n \\"NextImageCreateTime\\": 1682417553781,\\n \\"BackupHourInDay\\": \\"10\\",\\n \\"SpInstanceId\\": \\"backup-fdb897sdfg53****\\",\\n \\"AutoImageCount\\": 1,\\n \\"OwnerInstanceId\\": \\"hsm-cn-huoahd****\\",\\n \\"ReleaseTime\\": 1641275680000\\n }\\n}","type":"json"}]',
+ 'title' => 'GetBackup',
+ ],
+ 'ListBackups' => [
+ 'summary' => 'Queries the backups that meet the query conditions.',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'list',
+ 'abilityTreeCode' => '203775',
+ 'abilityTreeNodes' => [
+ 'FEATUREhsmQEGDGS',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'RegionId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the region.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'cn-hangzhou',
+ ],
+ ],
+ [
+ 'name' => 'CurrentPage',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The page number.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int64',
+ 'required' => true,
+ 'example' => '1',
+ ],
+ ],
+ [
+ 'name' => 'PageSize',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The number of entries per page. Valid values: 1 to 1000.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int64',
+ 'required' => true,
+ 'example' => '20',
+ ],
+ ],
+ [
+ 'name' => 'Name',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The name of the backup.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'hsm-te****',
+ ],
+ ],
+ [
+ 'name' => 'BackupId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the backup.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'backup-1648438****',
+ ],
+ ],
+ [
+ 'name' => 'InstanceId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the hardware security module (HSM).'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'hsm-cn-vj30bil8****',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'description' => 'The response parameters.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '4C467B38-3910-447D-87BC-AC049166F216',
+ ],
+ 'TotalCount' => [
+ 'description' => 'The total number of entries returned.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '30',
+ ],
+ 'PageSize' => [
+ 'description' => 'The number of entries per page.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '20',
+ ],
+ 'CurrentPage' => [
+ 'description' => 'The page number.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '1',
+ ],
+ 'Backups' => [
+ 'description' => 'The backups returned.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The information about the backup.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'BackupId' => [
+ 'description' => 'The ID of the backup.'."\n",
+ 'type' => 'string',
+ 'example' => 'backup-1648438****',
+ ],
+ 'CreateTime' => [
+ 'description' => 'The time when the backup is created. The value is accurate to the millisecond. The value is a UNIX timestamp.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int64',
+ 'example' => '1637229596000',
+ ],
+ 'ExpireTime' => [
+ 'description' => 'The expiration time of the backup. The value is accurate to the millisecond. The value is a UNIX timestamp.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int64',
+ 'example' => '1682417553781'."\n",
+ ],
+ 'InstanceId' => [
+ 'description' => 'The ID of the HSM that is associated with the backup.'."\n",
+ 'type' => 'string',
+ 'example' => 'hsm-cn-vj30bil8****',
+ ],
+ 'Name' => [
+ 'description' => 'The name of the backup.'."\n",
+ 'type' => 'string',
+ 'example' => 'backup-te****',
+ ],
+ 'RegionId' => [
+ 'description' => 'The ID of the region.'."\n",
+ 'type' => 'string',
+ 'example' => 'ap-southeast-1',
+ ],
+ 'Remark' => [
+ 'description' => 'The description of the backup.'."\n",
+ 'type' => 'string',
+ 'example' => 'normal backup',
+ ],
+ 'Status' => [
+ 'description' => 'The status of the backup. Valid values:'."\n"
+ ."\n"
+ .'* NEW: The backup is disabled.'."\n"
+ .'* EXPIRED: The backup expired.'."\n"
+ .'* ENABLED: The backup is enabled.'."\n",
+ 'type' => 'string',
+ 'enumValueTitles' => [],
+ 'example' => 'ENABLED',
+ 'enum' => [
+ 'NEW',
+ 'ENABLED',
+ 'EXPIRED',
+ ],
+ ],
+ 'MaxImageCount' => [
+ 'description' => 'The number of images.'."\n",
+ 'type' => 'string',
+ 'example' => '3',
+ ],
+ 'Type' => [
+ 'description' => 'The type of the backup. Valid values:'."\n"
+ ."\n"
+ .'* DEFAULT'."\n"
+ .'* NORMAL'."\n",
+ 'type' => 'string',
+ 'enumValueTitles' => [],
+ 'example' => 'NORMAL',
+ 'enum' => [
+ 'NORMAL',
+ 'DEFAULT',
+ ],
+ ],
+ 'BackupPeriod' => [
+ 'description' => 'The automatic backup cycle. Unit: days.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int64',
+ 'example' => '3',
+ ],
+ 'NextImageCreateTime' => [
+ 'description' => 'The time when the image is created next time. The value is accurate to the millisecond. The value is a UNIX timestamp.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int64',
+ 'example' => '1682417553781'."\n",
+ ],
+ 'AutoImageCount' => [
+ 'description' => 'The number of images that are automatically backed up.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int64',
+ 'example' => '1',
+ ],
+ 'BackupHourInDay' => [
+ 'description' => 'The backup time on the hour that is in the 24-hour clock.'."\n",
+ 'type' => 'string',
+ 'example' => '13',
+ ],
+ 'SpInstanceId' => [
+ 'description' => 'The ID of the backup. This parameter is available only for HSM backups in the Chinese mainland.'."\n",
+ 'type' => 'string',
+ 'example' => 'backup-fdb897sdfg534-****',
+ ],
+ 'ReleaseTime' => [
+ 'description' => 'The time when the backup is released. The value is accurate to the millisecond. The value is a UNIX timestamp.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int64',
+ 'example' => '1641275680000',
+ ],
+ 'OwnerInstanceId' => [
+ 'description' => 'The ID of the HSM to which the backup belongs. This parameter is available only for HSM backups outside the Chinese mainland and the value of this parameter is consistent with the value of InstanceId.'."\n",
+ 'type' => 'string',
+ 'example' => 'hsm-cn-vj30bil8****',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 403 => [
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'caller has no permission',
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"4C467B38-3910-447D-87BC-AC049166F216\\",\\n \\"TotalCount\\": 30,\\n \\"PageSize\\": 20,\\n \\"CurrentPage\\": 1,\\n \\"Backups\\": [\\n {\\n \\"BackupId\\": \\"backup-1648438****\\",\\n \\"CreateTime\\": 1637229596000,\\n \\"ExpireTime\\": 1682417553781,\\n \\"InstanceId\\": \\"hsm-cn-vj30bil8****\\",\\n \\"Name\\": \\"backup-te****\\",\\n \\"RegionId\\": \\"ap-southeast-1\\",\\n \\"Remark\\": \\"normal backup\\",\\n \\"Status\\": \\"ENABLED\\",\\n \\"MaxImageCount\\": \\"3\\",\\n \\"Type\\": \\"NORMAL\\",\\n \\"BackupPeriod\\": 3,\\n \\"NextImageCreateTime\\": 1682417553781,\\n \\"AutoImageCount\\": 1,\\n \\"BackupHourInDay\\": \\"13\\",\\n \\"SpInstanceId\\": \\"backup-fdb897sdfg534-****\\",\\n \\"ReleaseTime\\": 1641275680000,\\n \\"OwnerInstanceId\\": \\"hsm-cn-vj30bil8****\\"\\n }\\n ]\\n}","type":"json"}]',
+ 'title' => 'ListBackups',
+ ],
+ 'ConfigBackupTask' => [
+ 'summary' => 'Modifies the execution mode of a backup task.',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'update',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeNodes' => [
+ 'FEATUREhsmV7VE3Y',
+ 'FEATUREhsm01FLNB',
+ 'FEATUREhsmGIFYCG',
+ 'FEATUREhsmLBBV5W',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'BackupId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the backup.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'backup-173620705****',
+ ],
+ ],
+ [
+ 'name' => 'BackupPeriod',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The automatic backup cycle. Unit: days. Valid values: 1, 3, 7, and 30.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int64',
+ 'required' => true,
+ 'maximum' => '30',
+ 'minimum' => '1',
+ 'enumValueTitles' => [],
+ 'example' => '3',
+ 'enum' => [
+ '1',
+ '3',
+ '7',
+ '30',
+ ],
+ ],
+ ],
+ [
+ 'name' => 'BackupHourInDay',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The backup time in the 24-hour format. Valid values: 1 to 24.'."\n"
+ ."\n"
+ .'Enumeration values:'."\n"
+ ."\n"
+ .'* 0'."\n"
+ .'* 1'."\n"
+ .'* 2'."\n"
+ .'* 3'."\n"
+ .'* 4'."\n"
+ .'* 5'."\n"
+ .'* 6'."\n"
+ .'* 7'."\n"
+ .'* 8'."\n"
+ .'* 9'."\n"
+ .'* 10'."\n"
+ .'* 11'."\n"
+ .'* 12'."\n"
+ .'* 13'."\n"
+ .'* 14'."\n"
+ .'* 15'."\n"
+ .'* 16'."\n"
+ .'* 17'."\n"
+ .'* 18'."\n"
+ .'* 19'."\n"
+ .'* 20'."\n"
+ .'* 21'."\n"
+ .'* 22'."\n"
+ .'* 23'."\n",
+ 'type' => 'integer',
+ 'format' => 'int64',
+ 'required' => true,
+ 'maximum' => '23',
+ 'minimum' => '0',
+ 'enumValueTitles' => [],
+ 'example' => '12',
+ 'enum' => [
+ '0',
+ '1',
+ '2',
+ '3',
+ '4',
+ '5',
+ '6',
+ '7',
+ '8',
+ '9',
+ '10',
+ '11',
+ '12',
+ '13',
+ '14',
+ '15',
+ '16',
+ '17',
+ '18',
+ '19',
+ '20',
+ '21',
+ '22',
+ '23',
+ ],
+ ],
+ ],
+ [
+ 'name' => 'Manual2PeriodicList',
+ 'in' => 'query',
+ 'style' => 'flat',
+ 'schema' => [
+ 'description' => 'The IDs of images for which the manual backup mode is updated to the automatic backup mode.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The ID of the image.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'image-haiduf23bj****',
+ ],
+ 'required' => false,
+ ],
+ ],
+ [
+ 'name' => 'Periodic2ManualList',
+ 'in' => 'query',
+ 'style' => 'flat',
+ 'schema' => [
+ 'description' => 'The IDs of images for which the automatic backup mode is updated to the manual backup mode.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The ID of the image.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'image-daiduahsbj****',
+ ],
+ 'required' => false,
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '4C467B38-3910-447D-87BC-AC049166F216',
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'InvalidApiParam.Error',
+ 'errorMessage' => 'api param is invalid',
+ ],
+ ],
+ 403 => [
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'caller has no permission',
+ ],
+ [
+ 'errorCode' => 'Backup.ActionForbidden',
+ 'errorMessage' => 'This API is forbidden for this backup type.',
+ ],
+ ],
+ 500 => [
+ [
+ 'errorCode' => 'InternalError',
+ 'errorMessage' => 'The request processing has failed due to some unknown error.',
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"4C467B38-3910-447D-87BC-AC049166F216\\"\\n}","type":"json"}]',
+ 'title' => 'ConfigBackupTask',
+ 'description' => 'Only hardware security modules (HSMs) in the Chinese mainland support the operation.'."\n",
+ ],
+ 'ResetBackup' => [
+ 'summary' => 'Disassociates a backup from a hardware security module (HSM).',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'update',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeNodes' => [
+ 'FEATUREhsmQEGDGS',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'BackupId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the backup.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'backup-fdb897sdfg5****',
+ ],
+ ],
+ ],
+ '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' => '4C467B38-3910-447D-87BC-AC049166F216',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'InvalidApiParam.Error',
+ 'errorMessage' => 'api param is invalid',
+ ],
+ ],
+ 403 => [
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'caller has no permission',
+ ],
+ [
+ 'errorCode' => 'Backup.ActionForbidden',
+ 'errorMessage' => 'This API is forbidden for this backup type.',
+ ],
+ ],
+ 500 => [
+ [
+ 'errorCode' => 'InternalError',
+ 'errorMessage' => 'The request processing has failed due to some unknown error.',
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"4C467B38-3910-447D-87BC-AC049166F216\\"\\n}","type":"json"}]',
+ 'title' => 'ResetBackup',
+ 'description' => 'This operation is available only for HSMs in the Chinese mainland.'."\n",
+ ],
+ 'ConfigBackupRemark' => [
+ 'summary' => 'Configures the name and description of a backup.',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'update',
+ 'abilityTreeCode' => '203655',
+ 'abilityTreeNodes' => [
+ 'FEATUREhsmQEGDGS',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'BackupId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the backup.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'backup-fdb897sdfg****',
+ ],
+ ],
+ [
+ 'name' => 'Remark',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The description of the backup.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'Test backup.',
+ ],
+ ],
+ [
+ 'name' => 'Name',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The name of the backup.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'backup-test',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'The data that is returned.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '4C467B38-3910-447D-87BC-AC049166F216',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'InvalidApiParam.Error',
+ 'errorMessage' => 'api param is invalid',
+ ],
+ ],
+ 403 => [
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'caller has no permission',
+ ],
+ ],
+ 500 => [
+ [
+ 'errorCode' => 'InternalError',
+ 'errorMessage' => 'The request processing has failed due to some unknown error.',
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"4C467B38-3910-447D-87BC-AC049166F216\\"\\n}","type":"json"}]',
+ 'title' => 'ConfigBackupRemark',
+ ],
+ 'DeleteCluster' => [
+ 'methods' => [
+ 'post',
+ ],
+ 'schemes' => [
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'delete',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'ClusterId',
+ 'in' => 'formData',
+ 'schema' => [
+ 'description' => 'The ID of the cluster.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'cluster-NZB9Oj5Yfd8Y****',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'BaseResult',
+ 'description' => 'BaseResult'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '4C467B38-3910-447D-87BC-AC049166F216',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'SwitchMaster.InstanceInvalid',
+ 'errorMessage' => 'Instance not in the cluster.',
+ ],
+ [
+ 'errorCode' => 'LeaveCluster.MasterLast',
+ 'errorMessage' => 'Master instance can not leave a cluster until all other instances are left.',
+ ],
+ [
+ 'errorCode' => 'Certificate.ChainInvalid',
+ 'errorMessage' => 'Certificate chain invalid. Please make sure issuer certificate is the trust anchor and cluster certificate is signed by issuer certificate.',
+ ],
+ [
+ 'errorCode' => 'Certificate.FormatInvalid',
+ 'errorMessage' => 'Certificate format invalid. Cluster/Issuer certificate must be in PEM format.',
+ ],
+ [
+ 'errorCode' => 'ConfigClusterSubnet.DuplicateZone',
+ 'errorMessage' => 'VSwitches should not contain duplicate zones.',
+ ],
+ [
+ 'errorCode' => 'InvalidApiParam.Error',
+ 'errorMessage' => 'api param is invalid',
+ ],
+ [
+ 'errorCode' => 'InvalidClusterName',
+ 'errorMessage' => 'Invalid parameter clusterName.',
+ ],
+ [
+ 'errorCode' => 'InvalidPageSize',
+ 'errorMessage' => 'Invalid parameter pageSize.',
+ ],
+ [
+ 'errorCode' => 'InvalidCurrentPage',
+ 'errorMessage' => 'Invalid parameter currentPage.',
+ ],
+ [
+ 'errorCode' => 'InvalidRegionId',
+ 'errorMessage' => 'Invalid parameter regionId.',
+ ],
+ [
+ 'errorCode' => 'InvalidVSwitch',
+ 'errorMessage' => 'Invalid parameter vSwitch.',
+ ],
+ [
+ 'errorCode' => 'InvalidVpc',
+ 'errorMessage' => 'Invalid parameter vpcId.',
+ ],
+ [
+ 'errorCode' => 'InvalidIp',
+ 'errorMessage' => 'Invalid parameter IP.',
+ ],
+ [
+ 'errorCode' => 'InvalidAliuid',
+ 'errorMessage' => 'Invalid parameter aliuid.',
+ ],
+ [
+ 'errorCode' => 'InvalidClusterId',
+ 'errorMessage' => 'Invalid parameter clusterId.',
+ ],
+ [
+ 'errorCode' => 'InvalidInstanceId',
+ 'errorMessage' => 'Invalid parameter instanceId.',
+ ],
+ [
+ 'errorCode' => 'InvalidBackupId',
+ 'errorMessage' => 'Invalid parameter backupId.',
+ ],
+ [
+ 'errorCode' => 'InvalidImageId',
+ 'errorMessage' => 'Invalid parameter imageId.',
+ ],
+ [
+ 'errorCode' => 'HsmInstanceNotExist.Error',
+ 'errorMessage' => 'hsm instance not exist',
+ ],
+ [
+ 'errorCode' => 'HSMIntanceNotActived.Error',
+ 'errorMessage' => 'hsm intance is not actived',
+ ],
+ [
+ 'errorCode' => 'WhiteListMaxCount.Error',
+ 'errorMessage' => 'whilte list is more than max count',
+ ],
+ [
+ 'errorCode' => 'ClusterIdIsNotExists.Error',
+ 'errorMessage' => 'cluster ID non-exists',
+ ],
+ [
+ 'errorCode' => 'InstanceListIsEmpty.Error',
+ 'errorMessage' => 'instance list is empty',
+ ],
+ [
+ 'errorCode' => 'InstanceIdIsEmpty.Error',
+ 'errorMessage' => 'instance id is empty',
+ ],
+ [
+ 'errorCode' => 'InstanceIsNotExistsInCluster.Error',
+ 'errorMessage' => 'cluster has no such instance',
+ ],
+ [
+ 'errorCode' => 'InstanceIsExistsInCluster.Error',
+ 'errorMessage' => 'instance already in the cluster',
+ ],
+ [
+ 'errorCode' => 'RegionNoEmpty.Error',
+ 'errorMessage' => 'region no. is empty',
+ ],
+ [
+ 'errorCode' => 'ClusterNameEmpty.Error',
+ 'errorMessage' => 'empty cluster name not allowed',
+ ],
+ [
+ 'errorCode' => 'ClusterNameIsExists.Error',
+ 'errorMessage' => 'the cluster name is already taken',
+ ],
+ [
+ 'errorCode' => 'IpNotValid.Error',
+ 'errorMessage' => 'ip not valid',
+ ],
+ [
+ 'errorCode' => 'ClusterIsEmpty.Error',
+ 'errorMessage' => 'cluster is empty',
+ ],
+ [
+ 'errorCode' => 'NoMasterFoundInCluster.Error',
+ 'errorMessage' => 'cluster has no master instance',
+ ],
+ [
+ 'errorCode' => 'HsmInstanceIdNotFound.Error',
+ 'errorMessage' => 'no such instance',
+ ],
+ [
+ 'errorCode' => 'NoInstanceFoundInCluster.Error',
+ 'errorMessage' => 'cluster is empty',
+ ],
+ [
+ 'errorCode' => 'Whitelist.Invalid',
+ 'errorMessage' => 'Whitelist blocks not in CIDR format.',
+ ],
+ [
+ 'errorCode' => 'Whitelist.TooLong',
+ 'errorMessage' => 'Whitelist too long, exceeds 10 CIDR blocks.',
+ ],
+ ],
+ 403 => [
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Caller has no permission on the resource.',
+ ],
+ [
+ 'errorCode' => 'InstanceNotPaused',
+ 'errorMessage' => 'Please pause the instance before reset.',
+ ],
+ [
+ 'errorCode' => 'InstanceNotActive',
+ 'errorMessage' => 'Instance is not active.',
+ ],
+ [
+ 'errorCode' => 'ConfigIp.IncorrectState',
+ 'errorMessage' => 'Instance not in pending or active state, can not config IP address.',
+ ],
+ [
+ 'errorCode' => 'SwitchMaster.IncorrectState',
+ 'errorMessage' => 'Cluster not initialized, please initialize the cluster first.',
+ ],
+ [
+ 'errorCode' => 'SyncCluster.IncorrectState',
+ 'errorMessage' => 'Cluster not initialized, please initialize the cluster first.',
+ ],
+ [
+ 'errorCode' => 'LeaveCluster.InstanceInvalid',
+ 'errorMessage' => 'The instance is not in the cluster.',
+ ],
+ [
+ 'errorCode' => 'DeleteCluster.IncorrectState',
+ 'errorMessage' => 'Cluster not empty, please remove all instances first.',
+ ],
+ [
+ 'errorCode' => 'JoinCluster.InstanceVSwitchNotInCluster',
+ 'errorMessage' => 'Instance\'s vSwitch is not in cluster config, please change instance\'s vSwitch first.',
+ ],
+ [
+ 'errorCode' => 'JoinCluster.InstanceInitialized',
+ 'errorMessage' => 'Initialized instance can not join a cluster.',
+ ],
+ [
+ 'errorCode' => 'JoinCluster.IncorrectState',
+ 'errorMessage' => 'Cluster not initialized, please initialize the cluster first.',
+ ],
+ [
+ 'errorCode' => 'InitializeCluster.InstanceNotInitialized',
+ 'errorMessage' => 'Cluster master instance not initialized, please initialize cluster master instance first.',
+ ],
+ [
+ 'errorCode' => 'InitializeCluster.IncorrectConfig',
+ 'errorMessage' => 'Cluster subnet not configured, please config cluster subnet first.',
+ ],
+ [
+ 'errorCode' => 'InitializeCluster.IncorrectState',
+ 'errorMessage' => 'Cluster initialized, do not re-initialize.',
+ ],
+ [
+ 'errorCode' => 'Cluster.CN.ActionForbidden',
+ 'errorMessage' => 'This API is forbidden for non-international site cluster.',
+ ],
+ [
+ 'errorCode' => 'Cluster.INTL.ActionForbidden',
+ 'errorMessage' => 'This API is forbidden for international site cluster.',
+ ],
+ [
+ 'errorCode' => 'ConfigClusterCertificate.IncorrectState',
+ 'errorMessage' => 'Cluster initialized or certificates already configured.',
+ ],
+ [
+ 'errorCode' => 'ConfigClusterSubnet.InvalidVpcId',
+ 'errorMessage' => 'VPC Id invalid. Cluster VPC is the same as cluster master\'s VPC.',
+ ],
+ [
+ 'errorCode' => 'ConfigClusterSubnet.InvalidVSwitchId',
+ 'errorMessage' => 'VSwitch Id invalid. VSwitches should contain all current cluster vSwitches.',
+ ],
+ [
+ 'errorCode' => 'ConfigClusterSubnet.IncorrectState',
+ 'errorMessage' => 'Cluster not in NEW state, can not config cluster subnet.',
+ ],
+ [
+ 'errorCode' => 'ClusterName.Exist',
+ 'errorMessage' => 'Cluster name already exists, please use another name.',
+ ],
+ [
+ 'errorCode' => 'Whitelist.InstanceInCluster',
+ 'errorMessage' => 'Whitelist.InstanceInCluster',
+ ],
+ ],
+ [
+ [
+ 'errorCode' => 'Resource.NotFound',
+ 'errorMessage' => 'Resource not found.',
+ ],
+ ],
+ [
+ [
+ 'errorCode' => 'ClusterAPI.NotSupported',
+ 'errorMessage' => 'ClusterAPI not supported in this region.',
+ ],
+ ],
+ 409 => [
+ [
+ 'errorCode' => 'Conflict',
+ 'errorMessage' => 'Resource is being updated by a previous request. Current request is redundant.',
+ ],
+ [
+ 'errorCode' => 'Cluster.Conflict',
+ 'errorMessage' => 'The cluster is being updated by a previous request. Please try again later.',
+ ],
+ ],
+ 500 => [
+ [
+ 'errorCode' => 'ConfigWhitelistFailed.Error',
+ 'errorMessage' => 'config white list error',
+ ],
+ [
+ 'errorCode' => 'ActionFailed.Error',
+ 'errorMessage' => 'internal error, please try again',
+ ],
+ [
+ 'errorCode' => 'InternalError',
+ 'errorMessage' => 'The request processing has failed due to some unknown error.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"4C467B38-3910-447D-87BC-AC049166F216\\"\\n}","type":"json"}]',
+ 'title' => 'DeleteCluster',
+ 'summary' => 'Deletes a hardware security module (HSM) cluster.',
+ 'description' => 'You can delete an HSM only if the cluster does not contain HSMs.'."\n",
+ ],
+ 'JoinCluster' => [
+ 'summary' => 'Adds a hardware security module (HSM) to the current cluster.',
+ 'methods' => [
+ 'post',
+ ],
+ 'schemes' => [
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'readAndWrite',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'update',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeNodes' => [
+ 'FEATUREhsmV7VE3Y',
+ 'FEATUREhsm01FLNB',
+ 'FEATUREhsmGIFYCG',
+ 'FEATUREhsmLBBV5W',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'ClusterId',
+ 'in' => 'formData',
+ 'schema' => [
+ 'description' => 'The ID of the cluster.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'cluster-NZB9Oj5Yfd8Y****',
+ 'title' => '集群ID',
+ ],
+ ],
+ [
+ 'name' => 'InstanceId',
+ 'in' => 'formData',
+ 'schema' => [
+ 'description' => 'The ID of the HSM that you want to add to the cluster.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'hsm-cn-vj30bil8****',
+ 'title' => '实例ID',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'PlainResult<OpenApiJoinClusterResponse>',
+ 'description' => 'PlainResult'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '4C467B38-3910-447D-87BC-AC049166F216',
+ 'title' => '请求的唯一标识符',
+ ],
+ 'Job' => [
+ 'description' => 'The details of the task.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'JobId' => [
+ 'description' => 'The ID of the task.'."\n",
+ 'type' => 'string',
+ 'example' => 'job-202401250936hze747fd7e0007005',
+ 'title' => '异步任务ID',
+ ],
+ 'Type' => [
+ 'description' => 'The operation type. Valid values:'."\n"
+ ."\n"
+ .'* create'."\n"
+ .'* cancel'."\n",
+ 'type' => 'string',
+ 'example' => 'create',
+ 'title' => '任务类型',
+ ],
+ 'Completed' => [
+ 'description' => 'Indicates whether the task is complete. Valid values:'."\n"
+ ."\n"
+ .'* true'."\n"
+ .'* false'."\n",
+ 'type' => 'boolean',
+ 'example' => 'true',
+ 'title' => '任务完成情况',
+ ],
+ 'CreateTime' => [
+ 'description' => 'The time when the task was created. Unit: milliseconds. The value is a UNIX timestamp.'."\n",
+ 'type' => 'string',
+ 'example' => '1711764127000',
+ 'title' => '创建时间',
+ ],
+ 'Status' => [
+ 'description' => 'The status of the task. Valid values:'."\n"
+ ."\n"
+ .'* success'."\n"
+ .'* running'."\n"
+ .'* cancel'."\n"
+ .'* fail'."\n",
+ 'type' => 'string',
+ 'example' => 'running',
+ 'title' => '任务状态',
+ ],
+ 'Response' => [
+ 'description' => 'The response returned after the task succeeds.'."\n",
+ 'type' => 'string',
+ 'example' => 'success',
+ 'title' => '任务返回值',
+ ],
+ 'Error' => [
+ 'description' => 'The error message returned if the task fails.'."\n",
+ 'type' => 'string',
+ 'example' => 'OperationTimeout',
+ 'title' => '任务报错信息',
+ ],
+ 'Progress' => [
+ 'description' => 'The progress of the task. Unit: percent (%).'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '86',
+ 'title' => '任务进度',
+ ],
+ ],
+ 'title' => '异步任务对象',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'SwitchMaster.InstanceInvalid',
+ 'errorMessage' => 'Instance not in the cluster.',
+ ],
+ [
+ 'errorCode' => 'LeaveCluster.MasterLast',
+ 'errorMessage' => 'Master instance can not leave a cluster until all other instances are left.',
+ ],
+ [
+ 'errorCode' => 'Certificate.ChainInvalid',
+ 'errorMessage' => 'Certificate chain invalid. Please make sure issuer certificate is the trust anchor and cluster certificate is signed by issuer certificate.',
+ ],
+ [
+ 'errorCode' => 'Certificate.FormatInvalid',
+ 'errorMessage' => 'Certificate format invalid. Cluster/Issuer certificate must be in PEM format.',
+ ],
+ [
+ 'errorCode' => 'ConfigClusterSubnet.DuplicateZone',
+ 'errorMessage' => 'VSwitches should not contain duplicate zones.',
+ ],
+ [
+ 'errorCode' => 'InvalidApiParam.Error',
+ 'errorMessage' => 'api param is invalid',
+ ],
+ [
+ 'errorCode' => 'InvalidClusterName',
+ 'errorMessage' => 'Invalid parameter clusterName.',
+ ],
+ [
+ 'errorCode' => 'InvalidPageSize',
+ 'errorMessage' => 'Invalid parameter pageSize.',
+ ],
+ [
+ 'errorCode' => 'InvalidCurrentPage',
+ 'errorMessage' => 'Invalid parameter currentPage.',
+ ],
+ [
+ 'errorCode' => 'InvalidRegionId',
+ 'errorMessage' => 'Invalid parameter regionId.',
+ ],
+ [
+ 'errorCode' => 'InvalidVSwitch',
+ 'errorMessage' => 'Invalid parameter vSwitch.',
+ ],
+ [
+ 'errorCode' => 'InvalidVpc',
+ 'errorMessage' => 'Invalid parameter vpcId.',
+ ],
+ [
+ 'errorCode' => 'InvalidIp',
+ 'errorMessage' => 'Invalid parameter IP.',
+ ],
+ [
+ 'errorCode' => 'InvalidAliuid',
+ 'errorMessage' => 'Invalid parameter aliuid.',
+ ],
+ [
+ 'errorCode' => 'InvalidClusterId',
+ 'errorMessage' => 'Invalid parameter clusterId.',
+ ],
+ [
+ 'errorCode' => 'InvalidInstanceId',
+ 'errorMessage' => 'Invalid parameter instanceId.',
+ ],
+ [
+ 'errorCode' => 'InvalidBackupId',
+ 'errorMessage' => 'Invalid parameter backupId.',
+ ],
+ [
+ 'errorCode' => 'InvalidImageId',
+ 'errorMessage' => 'Invalid parameter imageId.',
+ ],
+ [
+ 'errorCode' => 'HsmInstanceNotExist.Error',
+ 'errorMessage' => 'hsm instance not exist',
+ ],
+ [
+ 'errorCode' => 'HSMIntanceNotActived.Error',
+ 'errorMessage' => 'hsm intance is not actived',
+ ],
+ [
+ 'errorCode' => 'WhiteListMaxCount.Error',
+ 'errorMessage' => 'whilte list is more than max count',
+ ],
+ [
+ 'errorCode' => 'ClusterIdIsNotExists.Error',
+ 'errorMessage' => 'cluster ID non-exists',
+ ],
+ [
+ 'errorCode' => 'InstanceListIsEmpty.Error',
+ 'errorMessage' => 'instance list is empty',
+ ],
+ [
+ 'errorCode' => 'InstanceIdIsEmpty.Error',
+ 'errorMessage' => 'instance id is empty',
+ ],
+ [
+ 'errorCode' => 'InstanceIsNotExistsInCluster.Error',
+ 'errorMessage' => 'cluster has no such instance',
+ ],
+ [
+ 'errorCode' => 'InstanceIsExistsInCluster.Error',
+ 'errorMessage' => 'instance already in the cluster',
+ ],
+ [
+ 'errorCode' => 'RegionNoEmpty.Error',
+ 'errorMessage' => 'region no. is empty',
+ ],
+ [
+ 'errorCode' => 'ClusterNameEmpty.Error',
+ 'errorMessage' => 'empty cluster name not allowed',
+ ],
+ [
+ 'errorCode' => 'ClusterNameIsExists.Error',
+ 'errorMessage' => 'the cluster name is already taken',
+ ],
+ [
+ 'errorCode' => 'IpNotValid.Error',
+ 'errorMessage' => 'ip not valid',
+ ],
+ [
+ 'errorCode' => 'ClusterIsEmpty.Error',
+ 'errorMessage' => 'cluster is empty',
+ ],
+ [
+ 'errorCode' => 'NoMasterFoundInCluster.Error',
+ 'errorMessage' => 'cluster has no master instance',
+ ],
+ [
+ 'errorCode' => 'HsmInstanceIdNotFound.Error',
+ 'errorMessage' => 'no such instance',
+ ],
+ [
+ 'errorCode' => 'NoInstanceFoundInCluster.Error',
+ 'errorMessage' => 'cluster is empty',
+ ],
+ [
+ 'errorCode' => 'Whitelist.Invalid',
+ 'errorMessage' => 'Whitelist blocks not in CIDR format.',
+ ],
+ [
+ 'errorCode' => 'Whitelist.TooLong',
+ 'errorMessage' => 'Whitelist too long, exceeds 10 CIDR blocks.',
+ ],
+ ],
+ 403 => [
+ [
+ 'errorCode' => 'JoinCluster.InvalidDeviceVersion',
+ 'errorMessage' => 'Instance version is lower than the master in the cluster.',
+ ],
+ [
+ 'errorCode' => 'Cluster.CN.ClusterModeInvalid',
+ 'errorMessage' => 'This API is forbidden for current cluster mode.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Caller has no permission on the resource.',
+ ],
+ [
+ 'errorCode' => 'InstanceNotPaused',
+ 'errorMessage' => 'Please pause the instance before reset.',
+ ],
+ [
+ 'errorCode' => 'InstanceNotActive',
+ 'errorMessage' => 'Instance is not active.',
+ ],
+ [
+ 'errorCode' => 'ConfigIp.IncorrectState',
+ 'errorMessage' => 'Instance not in pending or active state, can not config IP address.',
+ ],
+ [
+ 'errorCode' => 'SwitchMaster.IncorrectState',
+ 'errorMessage' => 'Cluster not initialized, please initialize the cluster first.',
+ ],
+ [
+ 'errorCode' => 'SyncCluster.IncorrectState',
+ 'errorMessage' => 'Cluster not initialized, please initialize the cluster first.',
+ ],
+ [
+ 'errorCode' => 'LeaveCluster.InstanceInvalid',
+ 'errorMessage' => 'The instance is not in the cluster.',
+ ],
+ [
+ 'errorCode' => 'DeleteCluster.IncorrectState',
+ 'errorMessage' => 'Cluster not empty, please remove all instances first.',
+ ],
+ [
+ 'errorCode' => 'JoinCluster.InstanceVSwitchNotInCluster',
+ 'errorMessage' => 'Instance\'s vSwitch is not in cluster config, please change instance\'s vSwitch first.',
+ ],
+ [
+ 'errorCode' => 'JoinCluster.InstanceInitialized',
+ 'errorMessage' => 'Initialized instance can not join a cluster.',
+ ],
+ [
+ 'errorCode' => 'JoinCluster.IncorrectState',
+ 'errorMessage' => 'Cluster not initialized, please initialize the cluster first.',
+ ],
+ [
+ 'errorCode' => 'InitializeCluster.InstanceNotInitialized',
+ 'errorMessage' => 'Cluster master instance not initialized, please initialize cluster master instance first.',
+ ],
+ [
+ 'errorCode' => 'InitializeCluster.IncorrectConfig',
+ 'errorMessage' => 'Cluster subnet not configured, please config cluster subnet first.',
+ ],
+ [
+ 'errorCode' => 'InitializeCluster.IncorrectState',
+ 'errorMessage' => 'Cluster initialized, do not re-initialize.',
+ ],
+ [
+ 'errorCode' => 'Cluster.CN.ActionForbidden',
+ 'errorMessage' => 'This API is forbidden for non-international site cluster.',
+ ],
+ [
+ 'errorCode' => 'Cluster.INTL.ActionForbidden',
+ 'errorMessage' => 'This API is forbidden for international site cluster.',
+ ],
+ [
+ 'errorCode' => 'ConfigClusterCertificate.IncorrectState',
+ 'errorMessage' => 'Cluster initialized or certificates already configured.',
+ ],
+ [
+ 'errorCode' => 'ConfigClusterSubnet.InvalidVpcId',
+ 'errorMessage' => 'VPC Id invalid. Cluster VPC is the same as cluster master\'s VPC.',
+ ],
+ [
+ 'errorCode' => 'ConfigClusterSubnet.InvalidVSwitchId',
+ 'errorMessage' => 'VSwitch Id invalid. VSwitches should contain all current cluster vSwitches.',
+ ],
+ [
+ 'errorCode' => 'ConfigClusterSubnet.IncorrectState',
+ 'errorMessage' => 'Cluster not in NEW state, can not config cluster subnet.',
+ ],
+ [
+ 'errorCode' => 'ClusterName.Exist',
+ 'errorMessage' => 'Cluster name already exists, please use another name.',
+ ],
+ [
+ 'errorCode' => 'Whitelist.InstanceInCluster',
+ 'errorMessage' => 'Whitelist.InstanceInCluster',
+ ],
+ [
+ 'errorCode' => 'JoinCluster.InvalidDeviceType',
+ 'errorMessage' => 'Instance device type mismatches with the cluster\'s.',
+ ],
+ [
+ 'errorCode' => 'JoinCluster.InvalidPqcStatus',
+ 'errorMessage' => 'Instance pqc status mismatches with the cluster\'s.',
+ ],
+ ],
+ [
+ [
+ 'errorCode' => 'Resource.NotFound',
+ 'errorMessage' => 'Resource not found.',
+ ],
+ ],
+ [
+ [
+ 'errorCode' => 'ClusterAPI.NotSupported',
+ 'errorMessage' => 'ClusterAPI not supported in this region.',
+ ],
+ ],
+ 409 => [
+ [
+ 'errorCode' => 'Conflict',
+ 'errorMessage' => 'Resource is being updated by a previous request. Current request is redundant.',
+ ],
+ [
+ 'errorCode' => 'Cluster.Conflict',
+ 'errorMessage' => 'The cluster is being updated by a previous request. Please try again later.',
+ ],
+ ],
+ 500 => [
+ [
+ 'errorCode' => 'ConfigWhitelistFailed.Error',
+ 'errorMessage' => 'config white list error',
+ ],
+ [
+ 'errorCode' => 'ActionFailed.Error',
+ 'errorMessage' => 'internal error, please try again',
+ ],
+ [
+ 'errorCode' => 'InternalError',
+ 'errorMessage' => 'The request processing has failed due to some unknown error.',
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"4C467B38-3910-447D-87BC-AC049166F216\\",\\n \\"Job\\": {\\n \\"JobId\\": \\"job-202401250936hze747fd7e0007005\\",\\n \\"Type\\": \\"create\\",\\n \\"Completed\\": true,\\n \\"CreateTime\\": \\"1711764127000\\",\\n \\"Status\\": \\"running\\",\\n \\"Response\\": \\"success\\",\\n \\"Error\\": \\"OperationTimeout\\",\\n \\"Progress\\": 86\\n }\\n}","type":"json"}]',
+ 'title' => 'JoinCluster',
+ 'description' => '* You can add the HSM to only the cluster that is in the INITIALIZED state.'."\n"
+ .'* The HSM that you want to add to the cluster is enabled or disabled and is not initialized.'."\n",
+ ],
+ 'ConfigClusterSubnet' => [
+ 'summary' => 'Modifies a list of vSwitches that are associated with a hardware security module (HSM) cluster.',
+ 'methods' => [
+ 'post',
+ ],
+ 'schemes' => [
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'readAndWrite',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'update',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '211854',
+ 'abilityTreeNodes' => [
+ 'FEATUREhsmV7VE3Y',
+ 'FEATUREhsm01FLNB',
+ 'FEATUREhsmGIFYCG',
+ 'FEATUREhsmLBBV5W',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'ClusterId',
+ 'in' => 'formData',
+ 'schema' => [
+ 'description' => 'The ID of the cluster. You can call the ListCluster operation to obtain cluster IDs.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'cluster-BqxX63Bsg****',
+ ],
+ ],
+ [
+ 'name' => 'RegionId',
+ 'in' => 'formData',
+ 'schema' => [
+ 'description' => 'The ID of the region.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'cn-hangzhou',
+ ],
+ ],
+ [
+ 'name' => 'VpcId',
+ 'in' => 'formData',
+ 'schema' => [
+ 'description' => 'The ID of the virtual private cloud (VPC).'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'vpc-7xvkh90cw39p0****',
+ ],
+ ],
+ [
+ 'name' => 'VSwitchIds',
+ 'in' => 'formData',
+ 'style' => 'json',
+ 'schema' => [
+ 'description' => 'A list of vSwitches that are associated with the cluster. Note: You must include all vSwitches that you want to associate with the cluster.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The ID of the vSwitch.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'vsw-2zeqkh8ar8yey5ejv****',
+ ],
+ 'required' => true,
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'BaseResult',
+ 'description' => 'BaseResult'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '4C467B38-3910-447D-87BC-AC049366F216',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'SwitchMaster.InstanceInvalid',
+ 'errorMessage' => 'Instance not in the cluster.',
+ ],
+ [
+ 'errorCode' => 'LeaveCluster.MasterLast',
+ 'errorMessage' => 'Master instance can not leave a cluster until all other instances are left.',
+ ],
+ [
+ 'errorCode' => 'Certificate.ChainInvalid',
+ 'errorMessage' => 'Certificate chain invalid. Please make sure issuer certificate is the trust anchor and cluster certificate is signed by issuer certificate.',
+ ],
+ [
+ 'errorCode' => 'Certificate.FormatInvalid',
+ 'errorMessage' => 'Certificate format invalid. Cluster/Issuer certificate must be in PEM format.',
+ ],
+ [
+ 'errorCode' => 'ConfigClusterSubnet.DuplicateZone',
+ 'errorMessage' => 'VSwitches should not contain duplicate zones.',
+ ],
+ [
+ 'errorCode' => 'InvalidApiParam.Error',
+ 'errorMessage' => 'api param is invalid',
+ ],
+ [
+ 'errorCode' => 'InvalidClusterName',
+ 'errorMessage' => 'Invalid parameter clusterName.',
+ ],
+ [
+ 'errorCode' => 'InvalidPageSize',
+ 'errorMessage' => 'Invalid parameter pageSize.',
+ ],
+ [
+ 'errorCode' => 'InvalidCurrentPage',
+ 'errorMessage' => 'Invalid parameter currentPage.',
+ ],
+ [
+ 'errorCode' => 'InvalidRegionId',
+ 'errorMessage' => 'Invalid parameter regionId.',
+ ],
+ [
+ 'errorCode' => 'InvalidVSwitch',
+ 'errorMessage' => 'Invalid parameter vSwitch.',
+ ],
+ [
+ 'errorCode' => 'InvalidVpc',
+ 'errorMessage' => 'Invalid parameter vpcId.',
+ ],
+ [
+ 'errorCode' => 'InvalidIp',
+ 'errorMessage' => 'Invalid parameter IP.',
+ ],
+ [
+ 'errorCode' => 'InvalidAliuid',
+ 'errorMessage' => 'Invalid parameter aliuid.',
+ ],
+ [
+ 'errorCode' => 'InvalidClusterId',
+ 'errorMessage' => 'Invalid parameter clusterId.',
+ ],
+ [
+ 'errorCode' => 'InvalidInstanceId',
+ 'errorMessage' => 'Invalid parameter instanceId.',
+ ],
+ [
+ 'errorCode' => 'InvalidBackupId',
+ 'errorMessage' => 'Invalid parameter backupId.',
+ ],
+ [
+ 'errorCode' => 'InvalidImageId',
+ 'errorMessage' => 'Invalid parameter imageId.',
+ ],
+ [
+ 'errorCode' => 'HsmInstanceNotExist.Error',
+ 'errorMessage' => 'hsm instance not exist',
+ ],
+ [
+ 'errorCode' => 'HSMIntanceNotActived.Error',
+ 'errorMessage' => 'hsm intance is not actived',
+ ],
+ [
+ 'errorCode' => 'WhiteListMaxCount.Error',
+ 'errorMessage' => 'whilte list is more than max count',
+ ],
+ [
+ 'errorCode' => 'ClusterIdIsNotExists.Error',
+ 'errorMessage' => 'cluster ID non-exists',
+ ],
+ [
+ 'errorCode' => 'InstanceListIsEmpty.Error',
+ 'errorMessage' => 'instance list is empty',
+ ],
+ [
+ 'errorCode' => 'InstanceIdIsEmpty.Error',
+ 'errorMessage' => 'instance id is empty',
+ ],
+ [
+ 'errorCode' => 'InstanceIsNotExistsInCluster.Error',
+ 'errorMessage' => 'cluster has no such instance',
+ ],
+ [
+ 'errorCode' => 'InstanceIsExistsInCluster.Error',
+ 'errorMessage' => 'instance already in the cluster',
+ ],
+ [
+ 'errorCode' => 'RegionNoEmpty.Error',
+ 'errorMessage' => 'region no. is empty',
+ ],
+ [
+ 'errorCode' => 'ClusterNameEmpty.Error',
+ 'errorMessage' => 'empty cluster name not allowed',
+ ],
+ [
+ 'errorCode' => 'ClusterNameIsExists.Error',
+ 'errorMessage' => 'the cluster name is already taken',
+ ],
+ [
+ 'errorCode' => 'IpNotValid.Error',
+ 'errorMessage' => 'ip not valid',
+ ],
+ [
+ 'errorCode' => 'ClusterIsEmpty.Error',
+ 'errorMessage' => 'cluster is empty',
+ ],
+ [
+ 'errorCode' => 'NoMasterFoundInCluster.Error',
+ 'errorMessage' => 'cluster has no master instance',
+ ],
+ [
+ 'errorCode' => 'HsmInstanceIdNotFound.Error',
+ 'errorMessage' => 'no such instance',
+ ],
+ [
+ 'errorCode' => 'NoInstanceFoundInCluster.Error',
+ 'errorMessage' => 'cluster is empty',
+ ],
+ [
+ 'errorCode' => 'Whitelist.Invalid',
+ 'errorMessage' => 'Whitelist blocks not in CIDR format.',
+ ],
+ [
+ 'errorCode' => 'Whitelist.TooLong',
+ 'errorMessage' => 'Whitelist too long, exceeds 10 CIDR blocks.',
+ ],
+ ],
+ 403 => [
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Caller has no permission on the resource.',
+ ],
+ [
+ 'errorCode' => 'InstanceNotPaused',
+ 'errorMessage' => 'Please pause the instance before reset.',
+ ],
+ [
+ 'errorCode' => 'InstanceNotActive',
+ 'errorMessage' => 'Instance is not active.',
+ ],
+ [
+ 'errorCode' => 'ConfigIp.IncorrectState',
+ 'errorMessage' => 'Instance not in pending or active state, can not config IP address.',
+ ],
+ [
+ 'errorCode' => 'SwitchMaster.IncorrectState',
+ 'errorMessage' => 'Cluster not initialized, please initialize the cluster first.',
+ ],
+ [
+ 'errorCode' => 'SyncCluster.IncorrectState',
+ 'errorMessage' => 'Cluster not initialized, please initialize the cluster first.',
+ ],
+ [
+ 'errorCode' => 'LeaveCluster.InstanceInvalid',
+ 'errorMessage' => 'The instance is not in the cluster.',
+ ],
+ [
+ 'errorCode' => 'DeleteCluster.IncorrectState',
+ 'errorMessage' => 'Cluster not empty, please remove all instances first.',
+ ],
+ [
+ 'errorCode' => 'JoinCluster.InstanceVSwitchNotInCluster',
+ 'errorMessage' => 'Instance\'s vSwitch is not in cluster config, please change instance\'s vSwitch first.',
+ ],
+ [
+ 'errorCode' => 'JoinCluster.InstanceInitialized',
+ 'errorMessage' => 'Initialized instance can not join a cluster.',
+ ],
+ [
+ 'errorCode' => 'JoinCluster.IncorrectState',
+ 'errorMessage' => 'Cluster not initialized, please initialize the cluster first.',
+ ],
+ [
+ 'errorCode' => 'InitializeCluster.InstanceNotInitialized',
+ 'errorMessage' => 'Cluster master instance not initialized, please initialize cluster master instance first.',
+ ],
+ [
+ 'errorCode' => 'InitializeCluster.IncorrectConfig',
+ 'errorMessage' => 'Cluster subnet not configured, please config cluster subnet first.',
+ ],
+ [
+ 'errorCode' => 'InitializeCluster.IncorrectState',
+ 'errorMessage' => 'Cluster initialized, do not re-initialize.',
+ ],
+ [
+ 'errorCode' => 'Cluster.CN.ActionForbidden',
+ 'errorMessage' => 'This API is forbidden for non-international site cluster.',
+ ],
+ [
+ 'errorCode' => 'Cluster.INTL.ActionForbidden',
+ 'errorMessage' => 'This API is forbidden for international site cluster.',
+ ],
+ [
+ 'errorCode' => 'ConfigClusterCertificate.IncorrectState',
+ 'errorMessage' => 'Cluster initialized or certificates already configured.',
+ ],
+ [
+ 'errorCode' => 'ConfigClusterSubnet.InvalidVpcId',
+ 'errorMessage' => 'VPC Id invalid. Cluster VPC is the same as cluster master\'s VPC.',
+ ],
+ [
+ 'errorCode' => 'ConfigClusterSubnet.InvalidVSwitchId',
+ 'errorMessage' => 'VSwitch Id invalid. VSwitches should contain all current cluster vSwitches.',
+ ],
+ [
+ 'errorCode' => 'ConfigClusterSubnet.IncorrectState',
+ 'errorMessage' => 'Cluster not in NEW state, can not config cluster subnet.',
+ ],
+ [
+ 'errorCode' => 'ClusterName.Exist',
+ 'errorMessage' => 'Cluster name already exists, please use another name.',
+ ],
+ [
+ 'errorCode' => 'Whitelist.InstanceInCluster',
+ 'errorMessage' => 'Whitelist.InstanceInCluster',
+ ],
+ ],
+ [
+ [
+ 'errorCode' => 'Resource.NotFound',
+ 'errorMessage' => 'Resource not found.',
+ ],
+ ],
+ [
+ [
+ 'errorCode' => 'ClusterAPI.NotSupported',
+ 'errorMessage' => 'ClusterAPI not supported in this region.',
+ ],
+ ],
+ 409 => [
+ [
+ 'errorCode' => 'Conflict',
+ 'errorMessage' => 'Resource is being updated by a previous request. Current request is redundant.',
+ ],
+ [
+ 'errorCode' => 'Cluster.Conflict',
+ 'errorMessage' => 'The cluster is being updated by a previous request. Please try again later.',
+ ],
+ ],
+ 500 => [
+ [
+ 'errorCode' => 'ConfigWhitelistFailed.Error',
+ 'errorMessage' => 'config white list error',
+ ],
+ [
+ 'errorCode' => 'ActionFailed.Error',
+ 'errorMessage' => 'internal error, please try again',
+ ],
+ [
+ 'errorCode' => 'InternalError',
+ 'errorMessage' => 'The request processing has failed due to some unknown error.',
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"4C467B38-3910-447D-87BC-AC049366F216\\"\\n}","type":"json"}]',
+ 'title' => 'ConfigClusterSubnet',
+ 'description' => 'You can call the operation to configure all vSwitches that are associated with a HSM cluster. You can only add new vSwitches. You cannot delete vSwitches.'."\n",
+ ],
+ 'SyncCluster' => [
+ 'summary' => 'Synchronizes the data of hardware security modules (HSMs) in a cluster.',
+ 'methods' => [
+ 'post',
+ ],
+ 'schemes' => [
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'readAndWrite',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'update',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeNodes' => [
+ 'FEATUREhsmV7VE3Y',
+ 'FEATUREhsm01FLNB',
+ 'FEATUREhsmGIFYCG',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'ClusterId',
+ 'in' => 'formData',
+ 'schema' => [
+ 'description' => 'The ID of the cluster.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'cluster-BqxX63Bsgytet****',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'PlainResult<OpenApiSyncClusterResponse>',
+ 'description' => 'PlainResult'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '4C467B38-3910-447D-87BC-AC049166F216',
+ ],
+ 'Job' => [
+ 'description' => 'The details of the task.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'JobId' => [
+ 'description' => 'The ID of the task.'."\n",
+ 'type' => 'string',
+ 'example' => 'job-000bu7m5vjmyz9s7qz85',
+ ],
+ 'Type' => [
+ 'description' => 'The operation type. Valid values:'."\n"
+ ."\n"
+ .'* create'."\n"
+ .'* cancel'."\n",
+ 'type' => 'string',
+ 'example' => 'create',
+ ],
+ 'Completed' => [
+ 'description' => 'Indicates whether the task is complete. Valid values:'."\n"
+ ."\n"
+ .'* true'."\n"
+ .'* false'."\n",
+ 'type' => 'boolean',
+ 'example' => 'true',
+ ],
+ 'CreateTime' => [
+ 'description' => 'The time when the task was created. Unit: milliseconds. The value is a UNIX timestamp.'."\n",
+ 'type' => 'string',
+ 'example' => '1711764127000',
+ ],
+ 'Status' => [
+ 'description' => 'The status of the task. Valid values:'."\n"
+ ."\n"
+ .'* success'."\n"
+ .'* running'."\n"
+ .'* cancel'."\n"
+ .'* fail'."\n",
+ 'type' => 'string',
+ 'example' => 'success',
+ ],
+ 'Response' => [
+ 'description' => 'The response returned after the task succeeds.'."\n",
+ 'type' => 'string',
+ 'example' => 'success',
+ ],
+ 'Error' => [
+ 'description' => 'The error message returned if the task fails.'."\n",
+ 'type' => 'string',
+ 'example' => 'OperationTimeout',
+ ],
+ 'Progress' => [
+ 'description' => 'The progress of the task. Unit: percent (%).'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '90',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'SwitchMaster.InstanceInvalid',
+ 'errorMessage' => 'Instance not in the cluster.',
+ ],
+ [
+ 'errorCode' => 'LeaveCluster.MasterLast',
+ 'errorMessage' => 'Master instance can not leave a cluster until all other instances are left.',
+ ],
+ [
+ 'errorCode' => 'Certificate.ChainInvalid',
+ 'errorMessage' => 'Certificate chain invalid. Please make sure issuer certificate is the trust anchor and cluster certificate is signed by issuer certificate.',
+ ],
+ [
+ 'errorCode' => 'Certificate.FormatInvalid',
+ 'errorMessage' => 'Certificate format invalid. Cluster/Issuer certificate must be in PEM format.',
+ ],
+ [
+ 'errorCode' => 'ConfigClusterSubnet.DuplicateZone',
+ 'errorMessage' => 'VSwitches should not contain duplicate zones.',
+ ],
+ [
+ 'errorCode' => 'InvalidApiParam.Error',
+ 'errorMessage' => 'api param is invalid',
+ ],
+ [
+ 'errorCode' => 'InvalidClusterName',
+ 'errorMessage' => 'Invalid parameter clusterName.',
+ ],
+ [
+ 'errorCode' => 'InvalidPageSize',
+ 'errorMessage' => 'Invalid parameter pageSize.',
+ ],
+ [
+ 'errorCode' => 'InvalidCurrentPage',
+ 'errorMessage' => 'Invalid parameter currentPage.',
+ ],
+ [
+ 'errorCode' => 'InvalidRegionId',
+ 'errorMessage' => 'Invalid parameter regionId.',
+ ],
+ [
+ 'errorCode' => 'InvalidVSwitch',
+ 'errorMessage' => 'Invalid parameter vSwitch.',
+ ],
+ [
+ 'errorCode' => 'InvalidVpc',
+ 'errorMessage' => 'Invalid parameter vpcId.',
+ ],
+ [
+ 'errorCode' => 'InvalidIp',
+ 'errorMessage' => 'Invalid parameter IP.',
+ ],
+ [
+ 'errorCode' => 'InvalidAliuid',
+ 'errorMessage' => 'Invalid parameter aliuid.',
+ ],
+ [
+ 'errorCode' => 'InvalidClusterId',
+ 'errorMessage' => 'Invalid parameter clusterId.',
+ ],
+ [
+ 'errorCode' => 'InvalidInstanceId',
+ 'errorMessage' => 'Invalid parameter instanceId.',
+ ],
+ [
+ 'errorCode' => 'InvalidBackupId',
+ 'errorMessage' => 'Invalid parameter backupId.',
+ ],
+ [
+ 'errorCode' => 'InvalidImageId',
+ 'errorMessage' => 'Invalid parameter imageId.',
+ ],
+ [
+ 'errorCode' => 'HsmInstanceNotExist.Error',
+ 'errorMessage' => 'hsm instance not exist',
+ ],
+ [
+ 'errorCode' => 'HSMIntanceNotActived.Error',
+ 'errorMessage' => 'hsm intance is not actived',
+ ],
+ [
+ 'errorCode' => 'WhiteListMaxCount.Error',
+ 'errorMessage' => 'whilte list is more than max count',
+ ],
+ [
+ 'errorCode' => 'ClusterIdIsNotExists.Error',
+ 'errorMessage' => 'cluster ID non-exists',
+ ],
+ [
+ 'errorCode' => 'InstanceListIsEmpty.Error',
+ 'errorMessage' => 'instance list is empty',
+ ],
+ [
+ 'errorCode' => 'InstanceIdIsEmpty.Error',
+ 'errorMessage' => 'instance id is empty',
+ ],
+ [
+ 'errorCode' => 'InstanceIsNotExistsInCluster.Error',
+ 'errorMessage' => 'cluster has no such instance',
+ ],
+ [
+ 'errorCode' => 'InstanceIsExistsInCluster.Error',
+ 'errorMessage' => 'instance already in the cluster',
+ ],
+ [
+ 'errorCode' => 'RegionNoEmpty.Error',
+ 'errorMessage' => 'region no. is empty',
+ ],
+ [
+ 'errorCode' => 'ClusterNameEmpty.Error',
+ 'errorMessage' => 'empty cluster name not allowed',
+ ],
+ [
+ 'errorCode' => 'ClusterNameIsExists.Error',
+ 'errorMessage' => 'the cluster name is already taken',
+ ],
+ [
+ 'errorCode' => 'IpNotValid.Error',
+ 'errorMessage' => 'ip not valid',
+ ],
+ [
+ 'errorCode' => 'ClusterIsEmpty.Error',
+ 'errorMessage' => 'cluster is empty',
+ ],
+ [
+ 'errorCode' => 'NoMasterFoundInCluster.Error',
+ 'errorMessage' => 'cluster has no master instance',
+ ],
+ [
+ 'errorCode' => 'HsmInstanceIdNotFound.Error',
+ 'errorMessage' => 'no such instance',
+ ],
+ [
+ 'errorCode' => 'NoInstanceFoundInCluster.Error',
+ 'errorMessage' => 'cluster is empty',
+ ],
+ [
+ 'errorCode' => 'Whitelist.Invalid',
+ 'errorMessage' => 'Whitelist blocks not in CIDR format.',
+ ],
+ [
+ 'errorCode' => 'Whitelist.TooLong',
+ 'errorMessage' => 'Whitelist too long, exceeds 10 CIDR blocks.',
+ ],
+ ],
+ 403 => [
+ [
+ 'errorCode' => 'Cluster.CN.ClusterModeInvalid',
+ 'errorMessage' => 'This API is forbidden for current cluster mode.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Caller has no permission on the resource.',
+ ],
+ [
+ 'errorCode' => 'InstanceNotPaused',
+ 'errorMessage' => 'Please pause the instance before reset.',
+ ],
+ [
+ 'errorCode' => 'InstanceNotActive',
+ 'errorMessage' => 'Instance is not active.',
+ ],
+ [
+ 'errorCode' => 'ConfigIp.IncorrectState',
+ 'errorMessage' => 'Instance not in pending or active state, can not config IP address.',
+ ],
+ [
+ 'errorCode' => 'SwitchMaster.IncorrectState',
+ 'errorMessage' => 'Cluster not initialized, please initialize the cluster first.',
+ ],
+ [
+ 'errorCode' => 'SyncCluster.IncorrectState',
+ 'errorMessage' => 'Cluster not initialized, please initialize the cluster first.',
+ ],
+ [
+ 'errorCode' => 'LeaveCluster.InstanceInvalid',
+ 'errorMessage' => 'The instance is not in the cluster.',
+ ],
+ [
+ 'errorCode' => 'DeleteCluster.IncorrectState',
+ 'errorMessage' => 'Cluster not empty, please remove all instances first.',
+ ],
+ [
+ 'errorCode' => 'JoinCluster.InstanceVSwitchNotInCluster',
+ 'errorMessage' => 'Instance\'s vSwitch is not in cluster config, please change instance\'s vSwitch first.',
+ ],
+ [
+ 'errorCode' => 'JoinCluster.InstanceInitialized',
+ 'errorMessage' => 'Initialized instance can not join a cluster.',
+ ],
+ [
+ 'errorCode' => 'JoinCluster.IncorrectState',
+ 'errorMessage' => 'Cluster not initialized, please initialize the cluster first.',
+ ],
+ [
+ 'errorCode' => 'InitializeCluster.InstanceNotInitialized',
+ 'errorMessage' => 'Cluster master instance not initialized, please initialize cluster master instance first.',
+ ],
+ [
+ 'errorCode' => 'InitializeCluster.IncorrectConfig',
+ 'errorMessage' => 'Cluster subnet not configured, please config cluster subnet first.',
+ ],
+ [
+ 'errorCode' => 'InitializeCluster.IncorrectState',
+ 'errorMessage' => 'Cluster initialized, do not re-initialize.',
+ ],
+ [
+ 'errorCode' => 'Cluster.CN.ActionForbidden',
+ 'errorMessage' => 'This API is forbidden for non-international site cluster.',
+ ],
+ [
+ 'errorCode' => 'Cluster.INTL.ActionForbidden',
+ 'errorMessage' => 'This API is forbidden for international site cluster.',
+ ],
+ [
+ 'errorCode' => 'ConfigClusterCertificate.IncorrectState',
+ 'errorMessage' => 'Cluster initialized or certificates already configured.',
+ ],
+ [
+ 'errorCode' => 'ConfigClusterSubnet.InvalidVpcId',
+ 'errorMessage' => 'VPC Id invalid. Cluster VPC is the same as cluster master\'s VPC.',
+ ],
+ [
+ 'errorCode' => 'ConfigClusterSubnet.InvalidVSwitchId',
+ 'errorMessage' => 'VSwitch Id invalid. VSwitches should contain all current cluster vSwitches.',
+ ],
+ [
+ 'errorCode' => 'ConfigClusterSubnet.IncorrectState',
+ 'errorMessage' => 'Cluster not in NEW state, can not config cluster subnet.',
+ ],
+ [
+ 'errorCode' => 'ClusterName.Exist',
+ 'errorMessage' => 'Cluster name already exists, please use another name.',
+ ],
+ [
+ 'errorCode' => 'Whitelist.InstanceInCluster',
+ 'errorMessage' => 'Whitelist.InstanceInCluster',
+ ],
+ ],
+ [
+ [
+ 'errorCode' => 'Resource.NotFound',
+ 'errorMessage' => 'Resource not found.',
+ ],
+ ],
+ [
+ [
+ 'errorCode' => 'ClusterAPI.NotSupported',
+ 'errorMessage' => 'ClusterAPI not supported in this region.',
+ ],
+ ],
+ 409 => [
+ [
+ 'errorCode' => 'Conflict',
+ 'errorMessage' => 'Resource is being updated by a previous request. Current request is redundant.',
+ ],
+ [
+ 'errorCode' => 'Cluster.Conflict',
+ 'errorMessage' => 'The cluster is being updated by a previous request. Please try again later.',
+ ],
+ ],
+ 500 => [
+ [
+ 'errorCode' => 'ConfigWhitelistFailed.Error',
+ 'errorMessage' => 'config white list error',
+ ],
+ [
+ 'errorCode' => 'ActionFailed.Error',
+ 'errorMessage' => 'internal error, please try again',
+ ],
+ [
+ 'errorCode' => 'InternalError',
+ 'errorMessage' => 'The request processing has failed due to some unknown error.',
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"4C467B38-3910-447D-87BC-AC049166F216\\",\\n \\"Job\\": {\\n \\"JobId\\": \\"job-000bu7m5vjmyz9s7qz85\\",\\n \\"Type\\": \\"create\\",\\n \\"Completed\\": true,\\n \\"CreateTime\\": \\"1711764127000\\",\\n \\"Status\\": \\"success\\",\\n \\"Response\\": \\"success\\",\\n \\"Error\\": \\"OperationTimeout\\",\\n \\"Progress\\": 90\\n }\\n}","type":"json"}]',
+ 'title' => 'SyncCluster',
+ 'description' => '* This operation is used for manually synchronizing data within clusters located in the Chinese Mainland. For clusters outside the Chinese Mainland, automatic data synchronization is supported, and this operation is unnecessary. If you attempt to use this operation, a 400 error code will be returned.'."\n"
+ .'* The data synchronization takes approximately 5 minutes. To avoid service interruptions, we recommend performing this operation during off-peak hours.',
+ ],
+ 'InitializeCluster' => [
+ 'summary' => 'Initializes a cluster.',
+ 'methods' => [
+ 'post',
+ ],
+ 'schemes' => [
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'readAndWrite',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'update',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'ClusterId',
+ 'in' => 'formData',
+ 'schema' => [
+ 'description' => 'The ID of the cluster.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'cluster-p94y1dud9****',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'BaseResult',
+ 'description' => 'BaseResult'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '4C467B38-3910-447D-87BC-AC049366F216',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'SwitchMaster.InstanceInvalid',
+ 'errorMessage' => 'Instance not in the cluster.',
+ ],
+ [
+ 'errorCode' => 'LeaveCluster.MasterLast',
+ 'errorMessage' => 'Master instance can not leave a cluster until all other instances are left.',
+ ],
+ [
+ 'errorCode' => 'Certificate.ChainInvalid',
+ 'errorMessage' => 'Certificate chain invalid. Please make sure issuer certificate is the trust anchor and cluster certificate is signed by issuer certificate.',
+ ],
+ [
+ 'errorCode' => 'Certificate.FormatInvalid',
+ 'errorMessage' => 'Certificate format invalid. Cluster/Issuer certificate must be in PEM format.',
+ ],
+ [
+ 'errorCode' => 'ConfigClusterSubnet.DuplicateZone',
+ 'errorMessage' => 'VSwitches should not contain duplicate zones.',
+ ],
+ [
+ 'errorCode' => 'InvalidApiParam.Error',
+ 'errorMessage' => 'api param is invalid',
+ ],
+ [
+ 'errorCode' => 'InvalidClusterName',
+ 'errorMessage' => 'Invalid parameter clusterName.',
+ ],
+ [
+ 'errorCode' => 'InvalidPageSize',
+ 'errorMessage' => 'Invalid parameter pageSize.',
+ ],
+ [
+ 'errorCode' => 'InvalidCurrentPage',
+ 'errorMessage' => 'Invalid parameter currentPage.',
+ ],
+ [
+ 'errorCode' => 'InvalidRegionId',
+ 'errorMessage' => 'Invalid parameter regionId.',
+ ],
+ [
+ 'errorCode' => 'InvalidVSwitch',
+ 'errorMessage' => 'Invalid parameter vSwitch.',
+ ],
+ [
+ 'errorCode' => 'InvalidVpc',
+ 'errorMessage' => 'Invalid parameter vpcId.',
+ ],
+ [
+ 'errorCode' => 'InvalidIp',
+ 'errorMessage' => 'Invalid parameter IP.',
+ ],
+ [
+ 'errorCode' => 'InvalidAliuid',
+ 'errorMessage' => 'Invalid parameter aliuid.',
+ ],
+ [
+ 'errorCode' => 'InvalidClusterId',
+ 'errorMessage' => 'Invalid parameter clusterId.',
+ ],
+ [
+ 'errorCode' => 'InvalidInstanceId',
+ 'errorMessage' => 'Invalid parameter instanceId.',
+ ],
+ [
+ 'errorCode' => 'InvalidBackupId',
+ 'errorMessage' => 'Invalid parameter backupId.',
+ ],
+ [
+ 'errorCode' => 'InvalidImageId',
+ 'errorMessage' => 'Invalid parameter imageId.',
+ ],
+ [
+ 'errorCode' => 'HsmInstanceNotExist.Error',
+ 'errorMessage' => 'hsm instance not exist',
+ ],
+ [
+ 'errorCode' => 'HSMIntanceNotActived.Error',
+ 'errorMessage' => 'hsm intance is not actived',
+ ],
+ [
+ 'errorCode' => 'WhiteListMaxCount.Error',
+ 'errorMessage' => 'whilte list is more than max count',
+ ],
+ [
+ 'errorCode' => 'ClusterIdIsNotExists.Error',
+ 'errorMessage' => 'cluster ID non-exists',
+ ],
+ [
+ 'errorCode' => 'InstanceListIsEmpty.Error',
+ 'errorMessage' => 'instance list is empty',
+ ],
+ [
+ 'errorCode' => 'InstanceIdIsEmpty.Error',
+ 'errorMessage' => 'instance id is empty',
+ ],
+ [
+ 'errorCode' => 'InstanceIsNotExistsInCluster.Error',
+ 'errorMessage' => 'cluster has no such instance',
+ ],
+ [
+ 'errorCode' => 'InstanceIsExistsInCluster.Error',
+ 'errorMessage' => 'instance already in the cluster',
+ ],
+ [
+ 'errorCode' => 'RegionNoEmpty.Error',
+ 'errorMessage' => 'region no. is empty',
+ ],
+ [
+ 'errorCode' => 'ClusterNameEmpty.Error',
+ 'errorMessage' => 'empty cluster name not allowed',
+ ],
+ [
+ 'errorCode' => 'ClusterNameIsExists.Error',
+ 'errorMessage' => 'the cluster name is already taken',
+ ],
+ [
+ 'errorCode' => 'IpNotValid.Error',
+ 'errorMessage' => 'ip not valid',
+ ],
+ [
+ 'errorCode' => 'ClusterIsEmpty.Error',
+ 'errorMessage' => 'cluster is empty',
+ ],
+ [
+ 'errorCode' => 'NoMasterFoundInCluster.Error',
+ 'errorMessage' => 'cluster has no master instance',
+ ],
+ [
+ 'errorCode' => 'HsmInstanceIdNotFound.Error',
+ 'errorMessage' => 'no such instance',
+ ],
+ [
+ 'errorCode' => 'NoInstanceFoundInCluster.Error',
+ 'errorMessage' => 'cluster is empty',
+ ],
+ [
+ 'errorCode' => 'Whitelist.Invalid',
+ 'errorMessage' => 'Whitelist blocks not in CIDR format.',
+ ],
+ [
+ 'errorCode' => 'Whitelist.TooLong',
+ 'errorMessage' => 'Whitelist too long, exceeds 10 CIDR blocks.',
+ ],
+ ],
+ 403 => [
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Caller has no permission on the resource.',
+ ],
+ [
+ 'errorCode' => 'InstanceNotPaused',
+ 'errorMessage' => 'Please pause the instance before reset.',
+ ],
+ [
+ 'errorCode' => 'InstanceNotActive',
+ 'errorMessage' => 'Instance is not active.',
+ ],
+ [
+ 'errorCode' => 'ConfigIp.IncorrectState',
+ 'errorMessage' => 'Instance not in pending or active state, can not config IP address.',
+ ],
+ [
+ 'errorCode' => 'SwitchMaster.IncorrectState',
+ 'errorMessage' => 'Cluster not initialized, please initialize the cluster first.',
+ ],
+ [
+ 'errorCode' => 'SyncCluster.IncorrectState',
+ 'errorMessage' => 'Cluster not initialized, please initialize the cluster first.',
+ ],
+ [
+ 'errorCode' => 'LeaveCluster.InstanceInvalid',
+ 'errorMessage' => 'The instance is not in the cluster.',
+ ],
+ [
+ 'errorCode' => 'DeleteCluster.IncorrectState',
+ 'errorMessage' => 'Cluster not empty, please remove all instances first.',
+ ],
+ [
+ 'errorCode' => 'JoinCluster.InstanceVSwitchNotInCluster',
+ 'errorMessage' => 'Instance\'s vSwitch is not in cluster config, please change instance\'s vSwitch first.',
+ ],
+ [
+ 'errorCode' => 'JoinCluster.InstanceInitialized',
+ 'errorMessage' => 'Initialized instance can not join a cluster.',
+ ],
+ [
+ 'errorCode' => 'JoinCluster.IncorrectState',
+ 'errorMessage' => 'Cluster not initialized, please initialize the cluster first.',
+ ],
+ [
+ 'errorCode' => 'InitializeCluster.InstanceNotInitialized',
+ 'errorMessage' => 'Cluster master instance not initialized, please initialize cluster master instance first.',
+ ],
+ [
+ 'errorCode' => 'InitializeCluster.IncorrectConfig',
+ 'errorMessage' => 'Cluster subnet not configured, please config cluster subnet first.',
+ ],
+ [
+ 'errorCode' => 'InitializeCluster.IncorrectState',
+ 'errorMessage' => 'Cluster initialized, do not re-initialize.',
+ ],
+ [
+ 'errorCode' => 'Cluster.CN.ActionForbidden',
+ 'errorMessage' => 'This API is forbidden for non-international site cluster.',
+ ],
+ [
+ 'errorCode' => 'Cluster.INTL.ActionForbidden',
+ 'errorMessage' => 'This API is forbidden for international site cluster.',
+ ],
+ [
+ 'errorCode' => 'ConfigClusterCertificate.IncorrectState',
+ 'errorMessage' => 'Cluster initialized or certificates already configured.',
+ ],
+ [
+ 'errorCode' => 'ConfigClusterSubnet.InvalidVpcId',
+ 'errorMessage' => 'VPC Id invalid. Cluster VPC is the same as cluster master\'s VPC.',
+ ],
+ [
+ 'errorCode' => 'ConfigClusterSubnet.InvalidVSwitchId',
+ 'errorMessage' => 'VSwitch Id invalid. VSwitches should contain all current cluster vSwitches.',
+ ],
+ [
+ 'errorCode' => 'ConfigClusterSubnet.IncorrectState',
+ 'errorMessage' => 'Cluster not in NEW state, can not config cluster subnet.',
+ ],
+ [
+ 'errorCode' => 'ClusterName.Exist',
+ 'errorMessage' => 'Cluster name already exists, please use another name.',
+ ],
+ [
+ 'errorCode' => 'Whitelist.InstanceInCluster',
+ 'errorMessage' => 'Whitelist.InstanceInCluster',
+ ],
+ ],
+ [
+ [
+ 'errorCode' => 'Resource.NotFound',
+ 'errorMessage' => 'Resource not found.',
+ ],
+ ],
+ [
+ [
+ 'errorCode' => 'ClusterAPI.NotSupported',
+ 'errorMessage' => 'ClusterAPI not supported in this region.',
+ ],
+ ],
+ 409 => [
+ [
+ 'errorCode' => 'Conflict',
+ 'errorMessage' => 'Resource is being updated by a previous request. Current request is redundant.',
+ ],
+ [
+ 'errorCode' => 'Cluster.Conflict',
+ 'errorMessage' => 'The cluster is being updated by a previous request. Please try again later.',
+ ],
+ ],
+ 500 => [
+ [
+ 'errorCode' => 'ConfigWhitelistFailed.Error',
+ 'errorMessage' => 'config white list error',
+ ],
+ [
+ 'errorCode' => 'ActionFailed.Error',
+ 'errorMessage' => 'internal error, please try again',
+ ],
+ [
+ 'errorCode' => 'InternalError',
+ 'errorMessage' => 'The request processing has failed due to some unknown error.',
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"4C467B38-3910-447D-87BC-AC049366F216\\"\\n}","type":"json"}]',
+ 'title' => 'InitializeCluster',
+ 'description' => '* The cluster is not initialized, but the master hardware security module (HSM) of the cluster is initialized.'."\n"
+ .'* Two or more vSwitches are configured for the cluster.'."\n",
+ ],
+ 'SwitchClusterMaster' => [
+ 'summary' => 'Promotes a slave hardware security module (HSM) to the master HSM within the cluster. Clusters that are manually synchronized in the Chinese Mainland do not support this operation.',
+ 'methods' => [
+ 'post',
+ ],
+ 'schemes' => [
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'readAndWrite',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'update',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeNodes' => [
+ 'FEATUREhsmV7VE3Y',
+ 'FEATUREhsm01FLNB',
+ 'FEATUREhsmGIFYCG',
+ 'FEATUREhsmLBBV5W',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'ClusterId',
+ 'in' => 'formData',
+ 'schema' => [
+ 'description' => 'The ID of the cluster.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'cluster-w3G9vOJI2****',
+ ],
+ ],
+ [
+ 'name' => 'InstanceId',
+ 'in' => 'formData',
+ 'schema' => [
+ 'description' => 'The ID of the HSM that you want to promote to the master HSM.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'hsm-cn-vj30bil8****',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'BaseResult',
+ 'description' => 'BaseResult'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '4C467B38-3910-447D-87BC-AC049166F216',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'SwitchMaster.InstanceInvalid',
+ 'errorMessage' => 'Instance not in the cluster.',
+ ],
+ [
+ 'errorCode' => 'LeaveCluster.MasterLast',
+ 'errorMessage' => 'Master instance can not leave a cluster until all other instances are left.',
+ ],
+ [
+ 'errorCode' => 'Certificate.ChainInvalid',
+ 'errorMessage' => 'Certificate chain invalid. Please make sure issuer certificate is the trust anchor and cluster certificate is signed by issuer certificate.',
+ ],
+ [
+ 'errorCode' => 'Certificate.FormatInvalid',
+ 'errorMessage' => 'Certificate format invalid. Cluster/Issuer certificate must be in PEM format.',
+ ],
+ [
+ 'errorCode' => 'ConfigClusterSubnet.DuplicateZone',
+ 'errorMessage' => 'VSwitches should not contain duplicate zones.',
+ ],
+ [
+ 'errorCode' => 'InvalidApiParam.Error',
+ 'errorMessage' => 'api param is invalid',
+ ],
+ [
+ 'errorCode' => 'InvalidClusterName',
+ 'errorMessage' => 'Invalid parameter clusterName.',
+ ],
+ [
+ 'errorCode' => 'InvalidPageSize',
+ 'errorMessage' => 'Invalid parameter pageSize.',
+ ],
+ [
+ 'errorCode' => 'InvalidCurrentPage',
+ 'errorMessage' => 'Invalid parameter currentPage.',
+ ],
+ [
+ 'errorCode' => 'InvalidRegionId',
+ 'errorMessage' => 'Invalid parameter regionId.',
+ ],
+ [
+ 'errorCode' => 'InvalidVSwitch',
+ 'errorMessage' => 'Invalid parameter vSwitch.',
+ ],
+ [
+ 'errorCode' => 'InvalidVpc',
+ 'errorMessage' => 'Invalid parameter vpcId.',
+ ],
+ [
+ 'errorCode' => 'InvalidIp',
+ 'errorMessage' => 'Invalid parameter IP.',
+ ],
+ [
+ 'errorCode' => 'InvalidAliuid',
+ 'errorMessage' => 'Invalid parameter aliuid.',
+ ],
+ [
+ 'errorCode' => 'InvalidClusterId',
+ 'errorMessage' => 'Invalid parameter clusterId.',
+ ],
+ [
+ 'errorCode' => 'InvalidInstanceId',
+ 'errorMessage' => 'Invalid parameter instanceId.',
+ ],
+ [
+ 'errorCode' => 'InvalidBackupId',
+ 'errorMessage' => 'Invalid parameter backupId.',
+ ],
+ [
+ 'errorCode' => 'InvalidImageId',
+ 'errorMessage' => 'Invalid parameter imageId.',
+ ],
+ [
+ 'errorCode' => 'HsmInstanceNotExist.Error',
+ 'errorMessage' => 'hsm instance not exist',
+ ],
+ [
+ 'errorCode' => 'HSMIntanceNotActived.Error',
+ 'errorMessage' => 'hsm intance is not actived',
+ ],
+ [
+ 'errorCode' => 'WhiteListMaxCount.Error',
+ 'errorMessage' => 'whilte list is more than max count',
+ ],
+ [
+ 'errorCode' => 'ClusterIdIsNotExists.Error',
+ 'errorMessage' => 'cluster ID non-exists',
+ ],
+ [
+ 'errorCode' => 'InstanceListIsEmpty.Error',
+ 'errorMessage' => 'instance list is empty',
+ ],
+ [
+ 'errorCode' => 'InstanceIdIsEmpty.Error',
+ 'errorMessage' => 'instance id is empty',
+ ],
+ [
+ 'errorCode' => 'InstanceIsNotExistsInCluster.Error',
+ 'errorMessage' => 'cluster has no such instance',
+ ],
+ [
+ 'errorCode' => 'InstanceIsExistsInCluster.Error',
+ 'errorMessage' => 'instance already in the cluster',
+ ],
+ [
+ 'errorCode' => 'RegionNoEmpty.Error',
+ 'errorMessage' => 'region no. is empty',
+ ],
+ [
+ 'errorCode' => 'ClusterNameEmpty.Error',
+ 'errorMessage' => 'empty cluster name not allowed',
+ ],
+ [
+ 'errorCode' => 'ClusterNameIsExists.Error',
+ 'errorMessage' => 'the cluster name is already taken',
+ ],
+ [
+ 'errorCode' => 'IpNotValid.Error',
+ 'errorMessage' => 'ip not valid',
+ ],
+ [
+ 'errorCode' => 'ClusterIsEmpty.Error',
+ 'errorMessage' => 'cluster is empty',
+ ],
+ [
+ 'errorCode' => 'NoMasterFoundInCluster.Error',
+ 'errorMessage' => 'cluster has no master instance',
+ ],
+ [
+ 'errorCode' => 'HsmInstanceIdNotFound.Error',
+ 'errorMessage' => 'no such instance',
+ ],
+ [
+ 'errorCode' => 'NoInstanceFoundInCluster.Error',
+ 'errorMessage' => 'cluster is empty',
+ ],
+ [
+ 'errorCode' => 'Whitelist.Invalid',
+ 'errorMessage' => 'Whitelist blocks not in CIDR format.',
+ ],
+ [
+ 'errorCode' => 'Whitelist.TooLong',
+ 'errorMessage' => 'Whitelist too long, exceeds 10 CIDR blocks.',
+ ],
+ ],
+ 403 => [
+ [
+ 'errorCode' => 'Cluster.CN.ClusterModeInvalid',
+ 'errorMessage' => 'This API is forbidden for current cluster mode.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Caller has no permission on the resource.',
+ ],
+ [
+ 'errorCode' => 'InstanceNotPaused',
+ 'errorMessage' => 'Please pause the instance before reset.',
+ ],
+ [
+ 'errorCode' => 'InstanceNotActive',
+ 'errorMessage' => 'Instance is not active.',
+ ],
+ [
+ 'errorCode' => 'ConfigIp.IncorrectState',
+ 'errorMessage' => 'Instance not in pending or active state, can not config IP address.',
+ ],
+ [
+ 'errorCode' => 'SwitchMaster.IncorrectState',
+ 'errorMessage' => 'Cluster not initialized, please initialize the cluster first.',
+ ],
+ [
+ 'errorCode' => 'SyncCluster.IncorrectState',
+ 'errorMessage' => 'Cluster not initialized, please initialize the cluster first.',
+ ],
+ [
+ 'errorCode' => 'LeaveCluster.InstanceInvalid',
+ 'errorMessage' => 'The instance is not in the cluster.',
+ ],
+ [
+ 'errorCode' => 'DeleteCluster.IncorrectState',
+ 'errorMessage' => 'Cluster not empty, please remove all instances first.',
+ ],
+ [
+ 'errorCode' => 'JoinCluster.InstanceVSwitchNotInCluster',
+ 'errorMessage' => 'Instance\'s vSwitch is not in cluster config, please change instance\'s vSwitch first.',
+ ],
+ [
+ 'errorCode' => 'JoinCluster.InstanceInitialized',
+ 'errorMessage' => 'Initialized instance can not join a cluster.',
+ ],
+ [
+ 'errorCode' => 'JoinCluster.IncorrectState',
+ 'errorMessage' => 'Cluster not initialized, please initialize the cluster first.',
+ ],
+ [
+ 'errorCode' => 'InitializeCluster.InstanceNotInitialized',
+ 'errorMessage' => 'Cluster master instance not initialized, please initialize cluster master instance first.',
+ ],
+ [
+ 'errorCode' => 'InitializeCluster.IncorrectConfig',
+ 'errorMessage' => 'Cluster subnet not configured, please config cluster subnet first.',
+ ],
+ [
+ 'errorCode' => 'InitializeCluster.IncorrectState',
+ 'errorMessage' => 'Cluster initialized, do not re-initialize.',
+ ],
+ [
+ 'errorCode' => 'Cluster.CN.ActionForbidden',
+ 'errorMessage' => 'This API is forbidden for non-international site cluster.',
+ ],
+ [
+ 'errorCode' => 'Cluster.INTL.ActionForbidden',
+ 'errorMessage' => 'This API is forbidden for international site cluster.',
+ ],
+ [
+ 'errorCode' => 'ConfigClusterCertificate.IncorrectState',
+ 'errorMessage' => 'Cluster initialized or certificates already configured.',
+ ],
+ [
+ 'errorCode' => 'ConfigClusterSubnet.InvalidVpcId',
+ 'errorMessage' => 'VPC Id invalid. Cluster VPC is the same as cluster master\'s VPC.',
+ ],
+ [
+ 'errorCode' => 'ConfigClusterSubnet.InvalidVSwitchId',
+ 'errorMessage' => 'VSwitch Id invalid. VSwitches should contain all current cluster vSwitches.',
+ ],
+ [
+ 'errorCode' => 'ConfigClusterSubnet.IncorrectState',
+ 'errorMessage' => 'Cluster not in NEW state, can not config cluster subnet.',
+ ],
+ [
+ 'errorCode' => 'ClusterName.Exist',
+ 'errorMessage' => 'Cluster name already exists, please use another name.',
+ ],
+ [
+ 'errorCode' => 'Whitelist.InstanceInCluster',
+ 'errorMessage' => 'Whitelist.InstanceInCluster',
+ ],
+ ],
+ [
+ [
+ 'errorCode' => 'Resource.NotFound',
+ 'errorMessage' => 'Resource not found.',
+ ],
+ ],
+ [
+ [
+ 'errorCode' => 'ClusterAPI.NotSupported',
+ 'errorMessage' => 'ClusterAPI not supported in this region.',
+ ],
+ ],
+ 409 => [
+ [
+ 'errorCode' => 'Conflict',
+ 'errorMessage' => 'Resource is being updated by a previous request. Current request is redundant.',
+ ],
+ [
+ 'errorCode' => 'Cluster.Conflict',
+ 'errorMessage' => 'The cluster is being updated by a previous request. Please try again later.',
+ ],
+ ],
+ 500 => [
+ [
+ 'errorCode' => 'ConfigWhitelistFailed.Error',
+ 'errorMessage' => 'config white list error',
+ ],
+ [
+ 'errorCode' => 'ActionFailed.Error',
+ 'errorMessage' => 'internal error, please try again',
+ ],
+ [
+ 'errorCode' => 'InternalError',
+ 'errorMessage' => 'The request processing has failed due to some unknown error.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"4C467B38-3910-447D-87BC-AC049166F216\\"\\n}","type":"json"}]',
+ 'title' => 'SwitchClusterMaster',
+ ],
+ 'ConfigClusterName' => [
+ 'summary' => 'Changes the name of a cluster.',
+ 'methods' => [
+ 'post',
+ ],
+ 'schemes' => [
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'update',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'ClusterId',
+ 'in' => 'formData',
+ 'schema' => [
+ 'description' => 'The ID of the cluster.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'cluster-BqxX63Bsgfaisdf****',
+ ],
+ ],
+ [
+ 'name' => 'ClusterName',
+ 'in' => 'formData',
+ 'schema' => [
+ 'description' => 'The name of the cluster.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'cluster_on****',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'BaseResult',
+ 'description' => 'BaseResult'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '4C467B38-3910-447D-87BC-AC049166F216',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'SwitchMaster.InstanceInvalid',
+ 'errorMessage' => 'Instance not in the cluster.',
+ ],
+ [
+ 'errorCode' => 'LeaveCluster.MasterLast',
+ 'errorMessage' => 'Master instance can not leave a cluster until all other instances are left.',
+ ],
+ [
+ 'errorCode' => 'Certificate.ChainInvalid',
+ 'errorMessage' => 'Certificate chain invalid. Please make sure issuer certificate is the trust anchor and cluster certificate is signed by issuer certificate.',
+ ],
+ [
+ 'errorCode' => 'Certificate.FormatInvalid',
+ 'errorMessage' => 'Certificate format invalid. Cluster/Issuer certificate must be in PEM format.',
+ ],
+ [
+ 'errorCode' => 'ConfigClusterSubnet.DuplicateZone',
+ 'errorMessage' => 'VSwitches should not contain duplicate zones.',
+ ],
+ [
+ 'errorCode' => 'InvalidApiParam.Error',
+ 'errorMessage' => 'api param is invalid',
+ ],
+ [
+ 'errorCode' => 'InvalidClusterName',
+ 'errorMessage' => 'Invalid parameter clusterName.',
+ ],
+ [
+ 'errorCode' => 'InvalidPageSize',
+ 'errorMessage' => 'Invalid parameter pageSize.',
+ ],
+ [
+ 'errorCode' => 'InvalidCurrentPage',
+ 'errorMessage' => 'Invalid parameter currentPage.',
+ ],
+ [
+ 'errorCode' => 'InvalidRegionId',
+ 'errorMessage' => 'Invalid parameter regionId.',
+ ],
+ [
+ 'errorCode' => 'InvalidVSwitch',
+ 'errorMessage' => 'Invalid parameter vSwitch.',
+ ],
+ [
+ 'errorCode' => 'InvalidVpc',
+ 'errorMessage' => 'Invalid parameter vpcId.',
+ ],
+ [
+ 'errorCode' => 'InvalidIp',
+ 'errorMessage' => 'Invalid parameter IP.',
+ ],
+ [
+ 'errorCode' => 'InvalidAliuid',
+ 'errorMessage' => 'Invalid parameter aliuid.',
+ ],
+ [
+ 'errorCode' => 'InvalidClusterId',
+ 'errorMessage' => 'Invalid parameter clusterId.',
+ ],
+ [
+ 'errorCode' => 'InvalidInstanceId',
+ 'errorMessage' => 'Invalid parameter instanceId.',
+ ],
+ [
+ 'errorCode' => 'InvalidBackupId',
+ 'errorMessage' => 'Invalid parameter backupId.',
+ ],
+ [
+ 'errorCode' => 'InvalidImageId',
+ 'errorMessage' => 'Invalid parameter imageId.',
+ ],
+ [
+ 'errorCode' => 'HsmInstanceNotExist.Error',
+ 'errorMessage' => 'hsm instance not exist',
+ ],
+ [
+ 'errorCode' => 'HSMIntanceNotActived.Error',
+ 'errorMessage' => 'hsm intance is not actived',
+ ],
+ [
+ 'errorCode' => 'WhiteListMaxCount.Error',
+ 'errorMessage' => 'whilte list is more than max count',
+ ],
+ [
+ 'errorCode' => 'ClusterIdIsNotExists.Error',
+ 'errorMessage' => 'cluster ID non-exists',
+ ],
+ [
+ 'errorCode' => 'InstanceListIsEmpty.Error',
+ 'errorMessage' => 'instance list is empty',
+ ],
+ [
+ 'errorCode' => 'InstanceIdIsEmpty.Error',
+ 'errorMessage' => 'instance id is empty',
+ ],
+ [
+ 'errorCode' => 'InstanceIsNotExistsInCluster.Error',
+ 'errorMessage' => 'cluster has no such instance',
+ ],
+ [
+ 'errorCode' => 'InstanceIsExistsInCluster.Error',
+ 'errorMessage' => 'instance already in the cluster',
+ ],
+ [
+ 'errorCode' => 'RegionNoEmpty.Error',
+ 'errorMessage' => 'region no. is empty',
+ ],
+ [
+ 'errorCode' => 'ClusterNameEmpty.Error',
+ 'errorMessage' => 'empty cluster name not allowed',
+ ],
+ [
+ 'errorCode' => 'ClusterNameIsExists.Error',
+ 'errorMessage' => 'the cluster name is already taken',
+ ],
+ [
+ 'errorCode' => 'IpNotValid.Error',
+ 'errorMessage' => 'ip not valid',
+ ],
+ [
+ 'errorCode' => 'ClusterIsEmpty.Error',
+ 'errorMessage' => 'cluster is empty',
+ ],
+ [
+ 'errorCode' => 'NoMasterFoundInCluster.Error',
+ 'errorMessage' => 'cluster has no master instance',
+ ],
+ [
+ 'errorCode' => 'HsmInstanceIdNotFound.Error',
+ 'errorMessage' => 'no such instance',
+ ],
+ [
+ 'errorCode' => 'NoInstanceFoundInCluster.Error',
+ 'errorMessage' => 'cluster is empty',
+ ],
+ [
+ 'errorCode' => 'Whitelist.Invalid',
+ 'errorMessage' => 'Whitelist blocks not in CIDR format.',
+ ],
+ [
+ 'errorCode' => 'Whitelist.TooLong',
+ 'errorMessage' => 'Whitelist too long, exceeds 10 CIDR blocks.',
+ ],
+ ],
+ 403 => [
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Caller has no permission on the resource.',
+ ],
+ [
+ 'errorCode' => 'InstanceNotPaused',
+ 'errorMessage' => 'Please pause the instance before reset.',
+ ],
+ [
+ 'errorCode' => 'InstanceNotActive',
+ 'errorMessage' => 'Instance is not active.',
+ ],
+ [
+ 'errorCode' => 'ConfigIp.IncorrectState',
+ 'errorMessage' => 'Instance not in pending or active state, can not config IP address.',
+ ],
+ [
+ 'errorCode' => 'SwitchMaster.IncorrectState',
+ 'errorMessage' => 'Cluster not initialized, please initialize the cluster first.',
+ ],
+ [
+ 'errorCode' => 'SyncCluster.IncorrectState',
+ 'errorMessage' => 'Cluster not initialized, please initialize the cluster first.',
+ ],
+ [
+ 'errorCode' => 'LeaveCluster.InstanceInvalid',
+ 'errorMessage' => 'The instance is not in the cluster.',
+ ],
+ [
+ 'errorCode' => 'DeleteCluster.IncorrectState',
+ 'errorMessage' => 'Cluster not empty, please remove all instances first.',
+ ],
+ [
+ 'errorCode' => 'JoinCluster.InstanceVSwitchNotInCluster',
+ 'errorMessage' => 'Instance\'s vSwitch is not in cluster config, please change instance\'s vSwitch first.',
+ ],
+ [
+ 'errorCode' => 'JoinCluster.InstanceInitialized',
+ 'errorMessage' => 'Initialized instance can not join a cluster.',
+ ],
+ [
+ 'errorCode' => 'JoinCluster.IncorrectState',
+ 'errorMessage' => 'Cluster not initialized, please initialize the cluster first.',
+ ],
+ [
+ 'errorCode' => 'InitializeCluster.InstanceNotInitialized',
+ 'errorMessage' => 'Cluster master instance not initialized, please initialize cluster master instance first.',
+ ],
+ [
+ 'errorCode' => 'InitializeCluster.IncorrectConfig',
+ 'errorMessage' => 'Cluster subnet not configured, please config cluster subnet first.',
+ ],
+ [
+ 'errorCode' => 'InitializeCluster.IncorrectState',
+ 'errorMessage' => 'Cluster initialized, do not re-initialize.',
+ ],
+ [
+ 'errorCode' => 'Cluster.CN.ActionForbidden',
+ 'errorMessage' => 'This API is forbidden for non-international site cluster.',
+ ],
+ [
+ 'errorCode' => 'Cluster.INTL.ActionForbidden',
+ 'errorMessage' => 'This API is forbidden for international site cluster.',
+ ],
+ [
+ 'errorCode' => 'ConfigClusterCertificate.IncorrectState',
+ 'errorMessage' => 'Cluster initialized or certificates already configured.',
+ ],
+ [
+ 'errorCode' => 'ConfigClusterSubnet.InvalidVpcId',
+ 'errorMessage' => 'VPC Id invalid. Cluster VPC is the same as cluster master\'s VPC.',
+ ],
+ [
+ 'errorCode' => 'ConfigClusterSubnet.InvalidVSwitchId',
+ 'errorMessage' => 'VSwitch Id invalid. VSwitches should contain all current cluster vSwitches.',
+ ],
+ [
+ 'errorCode' => 'ConfigClusterSubnet.IncorrectState',
+ 'errorMessage' => 'Cluster not in NEW state, can not config cluster subnet.',
+ ],
+ [
+ 'errorCode' => 'ClusterName.Exist',
+ 'errorMessage' => 'Cluster name already exists, please use another name.',
+ ],
+ [
+ 'errorCode' => 'Whitelist.InstanceInCluster',
+ 'errorMessage' => 'Whitelist.InstanceInCluster',
+ ],
+ ],
+ [
+ [
+ 'errorCode' => 'Resource.NotFound',
+ 'errorMessage' => 'Resource not found.',
+ ],
+ ],
+ [
+ [
+ 'errorCode' => 'ClusterAPI.NotSupported',
+ 'errorMessage' => 'ClusterAPI not supported in this region.',
+ ],
+ ],
+ 409 => [
+ [
+ 'errorCode' => 'Conflict',
+ 'errorMessage' => 'Resource is being updated by a previous request. Current request is redundant.',
+ ],
+ [
+ 'errorCode' => 'Cluster.Conflict',
+ 'errorMessage' => 'The cluster is being updated by a previous request. Please try again later.',
+ ],
+ ],
+ 500 => [
+ [
+ 'errorCode' => 'ConfigWhitelistFailed.Error',
+ 'errorMessage' => 'config white list error',
+ ],
+ [
+ 'errorCode' => 'ActionFailed.Error',
+ 'errorMessage' => 'internal error, please try again',
+ ],
+ [
+ 'errorCode' => 'InternalError',
+ 'errorMessage' => 'The request processing has failed due to some unknown error.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"4C467B38-3910-447D-87BC-AC049166F216\\"\\n}","type":"json"}]',
+ 'title' => 'ConfigClusterName',
+ ],
+ 'LeaveCluster' => [
+ 'methods' => [
+ 'post',
+ ],
+ 'schemes' => [
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'update',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'ClusterId',
+ 'in' => 'formData',
+ 'schema' => [
+ 'description' => 'The ID of the cluster.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'cluster-729dm40FG****',
+ ],
+ ],
+ [
+ 'name' => 'InstanceId',
+ 'in' => 'formData',
+ 'schema' => [
+ 'description' => 'The ID of the HSM.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'hsm-cn-mp90fxef****',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'BaseResult',
+ 'description' => 'BaseResult'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '4C467B38-3910-447D-87BC-AC049166F216',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'SwitchMaster.InstanceInvalid',
+ 'errorMessage' => 'Instance not in the cluster.',
+ ],
+ [
+ 'errorCode' => 'LeaveCluster.MasterLast',
+ 'errorMessage' => 'Master instance can not leave a cluster until all other instances are left.',
+ ],
+ [
+ 'errorCode' => 'Certificate.ChainInvalid',
+ 'errorMessage' => 'Certificate chain invalid. Please make sure issuer certificate is the trust anchor and cluster certificate is signed by issuer certificate.',
+ ],
+ [
+ 'errorCode' => 'Certificate.FormatInvalid',
+ 'errorMessage' => 'Certificate format invalid. Cluster/Issuer certificate must be in PEM format.',
+ ],
+ [
+ 'errorCode' => 'ConfigClusterSubnet.DuplicateZone',
+ 'errorMessage' => 'VSwitches should not contain duplicate zones.',
+ ],
+ [
+ 'errorCode' => 'InvalidApiParam.Error',
+ 'errorMessage' => 'api param is invalid',
+ ],
+ [
+ 'errorCode' => 'InvalidClusterName',
+ 'errorMessage' => 'Invalid parameter clusterName.',
+ ],
+ [
+ 'errorCode' => 'InvalidPageSize',
+ 'errorMessage' => 'Invalid parameter pageSize.',
+ ],
+ [
+ 'errorCode' => 'InvalidCurrentPage',
+ 'errorMessage' => 'Invalid parameter currentPage.',
+ ],
+ [
+ 'errorCode' => 'InvalidRegionId',
+ 'errorMessage' => 'Invalid parameter regionId.',
+ ],
+ [
+ 'errorCode' => 'InvalidVSwitch',
+ 'errorMessage' => 'Invalid parameter vSwitch.',
+ ],
+ [
+ 'errorCode' => 'InvalidVpc',
+ 'errorMessage' => 'Invalid parameter vpcId.',
+ ],
+ [
+ 'errorCode' => 'InvalidIp',
+ 'errorMessage' => 'Invalid parameter IP.',
+ ],
+ [
+ 'errorCode' => 'InvalidAliuid',
+ 'errorMessage' => 'Invalid parameter aliuid.',
+ ],
+ [
+ 'errorCode' => 'InvalidClusterId',
+ 'errorMessage' => 'Invalid parameter clusterId.',
+ ],
+ [
+ 'errorCode' => 'InvalidInstanceId',
+ 'errorMessage' => 'Invalid parameter instanceId.',
+ ],
+ [
+ 'errorCode' => 'InvalidBackupId',
+ 'errorMessage' => 'Invalid parameter backupId.',
+ ],
+ [
+ 'errorCode' => 'InvalidImageId',
+ 'errorMessage' => 'Invalid parameter imageId.',
+ ],
+ [
+ 'errorCode' => 'HsmInstanceNotExist.Error',
+ 'errorMessage' => 'hsm instance not exist',
+ ],
+ [
+ 'errorCode' => 'HSMIntanceNotActived.Error',
+ 'errorMessage' => 'hsm intance is not actived',
+ ],
+ [
+ 'errorCode' => 'WhiteListMaxCount.Error',
+ 'errorMessage' => 'whilte list is more than max count',
+ ],
+ [
+ 'errorCode' => 'ClusterIdIsNotExists.Error',
+ 'errorMessage' => 'cluster ID non-exists',
+ ],
+ [
+ 'errorCode' => 'InstanceListIsEmpty.Error',
+ 'errorMessage' => 'instance list is empty',
+ ],
+ [
+ 'errorCode' => 'InstanceIdIsEmpty.Error',
+ 'errorMessage' => 'instance id is empty',
+ ],
+ [
+ 'errorCode' => 'InstanceIsNotExistsInCluster.Error',
+ 'errorMessage' => 'cluster has no such instance',
+ ],
+ [
+ 'errorCode' => 'InstanceIsExistsInCluster.Error',
+ 'errorMessage' => 'instance already in the cluster',
+ ],
+ [
+ 'errorCode' => 'RegionNoEmpty.Error',
+ 'errorMessage' => 'region no. is empty',
+ ],
+ [
+ 'errorCode' => 'ClusterNameEmpty.Error',
+ 'errorMessage' => 'empty cluster name not allowed',
+ ],
+ [
+ 'errorCode' => 'ClusterNameIsExists.Error',
+ 'errorMessage' => 'the cluster name is already taken',
+ ],
+ [
+ 'errorCode' => 'IpNotValid.Error',
+ 'errorMessage' => 'ip not valid',
+ ],
+ [
+ 'errorCode' => 'ClusterIsEmpty.Error',
+ 'errorMessage' => 'cluster is empty',
+ ],
+ [
+ 'errorCode' => 'NoMasterFoundInCluster.Error',
+ 'errorMessage' => 'cluster has no master instance',
+ ],
+ [
+ 'errorCode' => 'HsmInstanceIdNotFound.Error',
+ 'errorMessage' => 'no such instance',
+ ],
+ [
+ 'errorCode' => 'NoInstanceFoundInCluster.Error',
+ 'errorMessage' => 'cluster is empty',
+ ],
+ [
+ 'errorCode' => 'Whitelist.Invalid',
+ 'errorMessage' => 'Whitelist blocks not in CIDR format.',
+ ],
+ [
+ 'errorCode' => 'Whitelist.TooLong',
+ 'errorMessage' => 'Whitelist too long, exceeds 10 CIDR blocks.',
+ ],
+ ],
+ 403 => [
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Caller has no permission on the resource.',
+ ],
+ [
+ 'errorCode' => 'InstanceNotPaused',
+ 'errorMessage' => 'Please pause the instance before reset.',
+ ],
+ [
+ 'errorCode' => 'InstanceNotActive',
+ 'errorMessage' => 'Instance is not active.',
+ ],
+ [
+ 'errorCode' => 'ConfigIp.IncorrectState',
+ 'errorMessage' => 'Instance not in pending or active state, can not config IP address.',
+ ],
+ [
+ 'errorCode' => 'SwitchMaster.IncorrectState',
+ 'errorMessage' => 'Cluster not initialized, please initialize the cluster first.',
+ ],
+ [
+ 'errorCode' => 'SyncCluster.IncorrectState',
+ 'errorMessage' => 'Cluster not initialized, please initialize the cluster first.',
+ ],
+ [
+ 'errorCode' => 'LeaveCluster.InstanceInvalid',
+ 'errorMessage' => 'The instance is not in the cluster.',
+ ],
+ [
+ 'errorCode' => 'DeleteCluster.IncorrectState',
+ 'errorMessage' => 'Cluster not empty, please remove all instances first.',
+ ],
+ [
+ 'errorCode' => 'JoinCluster.InstanceVSwitchNotInCluster',
+ 'errorMessage' => 'Instance\'s vSwitch is not in cluster config, please change instance\'s vSwitch first.',
+ ],
+ [
+ 'errorCode' => 'JoinCluster.InstanceInitialized',
+ 'errorMessage' => 'Initialized instance can not join a cluster.',
+ ],
+ [
+ 'errorCode' => 'JoinCluster.IncorrectState',
+ 'errorMessage' => 'Cluster not initialized, please initialize the cluster first.',
+ ],
+ [
+ 'errorCode' => 'InitializeCluster.InstanceNotInitialized',
+ 'errorMessage' => 'Cluster master instance not initialized, please initialize cluster master instance first.',
+ ],
+ [
+ 'errorCode' => 'InitializeCluster.IncorrectConfig',
+ 'errorMessage' => 'Cluster subnet not configured, please config cluster subnet first.',
+ ],
+ [
+ 'errorCode' => 'InitializeCluster.IncorrectState',
+ 'errorMessage' => 'Cluster initialized, do not re-initialize.',
+ ],
+ [
+ 'errorCode' => 'Cluster.CN.ActionForbidden',
+ 'errorMessage' => 'This API is forbidden for non-international site cluster.',
+ ],
+ [
+ 'errorCode' => 'Cluster.INTL.ActionForbidden',
+ 'errorMessage' => 'This API is forbidden for international site cluster.',
+ ],
+ [
+ 'errorCode' => 'ConfigClusterCertificate.IncorrectState',
+ 'errorMessage' => 'Cluster initialized or certificates already configured.',
+ ],
+ [
+ 'errorCode' => 'ConfigClusterSubnet.InvalidVpcId',
+ 'errorMessage' => 'VPC Id invalid. Cluster VPC is the same as cluster master\'s VPC.',
+ ],
+ [
+ 'errorCode' => 'ConfigClusterSubnet.InvalidVSwitchId',
+ 'errorMessage' => 'VSwitch Id invalid. VSwitches should contain all current cluster vSwitches.',
+ ],
+ [
+ 'errorCode' => 'ConfigClusterSubnet.IncorrectState',
+ 'errorMessage' => 'Cluster not in NEW state, can not config cluster subnet.',
+ ],
+ [
+ 'errorCode' => 'ClusterName.Exist',
+ 'errorMessage' => 'Cluster name already exists, please use another name.',
+ ],
+ [
+ 'errorCode' => 'Whitelist.InstanceInCluster',
+ 'errorMessage' => 'Whitelist.InstanceInCluster',
+ ],
+ ],
+ [
+ [
+ 'errorCode' => 'Resource.NotFound',
+ 'errorMessage' => 'Resource not found.',
+ ],
+ ],
+ [
+ [
+ 'errorCode' => 'ClusterAPI.NotSupported',
+ 'errorMessage' => 'ClusterAPI not supported in this region.',
+ ],
+ ],
+ 409 => [
+ [
+ 'errorCode' => 'Conflict',
+ 'errorMessage' => 'Resource is being updated by a previous request. Current request is redundant.',
+ ],
+ [
+ 'errorCode' => 'Cluster.Conflict',
+ 'errorMessage' => 'The cluster is being updated by a previous request. Please try again later.',
+ ],
+ ],
+ 500 => [
+ [
+ 'errorCode' => 'ConfigWhitelistFailed.Error',
+ 'errorMessage' => 'config white list error',
+ ],
+ [
+ 'errorCode' => 'ActionFailed.Error',
+ 'errorMessage' => 'internal error, please try again',
+ ],
+ [
+ 'errorCode' => 'InternalError',
+ 'errorMessage' => 'The request processing has failed due to some unknown error.',
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"4C467B38-3910-447D-87BC-AC049166F216\\"\\n}","type":"json"}]',
+ 'title' => 'LeaveCluster',
+ 'summary' => 'Removes a hardware security module (HSM) from the current cluster.',
+ 'description' => '* If non-master HSMs exist in a cluster, the master HSM cannot be removed from the cluster.'."\n"
+ .'* After the master HSM is removed from a cluster, the cluster enters the TO_DELETE state and cannot be restored to the available state. Proceed with caution.'."\n",
+ ],
+ 'CreateCluster' => [
+ 'methods' => [
+ 'post',
+ ],
+ 'schemes' => [
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'create',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'ClusterName',
+ 'in' => 'formData',
+ 'schema' => [
+ 'description' => 'The name of the cluster.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'cluster_on****',
+ ],
+ ],
+ [
+ 'name' => 'RegionId',
+ 'in' => 'formData',
+ 'schema' => [
+ 'description' => 'The ID of the region.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'cn-hangzhou',
+ ],
+ ],
+ [
+ 'name' => 'MasterInstanceId',
+ 'in' => 'formData',
+ 'schema' => [
+ 'description' => 'The ID of the master HSM.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'hsm_intl-sg-uz63ixak****',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'PlainResult<OpenApiCreateClusterResponse>',
+ 'description' => 'PlainResult'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '5F58413E-8F57-585B-BE48-64CC1E31133C',
+ ],
+ 'ClusterId' => [
+ 'description' => 'The ID of the cluster.'."\n",
+ 'type' => 'string',
+ 'example' => 'cluster-729dm40FG****',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'SwitchMaster.InstanceInvalid',
+ 'errorMessage' => 'Instance not in the cluster.',
+ ],
+ [
+ 'errorCode' => 'LeaveCluster.MasterLast',
+ 'errorMessage' => 'Master instance can not leave a cluster until all other instances are left.',
+ ],
+ [
+ 'errorCode' => 'Certificate.ChainInvalid',
+ 'errorMessage' => 'Certificate chain invalid. Please make sure issuer certificate is the trust anchor and cluster certificate is signed by issuer certificate.',
+ ],
+ [
+ 'errorCode' => 'Certificate.FormatInvalid',
+ 'errorMessage' => 'Certificate format invalid. Cluster/Issuer certificate must be in PEM format.',
+ ],
+ [
+ 'errorCode' => 'ConfigClusterSubnet.DuplicateZone',
+ 'errorMessage' => 'VSwitches should not contain duplicate zones.',
+ ],
+ [
+ 'errorCode' => 'InvalidApiParam.Error',
+ 'errorMessage' => 'api param is invalid',
+ ],
+ [
+ 'errorCode' => 'InvalidClusterName',
+ 'errorMessage' => 'Invalid parameter clusterName.',
+ ],
+ [
+ 'errorCode' => 'InvalidPageSize',
+ 'errorMessage' => 'Invalid parameter pageSize.',
+ ],
+ [
+ 'errorCode' => 'InvalidCurrentPage',
+ 'errorMessage' => 'Invalid parameter currentPage.',
+ ],
+ [
+ 'errorCode' => 'InvalidRegionId',
+ 'errorMessage' => 'Invalid parameter regionId.',
+ ],
+ [
+ 'errorCode' => 'InvalidVSwitch',
+ 'errorMessage' => 'Invalid parameter vSwitch.',
+ ],
+ [
+ 'errorCode' => 'InvalidVpc',
+ 'errorMessage' => 'Invalid parameter vpcId.',
+ ],
+ [
+ 'errorCode' => 'InvalidIp',
+ 'errorMessage' => 'Invalid parameter IP.',
+ ],
+ [
+ 'errorCode' => 'InvalidAliuid',
+ 'errorMessage' => 'Invalid parameter aliuid.',
+ ],
+ [
+ 'errorCode' => 'InvalidClusterId',
+ 'errorMessage' => 'Invalid parameter clusterId.',
+ ],
+ [
+ 'errorCode' => 'InvalidInstanceId',
+ 'errorMessage' => 'Invalid parameter instanceId.',
+ ],
+ [
+ 'errorCode' => 'InvalidBackupId',
+ 'errorMessage' => 'Invalid parameter backupId.',
+ ],
+ [
+ 'errorCode' => 'InvalidImageId',
+ 'errorMessage' => 'Invalid parameter imageId.',
+ ],
+ [
+ 'errorCode' => 'HsmInstanceNotExist.Error',
+ 'errorMessage' => 'hsm instance not exist',
+ ],
+ [
+ 'errorCode' => 'HSMIntanceNotActived.Error',
+ 'errorMessage' => 'hsm intance is not actived',
+ ],
+ [
+ 'errorCode' => 'WhiteListMaxCount.Error',
+ 'errorMessage' => 'whilte list is more than max count',
+ ],
+ [
+ 'errorCode' => 'ClusterIdIsNotExists.Error',
+ 'errorMessage' => 'cluster ID non-exists',
+ ],
+ [
+ 'errorCode' => 'InstanceListIsEmpty.Error',
+ 'errorMessage' => 'instance list is empty',
+ ],
+ [
+ 'errorCode' => 'InstanceIdIsEmpty.Error',
+ 'errorMessage' => 'instance id is empty',
+ ],
+ [
+ 'errorCode' => 'InstanceIsNotExistsInCluster.Error',
+ 'errorMessage' => 'cluster has no such instance',
+ ],
+ [
+ 'errorCode' => 'InstanceIsExistsInCluster.Error',
+ 'errorMessage' => 'instance already in the cluster',
+ ],
+ [
+ 'errorCode' => 'RegionNoEmpty.Error',
+ 'errorMessage' => 'region no. is empty',
+ ],
+ [
+ 'errorCode' => 'ClusterNameEmpty.Error',
+ 'errorMessage' => 'empty cluster name not allowed',
+ ],
+ [
+ 'errorCode' => 'ClusterNameIsExists.Error',
+ 'errorMessage' => 'the cluster name is already taken',
+ ],
+ [
+ 'errorCode' => 'IpNotValid.Error',
+ 'errorMessage' => 'ip not valid',
+ ],
+ [
+ 'errorCode' => 'ClusterIsEmpty.Error',
+ 'errorMessage' => 'cluster is empty',
+ ],
+ [
+ 'errorCode' => 'NoMasterFoundInCluster.Error',
+ 'errorMessage' => 'cluster has no master instance',
+ ],
+ [
+ 'errorCode' => 'HsmInstanceIdNotFound.Error',
+ 'errorMessage' => 'no such instance',
+ ],
+ [
+ 'errorCode' => 'NoInstanceFoundInCluster.Error',
+ 'errorMessage' => 'cluster is empty',
+ ],
+ [
+ 'errorCode' => 'Whitelist.Invalid',
+ 'errorMessage' => 'Whitelist blocks not in CIDR format.',
+ ],
+ [
+ 'errorCode' => 'Whitelist.TooLong',
+ 'errorMessage' => 'Whitelist too long, exceeds 10 CIDR blocks.',
+ ],
+ ],
+ 403 => [
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Caller has no permission on the resource.',
+ ],
+ [
+ 'errorCode' => 'InstanceNotPaused',
+ 'errorMessage' => 'Please pause the instance before reset.',
+ ],
+ [
+ 'errorCode' => 'InstanceNotActive',
+ 'errorMessage' => 'Instance is not active.',
+ ],
+ [
+ 'errorCode' => 'ConfigIp.IncorrectState',
+ 'errorMessage' => 'Instance not in pending or active state, can not config IP address.',
+ ],
+ [
+ 'errorCode' => 'SwitchMaster.IncorrectState',
+ 'errorMessage' => 'Cluster not initialized, please initialize the cluster first.',
+ ],
+ [
+ 'errorCode' => 'SyncCluster.IncorrectState',
+ 'errorMessage' => 'Cluster not initialized, please initialize the cluster first.',
+ ],
+ [
+ 'errorCode' => 'LeaveCluster.InstanceInvalid',
+ 'errorMessage' => 'The instance is not in the cluster.',
+ ],
+ [
+ 'errorCode' => 'DeleteCluster.IncorrectState',
+ 'errorMessage' => 'Cluster not empty, please remove all instances first.',
+ ],
+ [
+ 'errorCode' => 'JoinCluster.InstanceVSwitchNotInCluster',
+ 'errorMessage' => 'Instance\'s vSwitch is not in cluster config, please change instance\'s vSwitch first.',
+ ],
+ [
+ 'errorCode' => 'JoinCluster.InstanceInitialized',
+ 'errorMessage' => 'Initialized instance can not join a cluster.',
+ ],
+ [
+ 'errorCode' => 'JoinCluster.IncorrectState',
+ 'errorMessage' => 'Cluster not initialized, please initialize the cluster first.',
+ ],
+ [
+ 'errorCode' => 'InitializeCluster.InstanceNotInitialized',
+ 'errorMessage' => 'Cluster master instance not initialized, please initialize cluster master instance first.',
+ ],
+ [
+ 'errorCode' => 'InitializeCluster.IncorrectConfig',
+ 'errorMessage' => 'Cluster subnet not configured, please config cluster subnet first.',
+ ],
+ [
+ 'errorCode' => 'InitializeCluster.IncorrectState',
+ 'errorMessage' => 'Cluster initialized, do not re-initialize.',
+ ],
+ [
+ 'errorCode' => 'Cluster.CN.ActionForbidden',
+ 'errorMessage' => 'This API is forbidden for non-international site cluster.',
+ ],
+ [
+ 'errorCode' => 'Cluster.INTL.ActionForbidden',
+ 'errorMessage' => 'This API is forbidden for international site cluster.',
+ ],
+ [
+ 'errorCode' => 'ConfigClusterCertificate.IncorrectState',
+ 'errorMessage' => 'Cluster initialized or certificates already configured.',
+ ],
+ [
+ 'errorCode' => 'ConfigClusterSubnet.InvalidVpcId',
+ 'errorMessage' => 'VPC Id invalid. Cluster VPC is the same as cluster master\'s VPC.',
+ ],
+ [
+ 'errorCode' => 'ConfigClusterSubnet.InvalidVSwitchId',
+ 'errorMessage' => 'VSwitch Id invalid. VSwitches should contain all current cluster vSwitches.',
+ ],
+ [
+ 'errorCode' => 'ConfigClusterSubnet.IncorrectState',
+ 'errorMessage' => 'Cluster not in NEW state, can not config cluster subnet.',
+ ],
+ [
+ 'errorCode' => 'ClusterName.Exist',
+ 'errorMessage' => 'Cluster name already exists, please use another name.',
+ ],
+ [
+ 'errorCode' => 'Whitelist.InstanceInCluster',
+ 'errorMessage' => 'Whitelist.InstanceInCluster',
+ ],
+ ],
+ [
+ [
+ 'errorCode' => 'Resource.NotFound',
+ 'errorMessage' => 'Resource not found.',
+ ],
+ ],
+ [
+ [
+ 'errorCode' => 'ClusterAPI.NotSupported',
+ 'errorMessage' => 'ClusterAPI not supported in this region.',
+ ],
+ ],
+ 409 => [
+ [
+ 'errorCode' => 'Conflict',
+ 'errorMessage' => 'Resource is being updated by a previous request. Current request is redundant.',
+ ],
+ [
+ 'errorCode' => 'Cluster.Conflict',
+ 'errorMessage' => 'The cluster is being updated by a previous request. Please try again later.',
+ ],
+ ],
+ 500 => [
+ [
+ 'errorCode' => 'ConfigWhitelistFailed.Error',
+ 'errorMessage' => 'config white list error',
+ ],
+ [
+ 'errorCode' => 'ActionFailed.Error',
+ 'errorMessage' => 'internal error, please try again',
+ ],
+ [
+ 'errorCode' => 'InternalError',
+ 'errorMessage' => 'The request processing has failed due to some unknown error.',
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"5F58413E-8F57-585B-BE48-64CC1E31133C\\",\\n \\"ClusterId\\": \\"cluster-729dm40FG****\\"\\n}","type":"json"}]',
+ 'title' => 'CreateCluster',
+ 'summary' => 'Creates a cluster by specifying a hardware security module (HSM) as the master HSM.',
+ 'description' => 'The master HSM that you specify to create a cluster must be in the ACTIVE state.'."\n",
+ ],
+ 'ListClusters' => [
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'RegionId',
+ 'in' => 'formData',
+ 'schema' => [
+ 'description' => 'The ID of the region.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'cn-hangzhou',
+ ],
+ ],
+ [
+ 'name' => 'CurrentPage',
+ 'in' => 'formData',
+ 'schema' => [
+ 'description' => 'The page number.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => true,
+ 'example' => '1',
+ ],
+ ],
+ [
+ 'name' => 'PageSize',
+ 'in' => 'formData',
+ 'schema' => [
+ 'description' => 'The number of entries per page. Valid values: 1 to 1000.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => true,
+ 'example' => '20',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'OpenApiPageResult<OpenApiListClustersResponse>',
+ 'description' => 'OpenApiPageResult'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'Total' => [
+ 'description' => 'The total number of clusters.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '114',
+ ],
+ 'PageSize' => [
+ 'description' => 'The number of entries per page.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '20',
+ ],
+ 'CurrentPage' => [
+ 'description' => 'The page number.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '1',
+ ],
+ 'RequestId' => [
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '4C467B38-3910-447D-87BC-AC049166F216',
+ ],
+ 'Clusters' => [
+ 'description' => 'The clusters.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The information about the cluster.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'ClusterId' => [
+ 'description' => 'The ID of the cluster.'."\n",
+ 'type' => 'string',
+ 'example' => 'cluster-w3G9vOJI2****',
+ ],
+ 'Status' => [
+ 'description' => 'The status of the cluster. Valid values:'."\n"
+ ."\n"
+ .'* NEW: The cluster is not initialized.'."\n"
+ .'* INITIALIZED: The cluster is initialized.'."\n"
+ .'* DELETED: The cluster is deleted.'."\n"
+ .'* SYNCHRONIZING: The cluster is being synchronized.'."\n"
+ .'* TO_DELETE: The cluster is pending deletion.'."\n",
+ 'type' => 'string',
+ 'example' => 'INITIALIZED',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'SwitchMaster.InstanceInvalid',
+ 'errorMessage' => 'Instance not in the cluster.',
+ ],
+ [
+ 'errorCode' => 'LeaveCluster.MasterLast',
+ 'errorMessage' => 'Master instance can not leave a cluster until all other instances are left.',
+ ],
+ [
+ 'errorCode' => 'Certificate.ChainInvalid',
+ 'errorMessage' => 'Certificate chain invalid. Please make sure issuer certificate is the trust anchor and cluster certificate is signed by issuer certificate.',
+ ],
+ [
+ 'errorCode' => 'Certificate.FormatInvalid',
+ 'errorMessage' => 'Certificate format invalid. Cluster/Issuer certificate must be in PEM format.',
+ ],
+ [
+ 'errorCode' => 'ConfigClusterSubnet.DuplicateZone',
+ 'errorMessage' => 'VSwitches should not contain duplicate zones.',
+ ],
+ [
+ 'errorCode' => 'InvalidApiParam.Error',
+ 'errorMessage' => 'api param is invalid',
+ ],
+ [
+ 'errorCode' => 'InvalidClusterName',
+ 'errorMessage' => 'Invalid parameter clusterName.',
+ ],
+ [
+ 'errorCode' => 'InvalidPageSize',
+ 'errorMessage' => 'Invalid parameter pageSize.',
+ ],
+ [
+ 'errorCode' => 'InvalidCurrentPage',
+ 'errorMessage' => 'Invalid parameter currentPage.',
+ ],
+ [
+ 'errorCode' => 'InvalidRegionId',
+ 'errorMessage' => 'Invalid parameter regionId.',
+ ],
+ [
+ 'errorCode' => 'InvalidVSwitch',
+ 'errorMessage' => 'Invalid parameter vSwitch.',
+ ],
+ [
+ 'errorCode' => 'InvalidVpc',
+ 'errorMessage' => 'Invalid parameter vpcId.',
+ ],
+ [
+ 'errorCode' => 'InvalidIp',
+ 'errorMessage' => 'Invalid parameter IP.',
+ ],
+ [
+ 'errorCode' => 'InvalidAliuid',
+ 'errorMessage' => 'Invalid parameter aliuid.',
+ ],
+ [
+ 'errorCode' => 'InvalidClusterId',
+ 'errorMessage' => 'Invalid parameter clusterId.',
+ ],
+ [
+ 'errorCode' => 'InvalidInstanceId',
+ 'errorMessage' => 'Invalid parameter instanceId.',
+ ],
+ [
+ 'errorCode' => 'InvalidBackupId',
+ 'errorMessage' => 'Invalid parameter backupId.',
+ ],
+ [
+ 'errorCode' => 'InvalidImageId',
+ 'errorMessage' => 'Invalid parameter imageId.',
+ ],
+ [
+ 'errorCode' => 'HsmInstanceNotExist.Error',
+ 'errorMessage' => 'hsm instance not exist',
+ ],
+ [
+ 'errorCode' => 'HSMIntanceNotActived.Error',
+ 'errorMessage' => 'hsm intance is not actived',
+ ],
+ [
+ 'errorCode' => 'WhiteListMaxCount.Error',
+ 'errorMessage' => 'whilte list is more than max count',
+ ],
+ [
+ 'errorCode' => 'ClusterIdIsNotExists.Error',
+ 'errorMessage' => 'cluster ID non-exists',
+ ],
+ [
+ 'errorCode' => 'InstanceListIsEmpty.Error',
+ 'errorMessage' => 'instance list is empty',
+ ],
+ [
+ 'errorCode' => 'InstanceIdIsEmpty.Error',
+ 'errorMessage' => 'instance id is empty',
+ ],
+ [
+ 'errorCode' => 'InstanceIsNotExistsInCluster.Error',
+ 'errorMessage' => 'cluster has no such instance',
+ ],
+ [
+ 'errorCode' => 'InstanceIsExistsInCluster.Error',
+ 'errorMessage' => 'instance already in the cluster',
+ ],
+ [
+ 'errorCode' => 'RegionNoEmpty.Error',
+ 'errorMessage' => 'region no. is empty',
+ ],
+ [
+ 'errorCode' => 'ClusterNameEmpty.Error',
+ 'errorMessage' => 'empty cluster name not allowed',
+ ],
+ [
+ 'errorCode' => 'ClusterNameIsExists.Error',
+ 'errorMessage' => 'the cluster name is already taken',
+ ],
+ [
+ 'errorCode' => 'IpNotValid.Error',
+ 'errorMessage' => 'ip not valid',
+ ],
+ [
+ 'errorCode' => 'ClusterIsEmpty.Error',
+ 'errorMessage' => 'cluster is empty',
+ ],
+ [
+ 'errorCode' => 'NoMasterFoundInCluster.Error',
+ 'errorMessage' => 'cluster has no master instance',
+ ],
+ [
+ 'errorCode' => 'HsmInstanceIdNotFound.Error',
+ 'errorMessage' => 'no such instance',
+ ],
+ [
+ 'errorCode' => 'NoInstanceFoundInCluster.Error',
+ 'errorMessage' => 'cluster is empty',
+ ],
+ [
+ 'errorCode' => 'Whitelist.Invalid',
+ 'errorMessage' => 'Whitelist blocks not in CIDR format.',
+ ],
+ [
+ 'errorCode' => 'Whitelist.TooLong',
+ 'errorMessage' => 'Whitelist too long, exceeds 10 CIDR blocks.',
+ ],
+ ],
+ 403 => [
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Caller has no permission on the resource.',
+ ],
+ [
+ 'errorCode' => 'InstanceNotPaused',
+ 'errorMessage' => 'Please pause the instance before reset.',
+ ],
+ [
+ 'errorCode' => 'InstanceNotActive',
+ 'errorMessage' => 'Instance is not active.',
+ ],
+ [
+ 'errorCode' => 'ConfigIp.IncorrectState',
+ 'errorMessage' => 'Instance not in pending or active state, can not config IP address.',
+ ],
+ [
+ 'errorCode' => 'SwitchMaster.IncorrectState',
+ 'errorMessage' => 'Cluster not initialized, please initialize the cluster first.',
+ ],
+ [
+ 'errorCode' => 'SyncCluster.IncorrectState',
+ 'errorMessage' => 'Cluster not initialized, please initialize the cluster first.',
+ ],
+ [
+ 'errorCode' => 'LeaveCluster.InstanceInvalid',
+ 'errorMessage' => 'The instance is not in the cluster.',
+ ],
+ [
+ 'errorCode' => 'DeleteCluster.IncorrectState',
+ 'errorMessage' => 'Cluster not empty, please remove all instances first.',
+ ],
+ [
+ 'errorCode' => 'JoinCluster.InstanceVSwitchNotInCluster',
+ 'errorMessage' => 'Instance\'s vSwitch is not in cluster config, please change instance\'s vSwitch first.',
+ ],
+ [
+ 'errorCode' => 'JoinCluster.InstanceInitialized',
+ 'errorMessage' => 'Initialized instance can not join a cluster.',
+ ],
+ [
+ 'errorCode' => 'JoinCluster.IncorrectState',
+ 'errorMessage' => 'Cluster not initialized, please initialize the cluster first.',
+ ],
+ [
+ 'errorCode' => 'InitializeCluster.InstanceNotInitialized',
+ 'errorMessage' => 'Cluster master instance not initialized, please initialize cluster master instance first.',
+ ],
+ [
+ 'errorCode' => 'InitializeCluster.IncorrectConfig',
+ 'errorMessage' => 'Cluster subnet not configured, please config cluster subnet first.',
+ ],
+ [
+ 'errorCode' => 'InitializeCluster.IncorrectState',
+ 'errorMessage' => 'Cluster initialized, do not re-initialize.',
+ ],
+ [
+ 'errorCode' => 'Cluster.CN.ActionForbidden',
+ 'errorMessage' => 'This API is forbidden for non-international site cluster.',
+ ],
+ [
+ 'errorCode' => 'Cluster.INTL.ActionForbidden',
+ 'errorMessage' => 'This API is forbidden for international site cluster.',
+ ],
+ [
+ 'errorCode' => 'ConfigClusterCertificate.IncorrectState',
+ 'errorMessage' => 'Cluster initialized or certificates already configured.',
+ ],
+ [
+ 'errorCode' => 'ConfigClusterSubnet.InvalidVpcId',
+ 'errorMessage' => 'VPC Id invalid. Cluster VPC is the same as cluster master\'s VPC.',
+ ],
+ [
+ 'errorCode' => 'ConfigClusterSubnet.InvalidVSwitchId',
+ 'errorMessage' => 'VSwitch Id invalid. VSwitches should contain all current cluster vSwitches.',
+ ],
+ [
+ 'errorCode' => 'ConfigClusterSubnet.IncorrectState',
+ 'errorMessage' => 'Cluster not in NEW state, can not config cluster subnet.',
+ ],
+ [
+ 'errorCode' => 'ClusterName.Exist',
+ 'errorMessage' => 'Cluster name already exists, please use another name.',
+ ],
+ [
+ 'errorCode' => 'Whitelist.InstanceInCluster',
+ 'errorMessage' => 'Whitelist.InstanceInCluster',
+ ],
+ ],
+ [
+ [
+ 'errorCode' => 'Resource.NotFound',
+ 'errorMessage' => 'Resource not found.',
+ ],
+ ],
+ [
+ [
+ 'errorCode' => 'ClusterAPI.NotSupported',
+ 'errorMessage' => 'ClusterAPI not supported in this region.',
+ ],
+ ],
+ 409 => [
+ [
+ 'errorCode' => 'Conflict',
+ 'errorMessage' => 'Resource is being updated by a previous request. Current request is redundant.',
+ ],
+ [
+ 'errorCode' => 'Cluster.Conflict',
+ 'errorMessage' => 'The cluster is being updated by a previous request. Please try again later.',
+ ],
+ ],
+ 500 => [
+ [
+ 'errorCode' => 'ConfigWhitelistFailed.Error',
+ 'errorMessage' => 'config white list error',
+ ],
+ [
+ 'errorCode' => 'ActionFailed.Error',
+ 'errorMessage' => 'internal error, please try again',
+ ],
+ [
+ 'errorCode' => 'InternalError',
+ 'errorMessage' => 'The request processing has failed due to some unknown error.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Total\\": 114,\\n \\"PageSize\\": 20,\\n \\"CurrentPage\\": 1,\\n \\"RequestId\\": \\"4C467B38-3910-447D-87BC-AC049166F216\\",\\n \\"Clusters\\": [\\n {\\n \\"ClusterId\\": \\"cluster-w3G9vOJI2****\\",\\n \\"Status\\": \\"INITIALIZED\\"\\n }\\n ]\\n}","type":"json"}]',
+ 'title' => 'ListClusters',
+ 'summary' => 'Queries the clusters that meet the query conditions.',
+ ],
+ 'ConfigClusterCertificate' => [
+ 'summary' => 'Configures a certificate for a cluster of hardware security modules (HSMs) outside the Chinese mainland.',
+ 'methods' => [
+ 'post',
+ ],
+ 'schemes' => [
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'update',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'ClusterId',
+ 'in' => 'formData',
+ 'schema' => [
+ 'description' => 'The ID of the cluster.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'cluster-BqxX63Bsg****',
+ ],
+ ],
+ [
+ 'name' => 'IssuerCertificate',
+ 'in' => 'formData',
+ 'schema' => [
+ 'description' => 'The self-signed certificate.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => '-----BEGIN CERTIFICATE-----'."\n"
+ .'MIIDfTCCAmWgAwIBAgIJAMRqQMr5if66MA0GCSqGSIb3DQEBCwUAMFUxCzAJBgNV'."\n"
+ .'BAYTAmNuMQswCQYDVQQIDAJ6ajELMAkGA1UEBwwCaHoxFjAUBgNVBAoMDUFsaWJh'."\n"
+ .'YmEgQ2xvdWQxFDA****'."\n"
+ .'-----END CERTIFICATE-----',
+ ],
+ ],
+ [
+ 'name' => 'ClusterCertificate',
+ 'in' => 'formData',
+ 'schema' => [
+ 'description' => 'The cluster certificate.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => '-----BEGIN CERTIFICATE-----'."\n"
+ .'MIIDaTCCAlECAQEwDQYJKoZIhvcNAQELBQAwVTELMAkGA1UEBhMCY24xCzAJBgNV'."\n"
+ .'BAgMAnpqMQswCQYDVQQHDAJoejEWMBQGA1UECgwNQWxpYmFiYSBDbG91ZDEUMBIG'."\n"
+ .'A1UECwwLU2VjQ2xvdWRIc20wHhcNMjQwNzAzM****-----END CERTIFICATE-----',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'BaseResult',
+ 'description' => 'BaseResult'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '4C467B38-3910-447D-87BC-AC049166F216',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'SwitchMaster.InstanceInvalid',
+ 'errorMessage' => 'Instance not in the cluster.',
+ ],
+ [
+ 'errorCode' => 'LeaveCluster.MasterLast',
+ 'errorMessage' => 'Master instance can not leave a cluster until all other instances are left.',
+ ],
+ [
+ 'errorCode' => 'Certificate.ChainInvalid',
+ 'errorMessage' => 'Certificate chain invalid. Please make sure issuer certificate is the trust anchor and cluster certificate is signed by issuer certificate.',
+ ],
+ [
+ 'errorCode' => 'Certificate.FormatInvalid',
+ 'errorMessage' => 'Certificate format invalid. Cluster/Issuer certificate must be in PEM format.',
+ ],
+ [
+ 'errorCode' => 'ConfigClusterSubnet.DuplicateZone',
+ 'errorMessage' => 'VSwitches should not contain duplicate zones.',
+ ],
+ [
+ 'errorCode' => 'InvalidApiParam.Error',
+ 'errorMessage' => 'api param is invalid',
+ ],
+ [
+ 'errorCode' => 'InvalidClusterName',
+ 'errorMessage' => 'Invalid parameter clusterName.',
+ ],
+ [
+ 'errorCode' => 'InvalidPageSize',
+ 'errorMessage' => 'Invalid parameter pageSize.',
+ ],
+ [
+ 'errorCode' => 'InvalidCurrentPage',
+ 'errorMessage' => 'Invalid parameter currentPage.',
+ ],
+ [
+ 'errorCode' => 'InvalidRegionId',
+ 'errorMessage' => 'Invalid parameter regionId.',
+ ],
+ [
+ 'errorCode' => 'InvalidVSwitch',
+ 'errorMessage' => 'Invalid parameter vSwitch.',
+ ],
+ [
+ 'errorCode' => 'InvalidVpc',
+ 'errorMessage' => 'Invalid parameter vpcId.',
+ ],
+ [
+ 'errorCode' => 'InvalidIp',
+ 'errorMessage' => 'Invalid parameter IP.',
+ ],
+ [
+ 'errorCode' => 'InvalidAliuid',
+ 'errorMessage' => 'Invalid parameter aliuid.',
+ ],
+ [
+ 'errorCode' => 'InvalidClusterId',
+ 'errorMessage' => 'Invalid parameter clusterId.',
+ ],
+ [
+ 'errorCode' => 'InvalidInstanceId',
+ 'errorMessage' => 'Invalid parameter instanceId.',
+ ],
+ [
+ 'errorCode' => 'InvalidBackupId',
+ 'errorMessage' => 'Invalid parameter backupId.',
+ ],
+ [
+ 'errorCode' => 'InvalidImageId',
+ 'errorMessage' => 'Invalid parameter imageId.',
+ ],
+ [
+ 'errorCode' => 'HsmInstanceNotExist.Error',
+ 'errorMessage' => 'hsm instance not exist',
+ ],
+ [
+ 'errorCode' => 'HSMIntanceNotActived.Error',
+ 'errorMessage' => 'hsm intance is not actived',
+ ],
+ [
+ 'errorCode' => 'WhiteListMaxCount.Error',
+ 'errorMessage' => 'whilte list is more than max count',
+ ],
+ [
+ 'errorCode' => 'ClusterIdIsNotExists.Error',
+ 'errorMessage' => 'cluster ID non-exists',
+ ],
+ [
+ 'errorCode' => 'InstanceListIsEmpty.Error',
+ 'errorMessage' => 'instance list is empty',
+ ],
+ [
+ 'errorCode' => 'InstanceIdIsEmpty.Error',
+ 'errorMessage' => 'instance id is empty',
+ ],
+ [
+ 'errorCode' => 'InstanceIsNotExistsInCluster.Error',
+ 'errorMessage' => 'cluster has no such instance',
+ ],
+ [
+ 'errorCode' => 'InstanceIsExistsInCluster.Error',
+ 'errorMessage' => 'instance already in the cluster',
+ ],
+ [
+ 'errorCode' => 'RegionNoEmpty.Error',
+ 'errorMessage' => 'region no. is empty',
+ ],
+ [
+ 'errorCode' => 'ClusterNameEmpty.Error',
+ 'errorMessage' => 'empty cluster name not allowed',
+ ],
+ [
+ 'errorCode' => 'ClusterNameIsExists.Error',
+ 'errorMessage' => 'the cluster name is already taken',
+ ],
+ [
+ 'errorCode' => 'IpNotValid.Error',
+ 'errorMessage' => 'ip not valid',
+ ],
+ [
+ 'errorCode' => 'ClusterIsEmpty.Error',
+ 'errorMessage' => 'cluster is empty',
+ ],
+ [
+ 'errorCode' => 'NoMasterFoundInCluster.Error',
+ 'errorMessage' => 'cluster has no master instance',
+ ],
+ [
+ 'errorCode' => 'HsmInstanceIdNotFound.Error',
+ 'errorMessage' => 'no such instance',
+ ],
+ [
+ 'errorCode' => 'NoInstanceFoundInCluster.Error',
+ 'errorMessage' => 'cluster is empty',
+ ],
+ [
+ 'errorCode' => 'Whitelist.Invalid',
+ 'errorMessage' => 'Whitelist blocks not in CIDR format.',
+ ],
+ [
+ 'errorCode' => 'Whitelist.TooLong',
+ 'errorMessage' => 'Whitelist too long, exceeds 10 CIDR blocks.',
+ ],
+ ],
+ 403 => [
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Caller has no permission on the resource.',
+ ],
+ [
+ 'errorCode' => 'InstanceNotPaused',
+ 'errorMessage' => 'Please pause the instance before reset.',
+ ],
+ [
+ 'errorCode' => 'InstanceNotActive',
+ 'errorMessage' => 'Instance is not active.',
+ ],
+ [
+ 'errorCode' => 'ConfigIp.IncorrectState',
+ 'errorMessage' => 'Instance not in pending or active state, can not config IP address.',
+ ],
+ [
+ 'errorCode' => 'SwitchMaster.IncorrectState',
+ 'errorMessage' => 'Cluster not initialized, please initialize the cluster first.',
+ ],
+ [
+ 'errorCode' => 'SyncCluster.IncorrectState',
+ 'errorMessage' => 'Cluster not initialized, please initialize the cluster first.',
+ ],
+ [
+ 'errorCode' => 'LeaveCluster.InstanceInvalid',
+ 'errorMessage' => 'The instance is not in the cluster.',
+ ],
+ [
+ 'errorCode' => 'DeleteCluster.IncorrectState',
+ 'errorMessage' => 'Cluster not empty, please remove all instances first.',
+ ],
+ [
+ 'errorCode' => 'JoinCluster.InstanceVSwitchNotInCluster',
+ 'errorMessage' => 'Instance\'s vSwitch is not in cluster config, please change instance\'s vSwitch first.',
+ ],
+ [
+ 'errorCode' => 'JoinCluster.InstanceInitialized',
+ 'errorMessage' => 'Initialized instance can not join a cluster.',
+ ],
+ [
+ 'errorCode' => 'JoinCluster.IncorrectState',
+ 'errorMessage' => 'Cluster not initialized, please initialize the cluster first.',
+ ],
+ [
+ 'errorCode' => 'InitializeCluster.InstanceNotInitialized',
+ 'errorMessage' => 'Cluster master instance not initialized, please initialize cluster master instance first.',
+ ],
+ [
+ 'errorCode' => 'InitializeCluster.IncorrectConfig',
+ 'errorMessage' => 'Cluster subnet not configured, please config cluster subnet first.',
+ ],
+ [
+ 'errorCode' => 'InitializeCluster.IncorrectState',
+ 'errorMessage' => 'Cluster initialized, do not re-initialize.',
+ ],
+ [
+ 'errorCode' => 'Cluster.CN.ActionForbidden',
+ 'errorMessage' => 'This API is forbidden for non-international site cluster.',
+ ],
+ [
+ 'errorCode' => 'Cluster.INTL.ActionForbidden',
+ 'errorMessage' => 'This API is forbidden for international site cluster.',
+ ],
+ [
+ 'errorCode' => 'ConfigClusterCertificate.IncorrectState',
+ 'errorMessage' => 'Cluster initialized or certificates already configured.',
+ ],
+ [
+ 'errorCode' => 'ConfigClusterSubnet.InvalidVpcId',
+ 'errorMessage' => 'VPC Id invalid. Cluster VPC is the same as cluster master\'s VPC.',
+ ],
+ [
+ 'errorCode' => 'ConfigClusterSubnet.InvalidVSwitchId',
+ 'errorMessage' => 'VSwitch Id invalid. VSwitches should contain all current cluster vSwitches.',
+ ],
+ [
+ 'errorCode' => 'ConfigClusterSubnet.IncorrectState',
+ 'errorMessage' => 'Cluster not in NEW state, can not config cluster subnet.',
+ ],
+ [
+ 'errorCode' => 'ClusterName.Exist',
+ 'errorMessage' => 'Cluster name already exists, please use another name.',
+ ],
+ [
+ 'errorCode' => 'Whitelist.InstanceInCluster',
+ 'errorMessage' => 'Whitelist.InstanceInCluster',
+ ],
+ ],
+ [
+ [
+ 'errorCode' => 'Resource.NotFound',
+ 'errorMessage' => 'Resource not found.',
+ ],
+ ],
+ [
+ [
+ 'errorCode' => 'ClusterAPI.NotSupported',
+ 'errorMessage' => 'ClusterAPI not supported in this region.',
+ ],
+ ],
+ 409 => [
+ [
+ 'errorCode' => 'Conflict',
+ 'errorMessage' => 'Resource is being updated by a previous request. Current request is redundant.',
+ ],
+ [
+ 'errorCode' => 'Cluster.Conflict',
+ 'errorMessage' => 'The cluster is being updated by a previous request. Please try again later.',
+ ],
+ ],
+ 500 => [
+ [
+ 'errorCode' => 'ConfigWhitelistFailed.Error',
+ 'errorMessage' => 'config white list error',
+ ],
+ [
+ 'errorCode' => 'ActionFailed.Error',
+ 'errorMessage' => 'internal error, please try again',
+ ],
+ [
+ 'errorCode' => 'InternalError',
+ 'errorMessage' => 'The request processing has failed due to some unknown error.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"4C467B38-3910-447D-87BC-AC049166F216\\"\\n}","type":"json"}]',
+ 'title' => 'ConfigClusterCertificate',
+ 'description' => 'For more information about how to create a self-signed certificate and a cluster certificate on an Elastic Compute Service (ECS) instance, see [Create a NIST FIPS-validated GVSM cluster](~~293585~~).'."\n",
+ ],
+ 'GetCluster' => [
+ 'summary' => 'Queries information about a specified cluster.',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeNodes' => [
+ 'FEATUREhsmV7VE3Y',
+ 'FEATUREhsm01FLNB',
+ 'FEATUREhsmGIFYCG',
+ 'FEATUREhsmLBBV5W',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'ClusterId',
+ 'in' => 'formData',
+ 'schema' => [
+ 'description' => 'The ID of the cluster.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'cluster-p94y1dud9ts****',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'PlainResult<OpenApiGetClusterResponse>',
+ 'description' => 'PlainResult'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '4C467B38-3910-447D-87BC-AC049166F216',
+ ],
+ 'Cluster' => [
+ 'description' => 'The cluster details.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'ClusterId' => [
+ 'title' => '集群基础信息',
+ 'description' => 'The ID of the cluster.'."\n",
+ 'type' => 'string',
+ 'example' => 'cluster-p94y1dud9ts****',
+ ],
+ 'ClusterName' => [
+ 'description' => 'The name of the cluster.'."\n",
+ 'type' => 'string',
+ 'example' => 'cluster_polar_****',
+ ],
+ 'Status' => [
+ 'description' => 'The status of the cluster. Valid values:'."\n"
+ ."\n"
+ .'* NEW: The cluster is not initialized.'."\n"
+ .'* INITIALIZED: The cluster is initialized.'."\n"
+ .'* DELETED: The cluster is deleted.'."\n"
+ .'* SYNCHRONIZING: The cluster is being synchronized.'."\n"
+ .'* TO_DELETE: The cluster is pending deletion.'."\n",
+ 'type' => 'string',
+ 'example' => 'NEW',
+ ],
+ 'CreateTime' => [
+ 'title' => '时间信息',
+ 'description' => 'The time when the cluster was created. Unit: milliseconds. The value is a UNIX timestamp.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int64',
+ 'example' => '1641275680000',
+ ],
+ 'RegionId' => [
+ 'title' => '地域与可用区信息',
+ 'description' => 'The ID of the region in which the cluster resides.'."\n",
+ 'type' => 'string',
+ 'example' => 'cn-hangzhou',
+ ],
+ 'VpcId' => [
+ 'title' => '网络配置信息',
+ 'description' => 'The ID of the virtual private cloud (VPC) to which the cluster belongs.'."\n",
+ 'type' => 'string',
+ 'example' => 'vpc-8vbt0fjdm29hofvbo****',
+ ],
+ 'Whitelist' => [
+ 'description' => 'The IP address whitelist of the cluster.'."\n",
+ 'type' => 'string',
+ 'example' => '130.176.XX.XX',
+ ],
+ 'Zones' => [
+ 'description' => 'The information about the zones in which the cluster is deployed.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The zone.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'VSwitchId' => [
+ 'description' => 'The ID of the vSwitch.'."\n",
+ 'type' => 'string',
+ 'example' => 'vsw-uf61s651p69bdgmki****',
+ ],
+ 'ZoneId' => [
+ 'description' => 'The ID of the zone.'."\n",
+ 'type' => 'string',
+ 'example' => 'cn-hangzhou-j',
+ ],
+ ],
+ ],
+ ],
+ 'DeviceType' => [
+ 'title' => '规格信息',
+ 'description' => 'The type of the device.'."\n",
+ 'type' => 'string',
+ 'example' => 'jnta',
+ ],
+ 'ClusterCsr' => [
+ 'title' => '证书信息',
+ 'description' => 'The certificate signing request (CSR) file of the cluster.'."\n",
+ 'type' => 'string',
+ 'example' => '-----BEGIN CERTIFICATE REQUEST-----\\nMIIC5TCCAc0CAQAwgZ8xWTAJBgNVBAYTAlVTMAkGA1UECAwCQ0EwDQYDVQQKDAZD\\nYXZpdW0wDQYDVQQLDAZOM0ZJUFMwDgYDVQQHDAdTYW5Kb3NlMBMGA1UdEQwMMTk****'."\n"
+ .'-----END CERTIFICATE REQUEST-----',
+ ],
+ 'ClusterCertificate' => [
+ 'description' => 'The cluster certificate.'."\n",
+ 'type' => 'string',
+ 'example' => '-----BEGIN CERTIFICATE-----'."\n"
+ .'MIIDfTCCAmWgAwIBAgIJAMRqQMr5if66MA0GCSqGSIb3DQEBCwUAMFUxCzAJBgNV'."\n"
+ .'BAYTAmNuMQswCQYDVQQIDAJ6ajELMAkGA1UEBwwCaHoxFjAUBgNVBAoMDUFsaWJh'."\n"
+ .'YmEgQ2xvdWQxFDA****'."\n"
+ .'-----END CERTIFICATE-----',
+ ],
+ 'ClusterOwnerCertificate' => [
+ 'description' => 'The self-signed certificate of the cluster.'."\n",
+ 'type' => 'string',
+ 'example' => '----BEGIN CERTIFICATE-----'."\n"
+ .'MIIDaTCCAlECAQEwDQYJKoZIhvcNAQELBQAwVTELMAkGA1UEBhMCY24xCzAJBgNV'."\n"
+ .'BAgMAnpqMQswCQYDVQQHDAJoejEWMBQGA1UECgwNQWxpYmFiYSBDbG91ZDEUMBIG'."\n"
+ .'A1UECwwLU2VjQ2xvdWRIc20wHhcNMjQwNzAzM****'."\n"
+ .'-----END CERTIFICATE-----',
+ ],
+ 'Size' => [
+ 'title' => '实例信息',
+ 'description' => 'The number of hardware security modules (HSMs) in the cluster.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '2',
+ ],
+ 'Instances' => [
+ 'description' => 'The HSMs in the cluster.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The information about the HSM.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'InstanceId' => [
+ 'title' => '实例基础信息',
+ 'description' => 'The ID of the HSM.'."\n",
+ 'type' => 'string',
+ 'example' => 'hsm-cn-g6z3v0uf****',
+ ],
+ 'NodeId' => [
+ 'title' => '状态',
+ 'description' => 'The ID of the HSM in the cluster.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '1',
+ ],
+ 'Master' => [
+ 'description' => 'Indicates whether the HSM is a master HSM. Valid values:'."\n"
+ ."\n"
+ .'* true'."\n"
+ .'* false'."\n",
+ 'type' => 'boolean',
+ 'example' => 'true',
+ ],
+ ],
+ ],
+ ],
+ 'ClusterMode' => [
+ 'description' => 'The cluster mode.'."\n"
+ ."\n"
+ .'2: automatically synchronizes the cluster.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '2',
+ ],
+ 'EntityCertExpireTime' => [
+ 'type' => 'string',
+ ],
+ 'CertManaged' => [
+ 'type' => 'boolean',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'SwitchMaster.InstanceInvalid',
+ 'errorMessage' => 'Instance not in the cluster.',
+ ],
+ [
+ 'errorCode' => 'LeaveCluster.MasterLast',
+ 'errorMessage' => 'Master instance can not leave a cluster until all other instances are left.',
+ ],
+ [
+ 'errorCode' => 'Certificate.ChainInvalid',
+ 'errorMessage' => 'Certificate chain invalid. Please make sure issuer certificate is the trust anchor and cluster certificate is signed by issuer certificate.',
+ ],
+ [
+ 'errorCode' => 'Certificate.FormatInvalid',
+ 'errorMessage' => 'Certificate format invalid. Cluster/Issuer certificate must be in PEM format.',
+ ],
+ [
+ 'errorCode' => 'ConfigClusterSubnet.DuplicateZone',
+ 'errorMessage' => 'VSwitches should not contain duplicate zones.',
+ ],
+ [
+ 'errorCode' => 'InvalidApiParam.Error',
+ 'errorMessage' => 'api param is invalid',
+ ],
+ [
+ 'errorCode' => 'InvalidClusterName',
+ 'errorMessage' => 'Invalid parameter clusterName.',
+ ],
+ [
+ 'errorCode' => 'InvalidPageSize',
+ 'errorMessage' => 'Invalid parameter pageSize.',
+ ],
+ [
+ 'errorCode' => 'InvalidCurrentPage',
+ 'errorMessage' => 'Invalid parameter currentPage.',
+ ],
+ [
+ 'errorCode' => 'InvalidRegionId',
+ 'errorMessage' => 'Invalid parameter regionId.',
+ ],
+ [
+ 'errorCode' => 'InvalidVSwitch',
+ 'errorMessage' => 'Invalid parameter vSwitch.',
+ ],
+ [
+ 'errorCode' => 'InvalidVpc',
+ 'errorMessage' => 'Invalid parameter vpcId.',
+ ],
+ [
+ 'errorCode' => 'InvalidIp',
+ 'errorMessage' => 'Invalid parameter IP.',
+ ],
+ [
+ 'errorCode' => 'InvalidAliuid',
+ 'errorMessage' => 'Invalid parameter aliuid.',
+ ],
+ [
+ 'errorCode' => 'InvalidClusterId',
+ 'errorMessage' => 'Invalid parameter clusterId.',
+ ],
+ [
+ 'errorCode' => 'InvalidInstanceId',
+ 'errorMessage' => 'Invalid parameter instanceId.',
+ ],
+ [
+ 'errorCode' => 'InvalidBackupId',
+ 'errorMessage' => 'Invalid parameter backupId.',
+ ],
+ [
+ 'errorCode' => 'InvalidImageId',
+ 'errorMessage' => 'Invalid parameter imageId.',
+ ],
+ [
+ 'errorCode' => 'HsmInstanceNotExist.Error',
+ 'errorMessage' => 'hsm instance not exist',
+ ],
+ [
+ 'errorCode' => 'HSMIntanceNotActived.Error',
+ 'errorMessage' => 'hsm intance is not actived',
+ ],
+ [
+ 'errorCode' => 'WhiteListMaxCount.Error',
+ 'errorMessage' => 'whilte list is more than max count',
+ ],
+ [
+ 'errorCode' => 'ClusterIdIsNotExists.Error',
+ 'errorMessage' => 'cluster ID non-exists',
+ ],
+ [
+ 'errorCode' => 'InstanceListIsEmpty.Error',
+ 'errorMessage' => 'instance list is empty',
+ ],
+ [
+ 'errorCode' => 'InstanceIdIsEmpty.Error',
+ 'errorMessage' => 'instance id is empty',
+ ],
+ [
+ 'errorCode' => 'InstanceIsNotExistsInCluster.Error',
+ 'errorMessage' => 'cluster has no such instance',
+ ],
+ [
+ 'errorCode' => 'InstanceIsExistsInCluster.Error',
+ 'errorMessage' => 'instance already in the cluster',
+ ],
+ [
+ 'errorCode' => 'RegionNoEmpty.Error',
+ 'errorMessage' => 'region no. is empty',
+ ],
+ [
+ 'errorCode' => 'ClusterNameEmpty.Error',
+ 'errorMessage' => 'empty cluster name not allowed',
+ ],
+ [
+ 'errorCode' => 'ClusterNameIsExists.Error',
+ 'errorMessage' => 'the cluster name is already taken',
+ ],
+ [
+ 'errorCode' => 'IpNotValid.Error',
+ 'errorMessage' => 'ip not valid',
+ ],
+ [
+ 'errorCode' => 'ClusterIsEmpty.Error',
+ 'errorMessage' => 'cluster is empty',
+ ],
+ [
+ 'errorCode' => 'NoMasterFoundInCluster.Error',
+ 'errorMessage' => 'cluster has no master instance',
+ ],
+ [
+ 'errorCode' => 'HsmInstanceIdNotFound.Error',
+ 'errorMessage' => 'no such instance',
+ ],
+ [
+ 'errorCode' => 'NoInstanceFoundInCluster.Error',
+ 'errorMessage' => 'cluster is empty',
+ ],
+ [
+ 'errorCode' => 'Whitelist.Invalid',
+ 'errorMessage' => 'Whitelist blocks not in CIDR format.',
+ ],
+ [
+ 'errorCode' => 'Whitelist.TooLong',
+ 'errorMessage' => 'Whitelist too long, exceeds 10 CIDR blocks.',
+ ],
+ ],
+ 403 => [
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Caller has no permission on the resource.',
+ ],
+ [
+ 'errorCode' => 'InstanceNotPaused',
+ 'errorMessage' => 'Please pause the instance before reset.',
+ ],
+ [
+ 'errorCode' => 'InstanceNotActive',
+ 'errorMessage' => 'Instance is not active.',
+ ],
+ [
+ 'errorCode' => 'ConfigIp.IncorrectState',
+ 'errorMessage' => 'Instance not in pending or active state, can not config IP address.',
+ ],
+ [
+ 'errorCode' => 'SwitchMaster.IncorrectState',
+ 'errorMessage' => 'Cluster not initialized, please initialize the cluster first.',
+ ],
+ [
+ 'errorCode' => 'SyncCluster.IncorrectState',
+ 'errorMessage' => 'Cluster not initialized, please initialize the cluster first.',
+ ],
+ [
+ 'errorCode' => 'LeaveCluster.InstanceInvalid',
+ 'errorMessage' => 'The instance is not in the cluster.',
+ ],
+ [
+ 'errorCode' => 'DeleteCluster.IncorrectState',
+ 'errorMessage' => 'Cluster not empty, please remove all instances first.',
+ ],
+ [
+ 'errorCode' => 'JoinCluster.InstanceVSwitchNotInCluster',
+ 'errorMessage' => 'Instance\'s vSwitch is not in cluster config, please change instance\'s vSwitch first.',
+ ],
+ [
+ 'errorCode' => 'JoinCluster.InstanceInitialized',
+ 'errorMessage' => 'Initialized instance can not join a cluster.',
+ ],
+ [
+ 'errorCode' => 'JoinCluster.IncorrectState',
+ 'errorMessage' => 'Cluster not initialized, please initialize the cluster first.',
+ ],
+ [
+ 'errorCode' => 'InitializeCluster.InstanceNotInitialized',
+ 'errorMessage' => 'Cluster master instance not initialized, please initialize cluster master instance first.',
+ ],
+ [
+ 'errorCode' => 'InitializeCluster.IncorrectConfig',
+ 'errorMessage' => 'Cluster subnet not configured, please config cluster subnet first.',
+ ],
+ [
+ 'errorCode' => 'InitializeCluster.IncorrectState',
+ 'errorMessage' => 'Cluster initialized, do not re-initialize.',
+ ],
+ [
+ 'errorCode' => 'Cluster.CN.ActionForbidden',
+ 'errorMessage' => 'This API is forbidden for non-international site cluster.',
+ ],
+ [
+ 'errorCode' => 'Cluster.INTL.ActionForbidden',
+ 'errorMessage' => 'This API is forbidden for international site cluster.',
+ ],
+ [
+ 'errorCode' => 'ConfigClusterCertificate.IncorrectState',
+ 'errorMessage' => 'Cluster initialized or certificates already configured.',
+ ],
+ [
+ 'errorCode' => 'ConfigClusterSubnet.InvalidVpcId',
+ 'errorMessage' => 'VPC Id invalid. Cluster VPC is the same as cluster master\'s VPC.',
+ ],
+ [
+ 'errorCode' => 'ConfigClusterSubnet.InvalidVSwitchId',
+ 'errorMessage' => 'VSwitch Id invalid. VSwitches should contain all current cluster vSwitches.',
+ ],
+ [
+ 'errorCode' => 'ConfigClusterSubnet.IncorrectState',
+ 'errorMessage' => 'Cluster not in NEW state, can not config cluster subnet.',
+ ],
+ [
+ 'errorCode' => 'ClusterName.Exist',
+ 'errorMessage' => 'Cluster name already exists, please use another name.',
+ ],
+ [
+ 'errorCode' => 'Whitelist.InstanceInCluster',
+ 'errorMessage' => 'Whitelist.InstanceInCluster',
+ ],
+ ],
+ [
+ [
+ 'errorCode' => 'Resource.NotFound',
+ 'errorMessage' => 'Resource not found.',
+ ],
+ ],
+ [
+ [
+ 'errorCode' => 'ClusterAPI.NotSupported',
+ 'errorMessage' => 'ClusterAPI not supported in this region.',
+ ],
+ ],
+ 409 => [
+ [
+ 'errorCode' => 'Conflict',
+ 'errorMessage' => 'Resource is being updated by a previous request. Current request is redundant.',
+ ],
+ [
+ 'errorCode' => 'Cluster.Conflict',
+ 'errorMessage' => 'The cluster is being updated by a previous request. Please try again later.',
+ ],
+ ],
+ 500 => [
+ [
+ 'errorCode' => 'ConfigWhitelistFailed.Error',
+ 'errorMessage' => 'config white list error',
+ ],
+ [
+ 'errorCode' => 'ActionFailed.Error',
+ 'errorMessage' => 'internal error, please try again',
+ ],
+ [
+ 'errorCode' => 'InternalError',
+ 'errorMessage' => 'The request processing has failed due to some unknown error.',
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"4C467B38-3910-447D-87BC-AC049166F216\\",\\n \\"Cluster\\": {\\n \\"ClusterId\\": \\"cluster-p94y1dud9ts****\\",\\n \\"ClusterName\\": \\"cluster_polar_****\\",\\n \\"Status\\": \\"NEW\\",\\n \\"CreateTime\\": 1641275680000,\\n \\"RegionId\\": \\"cn-hangzhou\\",\\n \\"VpcId\\": \\"vpc-8vbt0fjdm29hofvbo****\\",\\n \\"Whitelist\\": \\"130.176.XX.XX\\",\\n \\"Zones\\": [\\n {\\n \\"VSwitchId\\": \\"vsw-uf61s651p69bdgmki****\\",\\n \\"ZoneId\\": \\"cn-hangzhou-j\\"\\n }\\n ],\\n \\"DeviceType\\": \\"jnta\\",\\n \\"ClusterCsr\\": \\"-----BEGIN CERTIFICATE REQUEST-----\\\\\\\\nMIIC5TCCAc0CAQAwgZ8xWTAJBgNVBAYTAlVTMAkGA1UECAwCQ0EwDQYDVQQKDAZD\\\\\\\\nYXZpdW0wDQYDVQQLDAZOM0ZJUFMwDgYDVQQHDAdTYW5Kb3NlMBMGA1UdEQwMMTk****\\\\n-----END CERTIFICATE REQUEST-----\\",\\n \\"ClusterCertificate\\": \\"-----BEGIN CERTIFICATE-----\\\\nMIIDfTCCAmWgAwIBAgIJAMRqQMr5if66MA0GCSqGSIb3DQEBCwUAMFUxCzAJBgNV\\\\nBAYTAmNuMQswCQYDVQQIDAJ6ajELMAkGA1UEBwwCaHoxFjAUBgNVBAoMDUFsaWJh\\\\nYmEgQ2xvdWQxFDA****\\\\n-----END CERTIFICATE-----\\",\\n \\"ClusterOwnerCertificate\\": \\"----BEGIN CERTIFICATE-----\\\\nMIIDaTCCAlECAQEwDQYJKoZIhvcNAQELBQAwVTELMAkGA1UEBhMCY24xCzAJBgNV\\\\nBAgMAnpqMQswCQYDVQQHDAJoejEWMBQGA1UECgwNQWxpYmFiYSBDbG91ZDEUMBIG\\\\nA1UECwwLU2VjQ2xvdWRIc20wHhcNMjQwNzAzM****\\\\n-----END CERTIFICATE-----\\",\\n \\"Size\\": 2,\\n \\"Instances\\": [\\n {\\n \\"InstanceId\\": \\"hsm-cn-g6z3v0uf****\\",\\n \\"NodeId\\": 1,\\n \\"Master\\": true\\n }\\n ],\\n \\"ClusterMode\\": 2,\\n \\"EntityCertExpireTime\\": \\"1641275680000\\",\\n \\"CertManaged\\": true\\n }\\n}","type":"json"}]',
+ 'title' => 'GetCluster',
+ ],
+ 'ConfigClusterWhitelist' => [
+ 'summary' => 'Modifies the IP address whitelist of a cluster.',
+ 'methods' => [
+ 'post',
+ ],
+ 'schemes' => [
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'update',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'ClusterId',
+ 'in' => 'formData',
+ 'schema' => [
+ 'description' => 'The ID of the cluster.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'cluster-729dm40FG****',
+ ],
+ ],
+ [
+ 'name' => 'Whitelist',
+ 'in' => 'formData',
+ 'schema' => [
+ 'description' => 'The IP address whitelist of the cluster.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => '18.68.XX.XX',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'BaseResult',
+ 'description' => 'BaseResult'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '4C467B38-3910-447D-87BC-AC049166F216',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'SwitchMaster.InstanceInvalid',
+ 'errorMessage' => 'Instance not in the cluster.',
+ ],
+ [
+ 'errorCode' => 'LeaveCluster.MasterLast',
+ 'errorMessage' => 'Master instance can not leave a cluster until all other instances are left.',
+ ],
+ [
+ 'errorCode' => 'Certificate.ChainInvalid',
+ 'errorMessage' => 'Certificate chain invalid. Please make sure issuer certificate is the trust anchor and cluster certificate is signed by issuer certificate.',
+ ],
+ [
+ 'errorCode' => 'Certificate.FormatInvalid',
+ 'errorMessage' => 'Certificate format invalid. Cluster/Issuer certificate must be in PEM format.',
+ ],
+ [
+ 'errorCode' => 'ConfigClusterSubnet.DuplicateZone',
+ 'errorMessage' => 'VSwitches should not contain duplicate zones.',
+ ],
+ [
+ 'errorCode' => 'InvalidApiParam.Error',
+ 'errorMessage' => 'api param is invalid',
+ ],
+ [
+ 'errorCode' => 'InvalidClusterName',
+ 'errorMessage' => 'Invalid parameter clusterName.',
+ ],
+ [
+ 'errorCode' => 'InvalidPageSize',
+ 'errorMessage' => 'Invalid parameter pageSize.',
+ ],
+ [
+ 'errorCode' => 'InvalidCurrentPage',
+ 'errorMessage' => 'Invalid parameter currentPage.',
+ ],
+ [
+ 'errorCode' => 'InvalidRegionId',
+ 'errorMessage' => 'Invalid parameter regionId.',
+ ],
+ [
+ 'errorCode' => 'InvalidVSwitch',
+ 'errorMessage' => 'Invalid parameter vSwitch.',
+ ],
+ [
+ 'errorCode' => 'InvalidVpc',
+ 'errorMessage' => 'Invalid parameter vpcId.',
+ ],
+ [
+ 'errorCode' => 'InvalidIp',
+ 'errorMessage' => 'Invalid parameter IP.',
+ ],
+ [
+ 'errorCode' => 'InvalidAliuid',
+ 'errorMessage' => 'Invalid parameter aliuid.',
+ ],
+ [
+ 'errorCode' => 'InvalidClusterId',
+ 'errorMessage' => 'Invalid parameter clusterId.',
+ ],
+ [
+ 'errorCode' => 'InvalidInstanceId',
+ 'errorMessage' => 'Invalid parameter instanceId.',
+ ],
+ [
+ 'errorCode' => 'InvalidBackupId',
+ 'errorMessage' => 'Invalid parameter backupId.',
+ ],
+ [
+ 'errorCode' => 'InvalidImageId',
+ 'errorMessage' => 'Invalid parameter imageId.',
+ ],
+ [
+ 'errorCode' => 'HsmInstanceNotExist.Error',
+ 'errorMessage' => 'hsm instance not exist',
+ ],
+ [
+ 'errorCode' => 'HSMIntanceNotActived.Error',
+ 'errorMessage' => 'hsm intance is not actived',
+ ],
+ [
+ 'errorCode' => 'WhiteListMaxCount.Error',
+ 'errorMessage' => 'whilte list is more than max count',
+ ],
+ [
+ 'errorCode' => 'ClusterIdIsNotExists.Error',
+ 'errorMessage' => 'cluster ID non-exists',
+ ],
+ [
+ 'errorCode' => 'InstanceListIsEmpty.Error',
+ 'errorMessage' => 'instance list is empty',
+ ],
+ [
+ 'errorCode' => 'InstanceIdIsEmpty.Error',
+ 'errorMessage' => 'instance id is empty',
+ ],
+ [
+ 'errorCode' => 'InstanceIsNotExistsInCluster.Error',
+ 'errorMessage' => 'cluster has no such instance',
+ ],
+ [
+ 'errorCode' => 'InstanceIsExistsInCluster.Error',
+ 'errorMessage' => 'instance already in the cluster',
+ ],
+ [
+ 'errorCode' => 'RegionNoEmpty.Error',
+ 'errorMessage' => 'region no. is empty',
+ ],
+ [
+ 'errorCode' => 'ClusterNameEmpty.Error',
+ 'errorMessage' => 'empty cluster name not allowed',
+ ],
+ [
+ 'errorCode' => 'ClusterNameIsExists.Error',
+ 'errorMessage' => 'the cluster name is already taken',
+ ],
+ [
+ 'errorCode' => 'IpNotValid.Error',
+ 'errorMessage' => 'ip not valid',
+ ],
+ [
+ 'errorCode' => 'ClusterIsEmpty.Error',
+ 'errorMessage' => 'cluster is empty',
+ ],
+ [
+ 'errorCode' => 'NoMasterFoundInCluster.Error',
+ 'errorMessage' => 'cluster has no master instance',
+ ],
+ [
+ 'errorCode' => 'HsmInstanceIdNotFound.Error',
+ 'errorMessage' => 'no such instance',
+ ],
+ [
+ 'errorCode' => 'NoInstanceFoundInCluster.Error',
+ 'errorMessage' => 'cluster is empty',
+ ],
+ [
+ 'errorCode' => 'Whitelist.Invalid',
+ 'errorMessage' => 'Whitelist blocks not in CIDR format.',
+ ],
+ [
+ 'errorCode' => 'Whitelist.TooLong',
+ 'errorMessage' => 'Whitelist too long, exceeds 10 CIDR blocks.',
+ ],
+ ],
+ 403 => [
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Caller has no permission on the resource.',
+ ],
+ [
+ 'errorCode' => 'InstanceNotPaused',
+ 'errorMessage' => 'Please pause the instance before reset.',
+ ],
+ [
+ 'errorCode' => 'InstanceNotActive',
+ 'errorMessage' => 'Instance is not active.',
+ ],
+ [
+ 'errorCode' => 'ConfigIp.IncorrectState',
+ 'errorMessage' => 'Instance not in pending or active state, can not config IP address.',
+ ],
+ [
+ 'errorCode' => 'SwitchMaster.IncorrectState',
+ 'errorMessage' => 'Cluster not initialized, please initialize the cluster first.',
+ ],
+ [
+ 'errorCode' => 'SyncCluster.IncorrectState',
+ 'errorMessage' => 'Cluster not initialized, please initialize the cluster first.',
+ ],
+ [
+ 'errorCode' => 'LeaveCluster.InstanceInvalid',
+ 'errorMessage' => 'The instance is not in the cluster.',
+ ],
+ [
+ 'errorCode' => 'DeleteCluster.IncorrectState',
+ 'errorMessage' => 'Cluster not empty, please remove all instances first.',
+ ],
+ [
+ 'errorCode' => 'JoinCluster.InstanceVSwitchNotInCluster',
+ 'errorMessage' => 'Instance\'s vSwitch is not in cluster config, please change instance\'s vSwitch first.',
+ ],
+ [
+ 'errorCode' => 'JoinCluster.InstanceInitialized',
+ 'errorMessage' => 'Initialized instance can not join a cluster.',
+ ],
+ [
+ 'errorCode' => 'JoinCluster.IncorrectState',
+ 'errorMessage' => 'Cluster not initialized, please initialize the cluster first.',
+ ],
+ [
+ 'errorCode' => 'InitializeCluster.InstanceNotInitialized',
+ 'errorMessage' => 'Cluster master instance not initialized, please initialize cluster master instance first.',
+ ],
+ [
+ 'errorCode' => 'InitializeCluster.IncorrectConfig',
+ 'errorMessage' => 'Cluster subnet not configured, please config cluster subnet first.',
+ ],
+ [
+ 'errorCode' => 'InitializeCluster.IncorrectState',
+ 'errorMessage' => 'Cluster initialized, do not re-initialize.',
+ ],
+ [
+ 'errorCode' => 'Cluster.CN.ActionForbidden',
+ 'errorMessage' => 'This API is forbidden for non-international site cluster.',
+ ],
+ [
+ 'errorCode' => 'Cluster.INTL.ActionForbidden',
+ 'errorMessage' => 'This API is forbidden for international site cluster.',
+ ],
+ [
+ 'errorCode' => 'ConfigClusterCertificate.IncorrectState',
+ 'errorMessage' => 'Cluster initialized or certificates already configured.',
+ ],
+ [
+ 'errorCode' => 'ConfigClusterSubnet.InvalidVpcId',
+ 'errorMessage' => 'VPC Id invalid. Cluster VPC is the same as cluster master\'s VPC.',
+ ],
+ [
+ 'errorCode' => 'ConfigClusterSubnet.InvalidVSwitchId',
+ 'errorMessage' => 'VSwitch Id invalid. VSwitches should contain all current cluster vSwitches.',
+ ],
+ [
+ 'errorCode' => 'ConfigClusterSubnet.IncorrectState',
+ 'errorMessage' => 'Cluster not in NEW state, can not config cluster subnet.',
+ ],
+ [
+ 'errorCode' => 'ClusterName.Exist',
+ 'errorMessage' => 'Cluster name already exists, please use another name.',
+ ],
+ [
+ 'errorCode' => 'Whitelist.InstanceInCluster',
+ 'errorMessage' => 'Whitelist.InstanceInCluster',
+ ],
+ ],
+ [
+ [
+ 'errorCode' => 'Resource.NotFound',
+ 'errorMessage' => 'Resource not found.',
+ ],
+ ],
+ [
+ [
+ 'errorCode' => 'ClusterAPI.NotSupported',
+ 'errorMessage' => 'ClusterAPI not supported in this region.',
+ ],
+ ],
+ 409 => [
+ [
+ 'errorCode' => 'Conflict',
+ 'errorMessage' => 'Resource is being updated by a previous request. Current request is redundant.',
+ ],
+ [
+ 'errorCode' => 'Cluster.Conflict',
+ 'errorMessage' => 'The cluster is being updated by a previous request. Please try again later.',
+ ],
+ ],
+ 500 => [
+ [
+ 'errorCode' => 'ConfigWhitelistFailed.Error',
+ 'errorMessage' => 'config white list error',
+ ],
+ [
+ 'errorCode' => 'ActionFailed.Error',
+ 'errorMessage' => 'internal error, please try again',
+ ],
+ [
+ 'errorCode' => 'InternalError',
+ 'errorMessage' => 'The request processing has failed due to some unknown error.',
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"4C467B38-3910-447D-87BC-AC049166F216\\"\\n}","type":"json"}]',
+ 'title' => 'ConfigClusterWhitelist',
+ 'description' => 'The IP address whitelist of a cluster has a higher priority than the IP address whitelist of a hardware security module (HSM) in the cluster. In cluster mode, we recommend that you create an IP address whitelist for your cluster. You do not need to create an IP address for the HSM in the cluster.'."\n",
+ ],
+ 'QuickDeployCluster' => [
+ 'summary' => '快速部署集群',
+ 'path' => '',
+ 'methods' => [
+ 'post',
+ ],
+ 'schemes' => [
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'readAndWrite',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'create',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeNodes' => [
+ 'FEATUREhsmV7VE3Y',
+ 'FEATUREhsm01FLNB',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'VSwitchIdList',
+ 'in' => 'query',
+ 'style' => 'json',
+ 'schema' => [
+ 'description' => '',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => '',
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'vsw-2zeqkh8ar8yey5ejv****'."\n",
+ ],
+ 'required' => true,
+ ],
+ ],
+ [
+ 'name' => 'VpcId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => '',
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'vpc-7xvkh90cw39p0****',
+ ],
+ ],
+ [
+ 'name' => 'WhiteList',
+ 'in' => 'query',
+ 'style' => 'json',
+ 'schema' => [
+ 'description' => '',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => '',
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '18.68.XX.XX'."\n",
+ ],
+ 'required' => false,
+ ],
+ ],
+ [
+ 'name' => 'InstanceList',
+ 'in' => 'query',
+ 'style' => 'json',
+ 'schema' => [
+ 'description' => '',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => '',
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'hsm-cn-vj30bil8****'."\n",
+ ],
+ 'required' => true,
+ ],
+ ],
+ [
+ 'name' => 'ClusterName',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => '',
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'cluster_on****'."\n",
+ ],
+ ],
+ [
+ 'name' => 'RegionId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => '',
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'cn-hangzhou',
+ ],
+ ],
+ [
+ 'name' => 'CertManaged',
+ 'in' => 'query',
+ 'schema' => [
+ 'type' => 'boolean',
+ 'required' => false,
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => '',
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'description' => '',
+ 'type' => 'string',
+ 'example' => '4C467B38-3910-447D-87BC-AC049166F216',
+ ],
+ 'Job' => [
+ 'description' => '',
+ 'type' => 'object',
+ 'properties' => [
+ 'JobId' => [
+ 'description' => '',
+ 'type' => 'string',
+ 'example' => 'job-202401250936hze747fd7e0007005',
+ ],
+ 'Type' => [
+ 'description' => '',
+ 'type' => 'string',
+ 'example' => 'create',
+ ],
+ 'Completed' => [
+ 'description' => '',
+ 'type' => 'boolean',
+ 'example' => 'true',
+ ],
+ 'CreateTime' => [
+ 'description' => '',
+ 'type' => 'string',
+ 'example' => '1653274407000',
+ ],
+ 'Status' => [
+ 'description' => '',
+ 'type' => 'string',
+ 'example' => 'success',
+ ],
+ 'Response' => [
+ 'description' => '',
+ 'type' => 'string',
+ 'example' => 'success',
+ ],
+ 'Error' => [
+ 'description' => '',
+ 'type' => 'string',
+ 'example' => 'OperationTimeout',
+ ],
+ 'Progress' => [
+ 'description' => '',
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '86',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'InvalidApiParam.Error',
+ 'errorMessage' => 'api param is invalid',
+ ],
+ [
+ 'errorCode' => 'InvalidVSwitch',
+ 'errorMessage' => 'Invalid parameter vSwitch',
+ ],
+ [
+ 'errorCode' => 'Whitelist.TooLong',
+ 'errorMessage' => 'Whitelist too long, exceeds 10 CIDR blocks.',
+ ],
+ ],
+ 403 => [
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'caller has no permission',
+ ],
+ [
+ 'errorCode' => 'QuickDeployCluster.InstanceAlreadyInitialized',
+ 'errorMessage' => 'Instance already initialized.',
+ ],
+ [
+ 'errorCode' => 'QuickDeployCluster.InstanceIncorrectState',
+ 'errorMessage' => 'Instance not in Enable/Pending state.',
+ ],
+ [
+ 'errorCode' => 'QuickDeployCluster.InstanceInvalidRegion',
+ 'errorMessage' => 'Instance region invalid.',
+ ],
+ [
+ 'errorCode' => 'QuickDeployCluster.InstanceVersionInvalid',
+ 'errorMessage' => 'Instance device version is invalid',
+ ],
+ [
+ 'errorCode' => 'QuickDeployCluster.InstanceListInvalid',
+ 'errorMessage' => 'Cluster contains instances not in the instance list.',
+ ],
+ [
+ 'errorCode' => 'QuickDeployCluster.InstanceBelongsToOtherCluster',
+ 'errorMessage' => 'Instance has been in other cluster.',
+ ],
+ [
+ 'errorCode' => 'QuickDeployCluster.InvalidVpcId',
+ 'errorMessage' => 'The param vpcId is not the same as existed vpcId of cluster.',
+ ],
+ [
+ 'errorCode' => 'QuickDeployCluster.InvalidVSwitchIdCount',
+ 'errorMessage' => 'VSwitch count is less than 2.',
+ ],
+ [
+ 'errorCode' => 'QuickDeployCluster.DuplicateZone',
+ 'errorMessage' => 'VSwitches should not contain duplicate zones.',
+ ],
+ [
+ 'errorCode' => 'QuickDeployCluster.InstanceCountInvalid',
+ 'errorMessage' => 'Instance number less than 2.',
+ ],
+ [
+ 'errorCode' => 'QuickDeployCluster.InstanceTypeInvalid',
+ 'errorMessage' => 'Instance type invalid.',
+ ],
+ [
+ 'errorCode' => 'QuickDeployCluster.InstanceTypeNotSame',
+ 'errorMessage' => 'Instance type not same.',
+ ],
+ ],
+ 500 => [
+ [
+ 'errorCode' => 'InternalError',
+ 'errorMessage' => 'The request processing has failed due to some unknown error.',
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"4C467B38-3910-447D-87BC-AC049166F216\\",\\n \\"Job\\": {\\n \\"JobId\\": \\"job-202401250936hze747fd7e0007005\\",\\n \\"Type\\": \\"create\\",\\n \\"Completed\\": true,\\n \\"CreateTime\\": \\"1653274407000\\",\\n \\"Status\\": \\"success\\",\\n \\"Response\\": \\"success\\",\\n \\"Error\\": \\"OperationTimeout\\",\\n \\"Progress\\": 86\\n }\\n}","type":"json"}]',
+ ],
+ 'RotateClusterManagedCert' => [
+ 'summary' => '轮转集群托管证书',
+ 'description' => '## 请求说明'."\n"
+ .'该API用于触发指定集群的管理证书轮转过程。通过提供`ClusterId`参数,可以指定需要进行证书轮转的集群。此操作有助于提高集群的安全性,建议定期执行。'."\n"
+ ."\n"
+ .'### 注意事项'."\n"
+ .'- 确保提供的`ClusterId`是有效的,并且用户具有对该集群的操作权限。'."\n"
+ .'- 证书轮转可能会影响依赖于旧证书的服务,请在适当的时间窗口内执行此操作。'."\n",
+ 'path' => '/',
+ 'methods' => [
+ 'post',
+ ],
+ 'schemes' => [
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'readAndWrite',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'update',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeNodes' => [
+ 'FEATUREhsmV7VE3Y',
+ 'FEATUREhsm01FLNB',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'ClusterId',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '- **参数类型**: string'."\n"
+ .'- **必填**: 是'."\n"
+ .'- **后端接收参数**: clusterId'."\n",
+ 'description' => '',
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'cluster-hfau****gkaud',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'description' => '成功响应',
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => '',
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'description' => '',
+ 'type' => 'string',
+ 'example' => '4C467B38-3910-447D-87BC-AC049166F216',
+ ],
+ 'Job' => [
+ 'description' => '',
+ 'type' => 'object',
+ 'properties' => [
+ 'JobId' => [
+ 'description' => '',
+ 'type' => 'string',
+ 'example' => 'job-202401250936hze747fd7e0007005',
+ ],
+ 'Type' => [
+ 'description' => '',
+ 'type' => 'string',
+ 'example' => 'create',
+ ],
+ 'Completed' => [
+ 'description' => '',
+ 'type' => 'boolean',
+ 'example' => 'true',
+ ],
+ 'CreateTime' => [
+ 'description' => '',
+ 'type' => 'string',
+ 'example' => '1653274407000',
+ ],
+ 'Status' => [
+ 'description' => '',
+ 'type' => 'string',
+ 'example' => 'running',
+ ],
+ 'Response' => [
+ 'description' => '',
+ 'type' => 'string',
+ 'example' => 'success',
+ ],
+ 'Error' => [
+ 'description' => '',
+ 'type' => 'string',
+ 'example' => 'OperationTimeout',
+ ],
+ 'Process' => [
+ 'description' => '',
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '100',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'Cluster.ClusterManagedCertRotate.NotSupport',
+ 'errorMessage' => 'rotate cluster managed cert not support',
+ ],
+ ],
+ 403 => [
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'caller has no permission',
+ ],
+ ],
+ 500 => [
+ [
+ 'errorCode' => 'InternalError',
+ 'errorMessage' => 'The request processing has failed due to some unknown error.',
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"4C467B38-3910-447D-87BC-AC049166F216\\",\\n \\"Job\\": {\\n \\"JobId\\": \\"job-202401250936hze747fd7e0007005\\",\\n \\"Type\\": \\"create\\",\\n \\"Completed\\": true,\\n \\"CreateTime\\": \\"1653274407000\\",\\n \\"Status\\": \\"running\\",\\n \\"Response\\": \\"success\\",\\n \\"Error\\": \\"OperationTimeout\\",\\n \\"Process\\": 100\\n }\\n}","type":"json"}]',
+ ],
+ 'DownloadClusterManagedCert' => [
+ 'summary' => '下载集群托管证书',
+ 'description' => '## 请求说明'."\n"
+ .'- 该API允许用户获取特定集群的管理证书。'."\n"
+ .'- 返回的数据是经过base64编码的证书内容。'."\n",
+ 'path' => '/',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeNodes' => [
+ 'FEATUREhsmV7VE3Y',
+ 'FEATUREhsm01FLNB',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'ClusterId',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '**ClusterId**'."\n",
+ 'description' => '',
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'cluster-001***hui',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'description' => '成功响应',
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => '',
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'description' => '',
+ 'type' => 'string',
+ 'example' => '4C467B38-3910-447D-87BC-AC049166F216',
+ ],
+ 'Content' => [
+ 'description' => '',
+ 'type' => 'string',
+ 'example' => 'emhlbmdza****W5qaWFuYmlhbm1hY2VzaGk=',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'Cluster.ClusterManagedCertDownload.NotSupport',
+ 'errorMessage' => 'download cluster managed cert not support.',
+ ],
+ [
+ 'errorCode' => 'Cluster.CertsManageNotFinished',
+ 'errorMessage' => 'cluster certs manage not finished.',
+ ],
+ ],
+ 403 => [
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'caller has no permission',
+ ],
+ ],
+ 500 => [
+ [
+ 'errorCode' => 'InternalError',
+ 'errorMessage' => 'The request processing has failed due to some unknown error.',
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"4C467B38-3910-447D-87BC-AC049166F216\\",\\n \\"Content\\": \\"emhlbmdza****W5qaWFuYmlhbm1hY2VzaGk=\\"\\n}","type":"json"}]',
+ ],
+ 'ConfigInstanceIpAddress' => [
+ 'summary' => 'Modifies the virtual private cloud (VPC) endpoint of a hardware security module (HSM).',
+ 'methods' => [
+ 'post',
+ ],
+ 'schemes' => [
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'update',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '211785',
+ 'abilityTreeNodes' => [
+ 'FEATUREhsmV7VE3Y',
+ 'FEATUREhsm01FLNB',
+ 'FEATUREhsmGIFYCG',
+ 'FEATUREhsmLBBV5W',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'RegionId',
+ 'in' => 'formData',
+ 'schema' => [
+ 'description' => 'The ID of the region.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'cn-hangzhou',
+ ],
+ ],
+ [
+ 'name' => 'InstanceId',
+ 'in' => 'formData',
+ 'schema' => [
+ 'description' => 'The ID of the HSM.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'hsm-cn-mp90fxef****',
+ ],
+ ],
+ [
+ 'name' => 'VpcId',
+ 'in' => 'formData',
+ 'schema' => [
+ 'description' => 'The ID of the VPC to which the HMS belongs.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'vpc-lmkmivmo6****',
+ ],
+ ],
+ [
+ 'name' => 'VSwitchId',
+ 'in' => 'formData',
+ 'schema' => [
+ 'description' => 'The ID of the vSwitch to which the HMS belongs.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'vsw-u7gb0qahu****',
+ ],
+ ],
+ [
+ 'name' => 'Ip',
+ 'in' => 'formData',
+ 'schema' => [
+ 'description' => 'The endpoint of the VPC to which the HMS belongs.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => '192.168.XX.XX',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'BaseResult',
+ 'description' => 'BaseResult'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '4C467B38-3910-447D-87BC-AC049166F216',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'SwitchMaster.InstanceInvalid',
+ 'errorMessage' => 'Instance not in the cluster.',
+ ],
+ [
+ 'errorCode' => 'LeaveCluster.MasterLast',
+ 'errorMessage' => 'Master instance can not leave a cluster until all other instances are left.',
+ ],
+ [
+ 'errorCode' => 'Certificate.ChainInvalid',
+ 'errorMessage' => 'Certificate chain invalid. Please make sure issuer certificate is the trust anchor and cluster certificate is signed by issuer certificate.',
+ ],
+ [
+ 'errorCode' => 'Certificate.FormatInvalid',
+ 'errorMessage' => 'Certificate format invalid. Cluster/Issuer certificate must be in PEM format.',
+ ],
+ [
+ 'errorCode' => 'ConfigClusterSubnet.DuplicateZone',
+ 'errorMessage' => 'VSwitches should not contain duplicate zones.',
+ ],
+ [
+ 'errorCode' => 'InvalidApiParam.Error',
+ 'errorMessage' => 'api param is invalid',
+ ],
+ [
+ 'errorCode' => 'InvalidClusterName',
+ 'errorMessage' => 'Invalid parameter clusterName.',
+ ],
+ [
+ 'errorCode' => 'InvalidPageSize',
+ 'errorMessage' => 'Invalid parameter pageSize.',
+ ],
+ [
+ 'errorCode' => 'InvalidCurrentPage',
+ 'errorMessage' => 'Invalid parameter currentPage.',
+ ],
+ [
+ 'errorCode' => 'InvalidRegionId',
+ 'errorMessage' => 'Invalid parameter regionId.',
+ ],
+ [
+ 'errorCode' => 'InvalidZoneId',
+ 'errorMessage' => 'Invalid parameter zoneId.',
+ ],
+ [
+ 'errorCode' => 'InvalidVSwitch',
+ 'errorMessage' => 'Invalid parameter vSwitch.',
+ ],
+ [
+ 'errorCode' => 'InvalidVpc',
+ 'errorMessage' => 'Invalid parameter vpcId.',
+ ],
+ [
+ 'errorCode' => 'InvalidVsmType',
+ 'errorMessage' => 'Invalid parameter vsmType.',
+ ],
+ [
+ 'errorCode' => 'InvalidIp',
+ 'errorMessage' => 'Invalid parameter IP.',
+ ],
+ [
+ 'errorCode' => 'InvalidAliuid',
+ 'errorMessage' => 'Invalid parameter aliuid.',
+ ],
+ [
+ 'errorCode' => 'InvalidClusterId',
+ 'errorMessage' => 'Invalid parameter clusterId.',
+ ],
+ [
+ 'errorCode' => 'InvalidInstanceId',
+ 'errorMessage' => 'Invalid parameter instanceId.',
+ ],
+ [
+ 'errorCode' => 'InvalidBackupId',
+ 'errorMessage' => 'Invalid parameter backupId.',
+ ],
+ [
+ 'errorCode' => 'InvalidImageId',
+ 'errorMessage' => 'Invalid parameter imageId.',
+ ],
+ [
+ 'errorCode' => 'HsmInstanceNotExist.Error',
+ 'errorMessage' => 'hsm instance not exist',
+ ],
+ [
+ 'errorCode' => 'HSMIntanceNotActived.Error',
+ 'errorMessage' => 'hsm intance is not actived',
+ ],
+ [
+ 'errorCode' => 'WhiteListMaxCount.Error',
+ 'errorMessage' => 'whilte list is more than max count',
+ ],
+ [
+ 'errorCode' => 'ClusterIdIsNotExists.Error',
+ 'errorMessage' => 'cluster ID non-exists',
+ ],
+ [
+ 'errorCode' => 'InstanceListIsEmpty.Error',
+ 'errorMessage' => 'instance list is empty',
+ ],
+ [
+ 'errorCode' => 'InstanceIdIsEmpty.Error',
+ 'errorMessage' => 'instance id is empty',
+ ],
+ [
+ 'errorCode' => 'InstanceIsNotExistsInCluster.Error',
+ 'errorMessage' => 'cluster has no such instance',
+ ],
+ [
+ 'errorCode' => 'InstanceIsExistsInCluster.Error',
+ 'errorMessage' => 'instance already in the cluster',
+ ],
+ [
+ 'errorCode' => 'RegionNoEmpty.Error',
+ 'errorMessage' => 'region no. is empty',
+ ],
+ [
+ 'errorCode' => 'ClusterNameEmpty.Error',
+ 'errorMessage' => 'empty cluster name not allowed',
+ ],
+ [
+ 'errorCode' => 'ClusterNameIsExists.Error',
+ 'errorMessage' => 'the cluster name is already taken',
+ ],
+ [
+ 'errorCode' => 'IpNotValid.Error',
+ 'errorMessage' => 'ip not valid',
+ ],
+ [
+ 'errorCode' => 'ClusterIsEmpty.Error',
+ 'errorMessage' => 'cluster is empty',
+ ],
+ [
+ 'errorCode' => 'NoMasterFoundInCluster.Error',
+ 'errorMessage' => 'cluster has no master instance',
+ ],
+ [
+ 'errorCode' => 'HsmInstanceIdNotFound.Error',
+ 'errorMessage' => 'no such instance',
+ ],
+ [
+ 'errorCode' => 'NoInstanceFoundInCluster.Error',
+ 'errorMessage' => 'cluster is empty',
+ ],
+ [
+ 'errorCode' => 'Whitelist.Invalid',
+ 'errorMessage' => 'Whitelist blocks not in CIDR format.',
+ ],
+ [
+ 'errorCode' => 'Whitelist.TooLong',
+ 'errorMessage' => 'Whitelist too long, exceeds 10 CIDR blocks.',
+ ],
+ [
+ 'errorCode' => 'ConfigIp.IpAlreadyInUse',
+ 'errorMessage' => 'Ip is in use, can not config IP address.',
+ ],
+ [
+ 'errorCode' => 'ConfigIp.VpcIpNotMatched',
+ 'errorMessage' => 'Vpc Ip must be in vpc network segment.',
+ ],
+ [
+ 'errorCode' => 'ConfigIp.IpOverFlow',
+ 'errorMessage' => 'Vpc ip last place can not be in [253-255].',
+ ],
+ ],
+ 403 => [
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'User has no permission to access this resource.',
+ ],
+ [
+ 'errorCode' => 'Trial.Forbidden',
+ 'errorMessage' => 'Current user is not allowed for trials!',
+ ],
+ [
+ 'errorCode' => 'Forbidden.InstanceInCluster',
+ 'errorMessage' => 'This API is forbidden for instances in cluster.',
+ ],
+ [
+ 'errorCode' => 'JoinCluster.InstanceIncorrectState',
+ 'errorMessage' => 'Instance not in Active/Pending state.',
+ ],
+ [
+ 'errorCode' => 'InstanceNotPaused',
+ 'errorMessage' => 'Please pause the instance before reset.',
+ ],
+ [
+ 'errorCode' => 'InstanceNotActive',
+ 'errorMessage' => 'Instance is not active.',
+ ],
+ [
+ 'errorCode' => 'ConfigIp.IncorrectState',
+ 'errorMessage' => 'Instance not in pending or active state, can not config IP address.',
+ ],
+ [
+ 'errorCode' => 'SwitchMaster.IncorrectState',
+ 'errorMessage' => 'Cluster not initialized, please initialize the cluster first.',
+ ],
+ [
+ 'errorCode' => 'SyncCluster.IncorrectState',
+ 'errorMessage' => 'Cluster not initialized, please initialize the cluster first.',
+ ],
+ [
+ 'errorCode' => 'LeaveCluster.InstanceInvalid',
+ 'errorMessage' => 'The instance is not in the cluster.',
+ ],
+ [
+ 'errorCode' => 'DeleteCluster.IncorrectState',
+ 'errorMessage' => 'Cluster not empty, please remove all instances first.',
+ ],
+ [
+ 'errorCode' => 'JoinCluster.InstanceVSwitchNotInCluster',
+ 'errorMessage' => 'Instance\'s vSwitch is not in cluster config, please change instance\'s vSwitch first.',
+ ],
+ [
+ 'errorCode' => 'JoinCluster.InstanceInitialized',
+ 'errorMessage' => 'Initialized instance can not join a cluster.',
+ ],
+ [
+ 'errorCode' => 'JoinCluster.IncorrectState',
+ 'errorMessage' => 'Cluster not initialized, please initialize the cluster first.',
+ ],
+ [
+ 'errorCode' => 'InitializeCluster.InstanceNotInitialized',
+ 'errorMessage' => 'Cluster master instance not initialized, please initialize cluster master instance first.',
+ ],
+ [
+ 'errorCode' => 'InitializeCluster.IncorrectConfig',
+ 'errorMessage' => 'Cluster subnet not configured, please config cluster subnet first.',
+ ],
+ [
+ 'errorCode' => 'InitializeCluster.IncorrectState',
+ 'errorMessage' => 'Cluster initialized, do not re-initialize.',
+ ],
+ [
+ 'errorCode' => 'Cluster.CN.ActionForbidden',
+ 'errorMessage' => 'This API is forbidden for non-international site cluster.',
+ ],
+ [
+ 'errorCode' => 'Cluster.INTL.ActionForbidden',
+ 'errorMessage' => 'This API is forbidden for international site cluster.',
+ ],
+ [
+ 'errorCode' => 'ConfigClusterCertificate.IncorrectState',
+ 'errorMessage' => 'Cluster initialized or certificates already configured.',
+ ],
+ [
+ 'errorCode' => 'ConfigClusterSubnet.InvalidVpcId',
+ 'errorMessage' => 'VPC Id invalid. Cluster VPC is the same as cluster master\'s VPC.',
+ ],
+ [
+ 'errorCode' => 'ConfigClusterSubnet.InvalidVSwitchId',
+ 'errorMessage' => 'VSwitch Id invalid. VSwitches should contain all current cluster vSwitches.',
+ ],
+ [
+ 'errorCode' => 'ConfigClusterSubnet.IncorrectState',
+ 'errorMessage' => 'Cluster not in NEW state, can not config cluster subnet.',
+ ],
+ [
+ 'errorCode' => 'ClusterName.Exist',
+ 'errorMessage' => 'Cluster name already exists, please use another name.',
+ ],
+ [
+ 'errorCode' => 'Image.ImageStatusInValid',
+ 'errorMessage' => 'Image status is invalid.',
+ ],
+ [
+ 'errorCode' => 'CopyImage.ImageAlreadyCopied',
+ 'errorMessage' => 'Image already copied, secondary copy is not supported.',
+ ],
+ [
+ 'errorCode' => 'Image.ActionForbiddenINTL',
+ 'errorMessage' => 'This API is forbidden for international site.',
+ ],
+ [
+ 'errorCode' => 'Image.ActionForbiddenCN',
+ 'errorMessage' => 'This API is forbidden for non-international site.',
+ ],
+ [
+ 'errorCode' => 'CopyImage.RegionInvalid',
+ 'errorMessage' => 'Source region or target region invalid.',
+ ],
+ [
+ 'errorCode' => 'Backup.ActionForbiddenINTL',
+ 'errorMessage' => 'This API is forbidden for international site.',
+ ],
+ [
+ 'errorCode' => 'CopyImage.TargetRegionImageAlreadyExists',
+ 'errorMessage' => 'Target region has the same digest image.',
+ ],
+ ],
+ [
+ [
+ 'errorCode' => 'Resource.NotFound',
+ 'errorMessage' => 'Resource not found.',
+ ],
+ ],
+ [
+ [
+ 'errorCode' => 'ClusterAPI.NotSupported',
+ 'errorMessage' => 'ClusterAPI not supported in this region.',
+ ],
+ ],
+ 409 => [
+ [
+ 'errorCode' => 'Conflict.InstanceModifying',
+ 'errorMessage' => 'Instance is being modified by a previous request. Please try again later.',
+ ],
+ [
+ 'errorCode' => 'Conflict',
+ 'errorMessage' => 'Resource is being updated by a previous request. Current request is redundant.',
+ ],
+ [
+ 'errorCode' => 'Cluster.Conflict',
+ 'errorMessage' => 'The cluster is being updated by a previous request. Please try again later.',
+ ],
+ ],
+ 500 => [
+ [
+ 'errorCode' => 'ConfigWhitelistFailed.Error',
+ 'errorMessage' => 'config white list error',
+ ],
+ [
+ 'errorCode' => 'ActionFailed.Error',
+ 'errorMessage' => 'internal error, please try again',
+ ],
+ [
+ 'errorCode' => 'InternalError',
+ 'errorMessage' => 'The request processing has failed due to some unknown error.',
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"4C467B38-3910-447D-87BC-AC049166F216\\"\\n}","type":"json"}]',
+ 'title' => 'ConfigInstanceIpAddress',
+ 'description' => 'After you add an HSM to a cluster, you cannot modify the VPC endpoint of the HSM.'."\n",
+ ],
+ 'RestoreInstance' => [
+ 'methods' => [
+ 'post',
+ ],
+ 'schemes' => [
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'readAndWrite',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'update',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'InstanceId',
+ 'in' => 'formData',
+ 'schema' => [
+ 'description' => 'The ID of the HSM.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'hsm-cn-mp90fxef****',
+ ],
+ ],
+ [
+ 'name' => 'ImageId',
+ 'in' => 'formData',
+ 'schema' => [
+ 'description' => 'The ID of the image that you want to use to restore the HSM.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'image-eaOGHkRDQgh4****',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'PlainResult<OpenApiRestoreInstanceResponse>',
+ 'description' => 'PlainResult'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '4C467B38-3910-447D-87BC-AC049366F216',
+ ],
+ 'Job' => [
+ 'description' => 'The details of the task.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'JobId' => [
+ 'description' => 'The ID of the task.'."\n",
+ 'type' => 'string',
+ 'example' => 'job-540356379023708160',
+ ],
+ 'Type' => [
+ 'description' => 'The operation type. Valid values:'."\n"
+ ."\n"
+ .'* create'."\n"
+ .'* cancel'."\n",
+ 'type' => 'string',
+ 'example' => 'create',
+ ],
+ 'Completed' => [
+ 'description' => 'Indicates whether the task is complete.'."\n",
+ 'type' => 'boolean',
+ 'example' => 'true',
+ ],
+ 'CreateTime' => [
+ 'description' => 'The time when the task is created. The value is accurate to the millisecond. The value is a UNIX timestamp.'."\n",
+ 'type' => 'string',
+ 'example' => '1711764127000',
+ ],
+ 'Status' => [
+ 'description' => 'The task status.'."\n",
+ 'type' => 'string',
+ 'example' => 'success',
+ ],
+ 'Response' => [
+ 'description' => 'The response returned after the task succeeds.'."\n",
+ 'type' => 'string',
+ 'example' => 'success',
+ ],
+ 'Error' => [
+ 'description' => 'The error message returned if the task fails.'."\n",
+ 'type' => 'string',
+ 'example' => 'OperationTimeout',
+ ],
+ 'Progress' => [
+ 'description' => 'The progress of the task. Unit: percent (%).'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '50',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'SwitchMaster.InstanceInvalid',
+ 'errorMessage' => 'Instance not in the cluster.',
+ ],
+ [
+ 'errorCode' => 'LeaveCluster.MasterLast',
+ 'errorMessage' => 'Master instance can not leave a cluster until all other instances are left.',
+ ],
+ [
+ 'errorCode' => 'Certificate.ChainInvalid',
+ 'errorMessage' => 'Certificate chain invalid. Please make sure issuer certificate is the trust anchor and cluster certificate is signed by issuer certificate.',
+ ],
+ [
+ 'errorCode' => 'Certificate.FormatInvalid',
+ 'errorMessage' => 'Certificate format invalid. Cluster/Issuer certificate must be in PEM format.',
+ ],
+ [
+ 'errorCode' => 'ConfigClusterSubnet.DuplicateZone',
+ 'errorMessage' => 'VSwitches should not contain duplicate zones.',
+ ],
+ [
+ 'errorCode' => 'InvalidApiParam.Error',
+ 'errorMessage' => 'api param is invalid',
+ ],
+ [
+ 'errorCode' => 'InvalidClusterName',
+ 'errorMessage' => 'Invalid parameter clusterName.',
+ ],
+ [
+ 'errorCode' => 'InvalidPageSize',
+ 'errorMessage' => 'Invalid parameter pageSize.',
+ ],
+ [
+ 'errorCode' => 'InvalidCurrentPage',
+ 'errorMessage' => 'Invalid parameter currentPage.',
+ ],
+ [
+ 'errorCode' => 'InvalidRegionId',
+ 'errorMessage' => 'Invalid parameter regionId.',
+ ],
+ [
+ 'errorCode' => 'InvalidVSwitch',
+ 'errorMessage' => 'Invalid parameter vSwitch.',
+ ],
+ [
+ 'errorCode' => 'InvalidVpc',
+ 'errorMessage' => 'Invalid parameter vpcId.',
+ ],
+ [
+ 'errorCode' => 'InvalidIp',
+ 'errorMessage' => 'Invalid parameter IP.',
+ ],
+ [
+ 'errorCode' => 'InvalidAliuid',
+ 'errorMessage' => 'Invalid parameter aliuid.',
+ ],
+ [
+ 'errorCode' => 'InvalidClusterId',
+ 'errorMessage' => 'Invalid parameter clusterId.',
+ ],
+ [
+ 'errorCode' => 'InvalidInstanceId',
+ 'errorMessage' => 'Invalid parameter instanceId.',
+ ],
+ [
+ 'errorCode' => 'InvalidBackupId',
+ 'errorMessage' => 'Invalid parameter backupId.',
+ ],
+ [
+ 'errorCode' => 'InvalidImageId',
+ 'errorMessage' => 'Invalid parameter imageId.',
+ ],
+ [
+ 'errorCode' => 'HsmInstanceNotExist.Error',
+ 'errorMessage' => 'hsm instance not exist',
+ ],
+ [
+ 'errorCode' => 'HSMIntanceNotActived.Error',
+ 'errorMessage' => 'hsm intance is not actived',
+ ],
+ [
+ 'errorCode' => 'WhiteListMaxCount.Error',
+ 'errorMessage' => 'whilte list is more than max count',
+ ],
+ [
+ 'errorCode' => 'ClusterIdIsNotExists.Error',
+ 'errorMessage' => 'cluster ID non-exists',
+ ],
+ [
+ 'errorCode' => 'InstanceListIsEmpty.Error',
+ 'errorMessage' => 'instance list is empty',
+ ],
+ [
+ 'errorCode' => 'InstanceIdIsEmpty.Error',
+ 'errorMessage' => 'instance id is empty',
+ ],
+ [
+ 'errorCode' => 'InstanceIsNotExistsInCluster.Error',
+ 'errorMessage' => 'cluster has no such instance',
+ ],
+ [
+ 'errorCode' => 'InstanceIsExistsInCluster.Error',
+ 'errorMessage' => 'instance already in the cluster',
+ ],
+ [
+ 'errorCode' => 'RegionNoEmpty.Error',
+ 'errorMessage' => 'region no. is empty',
+ ],
+ [
+ 'errorCode' => 'ClusterNameEmpty.Error',
+ 'errorMessage' => 'empty cluster name not allowed',
+ ],
+ [
+ 'errorCode' => 'ClusterNameIsExists.Error',
+ 'errorMessage' => 'the cluster name is already taken',
+ ],
+ [
+ 'errorCode' => 'IpNotValid.Error',
+ 'errorMessage' => 'ip not valid',
+ ],
+ [
+ 'errorCode' => 'ClusterIsEmpty.Error',
+ 'errorMessage' => 'cluster is empty',
+ ],
+ [
+ 'errorCode' => 'NoMasterFoundInCluster.Error',
+ 'errorMessage' => 'cluster has no master instance',
+ ],
+ [
+ 'errorCode' => 'HsmInstanceIdNotFound.Error',
+ 'errorMessage' => 'no such instance',
+ ],
+ [
+ 'errorCode' => 'NoInstanceFoundInCluster.Error',
+ 'errorMessage' => 'cluster is empty',
+ ],
+ [
+ 'errorCode' => 'Whitelist.Invalid',
+ 'errorMessage' => 'Whitelist blocks not in CIDR format.',
+ ],
+ [
+ 'errorCode' => 'Whitelist.TooLong',
+ 'errorMessage' => 'Whitelist too long, exceeds 10 CIDR blocks.',
+ ],
+ ],
+ 403 => [
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Caller has no permission on the resource.',
+ ],
+ [
+ 'errorCode' => 'InstanceNotPaused',
+ 'errorMessage' => 'Please pause the instance before reset.',
+ ],
+ [
+ 'errorCode' => 'InstanceNotActive',
+ 'errorMessage' => 'Instance is not active.',
+ ],
+ [
+ 'errorCode' => 'ConfigIp.IncorrectState',
+ 'errorMessage' => 'Instance not in pending or active state, can not config IP address.',
+ ],
+ [
+ 'errorCode' => 'SwitchMaster.IncorrectState',
+ 'errorMessage' => 'Cluster not initialized, please initialize the cluster first.',
+ ],
+ [
+ 'errorCode' => 'SyncCluster.IncorrectState',
+ 'errorMessage' => 'Cluster not initialized, please initialize the cluster first.',
+ ],
+ [
+ 'errorCode' => 'LeaveCluster.InstanceInvalid',
+ 'errorMessage' => 'The instance is not in the cluster.',
+ ],
+ [
+ 'errorCode' => 'DeleteCluster.IncorrectState',
+ 'errorMessage' => 'Cluster not empty, please remove all instances first.',
+ ],
+ [
+ 'errorCode' => 'JoinCluster.InstanceVSwitchNotInCluster',
+ 'errorMessage' => 'Instance\'s vSwitch is not in cluster config, please change instance\'s vSwitch first.',
+ ],
+ [
+ 'errorCode' => 'JoinCluster.InstanceInitialized',
+ 'errorMessage' => 'Initialized instance can not join a cluster.',
+ ],
+ [
+ 'errorCode' => 'JoinCluster.IncorrectState',
+ 'errorMessage' => 'Cluster not initialized, please initialize the cluster first.',
+ ],
+ [
+ 'errorCode' => 'InitializeCluster.InstanceNotInitialized',
+ 'errorMessage' => 'Cluster master instance not initialized, please initialize cluster master instance first.',
+ ],
+ [
+ 'errorCode' => 'InitializeCluster.IncorrectConfig',
+ 'errorMessage' => 'Cluster subnet not configured, please config cluster subnet first.',
+ ],
+ [
+ 'errorCode' => 'InitializeCluster.IncorrectState',
+ 'errorMessage' => 'Cluster initialized, do not re-initialize.',
+ ],
+ [
+ 'errorCode' => 'Cluster.CN.ActionForbidden',
+ 'errorMessage' => 'This API is forbidden for non-international site cluster.',
+ ],
+ [
+ 'errorCode' => 'Cluster.INTL.ActionForbidden',
+ 'errorMessage' => 'This API is forbidden for international site cluster.',
+ ],
+ [
+ 'errorCode' => 'ConfigClusterCertificate.IncorrectState',
+ 'errorMessage' => 'Cluster initialized or certificates already configured.',
+ ],
+ [
+ 'errorCode' => 'ConfigClusterSubnet.InvalidVpcId',
+ 'errorMessage' => 'VPC Id invalid. Cluster VPC is the same as cluster master\'s VPC.',
+ ],
+ [
+ 'errorCode' => 'ConfigClusterSubnet.InvalidVSwitchId',
+ 'errorMessage' => 'VSwitch Id invalid. VSwitches should contain all current cluster vSwitches.',
+ ],
+ [
+ 'errorCode' => 'ConfigClusterSubnet.IncorrectState',
+ 'errorMessage' => 'Cluster not in NEW state, can not config cluster subnet.',
+ ],
+ [
+ 'errorCode' => 'ClusterName.Exist',
+ 'errorMessage' => 'Cluster name already exists, please use another name.',
+ ],
+ [
+ 'errorCode' => 'Whitelist.InstanceInCluster',
+ 'errorMessage' => 'Whitelist.InstanceInCluster',
+ ],
+ ],
+ [
+ [
+ 'errorCode' => 'Resource.NotFound',
+ 'errorMessage' => 'Resource not found.',
+ ],
+ ],
+ [
+ [
+ 'errorCode' => 'ClusterAPI.NotSupported',
+ 'errorMessage' => 'ClusterAPI not supported in this region.',
+ ],
+ ],
+ 409 => [
+ [
+ 'errorCode' => 'Conflict',
+ 'errorMessage' => 'Resource is being updated by a previous request. Current request is redundant.',
+ ],
+ [
+ 'errorCode' => 'Cluster.Conflict',
+ 'errorMessage' => 'The cluster is being updated by a previous request. Please try again later.',
+ ],
+ ],
+ 500 => [
+ [
+ 'errorCode' => 'ConfigWhitelistFailed.Error',
+ 'errorMessage' => 'config white list error',
+ ],
+ [
+ 'errorCode' => 'ActionFailed.Error',
+ 'errorMessage' => 'internal error, please try again',
+ ],
+ [
+ 'errorCode' => 'InternalError',
+ 'errorMessage' => 'The request processing has failed due to some unknown error.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"4C467B38-3910-447D-87BC-AC049366F216\\",\\n \\"Job\\": {\\n \\"JobId\\": \\"job-540356379023708160\\",\\n \\"Type\\": \\"create\\",\\n \\"Completed\\": true,\\n \\"CreateTime\\": \\"1711764127000\\",\\n \\"Status\\": \\"success\\",\\n \\"Response\\": \\"success\\",\\n \\"Error\\": \\"OperationTimeout\\",\\n \\"Progress\\": 50\\n }\\n}","type":"json"}]',
+ 'title' => 'RestoreInstance',
+ 'summary' => 'Restores a hardware security module (HSM) by using an image.',
+ 'description' => 'You can use images to restore only HSMs that are paused or disabled.'."\n",
+ ],
+ 'ResetInstance' => [
+ 'methods' => [
+ 'post',
+ ],
+ 'schemes' => [
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'update',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'InstanceId',
+ 'in' => 'formData',
+ 'schema' => [
+ 'description' => 'The ID of the HSM.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'hsm-cn-vj30bil8****',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'PlainResult<OpenApiResetInstanceResponse>',
+ 'description' => 'PlainResult'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '4C467B38-3910-447D-87BC-AC049166F216',
+ ],
+ 'Job' => [
+ 'description' => 'The details of the task.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'JobId' => [
+ 'description' => 'The ID of the task.'."\n",
+ 'type' => 'string',
+ 'example' => 'job-0007bl8oev0u3jqyfu6a',
+ ],
+ 'Type' => [
+ 'description' => 'The operation type. Valid values:'."\n"
+ ."\n"
+ .'* create'."\n"
+ .'* cancel'."\n",
+ 'type' => 'string',
+ 'enumValueTitles' => [],
+ 'example' => 'create',
+ ],
+ 'Completed' => [
+ 'description' => 'Indicates whether the task is complete.'."\n",
+ 'type' => 'boolean',
+ 'example' => 'true',
+ ],
+ 'CreateTime' => [
+ 'description' => 'The time when the task is created. The value is accurate to the millisecond. The value is a UNIX timestamp.'."\n",
+ 'type' => 'string',
+ 'example' => '1653274407000',
+ ],
+ 'Status' => [
+ 'description' => 'The task status. Valid values:'."\n"
+ ."\n"
+ .'* success'."\n"
+ .'* running'."\n"
+ .'* cancel'."\n"
+ .'* fail'."\n",
+ 'type' => 'string',
+ 'enumValueTitles' => [],
+ 'example' => 'success',
+ ],
+ 'Response' => [
+ 'description' => 'The response returned after the task succeeds.'."\n",
+ 'type' => 'string',
+ 'example' => 'success',
+ ],
+ 'Error' => [
+ 'description' => 'The error message returned if the task fails.'."\n",
+ 'type' => 'string',
+ 'example' => 'OperationTimeout',
+ ],
+ 'Progress' => [
+ 'description' => 'The progress of the task. Unit: percent (%).'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '80',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'SwitchMaster.InstanceInvalid',
+ 'errorMessage' => 'Instance not in the cluster.',
+ ],
+ [
+ 'errorCode' => 'LeaveCluster.MasterLast',
+ 'errorMessage' => 'Master instance can not leave a cluster until all other instances are left.',
+ ],
+ [
+ 'errorCode' => 'Certificate.ChainInvalid',
+ 'errorMessage' => 'Certificate chain invalid. Please make sure issuer certificate is the trust anchor and cluster certificate is signed by issuer certificate.',
+ ],
+ [
+ 'errorCode' => 'Certificate.FormatInvalid',
+ 'errorMessage' => 'Certificate format invalid. Cluster/Issuer certificate must be in PEM format.',
+ ],
+ [
+ 'errorCode' => 'ConfigClusterSubnet.DuplicateZone',
+ 'errorMessage' => 'VSwitches should not contain duplicate zones.',
+ ],
+ [
+ 'errorCode' => 'InvalidApiParam.Error',
+ 'errorMessage' => 'api param is invalid',
+ ],
+ [
+ 'errorCode' => 'InvalidClusterName',
+ 'errorMessage' => 'Invalid parameter clusterName.',
+ ],
+ [
+ 'errorCode' => 'InvalidPageSize',
+ 'errorMessage' => 'Invalid parameter pageSize.',
+ ],
+ [
+ 'errorCode' => 'InvalidCurrentPage',
+ 'errorMessage' => 'Invalid parameter currentPage.',
+ ],
+ [
+ 'errorCode' => 'InvalidRegionId',
+ 'errorMessage' => 'Invalid parameter regionId.',
+ ],
+ [
+ 'errorCode' => 'InvalidVSwitch',
+ 'errorMessage' => 'Invalid parameter vSwitch.',
+ ],
+ [
+ 'errorCode' => 'InvalidVpc',
+ 'errorMessage' => 'Invalid parameter vpcId.',
+ ],
+ [
+ 'errorCode' => 'InvalidIp',
+ 'errorMessage' => 'Invalid parameter IP.',
+ ],
+ [
+ 'errorCode' => 'InvalidAliuid',
+ 'errorMessage' => 'Invalid parameter aliuid.',
+ ],
+ [
+ 'errorCode' => 'InvalidClusterId',
+ 'errorMessage' => 'Invalid parameter clusterId.',
+ ],
+ [
+ 'errorCode' => 'InvalidInstanceId',
+ 'errorMessage' => 'Invalid parameter instanceId.',
+ ],
+ [
+ 'errorCode' => 'InvalidBackupId',
+ 'errorMessage' => 'Invalid parameter backupId.',
+ ],
+ [
+ 'errorCode' => 'InvalidImageId',
+ 'errorMessage' => 'Invalid parameter imageId.',
+ ],
+ [
+ 'errorCode' => 'HsmInstanceNotExist.Error',
+ 'errorMessage' => 'hsm instance not exist',
+ ],
+ [
+ 'errorCode' => 'HSMIntanceNotActived.Error',
+ 'errorMessage' => 'hsm intance is not actived',
+ ],
+ [
+ 'errorCode' => 'WhiteListMaxCount.Error',
+ 'errorMessage' => 'whilte list is more than max count',
+ ],
+ [
+ 'errorCode' => 'ClusterIdIsNotExists.Error',
+ 'errorMessage' => 'cluster ID non-exists',
+ ],
+ [
+ 'errorCode' => 'InstanceListIsEmpty.Error',
+ 'errorMessage' => 'instance list is empty',
+ ],
+ [
+ 'errorCode' => 'InstanceIdIsEmpty.Error',
+ 'errorMessage' => 'instance id is empty',
+ ],
+ [
+ 'errorCode' => 'InstanceIsNotExistsInCluster.Error',
+ 'errorMessage' => 'cluster has no such instance',
+ ],
+ [
+ 'errorCode' => 'InstanceIsExistsInCluster.Error',
+ 'errorMessage' => 'instance already in the cluster',
+ ],
+ [
+ 'errorCode' => 'RegionNoEmpty.Error',
+ 'errorMessage' => 'region no. is empty',
+ ],
+ [
+ 'errorCode' => 'ClusterNameEmpty.Error',
+ 'errorMessage' => 'empty cluster name not allowed',
+ ],
+ [
+ 'errorCode' => 'ClusterNameIsExists.Error',
+ 'errorMessage' => 'the cluster name is already taken',
+ ],
+ [
+ 'errorCode' => 'IpNotValid.Error',
+ 'errorMessage' => 'ip not valid',
+ ],
+ [
+ 'errorCode' => 'ClusterIsEmpty.Error',
+ 'errorMessage' => 'cluster is empty',
+ ],
+ [
+ 'errorCode' => 'NoMasterFoundInCluster.Error',
+ 'errorMessage' => 'cluster has no master instance',
+ ],
+ [
+ 'errorCode' => 'HsmInstanceIdNotFound.Error',
+ 'errorMessage' => 'no such instance',
+ ],
+ [
+ 'errorCode' => 'NoInstanceFoundInCluster.Error',
+ 'errorMessage' => 'cluster is empty',
+ ],
+ [
+ 'errorCode' => 'Whitelist.Invalid',
+ 'errorMessage' => 'Whitelist blocks not in CIDR format.',
+ ],
+ [
+ 'errorCode' => 'Whitelist.TooLong',
+ 'errorMessage' => 'Whitelist too long, exceeds 10 CIDR blocks.',
+ ],
+ ],
+ 403 => [
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Caller has no permission on the resource.',
+ ],
+ [
+ 'errorCode' => 'InstanceNotPaused',
+ 'errorMessage' => 'Please pause the instance before reset.',
+ ],
+ [
+ 'errorCode' => 'InstanceNotActive',
+ 'errorMessage' => 'Instance is not active.',
+ ],
+ [
+ 'errorCode' => 'ConfigIp.IncorrectState',
+ 'errorMessage' => 'Instance not in pending or active state, can not config IP address.',
+ ],
+ [
+ 'errorCode' => 'SwitchMaster.IncorrectState',
+ 'errorMessage' => 'Cluster not initialized, please initialize the cluster first.',
+ ],
+ [
+ 'errorCode' => 'SyncCluster.IncorrectState',
+ 'errorMessage' => 'Cluster not initialized, please initialize the cluster first.',
+ ],
+ [
+ 'errorCode' => 'LeaveCluster.InstanceInvalid',
+ 'errorMessage' => 'The instance is not in the cluster.',
+ ],
+ [
+ 'errorCode' => 'DeleteCluster.IncorrectState',
+ 'errorMessage' => 'Cluster not empty, please remove all instances first.',
+ ],
+ [
+ 'errorCode' => 'JoinCluster.InstanceVSwitchNotInCluster',
+ 'errorMessage' => 'Instance\'s vSwitch is not in cluster config, please change instance\'s vSwitch first.',
+ ],
+ [
+ 'errorCode' => 'JoinCluster.InstanceInitialized',
+ 'errorMessage' => 'Initialized instance can not join a cluster.',
+ ],
+ [
+ 'errorCode' => 'JoinCluster.IncorrectState',
+ 'errorMessage' => 'Cluster not initialized, please initialize the cluster first.',
+ ],
+ [
+ 'errorCode' => 'InitializeCluster.InstanceNotInitialized',
+ 'errorMessage' => 'Cluster master instance not initialized, please initialize cluster master instance first.',
+ ],
+ [
+ 'errorCode' => 'InitializeCluster.IncorrectConfig',
+ 'errorMessage' => 'Cluster subnet not configured, please config cluster subnet first.',
+ ],
+ [
+ 'errorCode' => 'InitializeCluster.IncorrectState',
+ 'errorMessage' => 'Cluster initialized, do not re-initialize.',
+ ],
+ [
+ 'errorCode' => 'Cluster.CN.ActionForbidden',
+ 'errorMessage' => 'This API is forbidden for non-international site cluster.',
+ ],
+ [
+ 'errorCode' => 'Cluster.INTL.ActionForbidden',
+ 'errorMessage' => 'This API is forbidden for international site cluster.',
+ ],
+ [
+ 'errorCode' => 'ConfigClusterCertificate.IncorrectState',
+ 'errorMessage' => 'Cluster initialized or certificates already configured.',
+ ],
+ [
+ 'errorCode' => 'ConfigClusterSubnet.InvalidVpcId',
+ 'errorMessage' => 'VPC Id invalid. Cluster VPC is the same as cluster master\'s VPC.',
+ ],
+ [
+ 'errorCode' => 'ConfigClusterSubnet.InvalidVSwitchId',
+ 'errorMessage' => 'VSwitch Id invalid. VSwitches should contain all current cluster vSwitches.',
+ ],
+ [
+ 'errorCode' => 'ConfigClusterSubnet.IncorrectState',
+ 'errorMessage' => 'Cluster not in NEW state, can not config cluster subnet.',
+ ],
+ [
+ 'errorCode' => 'ClusterName.Exist',
+ 'errorMessage' => 'Cluster name already exists, please use another name.',
+ ],
+ [
+ 'errorCode' => 'Whitelist.InstanceInCluster',
+ 'errorMessage' => 'Whitelist.InstanceInCluster',
+ ],
+ ],
+ [
+ [
+ 'errorCode' => 'Resource.NotFound',
+ 'errorMessage' => 'Resource not found.',
+ ],
+ ],
+ [
+ [
+ 'errorCode' => 'ClusterAPI.NotSupported',
+ 'errorMessage' => 'ClusterAPI not supported in this region.',
+ ],
+ ],
+ 409 => [
+ [
+ 'errorCode' => 'Conflict',
+ 'errorMessage' => 'Resource is being updated by a previous request. Current request is redundant.',
+ ],
+ [
+ 'errorCode' => 'Cluster.Conflict',
+ 'errorMessage' => 'The cluster is being updated by a previous request. Please try again later.',
+ ],
+ ],
+ 500 => [
+ [
+ 'errorCode' => 'ConfigWhitelistFailed.Error',
+ 'errorMessage' => 'config white list error',
+ ],
+ [
+ 'errorCode' => 'ActionFailed.Error',
+ 'errorMessage' => 'internal error, please try again',
+ ],
+ [
+ 'errorCode' => 'InternalError',
+ 'errorMessage' => 'The request processing has failed due to some unknown error.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"4C467B38-3910-447D-87BC-AC049166F216\\",\\n \\"Job\\": {\\n \\"JobId\\": \\"job-0007bl8oev0u3jqyfu6a\\",\\n \\"Type\\": \\"create\\",\\n \\"Completed\\": true,\\n \\"CreateTime\\": \\"1653274407000\\",\\n \\"Status\\": \\"success\\",\\n \\"Response\\": \\"success\\",\\n \\"Error\\": \\"OperationTimeout\\",\\n \\"Progress\\": 80\\n }\\n}","type":"json"}]',
+ 'title' => 'ResetInstance',
+ 'summary' => 'Resets a hardware security module (HSM).',
+ 'description' => 'After an HSM is reset, all related data is deleted and cannot be recovered. Proceed with caution.'."\n",
+ ],
+ 'QuickInitInstance' => [
+ 'methods' => [
+ 'post',
+ ],
+ 'schemes' => [
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'update',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'InstanceId',
+ 'in' => 'formData',
+ 'schema' => [
+ 'description' => 'The ID of the HSM.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'hsm-cn-mp90fxef****',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'PlainResult<OpenApiQuickInitInstanceResponse>',
+ 'description' => 'PlainResult'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '4C467B38-3910-447D-87BC-AC049366F216',
+ ],
+ 'Job' => [
+ 'description' => 'The details of the task.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'JobId' => [
+ 'description' => 'The ID of the task.'."\n",
+ 'type' => 'string',
+ 'example' => 'job-000fi9k1v2hclo321sal',
+ ],
+ 'Type' => [
+ 'description' => 'The operation type. Valid values:'."\n"
+ ."\n"
+ .'* create'."\n"
+ .'* cancel'."\n",
+ 'type' => 'string',
+ 'enumValueTitles' => [],
+ 'example' => 'create',
+ ],
+ 'Completed' => [
+ 'description' => 'Indicates whether the task is complete.'."\n",
+ 'type' => 'boolean',
+ 'example' => 'true',
+ ],
+ 'CreateTime' => [
+ 'description' => 'The time when the task is created. The value is accurate to the millisecond. The value is a UNIX timestamp.'."\n",
+ 'type' => 'string',
+ 'example' => '1699515963000',
+ ],
+ 'Status' => [
+ 'description' => 'The task status. Valid values:'."\n"
+ ."\n"
+ .'* success'."\n"
+ .'* running'."\n"
+ .'* cancel'."\n"
+ .'* fail'."\n",
+ 'type' => 'string',
+ 'enumValueTitles' => [],
+ 'example' => 'success',
+ ],
+ 'Response' => [
+ 'description' => 'The response returned after the task succeeds.'."\n",
+ 'type' => 'string',
+ 'example' => 'success',
+ ],
+ 'Error' => [
+ 'description' => 'The error message returned if the task fails.'."\n",
+ 'type' => 'string',
+ 'example' => 'OperationTimeout',
+ ],
+ 'Progress' => [
+ 'description' => 'The progress of the task. Unit: percent (%).'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '100',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'SwitchMaster.InstanceInvalid',
+ 'errorMessage' => 'Instance not in the cluster.',
+ ],
+ [
+ 'errorCode' => 'LeaveCluster.MasterLast',
+ 'errorMessage' => 'Master instance can not leave a cluster until all other instances are left.',
+ ],
+ [
+ 'errorCode' => 'Certificate.ChainInvalid',
+ 'errorMessage' => 'Certificate chain invalid. Please make sure issuer certificate is the trust anchor and cluster certificate is signed by issuer certificate.',
+ ],
+ [
+ 'errorCode' => 'Certificate.FormatInvalid',
+ 'errorMessage' => 'Certificate format invalid. Cluster/Issuer certificate must be in PEM format.',
+ ],
+ [
+ 'errorCode' => 'ConfigClusterSubnet.DuplicateZone',
+ 'errorMessage' => 'VSwitches should not contain duplicate zones.',
+ ],
+ [
+ 'errorCode' => 'InvalidApiParam.Error',
+ 'errorMessage' => 'api param is invalid',
+ ],
+ [
+ 'errorCode' => 'InvalidClusterName',
+ 'errorMessage' => 'Invalid parameter clusterName.',
+ ],
+ [
+ 'errorCode' => 'InvalidPageSize',
+ 'errorMessage' => 'Invalid parameter pageSize.',
+ ],
+ [
+ 'errorCode' => 'InvalidCurrentPage',
+ 'errorMessage' => 'Invalid parameter currentPage.',
+ ],
+ [
+ 'errorCode' => 'InvalidRegionId',
+ 'errorMessage' => 'Invalid parameter regionId.',
+ ],
+ [
+ 'errorCode' => 'InvalidVSwitch',
+ 'errorMessage' => 'Invalid parameter vSwitch.',
+ ],
+ [
+ 'errorCode' => 'InvalidVpc',
+ 'errorMessage' => 'Invalid parameter vpcId.',
+ ],
+ [
+ 'errorCode' => 'InvalidIp',
+ 'errorMessage' => 'Invalid parameter IP.',
+ ],
+ [
+ 'errorCode' => 'InvalidAliuid',
+ 'errorMessage' => 'Invalid parameter aliuid.',
+ ],
+ [
+ 'errorCode' => 'InvalidClusterId',
+ 'errorMessage' => 'Invalid parameter clusterId.',
+ ],
+ [
+ 'errorCode' => 'InvalidInstanceId',
+ 'errorMessage' => 'Invalid parameter instanceId.',
+ ],
+ [
+ 'errorCode' => 'InvalidBackupId',
+ 'errorMessage' => 'Invalid parameter backupId.',
+ ],
+ [
+ 'errorCode' => 'InvalidImageId',
+ 'errorMessage' => 'Invalid parameter imageId.',
+ ],
+ [
+ 'errorCode' => 'HsmInstanceNotExist.Error',
+ 'errorMessage' => 'hsm instance not exist',
+ ],
+ [
+ 'errorCode' => 'HSMIntanceNotActived.Error',
+ 'errorMessage' => 'hsm intance is not actived',
+ ],
+ [
+ 'errorCode' => 'WhiteListMaxCount.Error',
+ 'errorMessage' => 'whilte list is more than max count',
+ ],
+ [
+ 'errorCode' => 'ClusterIdIsNotExists.Error',
+ 'errorMessage' => 'cluster ID non-exists',
+ ],
+ [
+ 'errorCode' => 'InstanceListIsEmpty.Error',
+ 'errorMessage' => 'instance list is empty',
+ ],
+ [
+ 'errorCode' => 'InstanceIdIsEmpty.Error',
+ 'errorMessage' => 'instance id is empty',
+ ],
+ [
+ 'errorCode' => 'InstanceIsNotExistsInCluster.Error',
+ 'errorMessage' => 'cluster has no such instance',
+ ],
+ [
+ 'errorCode' => 'InstanceIsExistsInCluster.Error',
+ 'errorMessage' => 'instance already in the cluster',
+ ],
+ [
+ 'errorCode' => 'RegionNoEmpty.Error',
+ 'errorMessage' => 'region no. is empty',
+ ],
+ [
+ 'errorCode' => 'ClusterNameEmpty.Error',
+ 'errorMessage' => 'empty cluster name not allowed',
+ ],
+ [
+ 'errorCode' => 'ClusterNameIsExists.Error',
+ 'errorMessage' => 'the cluster name is already taken',
+ ],
+ [
+ 'errorCode' => 'IpNotValid.Error',
+ 'errorMessage' => 'ip not valid',
+ ],
+ [
+ 'errorCode' => 'ClusterIsEmpty.Error',
+ 'errorMessage' => 'cluster is empty',
+ ],
+ [
+ 'errorCode' => 'NoMasterFoundInCluster.Error',
+ 'errorMessage' => 'cluster has no master instance',
+ ],
+ [
+ 'errorCode' => 'HsmInstanceIdNotFound.Error',
+ 'errorMessage' => 'no such instance',
+ ],
+ [
+ 'errorCode' => 'NoInstanceFoundInCluster.Error',
+ 'errorMessage' => 'cluster is empty',
+ ],
+ [
+ 'errorCode' => 'Whitelist.Invalid',
+ 'errorMessage' => 'Whitelist blocks not in CIDR format.',
+ ],
+ [
+ 'errorCode' => 'Whitelist.TooLong',
+ 'errorMessage' => 'Whitelist too long, exceeds 10 CIDR blocks.',
+ ],
+ ],
+ 403 => [
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Caller has no permission on the resource.',
+ ],
+ [
+ 'errorCode' => 'InstanceNotPaused',
+ 'errorMessage' => 'Please pause the instance before reset.',
+ ],
+ [
+ 'errorCode' => 'InstanceNotActive',
+ 'errorMessage' => 'Instance is not active.',
+ ],
+ [
+ 'errorCode' => 'ConfigIp.IncorrectState',
+ 'errorMessage' => 'Instance not in pending or active state, can not config IP address.',
+ ],
+ [
+ 'errorCode' => 'SwitchMaster.IncorrectState',
+ 'errorMessage' => 'Cluster not initialized, please initialize the cluster first.',
+ ],
+ [
+ 'errorCode' => 'SyncCluster.IncorrectState',
+ 'errorMessage' => 'Cluster not initialized, please initialize the cluster first.',
+ ],
+ [
+ 'errorCode' => 'LeaveCluster.InstanceInvalid',
+ 'errorMessage' => 'The instance is not in the cluster.',
+ ],
+ [
+ 'errorCode' => 'DeleteCluster.IncorrectState',
+ 'errorMessage' => 'Cluster not empty, please remove all instances first.',
+ ],
+ [
+ 'errorCode' => 'JoinCluster.InstanceVSwitchNotInCluster',
+ 'errorMessage' => 'Instance\'s vSwitch is not in cluster config, please change instance\'s vSwitch first.',
+ ],
+ [
+ 'errorCode' => 'JoinCluster.InstanceInitialized',
+ 'errorMessage' => 'Initialized instance can not join a cluster.',
+ ],
+ [
+ 'errorCode' => 'JoinCluster.IncorrectState',
+ 'errorMessage' => 'Cluster not initialized, please initialize the cluster first.',
+ ],
+ [
+ 'errorCode' => 'InitializeCluster.InstanceNotInitialized',
+ 'errorMessage' => 'Cluster master instance not initialized, please initialize cluster master instance first.',
+ ],
+ [
+ 'errorCode' => 'InitializeCluster.IncorrectConfig',
+ 'errorMessage' => 'Cluster subnet not configured, please config cluster subnet first.',
+ ],
+ [
+ 'errorCode' => 'InitializeCluster.IncorrectState',
+ 'errorMessage' => 'Cluster initialized, do not re-initialize.',
+ ],
+ [
+ 'errorCode' => 'Cluster.CN.ActionForbidden',
+ 'errorMessage' => 'This API is forbidden for non-international site cluster.',
+ ],
+ [
+ 'errorCode' => 'Cluster.INTL.ActionForbidden',
+ 'errorMessage' => 'This API is forbidden for international site cluster.',
+ ],
+ [
+ 'errorCode' => 'ConfigClusterCertificate.IncorrectState',
+ 'errorMessage' => 'Cluster initialized or certificates already configured.',
+ ],
+ [
+ 'errorCode' => 'ConfigClusterSubnet.InvalidVpcId',
+ 'errorMessage' => 'VPC Id invalid. Cluster VPC is the same as cluster master\'s VPC.',
+ ],
+ [
+ 'errorCode' => 'ConfigClusterSubnet.InvalidVSwitchId',
+ 'errorMessage' => 'VSwitch Id invalid. VSwitches should contain all current cluster vSwitches.',
+ ],
+ [
+ 'errorCode' => 'ConfigClusterSubnet.IncorrectState',
+ 'errorMessage' => 'Cluster not in NEW state, can not config cluster subnet.',
+ ],
+ [
+ 'errorCode' => 'ClusterName.Exist',
+ 'errorMessage' => 'Cluster name already exists, please use another name.',
+ ],
+ [
+ 'errorCode' => 'Whitelist.InstanceInCluster',
+ 'errorMessage' => 'Whitelist.InstanceInCluster',
+ ],
+ ],
+ [
+ [
+ 'errorCode' => 'Resource.NotFound',
+ 'errorMessage' => 'Resource not found.',
+ ],
+ ],
+ [
+ [
+ 'errorCode' => 'ClusterAPI.NotSupported',
+ 'errorMessage' => 'ClusterAPI not supported in this region.',
+ ],
+ ],
+ 409 => [
+ [
+ 'errorCode' => 'Conflict',
+ 'errorMessage' => 'Resource is being updated by a previous request. Current request is redundant.',
+ ],
+ [
+ 'errorCode' => 'Cluster.Conflict',
+ 'errorMessage' => 'The cluster is being updated by a previous request. Please try again later.',
+ ],
+ ],
+ 500 => [
+ [
+ 'errorCode' => 'ConfigWhitelistFailed.Error',
+ 'errorMessage' => 'config white list error',
+ ],
+ [
+ 'errorCode' => 'ActionFailed.Error',
+ 'errorMessage' => 'internal error, please try again',
+ ],
+ [
+ 'errorCode' => 'InternalError',
+ 'errorMessage' => 'The request processing has failed due to some unknown error.',
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"4C467B38-3910-447D-87BC-AC049366F216\\",\\n \\"Job\\": {\\n \\"JobId\\": \\"job-000fi9k1v2hclo321sal\\",\\n \\"Type\\": \\"create\\",\\n \\"Completed\\": true,\\n \\"CreateTime\\": \\"1699515963000\\",\\n \\"Status\\": \\"success\\",\\n \\"Response\\": \\"success\\",\\n \\"Error\\": \\"OperationTimeout\\",\\n \\"Progress\\": 100\\n }\\n}","type":"json"}]',
+ 'title' => 'QuickInitInstance',
+ 'summary' => 'Initializes a hardware security module (HSM).',
+ 'description' => 'This operation is supported only for general virtual security modules (GVSMs) in the Chinese mainland.'."\n",
+ ],
+ 'ConfigInstanceWhitelist' => [
+ 'summary' => 'Modifies the IP address whitelist of a hardware security module (HSM).',
+ 'methods' => [
+ 'post',
+ ],
+ 'schemes' => [
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'update',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'InstanceId',
+ 'in' => 'formData',
+ 'schema' => [
+ 'description' => 'The ID of the HSM.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'hsm-cn-vj30bil8****',
+ ],
+ ],
+ [
+ 'name' => 'Whitelist',
+ 'in' => 'formData',
+ 'schema' => [
+ 'description' => 'A list of IP addresses that you want to configure in the whitelist. Separate multiple IP addresses with spaces or commas (,).'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => '18.68.XX.XX,18.68.XX.XX',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'BaseResult',
+ 'description' => 'BaseResult'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '4C467B38-3910-447D-87BC-AC049166F216',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'SwitchMaster.InstanceInvalid',
+ 'errorMessage' => 'Instance not in the cluster.',
+ ],
+ [
+ 'errorCode' => 'LeaveCluster.MasterLast',
+ 'errorMessage' => 'Master instance can not leave a cluster until all other instances are left.',
+ ],
+ [
+ 'errorCode' => 'Certificate.ChainInvalid',
+ 'errorMessage' => 'Certificate chain invalid. Please make sure issuer certificate is the trust anchor and cluster certificate is signed by issuer certificate.',
+ ],
+ [
+ 'errorCode' => 'Certificate.FormatInvalid',
+ 'errorMessage' => 'Certificate format invalid. Cluster/Issuer certificate must be in PEM format.',
+ ],
+ [
+ 'errorCode' => 'ConfigClusterSubnet.DuplicateZone',
+ 'errorMessage' => 'VSwitches should not contain duplicate zones.',
+ ],
+ [
+ 'errorCode' => 'InvalidApiParam.Error',
+ 'errorMessage' => 'api param is invalid',
+ ],
+ [
+ 'errorCode' => 'InvalidClusterName',
+ 'errorMessage' => 'Invalid parameter clusterName.',
+ ],
+ [
+ 'errorCode' => 'InvalidPageSize',
+ 'errorMessage' => 'Invalid parameter pageSize.',
+ ],
+ [
+ 'errorCode' => 'InvalidCurrentPage',
+ 'errorMessage' => 'Invalid parameter currentPage.',
+ ],
+ [
+ 'errorCode' => 'InvalidRegionId',
+ 'errorMessage' => 'Invalid parameter regionId.',
+ ],
+ [
+ 'errorCode' => 'InvalidVSwitch',
+ 'errorMessage' => 'Invalid parameter vSwitch.',
+ ],
+ [
+ 'errorCode' => 'InvalidVpc',
+ 'errorMessage' => 'Invalid parameter vpcId.',
+ ],
+ [
+ 'errorCode' => 'InvalidIp',
+ 'errorMessage' => 'Invalid parameter IP.',
+ ],
+ [
+ 'errorCode' => 'InvalidAliuid',
+ 'errorMessage' => 'Invalid parameter aliuid.',
+ ],
+ [
+ 'errorCode' => 'InvalidClusterId',
+ 'errorMessage' => 'Invalid parameter clusterId.',
+ ],
+ [
+ 'errorCode' => 'InvalidInstanceId',
+ 'errorMessage' => 'Invalid parameter instanceId.',
+ ],
+ [
+ 'errorCode' => 'InvalidBackupId',
+ 'errorMessage' => 'Invalid parameter backupId.',
+ ],
+ [
+ 'errorCode' => 'InvalidImageId',
+ 'errorMessage' => 'Invalid parameter imageId.',
+ ],
+ [
+ 'errorCode' => 'HsmInstanceNotExist.Error',
+ 'errorMessage' => 'hsm instance not exist',
+ ],
+ [
+ 'errorCode' => 'HSMIntanceNotActived.Error',
+ 'errorMessage' => 'hsm intance is not actived',
+ ],
+ [
+ 'errorCode' => 'WhiteListMaxCount.Error',
+ 'errorMessage' => 'whilte list is more than max count',
+ ],
+ [
+ 'errorCode' => 'ClusterIdIsNotExists.Error',
+ 'errorMessage' => 'cluster ID non-exists',
+ ],
+ [
+ 'errorCode' => 'InstanceListIsEmpty.Error',
+ 'errorMessage' => 'instance list is empty',
+ ],
+ [
+ 'errorCode' => 'InstanceIdIsEmpty.Error',
+ 'errorMessage' => 'instance id is empty',
+ ],
+ [
+ 'errorCode' => 'InstanceIsNotExistsInCluster.Error',
+ 'errorMessage' => 'cluster has no such instance',
+ ],
+ [
+ 'errorCode' => 'InstanceIsExistsInCluster.Error',
+ 'errorMessage' => 'instance already in the cluster',
+ ],
+ [
+ 'errorCode' => 'RegionNoEmpty.Error',
+ 'errorMessage' => 'region no. is empty',
+ ],
+ [
+ 'errorCode' => 'ClusterNameEmpty.Error',
+ 'errorMessage' => 'empty cluster name not allowed',
+ ],
+ [
+ 'errorCode' => 'ClusterNameIsExists.Error',
+ 'errorMessage' => 'the cluster name is already taken',
+ ],
+ [
+ 'errorCode' => 'IpNotValid.Error',
+ 'errorMessage' => 'ip not valid',
+ ],
+ [
+ 'errorCode' => 'ClusterIsEmpty.Error',
+ 'errorMessage' => 'cluster is empty',
+ ],
+ [
+ 'errorCode' => 'NoMasterFoundInCluster.Error',
+ 'errorMessage' => 'cluster has no master instance',
+ ],
+ [
+ 'errorCode' => 'HsmInstanceIdNotFound.Error',
+ 'errorMessage' => 'no such instance',
+ ],
+ [
+ 'errorCode' => 'NoInstanceFoundInCluster.Error',
+ 'errorMessage' => 'cluster is empty',
+ ],
+ [
+ 'errorCode' => 'Whitelist.Invalid',
+ 'errorMessage' => 'Whitelist blocks not in CIDR format.',
+ ],
+ [
+ 'errorCode' => 'Whitelist.TooLong',
+ 'errorMessage' => 'Whitelist too long, exceeds 10 CIDR blocks.',
+ ],
+ ],
+ 403 => [
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Caller has no permission on the resource.',
+ ],
+ [
+ 'errorCode' => 'InstanceNotPaused',
+ 'errorMessage' => 'Please pause the instance before reset.',
+ ],
+ [
+ 'errorCode' => 'InstanceNotActive',
+ 'errorMessage' => 'Instance is not active.',
+ ],
+ [
+ 'errorCode' => 'ConfigIp.IncorrectState',
+ 'errorMessage' => 'Instance not in pending or active state, can not config IP address.',
+ ],
+ [
+ 'errorCode' => 'SwitchMaster.IncorrectState',
+ 'errorMessage' => 'Cluster not initialized, please initialize the cluster first.',
+ ],
+ [
+ 'errorCode' => 'SyncCluster.IncorrectState',
+ 'errorMessage' => 'Cluster not initialized, please initialize the cluster first.',
+ ],
+ [
+ 'errorCode' => 'LeaveCluster.InstanceInvalid',
+ 'errorMessage' => 'The instance is not in the cluster.',
+ ],
+ [
+ 'errorCode' => 'DeleteCluster.IncorrectState',
+ 'errorMessage' => 'Cluster not empty, please remove all instances first.',
+ ],
+ [
+ 'errorCode' => 'JoinCluster.InstanceVSwitchNotInCluster',
+ 'errorMessage' => 'Instance\'s vSwitch is not in cluster config, please change instance\'s vSwitch first.',
+ ],
+ [
+ 'errorCode' => 'JoinCluster.InstanceInitialized',
+ 'errorMessage' => 'Initialized instance can not join a cluster.',
+ ],
+ [
+ 'errorCode' => 'JoinCluster.IncorrectState',
+ 'errorMessage' => 'Cluster not initialized, please initialize the cluster first.',
+ ],
+ [
+ 'errorCode' => 'InitializeCluster.InstanceNotInitialized',
+ 'errorMessage' => 'Cluster master instance not initialized, please initialize cluster master instance first.',
+ ],
+ [
+ 'errorCode' => 'InitializeCluster.IncorrectConfig',
+ 'errorMessage' => 'Cluster subnet not configured, please config cluster subnet first.',
+ ],
+ [
+ 'errorCode' => 'InitializeCluster.IncorrectState',
+ 'errorMessage' => 'Cluster initialized, do not re-initialize.',
+ ],
+ [
+ 'errorCode' => 'Cluster.CN.ActionForbidden',
+ 'errorMessage' => 'This API is forbidden for non-international site cluster.',
+ ],
+ [
+ 'errorCode' => 'Cluster.INTL.ActionForbidden',
+ 'errorMessage' => 'This API is forbidden for international site cluster.',
+ ],
+ [
+ 'errorCode' => 'ConfigClusterCertificate.IncorrectState',
+ 'errorMessage' => 'Cluster initialized or certificates already configured.',
+ ],
+ [
+ 'errorCode' => 'ConfigClusterSubnet.InvalidVpcId',
+ 'errorMessage' => 'VPC Id invalid. Cluster VPC is the same as cluster master\'s VPC.',
+ ],
+ [
+ 'errorCode' => 'ConfigClusterSubnet.InvalidVSwitchId',
+ 'errorMessage' => 'VSwitch Id invalid. VSwitches should contain all current cluster vSwitches.',
+ ],
+ [
+ 'errorCode' => 'ConfigClusterSubnet.IncorrectState',
+ 'errorMessage' => 'Cluster not in NEW state, can not config cluster subnet.',
+ ],
+ [
+ 'errorCode' => 'ClusterName.Exist',
+ 'errorMessage' => 'Cluster name already exists, please use another name.',
+ ],
+ [
+ 'errorCode' => 'Whitelist.InstanceInCluster',
+ 'errorMessage' => 'Whitelist.InstanceInCluster',
+ ],
+ ],
+ [
+ [
+ 'errorCode' => 'Resource.NotFound',
+ 'errorMessage' => 'Resource not found.',
+ ],
+ ],
+ [
+ [
+ 'errorCode' => 'ClusterAPI.NotSupported',
+ 'errorMessage' => 'ClusterAPI not supported in this region.',
+ ],
+ ],
+ 409 => [
+ [
+ 'errorCode' => 'Conflict',
+ 'errorMessage' => 'Resource is being updated by a previous request. Current request is redundant.',
+ ],
+ [
+ 'errorCode' => 'Cluster.Conflict',
+ 'errorMessage' => 'The cluster is being updated by a previous request. Please try again later.',
+ ],
+ ],
+ 500 => [
+ [
+ 'errorCode' => 'ConfigWhitelistFailed.Error',
+ 'errorMessage' => 'config white list error',
+ ],
+ [
+ 'errorCode' => 'ActionFailed.Error',
+ 'errorMessage' => 'internal error, please try again',
+ ],
+ [
+ 'errorCode' => 'InternalError',
+ 'errorMessage' => 'The request processing has failed due to some unknown error.',
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"4C467B38-3910-447D-87BC-AC049166F216\\"\\n}","type":"json"}]',
+ 'title' => 'ConfigInstanceWhitelist',
+ 'description' => 'You can configure the IP address whitelist for HSMs that are not added to a cluster and are in the ACTIVE state.'."\n",
+ ],
+ 'ResumeInstance' => [
+ 'methods' => [
+ 'post',
+ ],
+ 'schemes' => [
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'update',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'InstanceId',
+ 'in' => 'formData',
+ 'schema' => [
+ 'description' => 'The ID of the HSM.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'hsm-cn-vj30bil8****',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'BaseResult',
+ 'description' => 'BaseResult'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '4C467B38-3910-447D-87BC-AC049166F216',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'SwitchMaster.InstanceInvalid',
+ 'errorMessage' => 'Instance not in the cluster.',
+ ],
+ [
+ 'errorCode' => 'LeaveCluster.MasterLast',
+ 'errorMessage' => 'Master instance can not leave a cluster until all other instances are left.',
+ ],
+ [
+ 'errorCode' => 'Certificate.ChainInvalid',
+ 'errorMessage' => 'Certificate chain invalid. Please make sure issuer certificate is the trust anchor and cluster certificate is signed by issuer certificate.',
+ ],
+ [
+ 'errorCode' => 'Certificate.FormatInvalid',
+ 'errorMessage' => 'Certificate format invalid. Cluster/Issuer certificate must be in PEM format.',
+ ],
+ [
+ 'errorCode' => 'ConfigClusterSubnet.DuplicateZone',
+ 'errorMessage' => 'VSwitches should not contain duplicate zones.',
+ ],
+ [
+ 'errorCode' => 'InvalidApiParam.Error',
+ 'errorMessage' => 'api param is invalid',
+ ],
+ [
+ 'errorCode' => 'InvalidClusterName',
+ 'errorMessage' => 'Invalid parameter clusterName.',
+ ],
+ [
+ 'errorCode' => 'InvalidPageSize',
+ 'errorMessage' => 'Invalid parameter pageSize.',
+ ],
+ [
+ 'errorCode' => 'InvalidCurrentPage',
+ 'errorMessage' => 'Invalid parameter currentPage.',
+ ],
+ [
+ 'errorCode' => 'InvalidRegionId',
+ 'errorMessage' => 'Invalid parameter regionId.',
+ ],
+ [
+ 'errorCode' => 'InvalidVSwitch',
+ 'errorMessage' => 'Invalid parameter vSwitch.',
+ ],
+ [
+ 'errorCode' => 'InvalidVpc',
+ 'errorMessage' => 'Invalid parameter vpcId.',
+ ],
+ [
+ 'errorCode' => 'InvalidIp',
+ 'errorMessage' => 'Invalid parameter IP.',
+ ],
+ [
+ 'errorCode' => 'InvalidAliuid',
+ 'errorMessage' => 'Invalid parameter aliuid.',
+ ],
+ [
+ 'errorCode' => 'InvalidClusterId',
+ 'errorMessage' => 'Invalid parameter clusterId.',
+ ],
+ [
+ 'errorCode' => 'InvalidInstanceId',
+ 'errorMessage' => 'Invalid parameter instanceId.',
+ ],
+ [
+ 'errorCode' => 'InvalidBackupId',
+ 'errorMessage' => 'Invalid parameter backupId.',
+ ],
+ [
+ 'errorCode' => 'InvalidImageId',
+ 'errorMessage' => 'Invalid parameter imageId.',
+ ],
+ [
+ 'errorCode' => 'HsmInstanceNotExist.Error',
+ 'errorMessage' => 'hsm instance not exist',
+ ],
+ [
+ 'errorCode' => 'HSMIntanceNotActived.Error',
+ 'errorMessage' => 'hsm intance is not actived',
+ ],
+ [
+ 'errorCode' => 'WhiteListMaxCount.Error',
+ 'errorMessage' => 'whilte list is more than max count',
+ ],
+ [
+ 'errorCode' => 'ClusterIdIsNotExists.Error',
+ 'errorMessage' => 'cluster ID non-exists',
+ ],
+ [
+ 'errorCode' => 'InstanceListIsEmpty.Error',
+ 'errorMessage' => 'instance list is empty',
+ ],
+ [
+ 'errorCode' => 'InstanceIdIsEmpty.Error',
+ 'errorMessage' => 'instance id is empty',
+ ],
+ [
+ 'errorCode' => 'InstanceIsNotExistsInCluster.Error',
+ 'errorMessage' => 'cluster has no such instance',
+ ],
+ [
+ 'errorCode' => 'InstanceIsExistsInCluster.Error',
+ 'errorMessage' => 'instance already in the cluster',
+ ],
+ [
+ 'errorCode' => 'RegionNoEmpty.Error',
+ 'errorMessage' => 'region no. is empty',
+ ],
+ [
+ 'errorCode' => 'ClusterNameEmpty.Error',
+ 'errorMessage' => 'empty cluster name not allowed',
+ ],
+ [
+ 'errorCode' => 'ClusterNameIsExists.Error',
+ 'errorMessage' => 'the cluster name is already taken',
+ ],
+ [
+ 'errorCode' => 'IpNotValid.Error',
+ 'errorMessage' => 'ip not valid',
+ ],
+ [
+ 'errorCode' => 'ClusterIsEmpty.Error',
+ 'errorMessage' => 'cluster is empty',
+ ],
+ [
+ 'errorCode' => 'NoMasterFoundInCluster.Error',
+ 'errorMessage' => 'cluster has no master instance',
+ ],
+ [
+ 'errorCode' => 'HsmInstanceIdNotFound.Error',
+ 'errorMessage' => 'no such instance',
+ ],
+ [
+ 'errorCode' => 'NoInstanceFoundInCluster.Error',
+ 'errorMessage' => 'cluster is empty',
+ ],
+ [
+ 'errorCode' => 'Whitelist.Invalid',
+ 'errorMessage' => 'Whitelist blocks not in CIDR format.',
+ ],
+ [
+ 'errorCode' => 'Whitelist.TooLong',
+ 'errorMessage' => 'Whitelist too long, exceeds 10 CIDR blocks.',
+ ],
+ ],
+ 403 => [
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Caller has no permission on the resource.',
+ ],
+ [
+ 'errorCode' => 'InstanceNotPaused',
+ 'errorMessage' => 'Please pause the instance before reset.',
+ ],
+ ],
+ [
+ [
+ 'errorCode' => 'Resource.NotFound',
+ 'errorMessage' => 'Resource not found.',
+ ],
+ ],
+ [
+ [
+ 'errorCode' => 'ClusterAPI.NotSupported',
+ 'errorMessage' => 'ClusterAPI not supported in this region.',
+ ],
+ ],
+ 409 => [
+ [
+ 'errorCode' => 'SwitchMaster.IncorrectState',
+ 'errorMessage' => 'Cluster not initialized, please initialize the cluster first.',
+ ],
+ [
+ 'errorCode' => 'Cluster.Conflict',
+ 'errorMessage' => 'The cluster is being updated by a previous request. Please try again later.',
+ ],
+ [
+ 'errorCode' => 'SyncCluster.IncorrectState',
+ 'errorMessage' => 'Cluster not initialized, please initialize the cluster first.',
+ ],
+ [
+ 'errorCode' => 'LeaveCluster.InstanceInvalid',
+ 'errorMessage' => 'The instance is not in the cluster.',
+ ],
+ [
+ 'errorCode' => 'DeleteCluster.IncorrectState',
+ 'errorMessage' => 'Cluster not empty, please remove all instances first.',
+ ],
+ [
+ 'errorCode' => 'JoinCluster.InstanceVSwitchNotInCluster',
+ 'errorMessage' => 'Instance\'s vSwitch is not in cluster config, please change instance\'s vSwitch first.',
+ ],
+ [
+ 'errorCode' => 'JoinCluster.InstanceInitialized',
+ 'errorMessage' => 'Initialized instance can not join a cluster.',
+ ],
+ [
+ 'errorCode' => 'JoinCluster.IncorrectState',
+ 'errorMessage' => 'Cluster not initialized, please initialize the cluster first.',
+ ],
+ [
+ 'errorCode' => 'InitializeCluster.InstanceNotInitialized',
+ 'errorMessage' => 'Cluster master instance not initialized, please initialize cluster master instance first.',
+ ],
+ [
+ 'errorCode' => 'InitializeCluster.IncorrectConfig',
+ 'errorMessage' => 'Cluster subnet not configured, please config cluster subnet first.',
+ ],
+ [
+ 'errorCode' => 'InitializeCluster.IncorrectState',
+ 'errorMessage' => 'Cluster initialized, do not re-initialize.',
+ ],
+ [
+ 'errorCode' => 'Cluster.CN.ActionForbidden',
+ 'errorMessage' => 'This API is forbidden for non-international site cluster.',
+ ],
+ [
+ 'errorCode' => 'Cluster.INTL.ActionForbidden',
+ 'errorMessage' => 'This API is forbidden for international site cluster.',
+ ],
+ [
+ 'errorCode' => 'ConfigClusterCertificate.IncorrectState',
+ 'errorMessage' => 'Cluster initialized or certificates already configured.',
+ ],
+ [
+ 'errorCode' => 'ConfigClusterSubnet.InvalidVpcId',
+ 'errorMessage' => 'VPC Id invalid. Cluster VPC is the same as cluster master\'s VPC.',
+ ],
+ [
+ 'errorCode' => 'ConfigClusterSubnet.InvalidVSwitchId',
+ 'errorMessage' => 'VSwitch Id invalid. VSwitches should contain all current cluster vSwitches.',
+ ],
+ [
+ 'errorCode' => 'ConfigClusterSubnet.IncorrectState',
+ 'errorMessage' => 'Cluster not in NEW state, can not config cluster subnet.',
+ ],
+ [
+ 'errorCode' => 'ClusterName.Exist',
+ 'errorMessage' => 'Cluster name already exists, please use another name.',
+ ],
+ [
+ 'errorCode' => 'Conflict',
+ 'errorMessage' => 'Resource is being updated by a previous request. Current request is redundant.',
+ ],
+ [
+ 'errorCode' => 'ConfigIp.IncorrectState',
+ 'errorMessage' => 'Instance not in pending or active state, can not config IP address.',
+ ],
+ ],
+ 500 => [
+ [
+ 'errorCode' => 'ConfigWhitelistFailed.Error',
+ 'errorMessage' => 'config white list error',
+ ],
+ [
+ 'errorCode' => 'ActionFailed.Error',
+ 'errorMessage' => 'internal error, please try again',
+ ],
+ [
+ 'errorCode' => 'InternalError',
+ 'errorMessage' => 'The request processing has failed due to some unknown error.',
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"4C467B38-3910-447D-87BC-AC049166F216\\"\\n}","type":"json"}]',
+ 'title' => 'ResumeInstance',
+ 'summary' => 'Resumes a disabled hardware security module (HSM).',
+ ],
+ 'GetInstance' => [
+ 'summary' => 'Queries information about a specified hardware security module (HSM).',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '209071',
+ 'abilityTreeNodes' => [
+ 'FEATUREhsmV7VE3Y',
+ 'FEATUREhsmUNBCOF',
+ 'FEATUREhsm01FLNB',
+ 'FEATUREhsmGIFYCG',
+ 'FEATUREhsmLBBV5W',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'InstanceId',
+ 'in' => 'formData',
+ 'schema' => [
+ 'description' => 'The ID of the HSM.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'hsm-cn-vj30bil****',
+ 'title' => '密码机实例ID。',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'PlainResult<OpenApiGetInstanceResponse>',
+ 'description' => 'PlainResult'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '4C467B38-3910-447D-87BC-AC049166F216',
+ 'title' => '本次调用请求的ID,是由阿里云为该请求生成的唯一标识符,可用于排查和定位问题。',
+ ],
+ 'Instance' => [
+ 'description' => 'The information about the HSM.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'InstanceId' => [
+ 'title' => '实例基础信息',
+ 'description' => 'The ID of the HSM.'."\n",
+ 'type' => 'string',
+ 'example' => 'hsm-cn-g4t3jwsc****',
+ ],
+ 'Remark' => [
+ 'description' => 'The description of the HSM.'."\n",
+ 'type' => 'string',
+ 'example' => 'hsmOnline',
+ 'title' => '备注信息。',
+ ],
+ 'RegionId' => [
+ 'description' => 'The ID of the region.'."\n",
+ 'type' => 'string',
+ 'example' => 'cn-hangzhou',
+ 'title' => '地域ID。',
+ ],
+ 'ZoneId' => [
+ 'description' => 'The ID of the zone.'."\n",
+ 'type' => 'string',
+ 'example' => 'cn-hangzhou-b',
+ 'title' => '可用区ID。',
+ ],
+ 'Vendor' => [
+ 'title' => '硬件信息',
+ 'description' => 'The information about the vendor.'."\n",
+ 'type' => 'string',
+ 'example' => 'jnta',
+ ],
+ 'DeviceType' => [
+ 'description' => 'The type of the device.'."\n",
+ 'type' => 'string',
+ 'example' => 'jnta.SJJ1528-G',
+ 'title' => '设备类型。',
+ ],
+ 'PqcEnabled' => [
+ 'title' => '实例是否启用PQC功能',
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '1',
+ 'enum' => [
+ '1',
+ '0',
+ ],
+ ],
+ 'TpsEnabled' => [
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'enum' => [
+ '0',
+ '1',
+ ],
+ ],
+ 'TenantIsolationType' => [
+ 'title' => '密码机硬件隔离类型,枚举值"vsm"虚拟密码机,"hostedHsm"托管硬件密码机',
+ 'description' => 'The type of HSMs that is classified based on resource isolation. Valid values: '."\n"
+ .'- vsm: Virtual security modules (VSMs)'."\n"
+ .'- hostedHsm: Dedicated HSMs.',
+ 'type' => 'string',
+ 'example' => 'vsm',
+ ],
+ 'OrderId' => [
+ 'title' => '售卖信息',
+ 'description' => 'The ID of the order.'."\n",
+ 'type' => 'string',
+ 'example' => '23576634952****',
+ ],
+ 'IsTrial' => [
+ 'description' => 'Indicates whether the HSM is for trial use. Valid values:'."\n"
+ ."\n"
+ .'* true'."\n"
+ .'* false'."\n",
+ 'type' => 'boolean',
+ 'example' => 'false',
+ 'title' => '是否试用。'."\n"
+ ."\n"
+ .'- true:是'."\n"
+ ."\n"
+ .'- false:否',
+ ],
+ 'VpcId' => [
+ 'title' => '网络配置',
+ 'description' => 'The ID of the virtual private cloud (VPC) to which the HSM belongs.'."\n",
+ 'type' => 'string',
+ 'example' => 'vpc-uf69i66j9kmoko52p****',
+ ],
+ 'VSwitchId' => [
+ 'description' => 'The ID of the vSwitch that is configured for the HSM.'."\n",
+ 'type' => 'string',
+ 'example' => 'vsw-bp1mvfs31ltt0wyhf****',
+ 'title' => '密码机实例配置的交换机ID。',
+ ],
+ 'Ip' => [
+ 'description' => 'The IP address of the HSM in the VPC.'."\n",
+ 'type' => 'string',
+ 'example' => '10.192.XX.XX',
+ 'title' => '密码机实例在VPC网络中的IP地址。',
+ ],
+ 'Whitelist' => [
+ 'description' => 'The IP addresses in the whitelist.'."\n",
+ 'type' => 'string',
+ 'example' => '18.68.XX.XX',
+ 'title' => '白名单IP列表。',
+ ],
+ 'CreateTime' => [
+ 'title' => '时间信息',
+ 'description' => 'The time when the HSM was created.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int64',
+ 'example' => '1699515963000',
+ ],
+ 'ExpireTime' => [
+ 'description' => 'The time when the HSM expired.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int64',
+ 'example' => '1699496389720',
+ 'title' => '实例过期时间。',
+ ],
+ 'ClusterId' => [
+ 'title' => '集群信息',
+ 'description' => 'The ID of the cluster to which the HSM belongs.'."\n",
+ 'type' => 'string',
+ 'example' => 'cluster-w3G9vOJI2****',
+ ],
+ 'ClusterName' => [
+ 'description' => 'The name of the cluster.'."\n",
+ 'type' => 'string',
+ 'example' => 'cluster_online',
+ 'title' => '集群名称。',
+ ],
+ 'Master' => [
+ 'description' => 'Indicates whether the HSM is a master HSM. Valid values:'."\n"
+ ."\n"
+ .'* true'."\n"
+ .'* false'."\n",
+ 'type' => 'boolean',
+ 'example' => 'true',
+ 'title' => '是否为主密码机。 '."\n"
+ ."\n"
+ .'- true:主密码机'."\n"
+ ."\n"
+ .' - false:子密码机',
+ ],
+ 'Status' => [
+ 'title' => '数据状态',
+ 'description' => 'The status of the HSM. Valid values:'."\n"
+ ."\n"
+ .'* PENDING: The HSM is disabled.'."\n"
+ .'* ACTIVE: The HSM is enabled.'."\n"
+ .'* EXPIRED: The HSM expired.'."\n"
+ .'* INVALID: The HSM is invalid.'."\n"
+ .'* FAILURE: The HSM failed to be created.'."\n"
+ .'* RESET: The HSM is being reset.'."\n"
+ .'* PAUSED: The HSM is paused.'."\n"
+ .'* MODIFYING: The HSM is being modified.'."\n",
+ 'type' => 'string',
+ 'example' => 'EXPIRED',
+ ],
+ 'Certification' => [
+ 'title' => '密码机资质认证',
+ 'type' => 'string',
+ 'example' => 'GM/T0028_LEVEL_2',
+ ],
+ 'CertificationUrl' => [
+ 'type' => 'string',
+ ],
+ ],
+ 'title' => '实例信息。',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'SwitchMaster.InstanceInvalid',
+ 'errorMessage' => 'Instance not in the cluster.',
+ ],
+ [
+ 'errorCode' => 'LeaveCluster.MasterLast',
+ 'errorMessage' => 'Master instance can not leave a cluster until all other instances are left.',
+ ],
+ [
+ 'errorCode' => 'Certificate.ChainInvalid',
+ 'errorMessage' => 'Certificate chain invalid. Please make sure issuer certificate is the trust anchor and cluster certificate is signed by issuer certificate.',
+ ],
+ [
+ 'errorCode' => 'Certificate.FormatInvalid',
+ 'errorMessage' => 'Certificate format invalid. Cluster/Issuer certificate must be in PEM format.',
+ ],
+ [
+ 'errorCode' => 'ConfigClusterSubnet.DuplicateZone',
+ 'errorMessage' => 'VSwitches should not contain duplicate zones.',
+ ],
+ [
+ 'errorCode' => 'InvalidApiParam.Error',
+ 'errorMessage' => 'api param is invalid',
+ ],
+ [
+ 'errorCode' => 'InvalidClusterName',
+ 'errorMessage' => 'Invalid parameter clusterName.',
+ ],
+ [
+ 'errorCode' => 'InvalidPageSize',
+ 'errorMessage' => 'Invalid parameter pageSize.',
+ ],
+ [
+ 'errorCode' => 'InvalidCurrentPage',
+ 'errorMessage' => 'Invalid parameter currentPage.',
+ ],
+ [
+ 'errorCode' => 'InvalidRegionId',
+ 'errorMessage' => 'Invalid parameter regionId.',
+ ],
+ [
+ 'errorCode' => 'InvalidVSwitch',
+ 'errorMessage' => 'Invalid parameter vSwitch.',
+ ],
+ [
+ 'errorCode' => 'InvalidVpc',
+ 'errorMessage' => 'Invalid parameter vpcId.',
+ ],
+ [
+ 'errorCode' => 'InvalidIp',
+ 'errorMessage' => 'Invalid parameter IP.',
+ ],
+ [
+ 'errorCode' => 'InvalidAliuid',
+ 'errorMessage' => 'Invalid parameter aliuid.',
+ ],
+ [
+ 'errorCode' => 'InvalidClusterId',
+ 'errorMessage' => 'Invalid parameter clusterId.',
+ ],
+ [
+ 'errorCode' => 'InvalidInstanceId',
+ 'errorMessage' => 'Invalid parameter instanceId.',
+ ],
+ [
+ 'errorCode' => 'InvalidBackupId',
+ 'errorMessage' => 'Invalid parameter backupId.',
+ ],
+ [
+ 'errorCode' => 'InvalidImageId',
+ 'errorMessage' => 'Invalid parameter imageId.',
+ ],
+ [
+ 'errorCode' => 'HsmInstanceNotExist.Error',
+ 'errorMessage' => 'hsm instance not exist',
+ ],
+ [
+ 'errorCode' => 'HSMIntanceNotActived.Error',
+ 'errorMessage' => 'hsm intance is not actived',
+ ],
+ [
+ 'errorCode' => 'WhiteListMaxCount.Error',
+ 'errorMessage' => 'whilte list is more than max count',
+ ],
+ [
+ 'errorCode' => 'ClusterIdIsNotExists.Error',
+ 'errorMessage' => 'cluster ID non-exists',
+ ],
+ [
+ 'errorCode' => 'InstanceListIsEmpty.Error',
+ 'errorMessage' => 'instance list is empty',
+ ],
+ [
+ 'errorCode' => 'InstanceIdIsEmpty.Error',
+ 'errorMessage' => 'instance id is empty',
+ ],
+ [
+ 'errorCode' => 'InstanceIsNotExistsInCluster.Error',
+ 'errorMessage' => 'cluster has no such instance',
+ ],
+ [
+ 'errorCode' => 'InstanceIsExistsInCluster.Error',
+ 'errorMessage' => 'instance already in the cluster',
+ ],
+ [
+ 'errorCode' => 'RegionNoEmpty.Error',
+ 'errorMessage' => 'region no. is empty',
+ ],
+ [
+ 'errorCode' => 'ClusterNameEmpty.Error',
+ 'errorMessage' => 'empty cluster name not allowed',
+ ],
+ [
+ 'errorCode' => 'ClusterNameIsExists.Error',
+ 'errorMessage' => 'the cluster name is already taken',
+ ],
+ [
+ 'errorCode' => 'IpNotValid.Error',
+ 'errorMessage' => 'ip not valid',
+ ],
+ [
+ 'errorCode' => 'ClusterIsEmpty.Error',
+ 'errorMessage' => 'cluster is empty',
+ ],
+ [
+ 'errorCode' => 'NoMasterFoundInCluster.Error',
+ 'errorMessage' => 'cluster has no master instance',
+ ],
+ [
+ 'errorCode' => 'HsmInstanceIdNotFound.Error',
+ 'errorMessage' => 'no such instance',
+ ],
+ [
+ 'errorCode' => 'NoInstanceFoundInCluster.Error',
+ 'errorMessage' => 'cluster is empty',
+ ],
+ [
+ 'errorCode' => 'Whitelist.Invalid',
+ 'errorMessage' => 'Whitelist blocks not in CIDR format.',
+ ],
+ [
+ 'errorCode' => 'Whitelist.TooLong',
+ 'errorMessage' => 'Whitelist too long, exceeds 10 CIDR blocks.',
+ ],
+ ],
+ 403 => [
+ [
+ 'errorCode' => 'Forbidden.InstanceInCluster',
+ 'errorMessage' => 'This API is forbidden for instances in cluster.',
+ ],
+ [
+ 'errorCode' => 'JoinCluster.InstanceIncorrectState',
+ 'errorMessage' => 'Instance not in Active/Pending state.',
+ ],
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Caller has no permission on the resource.',
+ ],
+ [
+ 'errorCode' => 'InstanceNotPaused',
+ 'errorMessage' => 'Please pause the instance before reset.',
+ ],
+ [
+ 'errorCode' => 'InstanceNotActive',
+ 'errorMessage' => 'Instance is not active.',
+ ],
+ [
+ 'errorCode' => 'ConfigIp.IncorrectState',
+ 'errorMessage' => 'Instance not in pending or active state, can not config IP address.',
+ ],
+ [
+ 'errorCode' => 'SwitchMaster.IncorrectState',
+ 'errorMessage' => 'Cluster not initialized, please initialize the cluster first.',
+ ],
+ [
+ 'errorCode' => 'SyncCluster.IncorrectState',
+ 'errorMessage' => 'Cluster not initialized, please initialize the cluster first.',
+ ],
+ [
+ 'errorCode' => 'LeaveCluster.InstanceInvalid',
+ 'errorMessage' => 'The instance is not in the cluster.',
+ ],
+ [
+ 'errorCode' => 'DeleteCluster.IncorrectState',
+ 'errorMessage' => 'Cluster not empty, please remove all instances first.',
+ ],
+ [
+ 'errorCode' => 'JoinCluster.InstanceVSwitchNotInCluster',
+ 'errorMessage' => 'Instance\'s vSwitch is not in cluster config, please change instance\'s vSwitch first.',
+ ],
+ [
+ 'errorCode' => 'JoinCluster.InstanceInitialized',
+ 'errorMessage' => 'Initialized instance can not join a cluster.',
+ ],
+ [
+ 'errorCode' => 'JoinCluster.IncorrectState',
+ 'errorMessage' => 'Cluster not initialized, please initialize the cluster first.',
+ ],
+ [
+ 'errorCode' => 'InitializeCluster.InstanceNotInitialized',
+ 'errorMessage' => 'Cluster master instance not initialized, please initialize cluster master instance first.',
+ ],
+ [
+ 'errorCode' => 'InitializeCluster.IncorrectConfig',
+ 'errorMessage' => 'Cluster subnet not configured, please config cluster subnet first.',
+ ],
+ [
+ 'errorCode' => 'InitializeCluster.IncorrectState',
+ 'errorMessage' => 'Cluster initialized, do not re-initialize.',
+ ],
+ [
+ 'errorCode' => 'Cluster.CN.ActionForbidden',
+ 'errorMessage' => 'This API is forbidden for non-international site cluster.',
+ ],
+ [
+ 'errorCode' => 'Cluster.INTL.ActionForbidden',
+ 'errorMessage' => 'This API is forbidden for international site cluster.',
+ ],
+ [
+ 'errorCode' => 'ConfigClusterCertificate.IncorrectState',
+ 'errorMessage' => 'Cluster initialized or certificates already configured.',
+ ],
+ [
+ 'errorCode' => 'ConfigClusterSubnet.InvalidVpcId',
+ 'errorMessage' => 'VPC Id invalid. Cluster VPC is the same as cluster master\'s VPC.',
+ ],
+ [
+ 'errorCode' => 'ConfigClusterSubnet.InvalidVSwitchId',
+ 'errorMessage' => 'VSwitch Id invalid. VSwitches should contain all current cluster vSwitches.',
+ ],
+ [
+ 'errorCode' => 'ConfigClusterSubnet.IncorrectState',
+ 'errorMessage' => 'Cluster not in NEW state, can not config cluster subnet.',
+ ],
+ [
+ 'errorCode' => 'ClusterName.Exist',
+ 'errorMessage' => 'Cluster name already exists, please use another name.',
+ ],
+ ],
+ [
+ [
+ 'errorCode' => 'Resource.NotFound',
+ 'errorMessage' => 'Resource not found.',
+ ],
+ ],
+ [
+ [
+ 'errorCode' => 'ClusterAPI.NotSupported',
+ 'errorMessage' => 'ClusterAPI not supported in this region.',
+ ],
+ ],
+ 409 => [
+ [
+ 'errorCode' => 'Conflict.InstanceModifying',
+ 'errorMessage' => 'Instance is being modified by a previous request. Please try again later.',
+ ],
+ [
+ 'errorCode' => 'Conflict',
+ 'errorMessage' => 'Resource is being updated by a previous request. Current request is redundant.',
+ ],
+ [
+ 'errorCode' => 'Cluster.Conflict',
+ 'errorMessage' => 'The cluster is being updated by a previous request. Please try again later.',
+ ],
+ ],
+ 500 => [
+ [
+ 'errorCode' => 'ConfigWhitelistFailed.Error',
+ 'errorMessage' => 'config white list error',
+ ],
+ [
+ 'errorCode' => 'ActionFailed.Error',
+ 'errorMessage' => 'internal error, please try again',
+ ],
+ [
+ 'errorCode' => 'InternalError',
+ 'errorMessage' => 'The request processing has failed due to some unknown error.',
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ 'eventInfo' => [
+ 'enable' => false,
+ 'eventNames' => [],
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"4C467B38-3910-447D-87BC-AC049166F216\\",\\n \\"Instance\\": {\\n \\"InstanceId\\": \\"hsm-cn-g4t3jwsc****\\",\\n \\"Remark\\": \\"hsmOnline\\",\\n \\"RegionId\\": \\"cn-hangzhou\\",\\n \\"ZoneId\\": \\"cn-hangzhou-b\\",\\n \\"Vendor\\": \\"jnta\\",\\n \\"DeviceType\\": \\"jnta.SJJ1528-G\\",\\n \\"PqcEnabled\\": 1,\\n \\"TpsEnabled\\": 1,\\n \\"TenantIsolationType\\": \\"hostedHsm\\",\\n \\"OrderId\\": \\"23576634952****\\",\\n \\"IsTrial\\": false,\\n \\"VpcId\\": \\"vpc-uf69i66j9kmoko52p****\\",\\n \\"VSwitchId\\": \\"vsw-bp1mvfs31ltt0wyhf****\\",\\n \\"Ip\\": \\"10.192.XX.XX\\",\\n \\"Whitelist\\": \\"18.68.XX.XX\\",\\n \\"CreateTime\\": 1699515963000,\\n \\"ExpireTime\\": 1699496389720,\\n \\"ClusterId\\": \\"cluster-w3G9vOJI2****\\",\\n \\"ClusterName\\": \\"cluster_online\\",\\n \\"Master\\": true,\\n \\"Status\\": \\"EXPIRED\\",\\n \\"Certification\\": \\"GM/T0028_LEVEL_2\\",\\n \\"CertificationUrl\\": \\"https://xxxxxx\\"\\n }\\n}","type":"json"}]',
+ 'title' => 'GetInstance',
+ ],
+ 'PauseInstance' => [
+ 'methods' => [
+ 'post',
+ ],
+ 'schemes' => [
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'update',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'InstanceId',
+ 'in' => 'formData',
+ 'schema' => [
+ 'description' => 'The ID of the HSM.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'hsm-cn-vj30bil8****',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'BaseResult',
+ 'description' => 'BaseResult'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '4C467B38-3910-447D-87BC-AC049366F216',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'SwitchMaster.InstanceInvalid',
+ 'errorMessage' => 'Instance not in the cluster.',
+ ],
+ [
+ 'errorCode' => 'LeaveCluster.MasterLast',
+ 'errorMessage' => 'Master instance can not leave a cluster until all other instances are left.',
+ ],
+ [
+ 'errorCode' => 'Certificate.ChainInvalid',
+ 'errorMessage' => 'Certificate chain invalid. Please make sure issuer certificate is the trust anchor and cluster certificate is signed by issuer certificate.',
+ ],
+ [
+ 'errorCode' => 'Certificate.FormatInvalid',
+ 'errorMessage' => 'Certificate format invalid. Cluster/Issuer certificate must be in PEM format.',
+ ],
+ [
+ 'errorCode' => 'ConfigClusterSubnet.DuplicateZone',
+ 'errorMessage' => 'VSwitches should not contain duplicate zones.',
+ ],
+ [
+ 'errorCode' => 'InvalidApiParam.Error',
+ 'errorMessage' => 'api param is invalid',
+ ],
+ [
+ 'errorCode' => 'InvalidClusterName',
+ 'errorMessage' => 'Invalid parameter clusterName.',
+ ],
+ [
+ 'errorCode' => 'InvalidPageSize',
+ 'errorMessage' => 'Invalid parameter pageSize.',
+ ],
+ [
+ 'errorCode' => 'InvalidCurrentPage',
+ 'errorMessage' => 'Invalid parameter currentPage.',
+ ],
+ [
+ 'errorCode' => 'InvalidRegionId',
+ 'errorMessage' => 'Invalid parameter regionId.',
+ ],
+ [
+ 'errorCode' => 'InvalidVSwitch',
+ 'errorMessage' => 'Invalid parameter vSwitch.',
+ ],
+ [
+ 'errorCode' => 'InvalidVpc',
+ 'errorMessage' => 'Invalid parameter vpcId.',
+ ],
+ [
+ 'errorCode' => 'InvalidIp',
+ 'errorMessage' => 'Invalid parameter IP.',
+ ],
+ [
+ 'errorCode' => 'InvalidAliuid',
+ 'errorMessage' => 'Invalid parameter aliuid.',
+ ],
+ [
+ 'errorCode' => 'InvalidClusterId',
+ 'errorMessage' => 'Invalid parameter clusterId.',
+ ],
+ [
+ 'errorCode' => 'InvalidInstanceId',
+ 'errorMessage' => 'Invalid parameter instanceId.',
+ ],
+ [
+ 'errorCode' => 'InvalidBackupId',
+ 'errorMessage' => 'Invalid parameter backupId.',
+ ],
+ [
+ 'errorCode' => 'InvalidImageId',
+ 'errorMessage' => 'Invalid parameter imageId.',
+ ],
+ [
+ 'errorCode' => 'HsmInstanceNotExist.Error',
+ 'errorMessage' => 'hsm instance not exist',
+ ],
+ [
+ 'errorCode' => 'HSMIntanceNotActived.Error',
+ 'errorMessage' => 'hsm intance is not actived',
+ ],
+ [
+ 'errorCode' => 'WhiteListMaxCount.Error',
+ 'errorMessage' => 'whilte list is more than max count',
+ ],
+ [
+ 'errorCode' => 'ClusterIdIsNotExists.Error',
+ 'errorMessage' => 'cluster ID non-exists',
+ ],
+ [
+ 'errorCode' => 'InstanceListIsEmpty.Error',
+ 'errorMessage' => 'instance list is empty',
+ ],
+ [
+ 'errorCode' => 'InstanceIdIsEmpty.Error',
+ 'errorMessage' => 'instance id is empty',
+ ],
+ [
+ 'errorCode' => 'InstanceIsNotExistsInCluster.Error',
+ 'errorMessage' => 'cluster has no such instance',
+ ],
+ [
+ 'errorCode' => 'InstanceIsExistsInCluster.Error',
+ 'errorMessage' => 'instance already in the cluster',
+ ],
+ [
+ 'errorCode' => 'RegionNoEmpty.Error',
+ 'errorMessage' => 'region no. is empty',
+ ],
+ [
+ 'errorCode' => 'ClusterNameEmpty.Error',
+ 'errorMessage' => 'empty cluster name not allowed',
+ ],
+ [
+ 'errorCode' => 'ClusterNameIsExists.Error',
+ 'errorMessage' => 'the cluster name is already taken',
+ ],
+ [
+ 'errorCode' => 'IpNotValid.Error',
+ 'errorMessage' => 'ip not valid',
+ ],
+ [
+ 'errorCode' => 'ClusterIsEmpty.Error',
+ 'errorMessage' => 'cluster is empty',
+ ],
+ [
+ 'errorCode' => 'NoMasterFoundInCluster.Error',
+ 'errorMessage' => 'cluster has no master instance',
+ ],
+ [
+ 'errorCode' => 'HsmInstanceIdNotFound.Error',
+ 'errorMessage' => 'no such instance',
+ ],
+ [
+ 'errorCode' => 'NoInstanceFoundInCluster.Error',
+ 'errorMessage' => 'cluster is empty',
+ ],
+ [
+ 'errorCode' => 'Whitelist.Invalid',
+ 'errorMessage' => 'Whitelist blocks not in CIDR format.',
+ ],
+ [
+ 'errorCode' => 'Whitelist.TooLong',
+ 'errorMessage' => 'Whitelist too long, exceeds 10 CIDR blocks.',
+ ],
+ ],
+ 403 => [
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Caller has no permission on the resource.',
+ ],
+ [
+ 'errorCode' => 'InstanceNotPaused',
+ 'errorMessage' => 'Please pause the instance before reset.',
+ ],
+ ],
+ [
+ [
+ 'errorCode' => 'Resource.NotFound',
+ 'errorMessage' => 'Resource not found.',
+ ],
+ ],
+ [
+ [
+ 'errorCode' => 'ClusterAPI.NotSupported',
+ 'errorMessage' => 'ClusterAPI not supported in this region.',
+ ],
+ ],
+ 409 => [
+ [
+ 'errorCode' => 'SwitchMaster.IncorrectState',
+ 'errorMessage' => 'Cluster not initialized, please initialize the cluster first.',
+ ],
+ [
+ 'errorCode' => 'Cluster.Conflict',
+ 'errorMessage' => 'The cluster is being updated by a previous request. Please try again later.',
+ ],
+ [
+ 'errorCode' => 'SyncCluster.IncorrectState',
+ 'errorMessage' => 'Cluster not initialized, please initialize the cluster first.',
+ ],
+ [
+ 'errorCode' => 'LeaveCluster.InstanceInvalid',
+ 'errorMessage' => 'The instance is not in the cluster.',
+ ],
+ [
+ 'errorCode' => 'DeleteCluster.IncorrectState',
+ 'errorMessage' => 'Cluster not empty, please remove all instances first.',
+ ],
+ [
+ 'errorCode' => 'JoinCluster.InstanceVSwitchNotInCluster',
+ 'errorMessage' => 'Instance\'s vSwitch is not in cluster config, please change instance\'s vSwitch first.',
+ ],
+ [
+ 'errorCode' => 'JoinCluster.InstanceInitialized',
+ 'errorMessage' => 'Initialized instance can not join a cluster.',
+ ],
+ [
+ 'errorCode' => 'JoinCluster.IncorrectState',
+ 'errorMessage' => 'Cluster not initialized, please initialize the cluster first.',
+ ],
+ [
+ 'errorCode' => 'InitializeCluster.InstanceNotInitialized',
+ 'errorMessage' => 'Cluster master instance not initialized, please initialize cluster master instance first.',
+ ],
+ [
+ 'errorCode' => 'InitializeCluster.IncorrectConfig',
+ 'errorMessage' => 'Cluster subnet not configured, please config cluster subnet first.',
+ ],
+ [
+ 'errorCode' => 'InitializeCluster.IncorrectState',
+ 'errorMessage' => 'Cluster initialized, do not re-initialize.',
+ ],
+ [
+ 'errorCode' => 'Cluster.CN.ActionForbidden',
+ 'errorMessage' => 'This API is forbidden for non-international site cluster.',
+ ],
+ [
+ 'errorCode' => 'Cluster.INTL.ActionForbidden',
+ 'errorMessage' => 'This API is forbidden for international site cluster.',
+ ],
+ [
+ 'errorCode' => 'ConfigClusterCertificate.IncorrectState',
+ 'errorMessage' => 'Cluster initialized or certificates already configured.',
+ ],
+ [
+ 'errorCode' => 'ConfigClusterSubnet.InvalidVpcId',
+ 'errorMessage' => 'VPC Id invalid. Cluster VPC is the same as cluster master\'s VPC.',
+ ],
+ [
+ 'errorCode' => 'ConfigClusterSubnet.InvalidVSwitchId',
+ 'errorMessage' => 'VSwitch Id invalid. VSwitches should contain all current cluster vSwitches.',
+ ],
+ [
+ 'errorCode' => 'ConfigClusterSubnet.IncorrectState',
+ 'errorMessage' => 'Cluster not in NEW state, can not config cluster subnet.',
+ ],
+ [
+ 'errorCode' => 'ClusterName.Exist',
+ 'errorMessage' => 'Cluster name already exists, please use another name.',
+ ],
+ [
+ 'errorCode' => 'Conflict',
+ 'errorMessage' => 'Resource is being updated by a previous request. Current request is redundant.',
+ ],
+ [
+ 'errorCode' => 'ConfigIp.IncorrectState',
+ 'errorMessage' => 'Instance not in pending or active state, can not config IP address.',
+ ],
+ ],
+ 500 => [
+ [
+ 'errorCode' => 'ConfigWhitelistFailed.Error',
+ 'errorMessage' => 'config white list error',
+ ],
+ [
+ 'errorCode' => 'ActionFailed.Error',
+ 'errorMessage' => 'internal error, please try again',
+ ],
+ [
+ 'errorCode' => 'InternalError',
+ 'errorMessage' => 'The request processing has failed due to some unknown error.',
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"4C467B38-3910-447D-87BC-AC049366F216\\"\\n}","type":"json"}]',
+ 'title' => 'PauseInstance',
+ 'summary' => 'Disables a hardware security module (HSM).',
+ 'description' => 'After you disable an HSM, the relevant service operations fail. Proceed with caution.'."\n",
+ ],
+ 'ListInstances' => [
+ 'summary' => 'Queries the hardware security modules (HSMs) that meet the query conditions.',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '209162',
+ 'abilityTreeNodes' => [
+ 'FEATUREhsmV7VE3Y',
+ 'FEATUREhsmUNBCOF',
+ 'FEATUREhsm01FLNB',
+ 'FEATUREhsmGIFYCG',
+ 'FEATUREhsmLBBV5W',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'RegionId',
+ 'in' => 'formData',
+ 'schema' => [
+ 'description' => 'The ID of the region.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'cn-hangzhou',
+ ],
+ ],
+ [
+ 'name' => 'CurrentPage',
+ 'in' => 'formData',
+ 'schema' => [
+ 'description' => 'The page number.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => true,
+ 'example' => '1',
+ ],
+ ],
+ [
+ 'name' => 'PageSize',
+ 'in' => 'formData',
+ 'schema' => [
+ 'description' => 'The number of entries per page. Valid values: 1 to 1000.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => true,
+ 'example' => '20',
+ ],
+ ],
+ [
+ 'name' => 'TenantIsolationType',
+ 'in' => 'formData',
+ 'schema' => [
+ 'title' => '密码机硬件隔离类型,枚举值"vsm"虚拟密码机,"hostedHsm"托管硬件密码机',
+ 'description' => 'The type of HSMs that is classified based on resource isolation. Valid values:'."\n"
+ .'- vsm: Virtual security modules (VSMs).'."\n"
+ .'- hostedHsm: Dedicated HSMs.',
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'vsm',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'OpenApiPageResult<OpenApiListInstancesResponse>',
+ 'description' => 'OpenApiPageResult'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'Total' => [
+ 'description' => 'The total number of entries returned.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '80',
+ ],
+ 'PageSize' => [
+ 'description' => 'The number of entries per page.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '20',
+ ],
+ 'CurrentPage' => [
+ 'description' => 'The page number.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '1',
+ ],
+ 'RequestId' => [
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '4C467B38-3910-447D-87BC-AC049166F216',
+ ],
+ 'Instances' => [
+ 'description' => 'The HSMs.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The information about the HSM.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'InstanceId' => [
+ 'description' => 'The ID of the HSM.'."\n",
+ 'type' => 'string',
+ 'example' => 'hsm-cn-vj30bil8****',
+ ],
+ 'Status' => [
+ 'description' => 'The HSM status. Valid values:'."\n"
+ ."\n"
+ .'* PENDING: The HSM is disabled.'."\n"
+ .'* ACTIVE: The HSM is enabled.'."\n"
+ .'* EXPIRED: The HSM expired.'."\n"
+ .'* INVALID: The HSM is invalid.'."\n"
+ .'* FAILURE: The HSM failed to be created.'."\n"
+ .'* RESET: The HSM is being reset.'."\n"
+ .'* PAUSED: The HSM is paused.'."\n"
+ .'* MODIFYING: The HSM is being modified.'."\n",
+ 'type' => 'string',
+ 'example' => 'ACTIVE',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'InvalidTenantIsolationType.Error',
+ 'errorMessage' => 'Invalid parameter tenantIsolationType. It must be: null, hostedHsm, or vsm.',
+ ],
+ [
+ 'errorCode' => 'InvalidApiParam.Error',
+ 'errorMessage' => 'api param is invalid',
+ ],
+ [
+ 'errorCode' => 'HsmInstanceNotExist.Error',
+ 'errorMessage' => 'hsm instance not exist',
+ ],
+ [
+ 'errorCode' => 'HSMIntanceNotActived.Error',
+ 'errorMessage' => 'hsm intance is not actived',
+ ],
+ [
+ 'errorCode' => 'WhiteListMaxCount.Error',
+ 'errorMessage' => 'whilte list is more than max count',
+ ],
+ [
+ 'errorCode' => 'ClusterIdIsNotExists.Error',
+ 'errorMessage' => 'cluster ID non-exists',
+ ],
+ [
+ 'errorCode' => 'InstanceListIsEmpty.Error',
+ 'errorMessage' => 'instance list is empty',
+ ],
+ [
+ 'errorCode' => 'InstanceIdIsEmpty.Error',
+ 'errorMessage' => 'instance id is empty',
+ ],
+ [
+ 'errorCode' => 'InstanceIsNotExistsInCluster.Error',
+ 'errorMessage' => 'cluster has no such instance',
+ ],
+ [
+ 'errorCode' => 'InstanceIsExistsInCluster.Error',
+ 'errorMessage' => 'instance already in the cluster',
+ ],
+ [
+ 'errorCode' => 'RegionNoEmpty.Error',
+ 'errorMessage' => 'region no. is empty',
+ ],
+ [
+ 'errorCode' => 'ClusterNameEmpty.Error',
+ 'errorMessage' => 'empty cluster name not allowed',
+ ],
+ [
+ 'errorCode' => 'ClusterNameIsExists.Error',
+ 'errorMessage' => 'the cluster name is already taken',
+ ],
+ [
+ 'errorCode' => 'IpNotValid.Error',
+ 'errorMessage' => 'ip not valid',
+ ],
+ [
+ 'errorCode' => 'ClusterIsEmpty.Error',
+ 'errorMessage' => 'cluster is empty',
+ ],
+ [
+ 'errorCode' => 'NoMasterFoundInCluster.Error',
+ 'errorMessage' => 'cluster has no master instance',
+ ],
+ [
+ 'errorCode' => 'HsmInstanceIdNotFound.Error',
+ 'errorMessage' => 'no such instance',
+ ],
+ [
+ 'errorCode' => 'NoInstanceFoundInCluster.Error',
+ 'errorMessage' => 'cluster is empty',
+ ],
+ [
+ 'errorCode' => 'Whitelist.Invalid',
+ 'errorMessage' => 'Whitelist blocks not in CIDR format.',
+ ],
+ [
+ 'errorCode' => 'Whitelist.TooLong',
+ 'errorMessage' => 'Whitelist too long, exceeds 10 CIDR blocks.',
+ ],
+ [
+ 'errorCode' => 'SwitchMaster.InstanceInvalid',
+ 'errorMessage' => 'Instance not in the cluster.',
+ ],
+ [
+ 'errorCode' => 'LeaveCluster.MasterLast',
+ 'errorMessage' => 'Master instance can not leave a cluster until all other instances are left.',
+ ],
+ [
+ 'errorCode' => 'Certificate.ChainInvalid',
+ 'errorMessage' => 'Certificate chain invalid. Please make sure issuer certificate is the trust anchor and cluster certificate is signed by issuer certificate.',
+ ],
+ [
+ 'errorCode' => 'Certificate.FormatInvalid',
+ 'errorMessage' => 'Certificate format invalid. Cluster/Issuer certificate must be in PEM format.',
+ ],
+ [
+ 'errorCode' => 'ConfigClusterSubnet.DuplicateZone',
+ 'errorMessage' => 'VSwitches should not contain duplicate zones.',
+ ],
+ [
+ 'errorCode' => 'InvalidClusterName',
+ 'errorMessage' => 'Invalid parameter clusterName.',
+ ],
+ [
+ 'errorCode' => 'InvalidPageSize',
+ 'errorMessage' => 'Invalid parameter pageSize.',
+ ],
+ [
+ 'errorCode' => 'InvalidCurrentPage',
+ 'errorMessage' => 'Invalid parameter currentPage.',
+ ],
+ [
+ 'errorCode' => 'InvalidRegionId',
+ 'errorMessage' => 'Invalid parameter regionId.',
+ ],
+ [
+ 'errorCode' => 'InvalidZoneId',
+ 'errorMessage' => 'Invalid parameter zoneId.',
+ ],
+ [
+ 'errorCode' => 'InvalidVSwitch',
+ 'errorMessage' => 'Invalid parameter vSwitch.',
+ ],
+ [
+ 'errorCode' => 'InvalidVpc',
+ 'errorMessage' => 'Invalid parameter vpcId.',
+ ],
+ [
+ 'errorCode' => 'InvalidVsmType',
+ 'errorMessage' => 'Invalid parameter vsmType.',
+ ],
+ [
+ 'errorCode' => 'InvalidIp',
+ 'errorMessage' => 'Invalid parameter IP.',
+ ],
+ [
+ 'errorCode' => 'InvalidAliuid',
+ 'errorMessage' => 'Invalid parameter aliuid.',
+ ],
+ [
+ 'errorCode' => 'InvalidClusterId',
+ 'errorMessage' => 'Invalid parameter clusterId.',
+ ],
+ [
+ 'errorCode' => 'InvalidInstanceId',
+ 'errorMessage' => 'Invalid parameter instanceId.',
+ ],
+ [
+ 'errorCode' => 'InvalidBackupId',
+ 'errorMessage' => 'Invalid parameter backupId.',
+ ],
+ [
+ 'errorCode' => 'InvalidImageId',
+ 'errorMessage' => 'Invalid parameter imageId.',
+ ],
+ [
+ 'errorCode' => 'HSMIntanceActived.Error',
+ 'errorMessage' => 'actived hsm instance can not release',
+ ],
+ [
+ 'errorCode' => 'ConfigIp.IpAlreadyInUse',
+ 'errorMessage' => 'Ip is in use, can not config IP address.',
+ ],
+ [
+ 'errorCode' => 'ConfigIp.VpcIpNotMatched',
+ 'errorMessage' => 'Vpc Ip must be in vpc network segment.',
+ ],
+ [
+ 'errorCode' => 'ConfigIp.IpOverFlow',
+ 'errorMessage' => 'Vpc ip last place can not be in [253-255].',
+ ],
+ [
+ 'errorCode' => 'CanRefund.InstanceIdEmpty',
+ 'errorMessage' => 'InstanceId is empty.',
+ ],
+ [
+ 'errorCode' => 'CanRefund.InstanceNotFound',
+ 'errorMessage' => 'Instance Not Exist.',
+ ],
+ [
+ 'errorCode' => 'CanRefund.InstanceAlreadyReleased',
+ 'errorMessage' => 'Instance already released.',
+ ],
+ [
+ 'errorCode' => 'CanRefund.AliUidEmpty',
+ 'errorMessage' => 'AliUid empty.',
+ ],
+ [
+ 'errorCode' => 'CanRefund.NoSupportRefundOnline',
+ 'errorMessage' => 'No support refund online.',
+ ],
+ ],
+ 403 => [
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Caller has no permission on the resource.',
+ ],
+ [
+ 'errorCode' => 'InstanceNotPaused',
+ 'errorMessage' => 'Please pause the instance before reset.',
+ ],
+ [
+ 'errorCode' => 'Trial.Forbidden',
+ 'errorMessage' => 'Current user is not allowed for trials!',
+ ],
+ [
+ 'errorCode' => 'Forbidden.InstanceInCluster',
+ 'errorMessage' => 'This API is forbidden for instances in cluster.',
+ ],
+ [
+ 'errorCode' => 'JoinCluster.InstanceIncorrectState',
+ 'errorMessage' => 'Instance not in Active/Pending state.',
+ ],
+ [
+ 'errorCode' => 'InstanceNotActive',
+ 'errorMessage' => 'Instance is not active.',
+ ],
+ [
+ 'errorCode' => 'ConfigIp.IncorrectState',
+ 'errorMessage' => 'Instance not in pending or active state, can not config IP address.',
+ ],
+ [
+ 'errorCode' => 'SwitchMaster.IncorrectState',
+ 'errorMessage' => 'Cluster not initialized, please initialize the cluster first.',
+ ],
+ [
+ 'errorCode' => 'SyncCluster.IncorrectState',
+ 'errorMessage' => 'Cluster not initialized, please initialize the cluster first.',
+ ],
+ [
+ 'errorCode' => 'LeaveCluster.InstanceInvalid',
+ 'errorMessage' => 'The instance is not in the cluster.',
+ ],
+ [
+ 'errorCode' => 'DeleteCluster.IncorrectState',
+ 'errorMessage' => 'Cluster not empty, please remove all instances first.',
+ ],
+ [
+ 'errorCode' => 'JoinCluster.InstanceVSwitchNotInCluster',
+ 'errorMessage' => 'Instance\'s vSwitch is not in cluster config, please change instance\'s vSwitch first.',
+ ],
+ [
+ 'errorCode' => 'JoinCluster.InstanceInitialized',
+ 'errorMessage' => 'Initialized instance can not join a cluster.',
+ ],
+ [
+ 'errorCode' => 'JoinCluster.IncorrectState',
+ 'errorMessage' => 'Cluster not initialized, please initialize the cluster first.',
+ ],
+ [
+ 'errorCode' => 'InitializeCluster.InstanceNotInitialized',
+ 'errorMessage' => 'Cluster master instance not initialized, please initialize cluster master instance first.',
+ ],
+ [
+ 'errorCode' => 'InitializeCluster.IncorrectConfig',
+ 'errorMessage' => 'Cluster subnet not configured, please config cluster subnet first.',
+ ],
+ [
+ 'errorCode' => 'InitializeCluster.IncorrectState',
+ 'errorMessage' => 'Cluster initialized, do not re-initialize.',
+ ],
+ [
+ 'errorCode' => 'Cluster.CN.ActionForbidden',
+ 'errorMessage' => 'This API is forbidden for non-international site cluster.',
+ ],
+ [
+ 'errorCode' => 'Cluster.INTL.ActionForbidden',
+ 'errorMessage' => 'This API is forbidden for international site cluster.',
+ ],
+ [
+ 'errorCode' => 'ConfigClusterCertificate.IncorrectState',
+ 'errorMessage' => 'Cluster initialized or certificates already configured.',
+ ],
+ [
+ 'errorCode' => 'ConfigClusterSubnet.InvalidVpcId',
+ 'errorMessage' => 'VPC Id invalid. Cluster VPC is the same as cluster master\'s VPC.',
+ ],
+ [
+ 'errorCode' => 'ConfigClusterSubnet.InvalidVSwitchId',
+ 'errorMessage' => 'VSwitch Id invalid. VSwitches should contain all current cluster vSwitches.',
+ ],
+ [
+ 'errorCode' => 'ConfigClusterSubnet.IncorrectState',
+ 'errorMessage' => 'Cluster not in NEW state, can not config cluster subnet.',
+ ],
+ [
+ 'errorCode' => 'ClusterName.Exist',
+ 'errorMessage' => 'Cluster name already exists, please use another name.',
+ ],
+ [
+ 'errorCode' => 'Image.ImageStatusInValid',
+ 'errorMessage' => 'Image status is invalid.',
+ ],
+ [
+ 'errorCode' => 'CopyImage.ImageAlreadyCopied',
+ 'errorMessage' => 'Image already copied, secondary copy is not supported.',
+ ],
+ [
+ 'errorCode' => 'Image.ActionForbiddenINTL',
+ 'errorMessage' => 'This API is forbidden for international site.',
+ ],
+ [
+ 'errorCode' => 'Image.ActionForbiddenCN',
+ 'errorMessage' => 'This API is forbidden for non-international site.',
+ ],
+ [
+ 'errorCode' => 'CopyImage.RegionInvalid',
+ 'errorMessage' => 'Source region or target region invalid.',
+ ],
+ [
+ 'errorCode' => 'Backup.ActionForbiddenINTL',
+ 'errorMessage' => 'This API is forbidden for international site.',
+ ],
+ [
+ 'errorCode' => 'CopyImage.TargetRegionImageAlreadyExists',
+ 'errorMessage' => 'Target region has the same digest image.',
+ ],
+ ],
+ [
+ [
+ 'errorCode' => 'Resource.NotFound',
+ 'errorMessage' => 'Resource not found.',
+ ],
+ ],
+ [
+ [
+ 'errorCode' => 'ClusterAPI.NotSupported',
+ 'errorMessage' => 'ClusterAPI not supported in this region.',
+ ],
+ ],
+ 409 => [
+ [
+ 'errorCode' => 'Conflict',
+ 'errorMessage' => 'Resource is being updated by a previous request. Current request is redundant.',
+ ],
+ [
+ 'errorCode' => 'ConfigIp.IncorrectState',
+ 'errorMessage' => 'Instance not in pending or active state, can not config IP address.',
+ ],
+ [
+ 'errorCode' => 'Cluster.Conflict',
+ 'errorMessage' => 'The cluster is being updated by a previous request. Please try again later.',
+ ],
+ ],
+ 500 => [
+ [
+ 'errorCode' => 'ConfigWhitelistFailed.Error',
+ 'errorMessage' => 'config white list error',
+ ],
+ [
+ 'errorCode' => 'ActionFailed.Error',
+ 'errorMessage' => 'internal error, please try again',
+ ],
+ [
+ 'errorCode' => 'InternalError',
+ 'errorMessage' => 'The request processing has failed due to some unknown error.',
+ ],
+ ],
+ ],
+ 'eventInfo' => [
+ 'enable' => false,
+ 'eventNames' => [],
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Total\\": 80,\\n \\"PageSize\\": 20,\\n \\"CurrentPage\\": 1,\\n \\"RequestId\\": \\"4C467B38-3910-447D-87BC-AC049166F216\\",\\n \\"Instances\\": [\\n {\\n \\"InstanceId\\": \\"hsm-cn-vj30bil8****\\",\\n \\"Status\\": \\"ACTIVE\\"\\n }\\n ]\\n}","type":"json"}]',
+ 'title' => 'ListInstances',
+ ],
+ 'ConfigInstanceRemark' => [
+ 'methods' => [
+ 'post',
+ ],
+ 'schemes' => [
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'update',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'InstanceId',
+ 'in' => 'formData',
+ 'schema' => [
+ 'description' => 'The ID of the HSM.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'hsm-cn-vj30bil8****',
+ ],
+ ],
+ [
+ 'name' => 'Remark',
+ 'in' => 'formData',
+ 'schema' => [
+ 'description' => 'The description of the HSM.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'hsmOnline',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'BaseResult',
+ 'description' => 'BaseResult'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '4C467B38-3910-447D-87BC-AC049166F216',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'SwitchMaster.InstanceInvalid',
+ 'errorMessage' => 'Instance not in the cluster.',
+ ],
+ [
+ 'errorCode' => 'LeaveCluster.MasterLast',
+ 'errorMessage' => 'Master instance can not leave a cluster until all other instances are left.',
+ ],
+ [
+ 'errorCode' => 'Certificate.ChainInvalid',
+ 'errorMessage' => 'Certificate chain invalid. Please make sure issuer certificate is the trust anchor and cluster certificate is signed by issuer certificate.',
+ ],
+ [
+ 'errorCode' => 'Certificate.FormatInvalid',
+ 'errorMessage' => 'Certificate format invalid. Cluster/Issuer certificate must be in PEM format.',
+ ],
+ [
+ 'errorCode' => 'ConfigClusterSubnet.DuplicateZone',
+ 'errorMessage' => 'VSwitches should not contain duplicate zones.',
+ ],
+ [
+ 'errorCode' => 'InvalidApiParam.Error',
+ 'errorMessage' => 'api param is invalid',
+ ],
+ [
+ 'errorCode' => 'InvalidClusterName',
+ 'errorMessage' => 'Invalid parameter clusterName.',
+ ],
+ [
+ 'errorCode' => 'InvalidPageSize',
+ 'errorMessage' => 'Invalid parameter pageSize.',
+ ],
+ [
+ 'errorCode' => 'InvalidCurrentPage',
+ 'errorMessage' => 'Invalid parameter currentPage.',
+ ],
+ [
+ 'errorCode' => 'InvalidRegionId',
+ 'errorMessage' => 'Invalid parameter regionId.',
+ ],
+ [
+ 'errorCode' => 'InvalidVSwitch',
+ 'errorMessage' => 'Invalid parameter vSwitch.',
+ ],
+ [
+ 'errorCode' => 'InvalidVpc',
+ 'errorMessage' => 'Invalid parameter vpcId.',
+ ],
+ [
+ 'errorCode' => 'InvalidIp',
+ 'errorMessage' => 'Invalid parameter IP.',
+ ],
+ [
+ 'errorCode' => 'InvalidAliuid',
+ 'errorMessage' => 'Invalid parameter aliuid.',
+ ],
+ [
+ 'errorCode' => 'InvalidClusterId',
+ 'errorMessage' => 'Invalid parameter clusterId.',
+ ],
+ [
+ 'errorCode' => 'InvalidInstanceId',
+ 'errorMessage' => 'Invalid parameter instanceId.',
+ ],
+ [
+ 'errorCode' => 'InvalidBackupId',
+ 'errorMessage' => 'Invalid parameter backupId.',
+ ],
+ [
+ 'errorCode' => 'InvalidImageId',
+ 'errorMessage' => 'Invalid parameter imageId.',
+ ],
+ [
+ 'errorCode' => 'HsmInstanceNotExist.Error',
+ 'errorMessage' => 'hsm instance not exist',
+ ],
+ [
+ 'errorCode' => 'HSMIntanceNotActived.Error',
+ 'errorMessage' => 'hsm intance is not actived',
+ ],
+ [
+ 'errorCode' => 'WhiteListMaxCount.Error',
+ 'errorMessage' => 'whilte list is more than max count',
+ ],
+ [
+ 'errorCode' => 'ClusterIdIsNotExists.Error',
+ 'errorMessage' => 'cluster ID non-exists',
+ ],
+ [
+ 'errorCode' => 'InstanceListIsEmpty.Error',
+ 'errorMessage' => 'instance list is empty',
+ ],
+ [
+ 'errorCode' => 'InstanceIdIsEmpty.Error',
+ 'errorMessage' => 'instance id is empty',
+ ],
+ [
+ 'errorCode' => 'InstanceIsNotExistsInCluster.Error',
+ 'errorMessage' => 'cluster has no such instance',
+ ],
+ [
+ 'errorCode' => 'InstanceIsExistsInCluster.Error',
+ 'errorMessage' => 'instance already in the cluster',
+ ],
+ [
+ 'errorCode' => 'RegionNoEmpty.Error',
+ 'errorMessage' => 'region no. is empty',
+ ],
+ [
+ 'errorCode' => 'ClusterNameEmpty.Error',
+ 'errorMessage' => 'empty cluster name not allowed',
+ ],
+ [
+ 'errorCode' => 'ClusterNameIsExists.Error',
+ 'errorMessage' => 'the cluster name is already taken',
+ ],
+ [
+ 'errorCode' => 'IpNotValid.Error',
+ 'errorMessage' => 'ip not valid',
+ ],
+ [
+ 'errorCode' => 'ClusterIsEmpty.Error',
+ 'errorMessage' => 'cluster is empty',
+ ],
+ [
+ 'errorCode' => 'NoMasterFoundInCluster.Error',
+ 'errorMessage' => 'cluster has no master instance',
+ ],
+ [
+ 'errorCode' => 'HsmInstanceIdNotFound.Error',
+ 'errorMessage' => 'no such instance',
+ ],
+ [
+ 'errorCode' => 'NoInstanceFoundInCluster.Error',
+ 'errorMessage' => 'cluster is empty',
+ ],
+ [
+ 'errorCode' => 'Whitelist.Invalid',
+ 'errorMessage' => 'Whitelist blocks not in CIDR format.',
+ ],
+ [
+ 'errorCode' => 'Whitelist.TooLong',
+ 'errorMessage' => 'Whitelist too long, exceeds 10 CIDR blocks.',
+ ],
+ ],
+ 403 => [
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'Caller has no permission on the resource.',
+ ],
+ [
+ 'errorCode' => 'InstanceNotPaused',
+ 'errorMessage' => 'Please pause the instance before reset.',
+ ],
+ ],
+ [
+ [
+ 'errorCode' => 'Resource.NotFound',
+ 'errorMessage' => 'Resource not found.',
+ ],
+ ],
+ [
+ [
+ 'errorCode' => 'ClusterAPI.NotSupported',
+ 'errorMessage' => 'ClusterAPI not supported in this region.',
+ ],
+ ],
+ 409 => [
+ [
+ 'errorCode' => 'SwitchMaster.IncorrectState',
+ 'errorMessage' => 'Cluster not initialized, please initialize the cluster first.',
+ ],
+ [
+ 'errorCode' => 'Cluster.Conflict',
+ 'errorMessage' => 'The cluster is being updated by a previous request. Please try again later.',
+ ],
+ [
+ 'errorCode' => 'SyncCluster.IncorrectState',
+ 'errorMessage' => 'Cluster not initialized, please initialize the cluster first.',
+ ],
+ [
+ 'errorCode' => 'LeaveCluster.InstanceInvalid',
+ 'errorMessage' => 'The instance is not in the cluster.',
+ ],
+ [
+ 'errorCode' => 'DeleteCluster.IncorrectState',
+ 'errorMessage' => 'Cluster not empty, please remove all instances first.',
+ ],
+ [
+ 'errorCode' => 'JoinCluster.InstanceVSwitchNotInCluster',
+ 'errorMessage' => 'Instance\'s vSwitch is not in cluster config, please change instance\'s vSwitch first.',
+ ],
+ [
+ 'errorCode' => 'JoinCluster.InstanceInitialized',
+ 'errorMessage' => 'Initialized instance can not join a cluster.',
+ ],
+ [
+ 'errorCode' => 'JoinCluster.IncorrectState',
+ 'errorMessage' => 'Cluster not initialized, please initialize the cluster first.',
+ ],
+ [
+ 'errorCode' => 'InitializeCluster.InstanceNotInitialized',
+ 'errorMessage' => 'Cluster master instance not initialized, please initialize cluster master instance first.',
+ ],
+ [
+ 'errorCode' => 'InitializeCluster.IncorrectConfig',
+ 'errorMessage' => 'Cluster subnet not configured, please config cluster subnet first.',
+ ],
+ [
+ 'errorCode' => 'InitializeCluster.IncorrectState',
+ 'errorMessage' => 'Cluster initialized, do not re-initialize.',
+ ],
+ [
+ 'errorCode' => 'Cluster.CN.ActionForbidden',
+ 'errorMessage' => 'This API is forbidden for non-international site cluster.',
+ ],
+ [
+ 'errorCode' => 'Cluster.INTL.ActionForbidden',
+ 'errorMessage' => 'This API is forbidden for international site cluster.',
+ ],
+ [
+ 'errorCode' => 'ConfigClusterCertificate.IncorrectState',
+ 'errorMessage' => 'Cluster initialized or certificates already configured.',
+ ],
+ [
+ 'errorCode' => 'ConfigClusterSubnet.InvalidVpcId',
+ 'errorMessage' => 'VPC Id invalid. Cluster VPC is the same as cluster master\'s VPC.',
+ ],
+ [
+ 'errorCode' => 'ConfigClusterSubnet.InvalidVSwitchId',
+ 'errorMessage' => 'VSwitch Id invalid. VSwitches should contain all current cluster vSwitches.',
+ ],
+ [
+ 'errorCode' => 'ConfigClusterSubnet.IncorrectState',
+ 'errorMessage' => 'Cluster not in NEW state, can not config cluster subnet.',
+ ],
+ [
+ 'errorCode' => 'ClusterName.Exist',
+ 'errorMessage' => 'Cluster name already exists, please use another name.',
+ ],
+ [
+ 'errorCode' => 'Conflict',
+ 'errorMessage' => 'Resource is being updated by a previous request. Current request is redundant.',
+ ],
+ [
+ 'errorCode' => 'ConfigIp.IncorrectState',
+ 'errorMessage' => 'Instance not in pending or active state, can not config IP address.',
+ ],
+ ],
+ 500 => [
+ [
+ 'errorCode' => 'ConfigWhitelistFailed.Error',
+ 'errorMessage' => 'config white list error',
+ ],
+ [
+ 'errorCode' => 'ActionFailed.Error',
+ 'errorMessage' => 'internal error, please try again',
+ ],
+ [
+ 'errorCode' => 'InternalError',
+ 'errorMessage' => 'The request processing has failed due to some unknown error.',
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"4C467B38-3910-447D-87BC-AC049166F216\\"\\n}","type":"json"}]',
+ 'title' => 'ConfigInstanceRemark',
+ 'summary' => 'Modifies the description of a hardware security module (HSM).',
+ ],
+ 'GetJob' => [
+ 'summary' => 'Queries the details of an asynchronous task.',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '201995',
+ 'abilityTreeNodes' => [
+ 'FEATUREhsm01FLNB',
+ 'FEATUREhsmV7VE3Y',
+ 'FEATUREhsmGIFYCG',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'JobId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the task.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'job-202401250936hze747fd7e0007005',
+ ],
+ ],
+ ],
+ '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' => '4C467B38-3910-447D-87BC-AC049166F216',
+ ],
+ 'Job' => [
+ 'description' => 'The details of the task.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'JobId' => [
+ 'description' => 'The ID of the task.'."\n",
+ 'type' => 'string',
+ 'example' => 'job-202401250936hze747fd7e0007005',
+ ],
+ 'Type' => [
+ 'description' => 'The operation type. Valid values:'."\n"
+ ."\n"
+ .'* create'."\n"
+ .'* cancel'."\n",
+ 'type' => 'string',
+ 'example' => 'create',
+ ],
+ 'Completed' => [
+ 'description' => 'Indicates whether the task is complete. Valid values:'."\n"
+ ."\n"
+ .'* true'."\n"
+ .'* false'."\n",
+ 'type' => 'boolean',
+ 'example' => 'true',
+ ],
+ 'Status' => [
+ 'description' => 'The task status. Valid values:'."\n"
+ ."\n"
+ .'* success'."\n"
+ .'* running'."\n"
+ .'* fail'."\n"
+ .'* cancel'."\n",
+ 'type' => 'string',
+ 'example' => 'fail',
+ ],
+ 'Response' => [
+ 'description' => 'The response returned after the task succeeds.'."\n",
+ 'type' => 'string',
+ 'example' => 'success',
+ ],
+ 'Error' => [
+ 'description' => 'The error message returned if the task fails.'."\n",
+ 'type' => 'string',
+ 'example' => 'OperationTimeout',
+ ],
+ 'Progress' => [
+ 'description' => 'The progress of the task. Unit: percent (%).'."\n",
+ 'type' => 'integer',
+ 'format' => 'int64',
+ 'example' => '95',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"4C467B38-3910-447D-87BC-AC049166F216\\",\\n \\"Job\\": {\\n \\"JobId\\": \\"job-202401250936hze747fd7e0007005\\",\\n \\"Type\\": \\"create\\",\\n \\"Completed\\": true,\\n \\"Status\\": \\"fail\\",\\n \\"Response\\": \\"success\\",\\n \\"Error\\": \\"OperationTimeout\\",\\n \\"Progress\\": 95\\n }\\n}","type":"json"}]',
+ 'title' => 'GetJob',
+ ],
+ 'MoveResourceGroup' => [
+ 'summary' => 'Moves a resource to a new resource group.',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'update',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeNodes' => [
+ 'FEATUREhsmV7VE3Y',
+ 'FEATUREhsm01FLNB',
+ 'FEATUREhsmGIFYCG',
+ 'FEATUREhsmLBBV5W',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'ResourceId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the hardware security module (HSM).'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'hsm-2ze0qae64mjuc0ni****',
+ ],
+ ],
+ [
+ 'name' => 'ResourceGroupId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the resource group.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'rg-aek2tsvbnfe****',
+ ],
+ ],
+ [
+ 'name' => 'ResourceType',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The type of the resource.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'instance',
+ ],
+ ],
+ [
+ 'name' => 'RegionId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the region.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'cn-hangzhou',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'description' => 'The data returned.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '4C467B38-3910-447D-87BC-AC049166F216',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'InvalidApiParam.Error',
+ 'errorMessage' => 'Parameter is invalid.',
+ ],
+ ],
+ 403 => [
+ [
+ 'errorCode' => 'NoPermission',
+ 'errorMessage' => 'caller has no permission.',
+ ],
+ ],
+ 500 => [
+ [
+ 'errorCode' => 'InternalError',
+ 'errorMessage' => 'The request processing has failed due to some unknown error.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"4C467B38-3910-447D-87BC-AC049166F216\\"\\n}","type":"json"}]',
+ 'title' => 'MoveResourceGroup',
+ ],
+ 'DescribeRegions' => [
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'systemTags' => [
+ 'operationType' => 'list',
+ 'abilityTreeCode' => '203661',
+ 'abilityTreeNodes' => [
+ 'FEATUREhsmV7VE3Y',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'AcceptLanguage',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The language of the content. Valid values:'."\n"
+ ."\n"
+ .'* zh: Chinese.'."\n"
+ .'* en: English.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'enumValueTitles' => [],
+ 'example' => 'en',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '4C467B38-3910-447D-87BC-AC049166F216',
+ ],
+ 'Regions' => [
+ 'description' => 'The regions.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The information about the region.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'LocalName' => [
+ 'description' => 'The name of the region.'."\n",
+ 'type' => 'string',
+ 'example' => 'Singapore',
+ ],
+ 'RegionId' => [
+ 'description' => 'The region ID.'."\n",
+ 'type' => 'string',
+ 'example' => 'ap-southeast-1',
+ ],
+ 'Zones' => [
+ 'description' => 'The zones.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The information about the zone.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'ZoneId' => [
+ 'description' => 'The zone ID.'."\n",
+ 'type' => 'string',
+ 'example' => 'ap-southeast-1a',
+ ],
+ 'LocalName' => [
+ 'description' => 'The name of the zone.'."\n",
+ 'type' => 'string',
+ 'example' => 'Singapore Zone A',
+ ],
+ 'Cluster' => [
+ 'description' => 'Indicates whether clusters are supported. Valid values:'."\n"
+ ."\n"
+ .'* yes'."\n"
+ .'* no'."\n",
+ 'type' => 'string',
+ 'example' => 'yes',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'InvalidApiParam.Error',
+ 'errorMessage' => 'api param is invalid',
+ ],
+ ],
+ 403 => [
+ [
+ 'errorCode' => 'NoPermission.Error',
+ 'errorMessage' => 'caller has no permission',
+ ],
+ ],
+ 500 => [
+ [
+ 'errorCode' => 'InternalError',
+ 'errorMessage' => 'The request processing has failed due to some unknown error.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"4C467B38-3910-447D-87BC-AC049166F216\\",\\n \\"Regions\\": [\\n {\\n \\"LocalName\\": \\"华东1(杭州)\\",\\n \\"RegionId\\": \\"cn-hangzhou\\",\\n \\"Zones\\": [\\n {\\n \\"ZoneId\\": \\"cn-hangzhou-a\\",\\n \\"LocalName\\": \\"杭州 可用区A\\",\\n \\"Cluster\\": \\"yes\\"\\n }\\n ]\\n }\\n ]\\n}","type":"json"}]',
+ 'title' => 'DescribeRegions',
+ 'summary' => 'Queries the regions that are supported by Cloud Hardware Security Module.',
+ ],
+ ],
+ 'endpoints' => [
+ [
+ 'regionId' => 'cn-beijing',
+ 'endpoint' => 'hsm.aliyuncs.com',
+ ],
+ [
+ 'regionId' => 'cn-hangzhou',
+ 'endpoint' => 'hsm.aliyuncs.com',
+ ],
+ [
+ 'regionId' => 'cn-shanghai',
+ 'endpoint' => 'hsm.aliyuncs.com',
+ ],
+ [
+ 'regionId' => 'cn-shenzhen',
+ 'endpoint' => 'hsm.aliyuncs.com',
+ ],
+ [
+ 'regionId' => 'cn-heyuan',
+ 'endpoint' => 'hsm.aliyuncs.com',
+ ],
+ [
+ 'regionId' => 'cn-chengdu',
+ 'endpoint' => 'hsm.aliyuncs.com',
+ ],
+ [
+ 'regionId' => 'cn-hongkong',
+ 'endpoint' => 'hsm.aliyuncs.com',
+ ],
+ [
+ 'regionId' => 'ap-southeast-1',
+ 'endpoint' => 'hsm.aliyuncs.com',
+ ],
+ [
+ 'regionId' => 'ap-southeast-3',
+ 'endpoint' => 'hsm.aliyuncs.com',
+ ],
+ [
+ 'regionId' => 'me-east-1',
+ 'endpoint' => 'hsm.aliyuncs.com',
+ ],
+ [
+ 'regionId' => 'cn-hangzhou-finance',
+ 'endpoint' => 'hsm.aliyuncs.com',
+ ],
+ [
+ 'regionId' => 'cn-shanghai-finance-1',
+ 'endpoint' => 'hsm.aliyuncs.com',
+ ],
+ [
+ 'regionId' => 'cn-shenzhen-finance-1',
+ 'endpoint' => 'hsm.aliyuncs.com',
+ ],
+ [
+ 'regionId' => 'me-central-1',
+ 'endpoint' => 'hsm.aliyuncs.com',
+ ],
+ ],
+];