diff options
Diffstat (limited to 'data/zh_cn/hsm/2023-11-13')
| -rw-r--r-- | data/zh_cn/hsm/2023-11-13/api-docs.php | 15104 |
1 files changed, 4703 insertions, 10401 deletions
diff --git a/data/zh_cn/hsm/2023-11-13/api-docs.php b/data/zh_cn/hsm/2023-11-13/api-docs.php index c7a0ca8..d4ecec3 100644 --- a/data/zh_cn/hsm/2023-11-13/api-docs.php +++ b/data/zh_cn/hsm/2023-11-13/api-docs.php @@ -1,95 +1,42 @@ <?php return [ 'version' => '1.0', - 'info' => [ - 'style' => 'RPC', - 'product' => 'hsm', - 'version' => '2023-11-13', - ], + 'info' => ['style' => 'RPC', 'product' => 'hsm', 'version' => '2023-11-13'], 'directories' => [ [ - 'id' => 263960, - 'title' => '审计日志', + 'children' => ['ConfigAuditLog', 'GetAuditLogStatus', 'InitializeAuditLog'], 'type' => 'directory', - 'children' => [ - 'ConfigAuditLog', - 'GetAuditLogStatus', - 'InitializeAuditLog', - ], + 'title' => '审计日志', + 'id' => 93818, ], [ - 'id' => 263964, - 'title' => '镜像', + 'children' => ['GetImage', 'ListImages', 'ConfigImageRemark', 'CopyImage', 'ExportImage'], 'type' => 'directory', - 'children' => [ - 'GetImage', - 'ListImages', - 'ConfigImageRemark', - 'CopyImage', - 'ExportImage', - ], + 'title' => '镜像', + 'id' => 20845, ], [ - 'id' => 263970, - 'title' => '备份', + 'children' => ['EnableBackup', 'GetBackup', 'ListBackups', 'ConfigBackupTask', 'ResetBackup', 'ConfigBackupRemark'], 'type' => 'directory', - 'children' => [ - 'EnableBackup', - 'GetBackup', - 'ListBackups', - 'ConfigBackupTask', - 'ResetBackup', - 'ConfigBackupRemark', - ], + 'title' => '备份', + 'id' => 93827, ], [ - 'id' => 263977, - 'title' => '集群', + 'children' => ['DeleteCluster', 'JoinCluster', 'ConfigClusterSubnet', 'SyncCluster', 'InitializeCluster', 'SwitchClusterMaster', 'ConfigClusterName', 'LeaveCluster', 'CreateCluster', 'ListClusters', 'ConfigClusterCertificate', 'GetCluster', 'ConfigClusterWhitelist', 'QuickDeployCluster', 'RotateClusterManagedCert', 'DownloadClusterManagedCert'], 'type' => 'directory', - 'children' => [ - 'DeleteCluster', - 'JoinCluster', - 'ConfigClusterSubnet', - 'SyncCluster', - 'InitializeCluster', - 'SwitchClusterMaster', - 'ConfigClusterName', - 'LeaveCluster', - 'CreateCluster', - 'ListClusters', - 'ConfigClusterCertificate', - 'GetCluster', - 'ConfigClusterWhitelist', - 'QuickDeployCluster', - 'RotateClusterManagedCert', - 'DownloadClusterManagedCert', - ], + 'title' => '集群', + 'id' => 20858, ], [ - 'id' => 263994, - 'title' => '实例', + 'children' => ['ConfigInstanceIpAddress', 'RestoreInstance', 'ResetInstance', 'QuickInitInstance', 'ConfigInstanceWhitelist', 'ResumeInstance', 'GetInstance', 'PauseInstance', 'ListInstances', 'ConfigInstanceRemark'], 'type' => 'directory', - 'children' => [ - 'ConfigInstanceIpAddress', - 'RestoreInstance', - 'ResetInstance', - 'QuickInitInstance', - 'ConfigInstanceWhitelist', - 'ResumeInstance', - 'GetInstance', - 'PauseInstance', - 'ListInstances', - 'ConfigInstanceRemark', - ], + 'title' => '实例', + 'id' => 20873, ], [ - 'id' => 264005, - 'title' => '其他', + 'children' => ['GetJob', 'MoveResourceGroup', 'DescribeRegions'], 'type' => 'directory', - 'children' => [ - 'GetJob', - 'MoveResourceGroup', - 'DescribeRegions', - ], + 'title' => '其他', + 'id' => 20884, ], ], 'components' => [ @@ -97,15 +44,8 @@ ], 'apis' => [ 'ConfigAuditLog' => [ - 'summary' => '开通或关闭审计日志、配置审计日志投递Bucket。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -117,30 +57,18 @@ 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'paid', - 'abilityTreeNodes' => [ - 'FEATUREhsmVF2KT5', - ], + 'abilityTreeNodes' => ['FEATUREhsmVF2KT5'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => true, 'example' => 'cn-hangzhou'], ], [ 'name' => 'AuditOssBucket', 'in' => 'query', - 'schema' => [ - 'description' => '审计日志投递Bucket。', - 'type' => 'string', - 'required' => false, - 'example' => 'hsm-log', - ], + 'schema' => ['description' => '审计日志投递Bucket。', 'type' => 'string', 'required' => false, 'example' => 'hsm-log'], ], [ 'name' => 'AuditAction', @@ -153,10 +81,7 @@ 'required' => true, 'enumValueTitles' => [], 'example' => 'enable', - 'enum' => [ - 'disable', - 'enable', - ], + 'enum' => ['disable', 'enable'], ], ], ], @@ -166,179 +91,251 @@ 'description' => '响应信息。', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '本次调用请求的ID,是由阿里云为该请求生成的唯一标识符,可用于排查和定位问题。', - 'type' => 'string', - 'example' => '42B118FB-16A6-56FB-B877-D58637EEC6AF', - ], + 'RequestId' => ['description' => '本次调用请求的ID,是由阿里云为该请求生成的唯一标识符,可用于排查和定位问题。', 'type' => 'string', 'example' => '42B118FB-16A6-56FB-B877-D58637EEC6AF'], ], ], ], ], 'errorCodes' => [ 403 => [ - [ - 'errorCode' => 'OSSPermissionDenied.Error', - 'errorMessage' => '获取OSS bucket权限失败,请检查对应OSS权限设置: %s', - ], + ['errorCode' => 'OSSPermissionDenied.Error', 'errorMessage' => '获取OSS bucket权限失败,请检查对应OSS权限设置: %s', 'description' => ''], ], 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'The request processing has failed due to some unknown error.', - ], + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to some unknown error.', 'description' => '未知错误导致请求处理失败。'], ], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"42B118FB-16A6-56FB-B877-D58637EEC6AF\\"\\n}","type":"json"}]', 'title' => '配置审计日志', + 'summary' => '开通或关闭审计日志、配置审计日志投递Bucket。', 'description' => '- Bucket所属地域需要和将要开通安全审计服务的地域相同。 '."\n" .'- 开启安全审计期间,请勿删除OSS Bucket,否则将会导致审计文件投递失败。'."\n" ."\n" .'- 目前安全审计服务,仅提供给中国内地密码机GVSM和EVSM使用。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], + ], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'yundun-hsm:ConfigAuditLog', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DataEncryptionService', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"42B118FB-16A6-56FB-B877-D58637EEC6AF\\"\\n}","type":"json"}]', ], - 'GetAuditLogStatus' => [ - 'summary' => '查询当前地域下审计日志开通状态。', - 'methods' => [ - 'get', - 'post', + 'ConfigBackupRemark' => [ + 'summary' => '配置备份的名称及备注信息。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ + [ + 'AK' => [], + ], ], - 'schemes' => [ - 'http', - 'https', + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '203655', + 'abilityTreeNodes' => ['FEATUREhsmQEGDGS'], ], + 'parameters' => [ + [ + 'name' => 'BackupId', + 'in' => 'query', + 'schema' => ['description' => '备份ID。', 'type' => 'string', 'required' => true, 'example' => 'backup-fdb897sdfg****'], + ], + [ + 'name' => 'Remark', + 'in' => 'query', + 'schema' => ['description' => '备份备注信息。', 'type' => 'string', 'required' => false, 'example' => 'Backup-Feb-9-test-1B'], + ], + [ + 'name' => 'Name', + 'in' => 'query', + 'schema' => ['description' => '备份名称。', 'type' => 'string', 'required' => false, 'example' => 'backup-test'], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => 'Schema of Response', + 'description' => '返回参数结构。', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['title' => 'Id of the request', 'description' => '本次调用请求的ID,是由阿里云为该请求生成的唯一标识符,可用于排查和定位问题。', 'type' => 'string', 'example' => '4C467B38-3910-447D-87BC-AC049166F216'], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'InvalidApiParam.Error', 'errorMessage' => 'api param is invalid', 'description' => ''], + ], + 403 => [ + ['errorCode' => 'NoPermission', 'errorMessage' => 'caller has no permission', 'description' => ''], + ], + 500 => [ + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to some unknown error.', 'description' => '未知错误导致请求处理失败。'], + ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '配置备份备注信息', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], + ], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'yundun-hsm:ConfigBackupRemark', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DataEncryptionService', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"4C467B38-3910-447D-87BC-AC049166F216\\"\\n}","type":"json"}]', + ], + 'ConfigBackupTask' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'write', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'get', + 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '203664', - 'abilityTreeNodes' => [ - 'FEATUREhsmVF2KT5', - ], + 'abilityTreeNodes' => ['FEATUREhsmV7VE3Y', 'FEATUREhsm01FLNB', 'FEATUREhsmGIFYCG', 'FEATUREhsmLBBV5W'], ], 'parameters' => [ [ - 'name' => 'RegionId', + 'name' => 'BackupId', + 'in' => 'query', + 'schema' => ['description' => '备份ID。', 'type' => 'string', 'required' => true, 'example' => 'backup-173620705****'], + ], + [ + 'name' => 'BackupPeriod', 'in' => 'query', 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', + 'description' => '自动备份周期,单位天数。 取值为1、3、7、30。', + 'type' => 'integer', + 'format' => 'int64', 'required' => true, - 'example' => 'cn-hangzhou', + 'maximum' => '30', + 'minimum' => '1', + 'enumValueTitles' => [], + 'example' => '3', + 'enum' => ['1', '3', '7', '30'], ], ], [ - 'name' => 'GetOssBucket', + 'name' => 'BackupHourInDay', 'in' => 'query', 'schema' => [ - 'description' => '是否获取可用于存储审计日志的OSS Bucket列表。'."\n" - ."\n" - .'- true:是'."\n" - ."\n" - .'- false:否', - 'type' => 'boolean', + 'description' => '备份时间,24小时制整点时间。取值:1~24。', + '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' => '手动备份更新为自动备份的镜像ID列表。', + 'type' => 'array', + 'items' => ['description' => '手动备份更新为自动备份的镜像ID。', 'type' => 'string', 'required' => false, 'example' => 'image-haiduf23bj****'], + 'required' => false, + ], + ], + [ + 'name' => 'Periodic2ManualList', + 'in' => 'query', + 'style' => 'flat', + 'schema' => [ + 'description' => '自动备份更新为手动备份的镜像ID列表。', + 'type' => 'array', + 'items' => ['description' => '自动备份更新为手动备份的镜像ID。', 'type' => 'string', 'required' => false, 'example' => 'image-daiduahsbj****'], 'required' => false, - 'example' => 'true', ], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => '响应信息。', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '本次调用请求的ID,是由阿里云为该请求生成的唯一标识符,可用于排查和定位问题。', - 'type' => 'string', - 'example' => '4C467B38-3910-447D-87BC-AC049166F216', - ], - 'Success' => [ - 'description' => '调用是否成功。'."\n" - ."\n" - .'- true:成功'."\n" - ."\n" - .'- false:失败', - 'type' => 'boolean', - 'example' => 'true', - ], - 'RegionId' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'example' => 'cn-hangzhou', - ], - 'AuditLogStatus' => [ - 'description' => '审计日志开通状态。'."\n" - .'- enable:已开通 '."\n" - .'- disable:未开通', - 'type' => 'string', - 'enumValueTitles' => [], - 'example' => 'enable', - 'enum' => [ - 'enable', - 'disable', - ], - ], - 'GrantedServiceAccess' => [ - 'description' => '是否授权加密服务投递日志。'."\n" - ."\n" - .'- true:已授权'."\n" - ."\n" - .'- false:未授权', - 'type' => 'boolean', - 'example' => 'true', - ], - 'AuditOssBucket' => [ - 'description' => '审计日志存储的Bucket。', - 'type' => 'string', - 'example' => 'bucket-test', - ], - 'OssBuckets' => [ - 'description' => '可用于存储审计日志的OSS Bucket列表。', - 'type' => 'array', - 'items' => [ - 'description' => 'Bucket名称。', - 'type' => 'string', - 'example' => 'bucket-test', - ], - ], + 'RequestId' => ['description' => '本次调用请求的ID,是由阿里云为该请求生成的唯一标识符,可用于排查和定位问题。', 'type' => 'string', 'example' => '4C467B38-3910-447D-87BC-AC049166F216'], ], + 'description' => '', ], ], ], 'errorCodes' => [ + 400 => [ + ['errorCode' => 'InvalidApiParam.Error', 'errorMessage' => 'api param is invalid', 'description' => ''], + ], 403 => [ - [ - 'errorCode' => 'OSSPermissionDenied.Error', - 'errorMessage' => '获取对应OSS bucket权限失败,请检查OSS权限设置: %s', - ], + ['errorCode' => 'NoPermission', 'errorMessage' => 'caller has no permission', 'description' => ''], + ['errorCode' => 'Backup.ActionForbidden', 'errorMessage' => 'This API is forbidden for this backup type.', 'description' => ''], ], 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'The request processing has failed due to some unknown error.', + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to some unknown error.', 'description' => '未知错误导致请求处理失败。'], + ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '配置备份任务', + 'summary' => '修改备份任务执行模式。', + 'description' => '仅支持中国内地密码机实例备份调用。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], + ], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'yundun-hsm:ConfigBackupTask', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DataEncryptionService', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], ], - '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' => '查询审计日志开通状态', + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"4C467B38-3910-447D-87BC-AC049166F216\\"\\n}","type":"json"}]', ], - 'InitializeAuditLog' => [ - 'summary' => '授权加密服务投递日志。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'ConfigClusterCertificate' => [ + 'summary' => '为非中国内地密码机集群配置证书。', + 'methods' => ['post'], + 'schemes' => ['https'], 'security' => [ [ 'AK' => [], @@ -350,476 +347,589 @@ 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREhsmVF2KT5', + 'abilityTreeNodes' => ['FEATUREhsmLBBV5W'], + ], + 'parameters' => [ + [ + 'name' => 'ClusterId', + 'in' => 'formData', + 'schema' => ['description' => '集群ID。', 'type' => 'string', 'required' => true, 'example' => 'cluster-BqxX63Bsg****'], + ], + [ + 'name' => 'IssuerCertificate', + 'in' => 'formData', + 'schema' => ['description' => '自签名证书。', 'type' => 'string', 'required' => true, 'example' => '-----BEGIN CERTIFICATE-----'."\n" + .'MIIDfTCCAmWgAwIBAgIJAMRqQMr5if66MA0GCSqGSIb3DQEBCwUAMFUxCzAJBgNV'."\n" + .'BAYTAmNuMQswCQYDVQQIDAJ6ajELMAkGA1UEBwwCaHoxFjAUBgNVBAoMDUFsaWJh'."\n" + .'YmEgQ2xvdWQxFDA****'."\n" + .'-----END CERTIFICATE-----'], + ], + [ + 'name' => 'ClusterCertificate', + 'in' => 'formData', + 'schema' => ['description' => '集群证书。', 'type' => 'string', 'required' => true, 'example' => '-----BEGIN CERTIFICATE-----'."\n" + .'MIIDaTCCAlECAQEwDQYJKoZIhvcNAQELBQAwVTELMAkGA1UEBhMCY24xCzAJBgNV'."\n" + .'BAgMAnpqMQswCQYDVQQHDAJoejEWMBQGA1UECgwNQWxpYmFiYSBDbG91ZDEUMBIG'."\n" + .'A1UECwwLU2VjQ2xvdWRIc20wHhcNMjQwNzAzM****-----END CERTIFICATE-----'], ], ], - 'parameters' => [], 'responses' => [ 200 => [ 'schema' => [ + 'title' => 'BaseResult', + 'description' => 'BaseResult', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '本次调用请求的ID,是由阿里云为该请求生成的唯一标识符,可用于排查和定位问题。', - 'type' => 'string', - 'example' => '4FE969D9-E1C7-5274-BE7D-8C3534587605', - ], + 'RequestId' => ['description' => '本次调用请求的ID,是由阿里云为该请求生成的唯一标识符,可用于排查和定位问题。', 'type' => 'string', 'example' => '4C467B38-3910-447D-87BC-AC049166F216'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'CreateServiceLinkedRole.Error %s', - 'errorMessage' => 'sdfsfa %s', - ], + ['errorCode' => 'SwitchMaster.InstanceInvalid', 'errorMessage' => 'Instance not in the cluster.', 'description' => ''], + ['errorCode' => 'LeaveCluster.MasterLast', 'errorMessage' => 'Master instance can not leave a cluster until all other instances are left.', 'description' => ''], + ['errorCode' => 'Certificate.ChainInvalid', 'errorMessage' => 'Certificate chain invalid. Please make sure issuer certificate is the trust anchor and cluster certificate is signed by issuer certificate.', 'description' => ''], + ['errorCode' => 'Certificate.FormatInvalid', 'errorMessage' => 'Certificate format invalid. Cluster/Issuer certificate must be in PEM format.', 'description' => ''], + ['errorCode' => 'ConfigClusterSubnet.DuplicateZone', 'errorMessage' => 'VSwitches should not contain duplicate zones.', 'description' => ''], + ['errorCode' => 'InvalidApiParam.Error', 'errorMessage' => 'api param is invalid', 'description' => ''], + ['errorCode' => 'InvalidClusterName', 'errorMessage' => 'Invalid parameter clusterName.', 'description' => ''], + ['errorCode' => 'InvalidPageSize', 'errorMessage' => 'Invalid parameter pageSize.', 'description' => ''], + ['errorCode' => 'InvalidCurrentPage', 'errorMessage' => 'Invalid parameter currentPage.', 'description' => ''], + ['errorCode' => 'InvalidRegionId', 'errorMessage' => 'Invalid parameter regionId.', 'description' => ''], + ['errorCode' => 'InvalidVSwitch', 'errorMessage' => 'Invalid parameter vSwitch.', 'description' => ''], + ['errorCode' => 'InvalidVpc', 'errorMessage' => 'Invalid parameter vpcId.', 'description' => ''], + ['errorCode' => 'InvalidIp', 'errorMessage' => 'Invalid parameter IP.', 'description' => ''], + ['errorCode' => 'InvalidAliuid', 'errorMessage' => 'Invalid parameter aliuid.', 'description' => ''], + ['errorCode' => 'InvalidClusterId', 'errorMessage' => 'Invalid parameter clusterId.', 'description' => ''], + ['errorCode' => 'InvalidInstanceId', 'errorMessage' => 'Invalid parameter instanceId.', 'description' => ''], + ['errorCode' => 'InvalidBackupId', 'errorMessage' => 'Invalid parameter backupId.', 'description' => ''], + ['errorCode' => 'InvalidImageId', 'errorMessage' => 'Invalid parameter imageId.', 'description' => ''], + ['errorCode' => 'HsmInstanceNotExist.Error', 'errorMessage' => 'hsm instance not exist', 'description' => ''], + ['errorCode' => 'HSMIntanceNotActived.Error', 'errorMessage' => 'hsm intance is not actived', 'description' => ''], + ['errorCode' => 'WhiteListMaxCount.Error', 'errorMessage' => 'whilte list is more than max count', 'description' => ''], + ['errorCode' => 'ClusterIdIsNotExists.Error', 'errorMessage' => 'cluster ID non-exists', 'description' => ''], + ['errorCode' => 'InstanceListIsEmpty.Error', 'errorMessage' => 'instance list is empty', 'description' => ''], + ['errorCode' => 'InstanceIdIsEmpty.Error', 'errorMessage' => 'instance id is empty', 'description' => ''], + ['errorCode' => 'InstanceIsNotExistsInCluster.Error', 'errorMessage' => 'cluster has no such instance', 'description' => ''], + ['errorCode' => 'InstanceIsExistsInCluster.Error', 'errorMessage' => 'instance already in the cluster', 'description' => ''], + ['errorCode' => 'RegionNoEmpty.Error', 'errorMessage' => 'region no. is empty', 'description' => ''], + ['errorCode' => 'ClusterNameEmpty.Error', 'errorMessage' => 'empty cluster name not allowed', 'description' => ''], + ['errorCode' => 'ClusterNameIsExists.Error', 'errorMessage' => 'the cluster name is already taken', 'description' => ''], + ['errorCode' => 'IpNotValid.Error', 'errorMessage' => 'ip not valid', 'description' => ''], + ['errorCode' => 'ClusterIsEmpty.Error', 'errorMessage' => 'cluster is empty', 'description' => ''], + ['errorCode' => 'NoMasterFoundInCluster.Error', 'errorMessage' => 'cluster has no master instance', 'description' => ''], + ['errorCode' => 'HsmInstanceIdNotFound.Error', 'errorMessage' => 'no such instance', 'description' => ''], + ['errorCode' => 'NoInstanceFoundInCluster.Error', 'errorMessage' => 'cluster is empty', 'description' => ''], + ['errorCode' => 'Whitelist.Invalid', 'errorMessage' => 'Whitelist blocks not in CIDR format.', 'description' => ''], + ['errorCode' => 'Whitelist.TooLong', 'errorMessage' => 'Whitelist too long, exceeds 10 CIDR blocks.', 'description' => ''], ], - 404 => [ - [ - 'errorCode' => 'EntityNotExist.Service', - 'errorMessage' => '服务不存在: %s', - ], - [ - 'errorCode' => 'EntityNotExist.User', - 'errorMessage' => '角色不存在: %s', - ], - [ - 'errorCode' => 'NoPermission.Client', - 'errorMessage' => '当前账户无创建服务角色权限!', - ], + 403 => [ + ['errorCode' => 'NoPermission', 'errorMessage' => 'Caller has no permission on the resource.', 'description' => ''], + ['errorCode' => 'InstanceNotPaused', 'errorMessage' => 'Please pause the instance before reset.', 'description' => ''], + ['errorCode' => 'InstanceNotActive', 'errorMessage' => 'Instance is not active.', 'description' => ''], + ['errorCode' => 'ConfigIp.IncorrectState', 'errorMessage' => 'Instance not in pending or active state, can not config IP address.', 'description' => ''], + ['errorCode' => 'SwitchMaster.IncorrectState', 'errorMessage' => 'Cluster not initialized, please initialize the cluster first.', 'description' => ''], + ['errorCode' => 'SyncCluster.IncorrectState', 'errorMessage' => 'Cluster not initialized, please initialize the cluster first.', 'description' => ''], + ['errorCode' => 'LeaveCluster.InstanceInvalid', 'errorMessage' => 'The instance is not in the cluster.', 'description' => ''], + ['errorCode' => 'DeleteCluster.IncorrectState', 'errorMessage' => 'Cluster not empty, please remove all instances first.', 'description' => ''], + ['errorCode' => 'JoinCluster.InstanceVSwitchNotInCluster', 'errorMessage' => 'Instance\'s vSwitch is not in cluster config, please change instance\'s vSwitch first.', 'description' => ''], + ['errorCode' => 'JoinCluster.InstanceInitialized', 'errorMessage' => 'Initialized instance can not join a cluster.', 'description' => ''], + ['errorCode' => 'JoinCluster.IncorrectState', 'errorMessage' => 'Cluster not initialized, please initialize the cluster first.', 'description' => ''], + ['errorCode' => 'InitializeCluster.InstanceNotInitialized', 'errorMessage' => 'Cluster master instance not initialized, please initialize cluster master instance first.', 'description' => ''], + ['errorCode' => 'InitializeCluster.IncorrectConfig', 'errorMessage' => 'Cluster subnet not configured, please config cluster subnet first.', 'description' => ''], + ['errorCode' => 'InitializeCluster.IncorrectState', 'errorMessage' => 'Cluster initialized, do not re-initialize.', 'description' => ''], + ['errorCode' => 'Cluster.CN.ActionForbidden', 'errorMessage' => 'This API is forbidden for non-international site cluster.', 'description' => ''], + ['errorCode' => 'Cluster.INTL.ActionForbidden', 'errorMessage' => 'This API is forbidden for international site cluster.', 'description' => ''], + ['errorCode' => 'ConfigClusterCertificate.IncorrectState', 'errorMessage' => 'Cluster initialized or certificates already configured.', 'description' => ''], + ['errorCode' => 'ConfigClusterSubnet.InvalidVpcId', 'errorMessage' => 'VPC Id invalid. Cluster VPC is the same as cluster master\'s VPC.', 'description' => ''], + ['errorCode' => 'ConfigClusterSubnet.InvalidVSwitchId', 'errorMessage' => 'VSwitch Id invalid. VSwitches should contain all current cluster vSwitches.', 'description' => ''], + ['errorCode' => 'ConfigClusterSubnet.IncorrectState', 'errorMessage' => 'Cluster not in NEW state, can not config cluster subnet.', 'description' => ''], + ['errorCode' => 'ClusterName.Exist', 'errorMessage' => 'Cluster name already exists, please use another name.', 'description' => ''], + ['errorCode' => 'Whitelist.InstanceInCluster', 'errorMessage' => 'Whitelist.InstanceInCluster', 'description' => ''], + ], + [ + ['errorCode' => 'Resource.NotFound', 'errorMessage' => 'Resource not found.', 'description' => ''], + ], + [ + ['errorCode' => 'ClusterAPI.NotSupported', 'errorMessage' => 'ClusterAPI not supported in this region.', 'description' => ''], ], 409 => [ - [ - 'errorCode' => 'EntityAlreadyExists.Role', - 'errorMessage' => '服务角色已存在,请勿重复创建!', - ], + ['errorCode' => 'Conflict', 'errorMessage' => 'Resource is being updated by a previous request. Current request is redundant.', 'description' => ''], + ['errorCode' => 'Cluster.Conflict', 'errorMessage' => 'The cluster is being updated by a previous request. Please try again later.', 'description' => ''], ], 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'The request processing has failed due to some unknown error.', + ['errorCode' => 'ConfigWhitelistFailed.Error', 'errorMessage' => 'config white list error', 'description' => ''], + ['errorCode' => 'ActionFailed.Error', 'errorMessage' => 'internal error, please try again', 'description' => ''], + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to some unknown error.', 'description' => '未知错误导致请求处理失败。'], + ], + ], + 'title' => '配置集群证书', + 'description' => '如何在ECS上创建自签名证书和集群签名证书,请参见[创建GVSM(NIST FIPS)密码机集群](~~293585~~)。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], + ], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'yundun-hsm:ConfigClusterCertificate', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DataEncryptionService', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"4FE969D9-E1C7-5274-BE7D-8C3534587605\\"\\n}","type":"json"}]', - 'title' => '初始化审计日志', + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"4C467B38-3910-447D-87BC-AC049166F216\\"\\n}","type":"json"}]', ], - 'GetImage' => [ - 'summary' => '查询指定镜像信息。', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'ConfigClusterName' => [ + 'methods' => ['post'], + 'schemes' => ['https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'write', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'get', - 'abilityTreeCode' => '203665', - 'abilityTreeNodes' => [ - 'FEATUREhsmQEGDGS', - ], + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => ['FEATUREhsmV7VE3Y', 'FEATUREhsm01FLNB', 'FEATUREhsmGIFYCG', 'FEATUREhsmLBBV5W'], ], 'parameters' => [ [ - 'name' => 'ImageId', - 'in' => 'query', - 'schema' => [ - 'description' => '镜像ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'image-wz9c5ths5dfuwx47****', - ], + 'name' => 'ClusterId', + 'in' => 'formData', + 'schema' => ['description' => '集群ID。', 'type' => 'string', 'required' => true, 'example' => 'cluster-BqxX63Bsgfaisdf****'], + ], + [ + 'name' => 'ClusterName', + 'in' => 'formData', + 'schema' => ['description' => '集群名称。', 'type' => 'string', 'required' => true, 'example' => 'cluster_on****'], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'title' => 'BaseResult', + 'description' => 'BaseResult', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '本次调用请求的ID,是由阿里云为该请求生成的唯一标识符,可用于排查和定位问题。', - 'type' => 'string', - 'example' => '4C467B38-3910-447D-87BC-AC049166F216', - ], - 'Image' => [ - 'description' => '返回的镜像信息。', - 'type' => 'object', - 'properties' => [ - 'BackupId' => [ - 'description' => '备份ID。', - 'type' => 'string', - 'example' => 'backup-1618017313', - ], - 'ExportTime' => [ - 'description' => '镜像生成时间,精确到毫秒。时间戳格式。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1786776567788', - ], - 'ImageId' => [ - 'description' => '镜像ID。', - 'type' => 'string', - 'example' => 'image-wz9c5ths5dfuwx47****', - ], - 'InstanceId' => [ - 'description' => '密码机实例ID。', - 'type' => 'string', - 'example' => 'hsm-cn-9lb32vll****', - ], - 'RegionId' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'example' => 'cn-hangzhou', - ], - 'Remark' => [ - 'description' => '备份备注。', - 'type' => 'string', - 'example' => 'hsm-test', - ], - 'Status' => [ - 'description' => '镜像状态。'."\n" - ."\n" - .'- NEW:未启用'."\n" - ."\n" - .'- DELETED:已删除'."\n" - ."\n" - .'- CREATING:创建中'."\n" - ."\n" - .'- NORMAL:创建完成', - 'type' => 'string', - 'enumValueTitles' => [], - 'example' => 'NEW', - 'enum' => [ - 'CREATING', - 'NEW', - 'NORMAL', - 'DELETED', - ], - ], - 'Mode' => [ - 'description' => '镜像生成模式。'."\n" - ."\n" - .'- PERIODIC:自动生成'."\n" - ."\n" - .'- MANUAL:手动生成', - 'type' => 'string', - 'enumValueTitles' => [], - 'example' => 'MANUAL', - 'enum' => [ - 'MANUAL', - 'PERIODIC', - ], - ], - 'VsmDigest' => [ - 'description' => '密码机实例摘要。', - 'type' => 'string', - 'example' => '3kGeHnmQzXwSsfF0Jk9eJYhe2gP6An0/HlYIiZh1****', - ], - 'SourceImageUid' => [ - 'description' => '源镜像ID。', - 'type' => 'string', - 'example' => 'image-kklhhhh****', - ], - 'SourceRegionId' => [ - 'description' => '源镜像的地域ID。', - 'type' => 'string', - 'example' => 'cn-beijing', - ], - 'SourceBackupUid' => [ - 'description' => '源备份ID。', - 'type' => 'string', - 'example' => 'backup-gfuiasdfa****', - ], - 'SourceInstanceId' => [ - 'description' => '源实例ID。', - 'type' => 'string', - 'example' => 'hsm-wz9fnmvx190shfbk****', - ], - 'CopyTime' => [ - 'description' => '镜像复制时间,精确到毫秒。时间戳格式。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1641275680000', - ], - ], - ], + 'RequestId' => ['description' => '本次调用请求的ID,是由阿里云为该请求生成的唯一标识符,可用于排查和定位问题。', 'type' => 'string', 'example' => '4C467B38-3910-447D-87BC-AC049166F216'], ], ], ], ], 'errorCodes' => [ + 400 => [ + ['errorCode' => 'SwitchMaster.InstanceInvalid', 'errorMessage' => 'Instance not in the cluster.', 'description' => ''], + ['errorCode' => 'LeaveCluster.MasterLast', 'errorMessage' => 'Master instance can not leave a cluster until all other instances are left.', 'description' => ''], + ['errorCode' => 'Certificate.ChainInvalid', 'errorMessage' => 'Certificate chain invalid. Please make sure issuer certificate is the trust anchor and cluster certificate is signed by issuer certificate.', 'description' => ''], + ['errorCode' => 'Certificate.FormatInvalid', 'errorMessage' => 'Certificate format invalid. Cluster/Issuer certificate must be in PEM format.', 'description' => ''], + ['errorCode' => 'ConfigClusterSubnet.DuplicateZone', 'errorMessage' => 'VSwitches should not contain duplicate zones.', 'description' => ''], + ['errorCode' => 'InvalidApiParam.Error', 'errorMessage' => 'api param is invalid', 'description' => ''], + ['errorCode' => 'InvalidClusterName', 'errorMessage' => 'Invalid parameter clusterName.', 'description' => ''], + ['errorCode' => 'InvalidPageSize', 'errorMessage' => 'Invalid parameter pageSize.', 'description' => ''], + ['errorCode' => 'InvalidCurrentPage', 'errorMessage' => 'Invalid parameter currentPage.', 'description' => ''], + ['errorCode' => 'InvalidRegionId', 'errorMessage' => 'Invalid parameter regionId.', 'description' => ''], + ['errorCode' => 'InvalidVSwitch', 'errorMessage' => 'Invalid parameter vSwitch.', 'description' => ''], + ['errorCode' => 'InvalidVpc', 'errorMessage' => 'Invalid parameter vpcId.', 'description' => ''], + ['errorCode' => 'InvalidIp', 'errorMessage' => 'Invalid parameter IP.', 'description' => ''], + ['errorCode' => 'InvalidAliuid', 'errorMessage' => 'Invalid parameter aliuid.', 'description' => ''], + ['errorCode' => 'InvalidClusterId', 'errorMessage' => 'Invalid parameter clusterId.', 'description' => ''], + ['errorCode' => 'InvalidInstanceId', 'errorMessage' => 'Invalid parameter instanceId.', 'description' => ''], + ['errorCode' => 'InvalidBackupId', 'errorMessage' => 'Invalid parameter backupId.', 'description' => ''], + ['errorCode' => 'InvalidImageId', 'errorMessage' => 'Invalid parameter imageId.', 'description' => ''], + ['errorCode' => 'HsmInstanceNotExist.Error', 'errorMessage' => 'hsm instance not exist', 'description' => ''], + ['errorCode' => 'HSMIntanceNotActived.Error', 'errorMessage' => 'hsm intance is not actived', 'description' => ''], + ['errorCode' => 'WhiteListMaxCount.Error', 'errorMessage' => 'whilte list is more than max count', 'description' => ''], + ['errorCode' => 'ClusterIdIsNotExists.Error', 'errorMessage' => 'cluster ID non-exists', 'description' => ''], + ['errorCode' => 'InstanceListIsEmpty.Error', 'errorMessage' => 'instance list is empty', 'description' => ''], + ['errorCode' => 'InstanceIdIsEmpty.Error', 'errorMessage' => 'instance id is empty', 'description' => ''], + ['errorCode' => 'InstanceIsNotExistsInCluster.Error', 'errorMessage' => 'cluster has no such instance', 'description' => ''], + ['errorCode' => 'InstanceIsExistsInCluster.Error', 'errorMessage' => 'instance already in the cluster', 'description' => ''], + ['errorCode' => 'RegionNoEmpty.Error', 'errorMessage' => 'region no. is empty', 'description' => ''], + ['errorCode' => 'ClusterNameEmpty.Error', 'errorMessage' => 'empty cluster name not allowed', 'description' => ''], + ['errorCode' => 'ClusterNameIsExists.Error', 'errorMessage' => 'the cluster name is already taken', 'description' => ''], + ['errorCode' => 'IpNotValid.Error', 'errorMessage' => 'ip not valid', 'description' => ''], + ['errorCode' => 'ClusterIsEmpty.Error', 'errorMessage' => 'cluster is empty', 'description' => ''], + ['errorCode' => 'NoMasterFoundInCluster.Error', 'errorMessage' => 'cluster has no master instance', 'description' => ''], + ['errorCode' => 'HsmInstanceIdNotFound.Error', 'errorMessage' => 'no such instance', 'description' => ''], + ['errorCode' => 'NoInstanceFoundInCluster.Error', 'errorMessage' => 'cluster is empty', 'description' => ''], + ['errorCode' => 'Whitelist.Invalid', 'errorMessage' => 'Whitelist blocks not in CIDR format.', 'description' => ''], + ['errorCode' => 'Whitelist.TooLong', 'errorMessage' => 'Whitelist too long, exceeds 10 CIDR blocks.', 'description' => ''], + ], 403 => [ - [ - 'errorCode' => 'NoPermission', - 'errorMessage' => 'caller has no permission', - ], + ['errorCode' => 'NoPermission', 'errorMessage' => 'Caller has no permission on the resource.', 'description' => ''], + ['errorCode' => 'InstanceNotPaused', 'errorMessage' => 'Please pause the instance before reset.', 'description' => ''], + ['errorCode' => 'InstanceNotActive', 'errorMessage' => 'Instance is not active.', 'description' => ''], + ['errorCode' => 'ConfigIp.IncorrectState', 'errorMessage' => 'Instance not in pending or active state, can not config IP address.', 'description' => ''], + ['errorCode' => 'SwitchMaster.IncorrectState', 'errorMessage' => 'Cluster not initialized, please initialize the cluster first.', 'description' => ''], + ['errorCode' => 'SyncCluster.IncorrectState', 'errorMessage' => 'Cluster not initialized, please initialize the cluster first.', 'description' => ''], + ['errorCode' => 'LeaveCluster.InstanceInvalid', 'errorMessage' => 'The instance is not in the cluster.', 'description' => ''], + ['errorCode' => 'DeleteCluster.IncorrectState', 'errorMessage' => 'Cluster not empty, please remove all instances first.', 'description' => ''], + ['errorCode' => 'JoinCluster.InstanceVSwitchNotInCluster', 'errorMessage' => 'Instance\'s vSwitch is not in cluster config, please change instance\'s vSwitch first.', 'description' => ''], + ['errorCode' => 'JoinCluster.InstanceInitialized', 'errorMessage' => 'Initialized instance can not join a cluster.', 'description' => ''], + ['errorCode' => 'JoinCluster.IncorrectState', 'errorMessage' => 'Cluster not initialized, please initialize the cluster first.', 'description' => ''], + ['errorCode' => 'InitializeCluster.InstanceNotInitialized', 'errorMessage' => 'Cluster master instance not initialized, please initialize cluster master instance first.', 'description' => ''], + ['errorCode' => 'InitializeCluster.IncorrectConfig', 'errorMessage' => 'Cluster subnet not configured, please config cluster subnet first.', 'description' => ''], + ['errorCode' => 'InitializeCluster.IncorrectState', 'errorMessage' => 'Cluster initialized, do not re-initialize.', 'description' => ''], + ['errorCode' => 'Cluster.CN.ActionForbidden', 'errorMessage' => 'This API is forbidden for non-international site cluster.', 'description' => ''], + ['errorCode' => 'Cluster.INTL.ActionForbidden', 'errorMessage' => 'This API is forbidden for international site cluster.', 'description' => ''], + ['errorCode' => 'ConfigClusterCertificate.IncorrectState', 'errorMessage' => 'Cluster initialized or certificates already configured.', 'description' => ''], + ['errorCode' => 'ConfigClusterSubnet.InvalidVpcId', 'errorMessage' => 'VPC Id invalid. Cluster VPC is the same as cluster master\'s VPC.', 'description' => ''], + ['errorCode' => 'ConfigClusterSubnet.InvalidVSwitchId', 'errorMessage' => 'VSwitch Id invalid. VSwitches should contain all current cluster vSwitches.', 'description' => ''], + ['errorCode' => 'ConfigClusterSubnet.IncorrectState', 'errorMessage' => 'Cluster not in NEW state, can not config cluster subnet.', 'description' => ''], + ['errorCode' => 'ClusterName.Exist', 'errorMessage' => 'Cluster name already exists, please use another name.', 'description' => ''], + ['errorCode' => 'Whitelist.InstanceInCluster', 'errorMessage' => 'Whitelist.InstanceInCluster', 'description' => ''], + ], + [ + ['errorCode' => 'Resource.NotFound', 'errorMessage' => 'Resource not found.', 'description' => ''], + ], + [ + ['errorCode' => 'ClusterAPI.NotSupported', 'errorMessage' => 'ClusterAPI not supported in this region.', 'description' => ''], + ], + 409 => [ + ['errorCode' => 'Conflict', 'errorMessage' => 'Resource is being updated by a previous request. Current request is redundant.', 'description' => ''], + ['errorCode' => 'Cluster.Conflict', 'errorMessage' => 'The cluster is being updated by a previous request. Please try again later.', 'description' => ''], + ], + 500 => [ + ['errorCode' => 'ConfigWhitelistFailed.Error', 'errorMessage' => 'config white list error', 'description' => ''], + ['errorCode' => 'ActionFailed.Error', 'errorMessage' => 'internal error, please try again', 'description' => ''], + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to some unknown error.', 'description' => '未知错误导致请求处理失败。'], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'title' => '配置集群名称', + 'summary' => '修改集群名称。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], + ], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'yundun-hsm:ConfigClusterName', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DataEncryptionService', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], - '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' => '查询镜像', + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"4C467B38-3910-447D-87BC-AC049166F216\\"\\n}","type":"json"}]', ], - 'ListImages' => [ - 'summary' => '查询符合条件的镜像集合。', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'ConfigClusterSubnet' => [ + 'summary' => '修改集群绑定的交换机列表。', + 'methods' => ['post'], + 'schemes' => ['https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'readAndWrite', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'list', + 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '203777', - 'abilityTreeNodes' => [ - 'FEATUREhsmQEGDGS', - ], + 'abilityTreeCode' => '211854', + 'abilityTreeNodes' => ['FEATUREhsmV7VE3Y', 'FEATUREhsm01FLNB', 'FEATUREhsmGIFYCG', 'FEATUREhsmLBBV5W'], ], 'parameters' => [ [ - 'name' => 'BackupId', - 'in' => 'query', - 'schema' => [ - 'description' => '备份ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'backup-fdb897sdf****', - ], + 'name' => 'ClusterId', + 'in' => 'formData', + 'schema' => ['description' => '集群ID。可以通过调用ListCluster获取集群ID。', 'type' => 'string', 'required' => true, 'example' => 'cluster-BqxX63Bsg****'], ], [ 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'cn-hangzhou', - ], + 'in' => 'formData', + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => true, 'example' => 'cn-hangzhou'], ], [ - 'name' => 'PageSize', - 'in' => 'query', - 'schema' => [ - 'description' => '每页显示的镜像个数。取值:1~1000。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'example' => '20', - ], + 'name' => 'VpcId', + 'in' => 'formData', + 'schema' => ['description' => 'VPC网络ID。', 'type' => 'string', 'required' => true, 'example' => 'vpc-7xvkh90cw39p0****'], ], [ - 'name' => 'CurrentPage', - 'in' => 'query', + 'name' => 'VSwitchIds', + 'in' => 'formData', + 'style' => 'json', 'schema' => [ - 'description' => '当前分页。', - 'type' => 'integer', - 'format' => 'int32', + 'description' => '集群配置的交换机列表。注意:必须包含集群要配置的所有交换机。', + 'type' => 'array', + 'items' => ['description' => '交换机ID。', 'type' => 'string', 'required' => false, 'example' => 'vsw-2zeqkh8ar8yey5ejv****'], 'required' => true, - 'example' => '1', ], ], - [ - 'name' => 'Mode', - 'in' => 'query', + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => '镜像生成模式。'."\n" - .'- PERIODIC:自动生成'."\n" - .'- MANUAL:手动生成', - 'type' => 'string', - 'required' => false, - 'enumValueTitles' => [], - 'example' => 'MANUAL', - 'enum' => [ - 'MANUAL', - 'PERIODIC', + 'title' => 'BaseResult', + 'description' => 'BaseResult', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => '本次调用请求的 ID,是由阿里云为该请求生成的唯一标识符,可用于排查和定位问题。', 'type' => 'string', 'example' => '4C467B38-3910-447D-87BC-AC049366F216'], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'SwitchMaster.InstanceInvalid', 'errorMessage' => 'Instance not in the cluster.', 'description' => ''], + ['errorCode' => 'LeaveCluster.MasterLast', 'errorMessage' => 'Master instance can not leave a cluster until all other instances are left.', 'description' => ''], + ['errorCode' => 'Certificate.ChainInvalid', 'errorMessage' => 'Certificate chain invalid. Please make sure issuer certificate is the trust anchor and cluster certificate is signed by issuer certificate.', 'description' => ''], + ['errorCode' => 'Certificate.FormatInvalid', 'errorMessage' => 'Certificate format invalid. Cluster/Issuer certificate must be in PEM format.', 'description' => ''], + ['errorCode' => 'ConfigClusterSubnet.DuplicateZone', 'errorMessage' => 'VSwitches should not contain duplicate zones.', 'description' => ''], + ['errorCode' => 'InvalidApiParam.Error', 'errorMessage' => 'api param is invalid', 'description' => ''], + ['errorCode' => 'InvalidClusterName', 'errorMessage' => 'Invalid parameter clusterName.', 'description' => ''], + ['errorCode' => 'InvalidPageSize', 'errorMessage' => 'Invalid parameter pageSize.', 'description' => ''], + ['errorCode' => 'InvalidCurrentPage', 'errorMessage' => 'Invalid parameter currentPage.', 'description' => ''], + ['errorCode' => 'InvalidRegionId', 'errorMessage' => 'Invalid parameter regionId.', 'description' => ''], + ['errorCode' => 'InvalidVSwitch', 'errorMessage' => 'Invalid parameter vSwitch.', 'description' => ''], + ['errorCode' => 'InvalidVpc', 'errorMessage' => 'Invalid parameter vpcId.', 'description' => ''], + ['errorCode' => 'InvalidIp', 'errorMessage' => 'Invalid parameter IP.', 'description' => ''], + ['errorCode' => 'InvalidAliuid', 'errorMessage' => 'Invalid parameter aliuid.', 'description' => ''], + ['errorCode' => 'InvalidClusterId', 'errorMessage' => 'Invalid parameter clusterId.', 'description' => ''], + ['errorCode' => 'InvalidInstanceId', 'errorMessage' => 'Invalid parameter instanceId.', 'description' => ''], + ['errorCode' => 'InvalidBackupId', 'errorMessage' => 'Invalid parameter backupId.', 'description' => ''], + ['errorCode' => 'InvalidImageId', 'errorMessage' => 'Invalid parameter imageId.', 'description' => ''], + ['errorCode' => 'HsmInstanceNotExist.Error', 'errorMessage' => 'hsm instance not exist', 'description' => ''], + ['errorCode' => 'HSMIntanceNotActived.Error', 'errorMessage' => 'hsm intance is not actived', 'description' => ''], + ['errorCode' => 'WhiteListMaxCount.Error', 'errorMessage' => 'whilte list is more than max count', 'description' => ''], + ['errorCode' => 'ClusterIdIsNotExists.Error', 'errorMessage' => 'cluster ID non-exists', 'description' => ''], + ['errorCode' => 'InstanceListIsEmpty.Error', 'errorMessage' => 'instance list is empty', 'description' => ''], + ['errorCode' => 'InstanceIdIsEmpty.Error', 'errorMessage' => 'instance id is empty', 'description' => ''], + ['errorCode' => 'InstanceIsNotExistsInCluster.Error', 'errorMessage' => 'cluster has no such instance', 'description' => ''], + ['errorCode' => 'InstanceIsExistsInCluster.Error', 'errorMessage' => 'instance already in the cluster', 'description' => ''], + ['errorCode' => 'RegionNoEmpty.Error', 'errorMessage' => 'region no. is empty', 'description' => ''], + ['errorCode' => 'ClusterNameEmpty.Error', 'errorMessage' => 'empty cluster name not allowed', 'description' => ''], + ['errorCode' => 'ClusterNameIsExists.Error', 'errorMessage' => 'the cluster name is already taken', 'description' => ''], + ['errorCode' => 'IpNotValid.Error', 'errorMessage' => 'ip not valid', 'description' => ''], + ['errorCode' => 'ClusterIsEmpty.Error', 'errorMessage' => 'cluster is empty', 'description' => ''], + ['errorCode' => 'NoMasterFoundInCluster.Error', 'errorMessage' => 'cluster has no master instance', 'description' => ''], + ['errorCode' => 'HsmInstanceIdNotFound.Error', 'errorMessage' => 'no such instance', 'description' => ''], + ['errorCode' => 'NoInstanceFoundInCluster.Error', 'errorMessage' => 'cluster is empty', 'description' => ''], + ['errorCode' => 'Whitelist.Invalid', 'errorMessage' => 'Whitelist blocks not in CIDR format.', 'description' => ''], + ['errorCode' => 'Whitelist.TooLong', 'errorMessage' => 'Whitelist too long, exceeds 10 CIDR blocks.', 'description' => ''], + ], + 403 => [ + ['errorCode' => 'NoPermission', 'errorMessage' => 'Caller has no permission on the resource.', 'description' => ''], + ['errorCode' => 'InstanceNotPaused', 'errorMessage' => 'Please pause the instance before reset.', 'description' => ''], + ['errorCode' => 'InstanceNotActive', 'errorMessage' => 'Instance is not active.', 'description' => ''], + ['errorCode' => 'ConfigIp.IncorrectState', 'errorMessage' => 'Instance not in pending or active state, can not config IP address.', 'description' => ''], + ['errorCode' => 'SwitchMaster.IncorrectState', 'errorMessage' => 'Cluster not initialized, please initialize the cluster first.', 'description' => ''], + ['errorCode' => 'SyncCluster.IncorrectState', 'errorMessage' => 'Cluster not initialized, please initialize the cluster first.', 'description' => ''], + ['errorCode' => 'LeaveCluster.InstanceInvalid', 'errorMessage' => 'The instance is not in the cluster.', 'description' => ''], + ['errorCode' => 'DeleteCluster.IncorrectState', 'errorMessage' => 'Cluster not empty, please remove all instances first.', 'description' => ''], + ['errorCode' => 'JoinCluster.InstanceVSwitchNotInCluster', 'errorMessage' => 'Instance\'s vSwitch is not in cluster config, please change instance\'s vSwitch first.', 'description' => ''], + ['errorCode' => 'JoinCluster.InstanceInitialized', 'errorMessage' => 'Initialized instance can not join a cluster.', 'description' => ''], + ['errorCode' => 'JoinCluster.IncorrectState', 'errorMessage' => 'Cluster not initialized, please initialize the cluster first.', 'description' => ''], + ['errorCode' => 'InitializeCluster.InstanceNotInitialized', 'errorMessage' => 'Cluster master instance not initialized, please initialize cluster master instance first.', 'description' => ''], + ['errorCode' => 'InitializeCluster.IncorrectConfig', 'errorMessage' => 'Cluster subnet not configured, please config cluster subnet first.', 'description' => ''], + ['errorCode' => 'InitializeCluster.IncorrectState', 'errorMessage' => 'Cluster initialized, do not re-initialize.', 'description' => ''], + ['errorCode' => 'Cluster.CN.ActionForbidden', 'errorMessage' => 'This API is forbidden for non-international site cluster.', 'description' => ''], + ['errorCode' => 'Cluster.INTL.ActionForbidden', 'errorMessage' => 'This API is forbidden for international site cluster.', 'description' => ''], + ['errorCode' => 'ConfigClusterCertificate.IncorrectState', 'errorMessage' => 'Cluster initialized or certificates already configured.', 'description' => ''], + ['errorCode' => 'ConfigClusterSubnet.InvalidVpcId', 'errorMessage' => 'VPC Id invalid. Cluster VPC is the same as cluster master\'s VPC.', 'description' => ''], + ['errorCode' => 'ConfigClusterSubnet.InvalidVSwitchId', 'errorMessage' => 'VSwitch Id invalid. VSwitches should contain all current cluster vSwitches.', 'description' => ''], + ['errorCode' => 'ConfigClusterSubnet.IncorrectState', 'errorMessage' => 'Cluster not in NEW state, can not config cluster subnet.', 'description' => ''], + ['errorCode' => 'ClusterName.Exist', 'errorMessage' => 'Cluster name already exists, please use another name.', 'description' => ''], + ['errorCode' => 'Whitelist.InstanceInCluster', 'errorMessage' => 'Whitelist.InstanceInCluster', 'description' => ''], + ], + [ + ['errorCode' => 'Resource.NotFound', 'errorMessage' => 'Resource not found.', 'description' => ''], + ], + [ + ['errorCode' => 'ClusterAPI.NotSupported', 'errorMessage' => 'ClusterAPI not supported in this region.', 'description' => ''], + ], + 409 => [ + ['errorCode' => 'Conflict', 'errorMessage' => 'Resource is being updated by a previous request. Current request is redundant.', 'description' => ''], + ['errorCode' => 'Cluster.Conflict', 'errorMessage' => 'The cluster is being updated by a previous request. Please try again later.', 'description' => ''], + ], + 500 => [ + ['errorCode' => 'ConfigWhitelistFailed.Error', 'errorMessage' => 'config white list error', 'description' => ''], + ['errorCode' => 'ActionFailed.Error', 'errorMessage' => 'internal error, please try again', 'description' => ''], + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to some unknown error.', 'description' => '未知错误导致请求处理失败。'], + ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '配置集群交换机', + 'description' => '全量配置对应集群绑定的交换机列表,仅允许新增交换机,不允许删除交换机。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], + ], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'yundun-hsm:ConfigClusterSubnet', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DataEncryptionService', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"4C467B38-3910-447D-87BC-AC049366F216\\"\\n}","type":"json"}]', + ], + 'ConfigClusterWhitelist' => [ + 'summary' => '修改集群可访问的白名单列表。', + 'methods' => ['post'], + 'schemes' => ['https'], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => ['FEATUREhsm01FLNB', 'FEATUREhsmV7VE3Y', 'FEATUREhsmGIFYCG', 'FEATUREhsmLBBV5W'], + ], + 'parameters' => [ + [ + 'name' => 'ClusterId', + 'in' => 'formData', + 'schema' => ['description' => '集群ID。', 'type' => 'string', 'required' => true, 'example' => 'cluster-729dm40FG****'], + ], + [ + 'name' => 'Whitelist', + 'in' => 'formData', + 'schema' => ['description' => '集群访问白名单列表。', 'type' => 'string', 'required' => true, 'example' => '18.68.XX.XX'], + ], + ], 'responses' => [ 200 => [ 'schema' => [ + 'title' => 'BaseResult', + 'description' => 'BaseResult', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '本次调用请求的ID,是由阿里云为该请求生成的唯一标识符,可用于排查和定位问题。', - 'type' => 'string', - 'example' => '4C467B38-3910-447D-87BC-AC049166F216', - ], - 'TotalCount' => [ - 'description' => '返回的镜像总量。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1000', - ], - 'PageSize' => [ - 'description' => '每页显示的镜像个数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '20', - ], - 'CurrentPage' => [ - 'description' => '当前分页。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'Images' => [ - 'description' => '返回的镜像信息列表。', - 'type' => 'array', - 'items' => [ - 'description' => '镜像详情。', - 'type' => 'object', - 'properties' => [ - 'BackupId' => [ - 'description' => '备份ID。', - 'type' => 'string', - 'example' => 'backup-fdb897sdf****', - ], - 'ExportTime' => [ - 'description' => '镜像生成时间,精确到毫秒。时间戳格式。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1782849566738', - ], - 'ImageId' => [ - 'description' => '镜像ID。', - 'type' => 'string', - 'example' => 'image-d79x4k11pmg19****', - ], - 'InstanceId' => [ - 'description' => '密码机实例ID。', - 'type' => 'string', - 'example' => 'hsm-cn-6ja1xknf****', - ], - 'RegionId' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'example' => 'cn-hangzhou', - ], - 'Remark' => [ - 'description' => '备份备注。', - 'type' => 'string', - 'example' => 'hsm-test', - ], - 'Status' => [ - 'description' => '镜像状态。'."\n" - ."\n" - .'- NEW:未启用'."\n" - ."\n" - .'- DELETED:已删除'."\n" - .'- CREATING:创建中'."\n" - .'- NORMAL:创建完成', - 'type' => 'string', - 'enumValueTitles' => [], - 'example' => 'CREATING', - 'enum' => [ - 'NORMAL', - 'NEW', - 'DELETED', - 'CREATING', - ], - ], - 'Mode' => [ - 'description' => '镜像生成模式。'."\n" - .'- PERIODIC:自动生成'."\n" - .'- MANUAL:手动生成', - 'type' => 'string', - 'enumValueTitles' => [], - 'example' => 'MANUAL', - 'enum' => [ - 'PERIODIC', - 'MANUAL', - ], - ], - 'VsmDigest' => [ - 'description' => '密码机实例摘要。', - 'type' => 'string', - 'example' => '3kGeHnmQzXwSsfF0Jk9eJYhe2gP6An0/HlYIiZh1****', - ], - 'SourceImageUid' => [ - 'description' => '源镜像ID。', - 'type' => 'string', - 'example' => 'image-ooopjygsn****', - ], - 'SourceBackupUid' => [ - 'description' => '源备份ID。', - 'type' => 'string', - 'example' => 'backup-hodfhaol****', - ], - 'SourceRegionId' => [ - 'description' => '源镜像所在的地域ID。', - 'type' => 'string', - 'example' => 'cn-shanghai', - ], - 'SourceInstanceId' => [ - 'description' => '源密码机实例ID。', - 'type' => 'string', - 'example' => 'hsm-cn-wz9i2dmefudfxtmb****', - ], - 'CopyTime' => [ - 'description' => '镜像复制时间,精确到毫秒。时间戳格式。', - 'type' => 'string', - 'example' => '1641275680000', - ], - ], - ], - ], + 'RequestId' => ['description' => '本次调用请求的ID,是由阿里云为该请求生成的唯一标识符,可用于排查和定位问题。', 'type' => 'string', 'example' => '4C467B38-3910-447D-87BC-AC049166F216'], ], ], ], ], 'errorCodes' => [ + 400 => [ + ['errorCode' => 'SwitchMaster.InstanceInvalid', 'errorMessage' => 'Instance not in the cluster.', 'description' => ''], + ['errorCode' => 'LeaveCluster.MasterLast', 'errorMessage' => 'Master instance can not leave a cluster until all other instances are left.', 'description' => ''], + ['errorCode' => 'Certificate.ChainInvalid', 'errorMessage' => 'Certificate chain invalid. Please make sure issuer certificate is the trust anchor and cluster certificate is signed by issuer certificate.', 'description' => ''], + ['errorCode' => 'Certificate.FormatInvalid', 'errorMessage' => 'Certificate format invalid. Cluster/Issuer certificate must be in PEM format.', 'description' => ''], + ['errorCode' => 'ConfigClusterSubnet.DuplicateZone', 'errorMessage' => 'VSwitches should not contain duplicate zones.', 'description' => ''], + ['errorCode' => 'InvalidApiParam.Error', 'errorMessage' => 'api param is invalid', 'description' => ''], + ['errorCode' => 'InvalidClusterName', 'errorMessage' => 'Invalid parameter clusterName.', 'description' => ''], + ['errorCode' => 'InvalidPageSize', 'errorMessage' => 'Invalid parameter pageSize.', 'description' => ''], + ['errorCode' => 'InvalidCurrentPage', 'errorMessage' => 'Invalid parameter currentPage.', 'description' => ''], + ['errorCode' => 'InvalidRegionId', 'errorMessage' => 'Invalid parameter regionId.', 'description' => ''], + ['errorCode' => 'InvalidVSwitch', 'errorMessage' => 'Invalid parameter vSwitch.', 'description' => ''], + ['errorCode' => 'InvalidVpc', 'errorMessage' => 'Invalid parameter vpcId.', 'description' => ''], + ['errorCode' => 'InvalidIp', 'errorMessage' => 'Invalid parameter IP.', 'description' => ''], + ['errorCode' => 'InvalidAliuid', 'errorMessage' => 'Invalid parameter aliuid.', 'description' => ''], + ['errorCode' => 'InvalidClusterId', 'errorMessage' => 'Invalid parameter clusterId.', 'description' => ''], + ['errorCode' => 'InvalidInstanceId', 'errorMessage' => 'Invalid parameter instanceId.', 'description' => ''], + ['errorCode' => 'InvalidBackupId', 'errorMessage' => 'Invalid parameter backupId.', 'description' => ''], + ['errorCode' => 'InvalidImageId', 'errorMessage' => 'Invalid parameter imageId.', 'description' => ''], + ['errorCode' => 'HsmInstanceNotExist.Error', 'errorMessage' => 'hsm instance not exist', 'description' => ''], + ['errorCode' => 'HSMIntanceNotActived.Error', 'errorMessage' => 'hsm intance is not actived', 'description' => ''], + ['errorCode' => 'WhiteListMaxCount.Error', 'errorMessage' => 'whilte list is more than max count', 'description' => ''], + ['errorCode' => 'ClusterIdIsNotExists.Error', 'errorMessage' => 'cluster ID non-exists', 'description' => ''], + ['errorCode' => 'InstanceListIsEmpty.Error', 'errorMessage' => 'instance list is empty', 'description' => ''], + ['errorCode' => 'InstanceIdIsEmpty.Error', 'errorMessage' => 'instance id is empty', 'description' => ''], + ['errorCode' => 'InstanceIsNotExistsInCluster.Error', 'errorMessage' => 'cluster has no such instance', 'description' => ''], + ['errorCode' => 'InstanceIsExistsInCluster.Error', 'errorMessage' => 'instance already in the cluster', 'description' => ''], + ['errorCode' => 'RegionNoEmpty.Error', 'errorMessage' => 'region no. is empty', 'description' => ''], + ['errorCode' => 'ClusterNameEmpty.Error', 'errorMessage' => 'empty cluster name not allowed', 'description' => ''], + ['errorCode' => 'ClusterNameIsExists.Error', 'errorMessage' => 'the cluster name is already taken', 'description' => ''], + ['errorCode' => 'IpNotValid.Error', 'errorMessage' => 'ip not valid', 'description' => ''], + ['errorCode' => 'ClusterIsEmpty.Error', 'errorMessage' => 'cluster is empty', 'description' => ''], + ['errorCode' => 'NoMasterFoundInCluster.Error', 'errorMessage' => 'cluster has no master instance', 'description' => ''], + ['errorCode' => 'HsmInstanceIdNotFound.Error', 'errorMessage' => 'no such instance', 'description' => ''], + ['errorCode' => 'NoInstanceFoundInCluster.Error', 'errorMessage' => 'cluster is empty', 'description' => ''], + ['errorCode' => 'Whitelist.Invalid', 'errorMessage' => 'Whitelist blocks not in CIDR format.', 'description' => ''], + ['errorCode' => 'Whitelist.TooLong', 'errorMessage' => 'Whitelist too long, exceeds 10 CIDR blocks.', 'description' => ''], + ], 403 => [ - [ - 'errorCode' => 'NoPermission', - 'errorMessage' => 'caller has no permission', - ], - [ - 'errorCode' => 'Backup.Deleted', - 'errorMessage' => 'Backup has been deleted.', - ], + ['errorCode' => 'NoPermission', 'errorMessage' => 'Caller has no permission on the resource.', 'description' => ''], + ['errorCode' => 'InstanceNotPaused', 'errorMessage' => 'Please pause the instance before reset.', 'description' => ''], + ['errorCode' => 'InstanceNotActive', 'errorMessage' => 'Instance is not active.', 'description' => ''], + ['errorCode' => 'ConfigIp.IncorrectState', 'errorMessage' => 'Instance not in pending or active state, can not config IP address.', 'description' => ''], + ['errorCode' => 'SwitchMaster.IncorrectState', 'errorMessage' => 'Cluster not initialized, please initialize the cluster first.', 'description' => ''], + ['errorCode' => 'SyncCluster.IncorrectState', 'errorMessage' => 'Cluster not initialized, please initialize the cluster first.', 'description' => ''], + ['errorCode' => 'LeaveCluster.InstanceInvalid', 'errorMessage' => 'The instance is not in the cluster.', 'description' => ''], + ['errorCode' => 'DeleteCluster.IncorrectState', 'errorMessage' => 'Cluster not empty, please remove all instances first.', 'description' => ''], + ['errorCode' => 'JoinCluster.InstanceVSwitchNotInCluster', 'errorMessage' => 'Instance\'s vSwitch is not in cluster config, please change instance\'s vSwitch first.', 'description' => ''], + ['errorCode' => 'JoinCluster.InstanceInitialized', 'errorMessage' => 'Initialized instance can not join a cluster.', 'description' => ''], + ['errorCode' => 'JoinCluster.IncorrectState', 'errorMessage' => 'Cluster not initialized, please initialize the cluster first.', 'description' => ''], + ['errorCode' => 'InitializeCluster.InstanceNotInitialized', 'errorMessage' => 'Cluster master instance not initialized, please initialize cluster master instance first.', 'description' => ''], + ['errorCode' => 'InitializeCluster.IncorrectConfig', 'errorMessage' => 'Cluster subnet not configured, please config cluster subnet first.', 'description' => ''], + ['errorCode' => 'InitializeCluster.IncorrectState', 'errorMessage' => 'Cluster initialized, do not re-initialize.', 'description' => ''], + ['errorCode' => 'Cluster.CN.ActionForbidden', 'errorMessage' => 'This API is forbidden for non-international site cluster.', 'description' => ''], + ['errorCode' => 'Cluster.INTL.ActionForbidden', 'errorMessage' => 'This API is forbidden for international site cluster.', 'description' => ''], + ['errorCode' => 'ConfigClusterCertificate.IncorrectState', 'errorMessage' => 'Cluster initialized or certificates already configured.', 'description' => ''], + ['errorCode' => 'ConfigClusterSubnet.InvalidVpcId', 'errorMessage' => 'VPC Id invalid. Cluster VPC is the same as cluster master\'s VPC.', 'description' => ''], + ['errorCode' => 'ConfigClusterSubnet.InvalidVSwitchId', 'errorMessage' => 'VSwitch Id invalid. VSwitches should contain all current cluster vSwitches.', 'description' => ''], + ['errorCode' => 'ConfigClusterSubnet.IncorrectState', 'errorMessage' => 'Cluster not in NEW state, can not config cluster subnet.', 'description' => ''], + ['errorCode' => 'ClusterName.Exist', 'errorMessage' => 'Cluster name already exists, please use another name.', 'description' => ''], + ['errorCode' => 'Whitelist.InstanceInCluster', 'errorMessage' => 'Whitelist.InstanceInCluster', 'description' => ''], + ], + [ + ['errorCode' => 'Resource.NotFound', 'errorMessage' => 'Resource not found.', 'description' => ''], + ], + [ + ['errorCode' => 'ClusterAPI.NotSupported', 'errorMessage' => 'ClusterAPI not supported in this region.', 'description' => ''], + ], + 409 => [ + ['errorCode' => 'Conflict', 'errorMessage' => 'Resource is being updated by a previous request. Current request is redundant.', 'description' => ''], + ['errorCode' => 'Cluster.Conflict', 'errorMessage' => 'The cluster is being updated by a previous request. Please try again later.', 'description' => ''], + ], + 500 => [ + ['errorCode' => 'ConfigWhitelistFailed.Error', 'errorMessage' => 'config white list error', 'description' => ''], + ['errorCode' => 'ActionFailed.Error', 'errorMessage' => 'internal error, please try again', 'description' => ''], + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to some unknown error.', 'description' => '未知错误导致请求处理失败。'], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '配置集群白名单', + 'description' => '集群的白名单优先级高于实例的白名单。集群模式下建议您创建集群白名单,不需要再创建密码机白名单。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], + ], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'yundun-hsm:ConfigClusterWhitelist', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DataEncryptionService', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], - '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' => '查询镜像列表', + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"4C467B38-3910-447D-87BC-AC049166F216\\"\\n}","type":"json"}]', ], 'ConfigImageRemark' => [ 'summary' => '修改镜像备注信息。', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -827,27 +937,22 @@ ], 'operationType' => 'write', 'deprecated' => false, - 'systemTags' => [], + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => ['FEATUREhsmV7VE3Y', 'FEATUREhsm01FLNB', 'FEATUREhsmGIFYCG', 'FEATUREhsmLBBV5W'], + ], 'parameters' => [ [ 'name' => 'ImageId', 'in' => 'query', - 'schema' => [ - 'description' => '镜像ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'image-d79x4k11pmg19****', - ], + 'schema' => ['description' => '镜像ID。', 'type' => 'string', 'required' => true, 'example' => 'image-d79x4k11pmg19****'], ], [ 'name' => 'Remark', 'in' => 'query', - 'schema' => [ - 'description' => '镜像备注。', - 'type' => 'string', - 'required' => true, - 'example' => 'hsm-****', - ], + 'schema' => ['description' => '镜像备注。', 'type' => 'string', 'required' => true, 'example' => 'hsm-****'], ], ], 'responses' => [ @@ -857,485 +962,220 @@ 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '本次调用请求的ID,是由阿里云为该请求生成的唯一标识符,可用于排查和定位问题。', - 'type' => 'string', - 'example' => '4C467B38-3910-447D-87BC-AC049166F216', - ], + 'RequestId' => ['title' => 'Id of the request', 'description' => '本次调用请求的ID,是由阿里云为该请求生成的唯一标识符,可用于排查和定位问题。', 'type' => 'string', 'example' => '4C467B38-3910-447D-87BC-AC049166F216'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidApiParam.Error', - 'errorMessage' => 'api param is invalid', - ], + ['errorCode' => 'InvalidApiParam.Error', 'errorMessage' => 'api param is invalid', 'description' => ''], ], 403 => [ - [ - 'errorCode' => 'NoPermission', - 'errorMessage' => 'caller has no permission', - ], + ['errorCode' => 'NoPermission', 'errorMessage' => 'caller has no permission', 'description' => ''], ], 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'The request processing has failed due to some unknown error.', - ], + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to some unknown error.', 'description' => '未知错误导致请求处理失败。'], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '配置镜像备注', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], + ], + 'ramActions' => [ + [ + 'operationType' => '', + 'ramAction' => [ + 'action' => 'yundun-hsm:ConfigImageRemark', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DataEncryptionService', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"4C467B38-3910-447D-87BC-AC049166F216\\"\\n}","type":"json"}]', - 'title' => '配置镜像备注', ], - 'CopyImage' => [ - 'summary' => '复制镜像到其他地域。', - 'methods' => [ - 'post', - ], - 'schemes' => [ - 'https', - ], + 'ConfigInstanceIpAddress' => [ + 'summary' => '修改实例VPC网络地址。', + 'methods' => ['post'], + 'schemes' => ['https'], 'security' => [ [ 'AK' => [], ], ], + 'operationType' => 'write', 'deprecated' => false, 'systemTags' => [ 'operationType' => 'update', - 'abilityTreeCode' => '218511', - 'abilityTreeNodes' => [ - 'FEATUREhsmQEGDGS', - ], + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '211785', + 'abilityTreeNodes' => ['FEATUREhsmV7VE3Y', 'FEATUREhsm01FLNB', 'FEATUREhsmGIFYCG', 'FEATUREhsmLBBV5W'], ], 'parameters' => [ [ - 'name' => 'ImageUid', + 'name' => 'RegionId', 'in' => 'formData', - 'schema' => [ - 'description' => '镜像ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'image-hafiudfahdd****', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => true, 'example' => 'cn-hangzhou'], ], [ - 'name' => 'TargetRegionId', + 'name' => 'InstanceId', 'in' => 'formData', - 'schema' => [ - 'description' => '目标地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-beijing', - ], + 'schema' => ['description' => '密码机实例ID。', 'type' => 'string', 'required' => true, 'example' => 'hsm-cn-mp90fxef****'], + ], + [ + 'name' => 'VpcId', + 'in' => 'formData', + 'schema' => ['description' => '密码机实例所属VPC ID。', 'type' => 'string', 'required' => true, 'example' => 'vpc-lmkmivmo6****'], + ], + [ + 'name' => 'VSwitchId', + 'in' => 'formData', + 'schema' => ['description' => '密码机实例所属子网的交换机ID。', 'type' => 'string', 'required' => true, 'example' => 'vsw-u7gb0qahu****'], + ], + [ + 'name' => 'Ip', + 'in' => 'formData', + 'schema' => ['description' => '密码机实例所属VPC网络内的IP地址。', 'type' => 'string', 'required' => true, 'example' => '192.168.XX.XX'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'PlainResult<OpenApiAsyncJob>', - 'description' => '任务详情。', + 'title' => 'BaseResult', + 'description' => 'BaseResult', 'type' => 'object', 'properties' => [ - 'JobId' => [ - 'description' => '任务ID。', - 'type' => 'string', - 'example' => 'job-202401250936hze747fd7e0007005', - ], - 'Type' => [ - 'description' => '操作类型。'."\n" - ."\n" - .'- create:创建任务'."\n" - ."\n" - .'- cancel:取消任务', - 'type' => 'string', - 'example' => 'create', - ], - 'Completed' => [ - 'description' => '任务是否完成。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'CreateTime' => [ - 'description' => '任务创建时间,精确到毫秒。时间戳格式。', - 'type' => 'string', - 'example' => '1724379766191', - ], - 'Status' => [ - 'description' => '任务状态。', - 'type' => 'string', - 'example' => 'running', - ], - 'Response' => [ - 'description' => '当任务成功后返回的响应信息。', - 'type' => 'string', - 'example' => 'success', - ], - 'Error' => [ - 'description' => '任务失败时的错误信息。', - 'type' => 'string', - 'example' => 'OperationTimeout', - ], - 'Progress' => [ - 'description' => '任务执行进度。单位为百分比。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '100', - ], - 'RequestId' => [ - 'description' => '本次调用请求的ID,是由阿里云为该请求生成的唯一标识符,可用于排查和定位问题。', - 'type' => 'string', - 'example' => '4C467B38-3910-447D-87BC-AC049166F216', - ], + 'RequestId' => ['description' => '本次调用请求的ID,是由阿里云为该请求生成的唯一标识符,可用于排查和定位问题。', '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' => 'SwitchMaster.InstanceInvalid', 'errorMessage' => 'Instance not in the cluster.', 'description' => ''], + ['errorCode' => 'LeaveCluster.MasterLast', 'errorMessage' => 'Master instance can not leave a cluster until all other instances are left.', 'description' => ''], + ['errorCode' => 'Certificate.ChainInvalid', 'errorMessage' => 'Certificate chain invalid. Please make sure issuer certificate is the trust anchor and cluster certificate is signed by issuer certificate.', 'description' => ''], + ['errorCode' => 'Certificate.FormatInvalid', 'errorMessage' => 'Certificate format invalid. Cluster/Issuer certificate must be in PEM format.', 'description' => ''], + ['errorCode' => 'ConfigClusterSubnet.DuplicateZone', 'errorMessage' => 'VSwitches should not contain duplicate zones.', 'description' => ''], + ['errorCode' => 'InvalidApiParam.Error', 'errorMessage' => 'api param is invalid', 'description' => ''], + ['errorCode' => 'InvalidClusterName', 'errorMessage' => 'Invalid parameter clusterName.', 'description' => ''], + ['errorCode' => 'InvalidPageSize', 'errorMessage' => 'Invalid parameter pageSize.', 'description' => ''], + ['errorCode' => 'InvalidCurrentPage', 'errorMessage' => 'Invalid parameter currentPage.', 'description' => ''], + ['errorCode' => 'InvalidRegionId', 'errorMessage' => 'Invalid parameter regionId.', 'description' => ''], + ['errorCode' => 'InvalidZoneId', 'errorMessage' => 'Invalid parameter zoneId.', 'description' => ''], + ['errorCode' => 'InvalidVSwitch', 'errorMessage' => 'Invalid parameter vSwitch.', 'description' => ''], + ['errorCode' => 'InvalidVpc', 'errorMessage' => 'Invalid parameter vpcId.', 'description' => ''], + ['errorCode' => 'InvalidVsmType', 'errorMessage' => 'Invalid parameter vsmType.', 'description' => ''], + ['errorCode' => 'InvalidIp', 'errorMessage' => 'Invalid parameter IP.', 'description' => ''], + ['errorCode' => 'InvalidAliuid', 'errorMessage' => 'Invalid parameter aliuid.', 'description' => ''], + ['errorCode' => 'InvalidClusterId', 'errorMessage' => 'Invalid parameter clusterId.', 'description' => ''], + ['errorCode' => 'InvalidInstanceId', 'errorMessage' => 'Invalid parameter instanceId.', 'description' => ''], + ['errorCode' => 'InvalidBackupId', 'errorMessage' => 'Invalid parameter backupId.', 'description' => ''], + ['errorCode' => 'InvalidImageId', 'errorMessage' => 'Invalid parameter imageId.', 'description' => ''], + ['errorCode' => 'HsmInstanceNotExist.Error', 'errorMessage' => 'hsm instance not exist', 'description' => ''], + ['errorCode' => 'HSMIntanceNotActived.Error', 'errorMessage' => 'hsm intance is not actived', 'description' => ''], + ['errorCode' => 'WhiteListMaxCount.Error', 'errorMessage' => 'whilte list is more than max count', 'description' => ''], + ['errorCode' => 'ClusterIdIsNotExists.Error', 'errorMessage' => 'cluster ID non-exists', 'description' => ''], + ['errorCode' => 'InstanceListIsEmpty.Error', 'errorMessage' => 'instance list is empty', 'description' => ''], + ['errorCode' => 'InstanceIdIsEmpty.Error', 'errorMessage' => 'instance id is empty', 'description' => ''], + ['errorCode' => 'InstanceIsNotExistsInCluster.Error', 'errorMessage' => 'cluster has no such instance', 'description' => ''], + ['errorCode' => 'InstanceIsExistsInCluster.Error', 'errorMessage' => 'instance already in the cluster', 'description' => ''], + ['errorCode' => 'RegionNoEmpty.Error', 'errorMessage' => 'region no. is empty', 'description' => ''], + ['errorCode' => 'ClusterNameEmpty.Error', 'errorMessage' => 'empty cluster name not allowed', 'description' => ''], + ['errorCode' => 'ClusterNameIsExists.Error', 'errorMessage' => 'the cluster name is already taken', 'description' => ''], + ['errorCode' => 'IpNotValid.Error', 'errorMessage' => 'ip not valid', 'description' => ''], + ['errorCode' => 'ClusterIsEmpty.Error', 'errorMessage' => 'cluster is empty', 'description' => ''], + ['errorCode' => 'NoMasterFoundInCluster.Error', 'errorMessage' => 'cluster has no master instance', 'description' => ''], + ['errorCode' => 'HsmInstanceIdNotFound.Error', 'errorMessage' => 'no such instance', 'description' => ''], + ['errorCode' => 'NoInstanceFoundInCluster.Error', 'errorMessage' => 'cluster is empty', 'description' => ''], + ['errorCode' => 'Whitelist.Invalid', 'errorMessage' => 'Whitelist blocks not in CIDR format.', 'description' => ''], + ['errorCode' => 'Whitelist.TooLong', 'errorMessage' => 'Whitelist too long, exceeds 10 CIDR blocks.', 'description' => ''], + ['errorCode' => 'ConfigIp.IpAlreadyInUse', 'errorMessage' => 'Ip is in use, can not config IP address.', 'description' => ''], + ['errorCode' => 'ConfigIp.VpcIpNotMatched', 'errorMessage' => 'Vpc Ip must be in vpc network segment.', 'description' => ''], + ['errorCode' => 'ConfigIp.IpOverFlow', 'errorMessage' => 'Vpc ip last place can not be in [253-255].', 'description' => ''], ], 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.', - ], + ['errorCode' => 'NoPermission', 'errorMessage' => 'User has no permission to access this resource.', 'description' => ''], + ['errorCode' => 'Trial.Forbidden', 'errorMessage' => 'Current user is not allowed for trials!', 'description' => ''], + ['errorCode' => 'Forbidden.InstanceInCluster', 'errorMessage' => 'This API is forbidden for instances in cluster.', 'description' => ''], + ['errorCode' => 'JoinCluster.InstanceIncorrectState', 'errorMessage' => 'Instance not in Active/Pending state.', 'description' => ''], + ['errorCode' => 'InstanceNotPaused', 'errorMessage' => 'Please pause the instance before reset.', 'description' => ''], + ['errorCode' => 'InstanceNotActive', 'errorMessage' => 'Instance is not active.', 'description' => ''], + ['errorCode' => 'ConfigIp.IncorrectState', 'errorMessage' => 'Instance not in pending or active state, can not config IP address.', 'description' => ''], + ['errorCode' => 'SwitchMaster.IncorrectState', 'errorMessage' => 'Cluster not initialized, please initialize the cluster first.', 'description' => ''], + ['errorCode' => 'SyncCluster.IncorrectState', 'errorMessage' => 'Cluster not initialized, please initialize the cluster first.', 'description' => ''], + ['errorCode' => 'LeaveCluster.InstanceInvalid', 'errorMessage' => 'The instance is not in the cluster.', 'description' => ''], + ['errorCode' => 'DeleteCluster.IncorrectState', 'errorMessage' => 'Cluster not empty, please remove all instances first.', 'description' => ''], + ['errorCode' => 'JoinCluster.InstanceVSwitchNotInCluster', 'errorMessage' => 'Instance\'s vSwitch is not in cluster config, please change instance\'s vSwitch first.', 'description' => ''], + ['errorCode' => 'JoinCluster.InstanceInitialized', 'errorMessage' => 'Initialized instance can not join a cluster.', 'description' => ''], + ['errorCode' => 'JoinCluster.IncorrectState', 'errorMessage' => 'Cluster not initialized, please initialize the cluster first.', 'description' => ''], + ['errorCode' => 'InitializeCluster.InstanceNotInitialized', 'errorMessage' => 'Cluster master instance not initialized, please initialize cluster master instance first.', 'description' => ''], + ['errorCode' => 'InitializeCluster.IncorrectConfig', 'errorMessage' => 'Cluster subnet not configured, please config cluster subnet first.', 'description' => ''], + ['errorCode' => 'InitializeCluster.IncorrectState', 'errorMessage' => 'Cluster initialized, do not re-initialize.', 'description' => ''], + ['errorCode' => 'Cluster.CN.ActionForbidden', 'errorMessage' => 'This API is forbidden for non-international site cluster.', 'description' => ''], + ['errorCode' => 'Cluster.INTL.ActionForbidden', 'errorMessage' => 'This API is forbidden for international site cluster.', 'description' => ''], + ['errorCode' => 'ConfigClusterCertificate.IncorrectState', 'errorMessage' => 'Cluster initialized or certificates already configured.', 'description' => ''], + ['errorCode' => 'ConfigClusterSubnet.InvalidVpcId', 'errorMessage' => 'VPC Id invalid. Cluster VPC is the same as cluster master\'s VPC.', 'description' => ''], + ['errorCode' => 'ConfigClusterSubnet.InvalidVSwitchId', 'errorMessage' => 'VSwitch Id invalid. VSwitches should contain all current cluster vSwitches.', 'description' => ''], + ['errorCode' => 'ConfigClusterSubnet.IncorrectState', 'errorMessage' => 'Cluster not in NEW state, can not config cluster subnet.', 'description' => ''], + ['errorCode' => 'ClusterName.Exist', 'errorMessage' => 'Cluster name already exists, please use another name.', 'description' => ''], + ['errorCode' => 'Image.ImageStatusInValid', 'errorMessage' => 'Image status is invalid.', 'description' => ''], + ['errorCode' => 'CopyImage.ImageAlreadyCopied', 'errorMessage' => 'Image already copied, secondary copy is not supported.', 'description' => ''], + ['errorCode' => 'Image.ActionForbiddenINTL', 'errorMessage' => 'This API is forbidden for international site.', 'description' => ''], + ['errorCode' => 'Image.ActionForbiddenCN', 'errorMessage' => 'This API is forbidden for non-international site.', 'description' => ''], + ['errorCode' => 'CopyImage.RegionInvalid', 'errorMessage' => 'Source region or target region invalid.', 'description' => ''], + ['errorCode' => 'Backup.ActionForbiddenINTL', 'errorMessage' => 'This API is forbidden for international site.', 'description' => ''], + ['errorCode' => 'CopyImage.TargetRegionImageAlreadyExists', 'errorMessage' => 'Target region has the same digest image.', 'description' => ''], + ], + [ + ['errorCode' => 'Resource.NotFound', 'errorMessage' => 'Resource not found.', 'description' => ''], + ], + [ + ['errorCode' => 'ClusterAPI.NotSupported', 'errorMessage' => 'ClusterAPI not supported in this region.', 'description' => ''], ], 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.', - ], + ['errorCode' => 'Conflict.InstanceModifying', 'errorMessage' => 'Instance is being modified by a previous request. Please try again later.', 'description' => ''], + ['errorCode' => 'Conflict', 'errorMessage' => 'Resource is being updated by a previous request. Current request is redundant.', 'description' => ''], + ['errorCode' => 'Cluster.Conflict', 'errorMessage' => 'The cluster is being updated by a previous request. Please try again later.', 'description' => ''], ], 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.', - ], + ['errorCode' => 'ConfigWhitelistFailed.Error', 'errorMessage' => 'config white list error', 'description' => ''], + ['errorCode' => 'ActionFailed.Error', 'errorMessage' => 'internal error, please try again', 'description' => ''], + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to some unknown error.', 'description' => '未知错误导致请求处理失败。'], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '配置实例VPC网络地址', + 'description' => '已加入集群的实例无法修改VPC网络地址。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], + ], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'yundun-hsm:ConfigInstanceIpAddress', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DataEncryptionService', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], - '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' => '复制镜像', - 'description' => '要求目标地域没有相同镜像。仅非中国内地密码机支持此接口调用。', + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"4C467B38-3910-447D-87BC-AC049166F216\\"\\n}","type":"json"}]', ], - 'ExportImage' => [ - 'summary' => '导出指定密码机的镜像。', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'ConfigInstanceRemark' => [ + 'summary' => '修改实例备注。', + 'methods' => ['post'], + 'schemes' => ['https'], 'security' => [ [ 'AK' => [], @@ -1344,163 +1184,137 @@ 'operationType' => 'write', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'none', + 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '203656', - 'abilityTreeNodes' => [ - 'FEATUREhsmV7VE3Y', - 'FEATUREhsm01FLNB', - 'FEATUREhsmGIFYCG', - 'FEATUREhsmLBBV5W', - ], + 'abilityTreeNodes' => ['FEATUREhsmV7VE3Y', 'FEATUREhsm01FLNB', 'FEATUREhsmGIFYCG', 'FEATUREhsmLBBV5W'], ], 'parameters' => [ [ 'name' => 'InstanceId', - 'in' => 'query', - 'schema' => [ - 'description' => '密码机实例ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'hsm-cn-vj30bil8****', - ], + 'in' => 'formData', + 'schema' => ['description' => '密码机实例ID。', 'type' => 'string', 'required' => true, 'example' => 'hsm-cn-vj30bil8****'], ], [ - 'name' => 'ImageId', - 'in' => 'query', - 'schema' => [ - 'description' => '镜像ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'image-8vbdd5uc6v10ecn5****', - ], + 'name' => 'Remark', + 'in' => 'formData', + 'schema' => ['description' => '备注信息。', 'type' => 'string', 'required' => true, 'example' => 'hsmOnline'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'Schema of Response', - 'description' => '响应信息。', + 'title' => 'BaseResult', + 'description' => 'BaseResult', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '本次调用请求的ID,是由阿里云为该请求生成的唯一标识符,可用于排查和定位问题。', - 'type' => 'string', - 'example' => '4C467B38-3910-447D-87BC-AC049166F216', - ], - 'Job' => [ - 'description' => '返回的异步任务信息。', - 'type' => 'object', - 'properties' => [ - 'JobId' => [ - 'description' => '任务ID。', - 'type' => 'string', - 'example' => 'b1748ca6-6b55-49f4-a6d4-2d694a9f3693', - ], - 'Type' => [ - 'description' => '任务操作类型。'."\n" - ."\n" - .'- create:创建任务'."\n" - ."\n" - .'- cancel:取消任务', - 'type' => 'string', - 'example' => 'create', - ], - 'Completed' => [ - 'description' => '任务是否完成。'."\n" - ."\n" - .'- true:已完成'."\n" - ."\n" - .'- false:未完成', - 'type' => 'boolean', - 'example' => 'true', - ], - 'Status' => [ - 'description' => '任务状态。'."\n" - .'- running:执行中'."\n" - ."\n" - .' - cancel:取消'."\n" - .'- fail:失败 '."\n" - .'- success:成功', - 'type' => 'string', - 'enumValueTitles' => [ - 'running' => '执行中', - 'cancel' => '取消', - 'fail' => '失败', - 'success' => '成功', - ], - 'example' => 'running', - 'enum' => [ - 'running', - 'success', - 'fail', - 'cancel', - ], - ], - 'Response' => [ - 'description' => '操作成功后的响应信息。', - 'type' => 'string', - 'example' => 'success', - ], - 'Error' => [ - 'description' => '操作异常或者失败时的错误信息。', - 'type' => 'string', - 'example' => 'Job.Canceled', - ], - 'Process' => [ - 'description' => '任务执行进度。单位为百分比。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '100', - ], - ], - ], + 'RequestId' => ['description' => '本次调用请求的ID,是由阿里云为该请求生成的唯一标识符,可用于排查和定位问题。', 'type' => 'string', 'example' => '4C467B38-3910-447D-87BC-AC049166F216'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidApiParam.Error', - 'errorMessage' => 'api param is invalid', - ], + ['errorCode' => 'SwitchMaster.InstanceInvalid', 'errorMessage' => 'Instance not in the cluster.', 'description' => ''], + ['errorCode' => 'LeaveCluster.MasterLast', 'errorMessage' => 'Master instance can not leave a cluster until all other instances are left.', 'description' => ''], + ['errorCode' => 'Certificate.ChainInvalid', 'errorMessage' => 'Certificate chain invalid. Please make sure issuer certificate is the trust anchor and cluster certificate is signed by issuer certificate.', 'description' => ''], + ['errorCode' => 'Certificate.FormatInvalid', 'errorMessage' => 'Certificate format invalid. Cluster/Issuer certificate must be in PEM format.', 'description' => ''], + ['errorCode' => 'ConfigClusterSubnet.DuplicateZone', 'errorMessage' => 'VSwitches should not contain duplicate zones.', 'description' => ''], + ['errorCode' => 'InvalidApiParam.Error', 'errorMessage' => 'api param is invalid', 'description' => ''], + ['errorCode' => 'InvalidClusterName', 'errorMessage' => 'Invalid parameter clusterName.', 'description' => ''], + ['errorCode' => 'InvalidPageSize', 'errorMessage' => 'Invalid parameter pageSize.', 'description' => ''], + ['errorCode' => 'InvalidCurrentPage', 'errorMessage' => 'Invalid parameter currentPage.', 'description' => ''], + ['errorCode' => 'InvalidRegionId', 'errorMessage' => 'Invalid parameter regionId.', 'description' => ''], + ['errorCode' => 'InvalidVSwitch', 'errorMessage' => 'Invalid parameter vSwitch.', 'description' => ''], + ['errorCode' => 'InvalidVpc', 'errorMessage' => 'Invalid parameter vpcId.', 'description' => ''], + ['errorCode' => 'InvalidIp', 'errorMessage' => 'Invalid parameter IP.', 'description' => ''], + ['errorCode' => 'InvalidAliuid', 'errorMessage' => 'Invalid parameter aliuid.', 'description' => ''], + ['errorCode' => 'InvalidClusterId', 'errorMessage' => 'Invalid parameter clusterId.', 'description' => ''], + ['errorCode' => 'InvalidInstanceId', 'errorMessage' => 'Invalid parameter instanceId.', 'description' => ''], + ['errorCode' => 'InvalidBackupId', 'errorMessage' => 'Invalid parameter backupId.', 'description' => ''], + ['errorCode' => 'InvalidImageId', 'errorMessage' => 'Invalid parameter imageId.', 'description' => ''], + ['errorCode' => 'HsmInstanceNotExist.Error', 'errorMessage' => 'hsm instance not exist', 'description' => ''], + ['errorCode' => 'HSMIntanceNotActived.Error', 'errorMessage' => 'hsm intance is not actived', 'description' => ''], + ['errorCode' => 'WhiteListMaxCount.Error', 'errorMessage' => 'whilte list is more than max count', 'description' => ''], + ['errorCode' => 'ClusterIdIsNotExists.Error', 'errorMessage' => 'cluster ID non-exists', 'description' => ''], + ['errorCode' => 'InstanceListIsEmpty.Error', 'errorMessage' => 'instance list is empty', 'description' => ''], + ['errorCode' => 'InstanceIdIsEmpty.Error', 'errorMessage' => 'instance id is empty', 'description' => ''], + ['errorCode' => 'InstanceIsNotExistsInCluster.Error', 'errorMessage' => 'cluster has no such instance', 'description' => ''], + ['errorCode' => 'InstanceIsExistsInCluster.Error', 'errorMessage' => 'instance already in the cluster', 'description' => ''], + ['errorCode' => 'RegionNoEmpty.Error', 'errorMessage' => 'region no. is empty', 'description' => ''], + ['errorCode' => 'ClusterNameEmpty.Error', 'errorMessage' => 'empty cluster name not allowed', 'description' => ''], + ['errorCode' => 'ClusterNameIsExists.Error', 'errorMessage' => 'the cluster name is already taken', 'description' => ''], + ['errorCode' => 'IpNotValid.Error', 'errorMessage' => 'ip not valid', 'description' => ''], + ['errorCode' => 'ClusterIsEmpty.Error', 'errorMessage' => 'cluster is empty', 'description' => ''], + ['errorCode' => 'NoMasterFoundInCluster.Error', 'errorMessage' => 'cluster has no master instance', 'description' => ''], + ['errorCode' => 'HsmInstanceIdNotFound.Error', 'errorMessage' => 'no such instance', 'description' => ''], + ['errorCode' => 'NoInstanceFoundInCluster.Error', 'errorMessage' => 'cluster is empty', 'description' => ''], + ['errorCode' => 'Whitelist.Invalid', 'errorMessage' => 'Whitelist blocks not in CIDR format.', 'description' => ''], + ['errorCode' => 'Whitelist.TooLong', 'errorMessage' => 'Whitelist too long, exceeds 10 CIDR blocks.', 'description' => ''], ], 403 => [ - [ - 'errorCode' => 'NoPermission', - 'errorMessage' => 'User has no permission to access this resource.', - ], - [ - 'errorCode' => 'Backup.ActionForbidden', - 'errorMessage' => 'This API is forbidden for this backup type.', - ], + ['errorCode' => 'NoPermission', 'errorMessage' => 'Caller has no permission on the resource.', 'description' => ''], + ['errorCode' => 'InstanceNotPaused', 'errorMessage' => 'Please pause the instance before reset.', 'description' => ''], + ], + [ + ['errorCode' => 'Resource.NotFound', 'errorMessage' => 'Resource not found.', 'description' => ''], + ], + [ + ['errorCode' => 'ClusterAPI.NotSupported', 'errorMessage' => 'ClusterAPI not supported in this region.', 'description' => ''], + ], + 409 => [ + ['errorCode' => 'SwitchMaster.IncorrectState', 'errorMessage' => 'Cluster not initialized, please initialize the cluster first.', 'description' => ''], + ['errorCode' => 'Cluster.Conflict', 'errorMessage' => 'The cluster is being updated by a previous request. Please try again later.', 'description' => ''], + ['errorCode' => 'SyncCluster.IncorrectState', 'errorMessage' => 'Cluster not initialized, please initialize the cluster first.', 'description' => ''], + ['errorCode' => 'LeaveCluster.InstanceInvalid', 'errorMessage' => 'The instance is not in the cluster.', 'description' => ''], + ['errorCode' => 'DeleteCluster.IncorrectState', 'errorMessage' => 'Cluster not empty, please remove all instances first.', 'description' => ''], + ['errorCode' => 'JoinCluster.InstanceVSwitchNotInCluster', 'errorMessage' => 'Instance\'s vSwitch is not in cluster config, please change instance\'s vSwitch first.', 'description' => ''], + ['errorCode' => 'JoinCluster.InstanceInitialized', 'errorMessage' => 'Initialized instance can not join a cluster.', 'description' => ''], + ['errorCode' => 'JoinCluster.IncorrectState', 'errorMessage' => 'Cluster not initialized, please initialize the cluster first.', 'description' => ''], + ['errorCode' => 'InitializeCluster.InstanceNotInitialized', 'errorMessage' => 'Cluster master instance not initialized, please initialize cluster master instance first.', 'description' => ''], + ['errorCode' => 'InitializeCluster.IncorrectConfig', 'errorMessage' => 'Cluster subnet not configured, please config cluster subnet first.', 'description' => ''], + ['errorCode' => 'InitializeCluster.IncorrectState', 'errorMessage' => 'Cluster initialized, do not re-initialize.', 'description' => ''], + ['errorCode' => 'Cluster.CN.ActionForbidden', 'errorMessage' => 'This API is forbidden for non-international site cluster.', 'description' => ''], + ['errorCode' => 'Cluster.INTL.ActionForbidden', 'errorMessage' => 'This API is forbidden for international site cluster.', 'description' => ''], + ['errorCode' => 'ConfigClusterCertificate.IncorrectState', 'errorMessage' => 'Cluster initialized or certificates already configured.', 'description' => ''], + ['errorCode' => 'ConfigClusterSubnet.InvalidVpcId', 'errorMessage' => 'VPC Id invalid. Cluster VPC is the same as cluster master\'s VPC.', 'description' => ''], + ['errorCode' => 'ConfigClusterSubnet.InvalidVSwitchId', 'errorMessage' => 'VSwitch Id invalid. VSwitches should contain all current cluster vSwitches.', 'description' => ''], + ['errorCode' => 'ConfigClusterSubnet.IncorrectState', 'errorMessage' => 'Cluster not in NEW state, can not config cluster subnet.', 'description' => ''], + ['errorCode' => 'ClusterName.Exist', 'errorMessage' => 'Cluster name already exists, please use another name.', 'description' => ''], + ['errorCode' => 'Conflict', 'errorMessage' => 'Resource is being updated by a previous request. Current request is redundant.', 'description' => ''], + ['errorCode' => 'ConfigIp.IncorrectState', 'errorMessage' => 'Instance not in pending or active state, can not config IP address.', 'description' => ''], ], 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'The request processing has failed due to some unknown error.', - ], + ['errorCode' => 'ConfigWhitelistFailed.Error', 'errorMessage' => 'config white list error', 'description' => ''], + ['errorCode' => 'ActionFailed.Error', 'errorMessage' => 'internal error, please try again', 'description' => ''], + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to some unknown error.', 'description' => '未知错误导致请求处理失败。'], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '配置实例备注', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], + ], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'yundun-hsm:ConfigInstanceRemark', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DataEncryptionService', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], - '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' => '导出镜像', + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"4C467B38-3910-447D-87BC-AC049166F216\\"\\n}","type":"json"}]', ], - 'EnableBackup' => [ - 'summary' => '将备份与指定实例绑定。', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'ConfigInstanceWhitelist' => [ + 'summary' => '修改实例白名单。', + 'methods' => ['post'], + 'schemes' => ['https'], 'security' => [ [ 'AK' => [], @@ -1512,701 +1326,765 @@ 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '203669', - 'abilityTreeNodes' => [ - 'FEATUREhsmQEGDGS', - ], + 'abilityTreeNodes' => ['FEATUREhsmV7VE3Y', 'FEATUREhsm01FLNB', 'FEATUREhsmGIFYCG', 'FEATUREhsmLBBV5W'], ], 'parameters' => [ [ 'name' => 'InstanceId', - 'in' => 'query', - 'schema' => [ - 'description' => '密码机实例ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'hsm-cn-mp90fxef****', - ], + 'in' => 'formData', + 'schema' => ['description' => '密码机实例ID。', 'type' => 'string', 'required' => true, 'example' => 'hsm-cn-vj30bil8****'], ], [ - 'name' => 'BackupId', - 'in' => 'query', - 'schema' => [ - 'description' => '备份ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'backup-1736207****', - ], + 'name' => 'Whitelist', + 'in' => 'formData', + 'schema' => ['description' => '要配置的白名单IP列表,多个IP之间用空格或半角逗号分隔。', 'type' => 'string', 'required' => true, 'example' => '18.68.XX.XX,18.68.XX.XX'], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'title' => 'BaseResult', + 'description' => 'BaseResult', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '本次调用请求的ID,是由阿里云为该请求生成的唯一标识符,可用于排查和定位问题。', - 'type' => 'string', - 'example' => '4C467B38-3910-447D-87BC-AC049166F216', - ], + 'RequestId' => ['description' => '本次调用请求的ID,是由阿里云为该请求生成的唯一标识符,可用于排查和定位问题。', 'type' => 'string', 'example' => '4C467B38-3910-447D-87BC-AC049166F216'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidApiParam.Error', - 'errorMessage' => 'api param is invalid', - ], + ['errorCode' => 'SwitchMaster.InstanceInvalid', 'errorMessage' => 'Instance not in the cluster.', 'description' => ''], + ['errorCode' => 'LeaveCluster.MasterLast', 'errorMessage' => 'Master instance can not leave a cluster until all other instances are left.', 'description' => ''], + ['errorCode' => 'Certificate.ChainInvalid', 'errorMessage' => 'Certificate chain invalid. Please make sure issuer certificate is the trust anchor and cluster certificate is signed by issuer certificate.', 'description' => ''], + ['errorCode' => 'Certificate.FormatInvalid', 'errorMessage' => 'Certificate format invalid. Cluster/Issuer certificate must be in PEM format.', 'description' => ''], + ['errorCode' => 'ConfigClusterSubnet.DuplicateZone', 'errorMessage' => 'VSwitches should not contain duplicate zones.', 'description' => ''], + ['errorCode' => 'InvalidApiParam.Error', 'errorMessage' => 'api param is invalid', 'description' => ''], + ['errorCode' => 'InvalidClusterName', 'errorMessage' => 'Invalid parameter clusterName.', 'description' => ''], + ['errorCode' => 'InvalidPageSize', 'errorMessage' => 'Invalid parameter pageSize.', 'description' => ''], + ['errorCode' => 'InvalidCurrentPage', 'errorMessage' => 'Invalid parameter currentPage.', 'description' => ''], + ['errorCode' => 'InvalidRegionId', 'errorMessage' => 'Invalid parameter regionId.', 'description' => ''], + ['errorCode' => 'InvalidVSwitch', 'errorMessage' => 'Invalid parameter vSwitch.', 'description' => ''], + ['errorCode' => 'InvalidVpc', 'errorMessage' => 'Invalid parameter vpcId.', 'description' => ''], + ['errorCode' => 'InvalidIp', 'errorMessage' => 'Invalid parameter IP.', 'description' => ''], + ['errorCode' => 'InvalidAliuid', 'errorMessage' => 'Invalid parameter aliuid.', 'description' => ''], + ['errorCode' => 'InvalidClusterId', 'errorMessage' => 'Invalid parameter clusterId.', 'description' => ''], + ['errorCode' => 'InvalidInstanceId', 'errorMessage' => 'Invalid parameter instanceId.', 'description' => ''], + ['errorCode' => 'InvalidBackupId', 'errorMessage' => 'Invalid parameter backupId.', 'description' => ''], + ['errorCode' => 'InvalidImageId', 'errorMessage' => 'Invalid parameter imageId.', 'description' => ''], + ['errorCode' => 'HsmInstanceNotExist.Error', 'errorMessage' => 'hsm instance not exist', 'description' => ''], + ['errorCode' => 'HSMIntanceNotActived.Error', 'errorMessage' => 'hsm intance is not actived', 'description' => ''], + ['errorCode' => 'WhiteListMaxCount.Error', 'errorMessage' => 'whilte list is more than max count', 'description' => ''], + ['errorCode' => 'ClusterIdIsNotExists.Error', 'errorMessage' => 'cluster ID non-exists', 'description' => ''], + ['errorCode' => 'InstanceListIsEmpty.Error', 'errorMessage' => 'instance list is empty', 'description' => ''], + ['errorCode' => 'InstanceIdIsEmpty.Error', 'errorMessage' => 'instance id is empty', 'description' => ''], + ['errorCode' => 'InstanceIsNotExistsInCluster.Error', 'errorMessage' => 'cluster has no such instance', 'description' => ''], + ['errorCode' => 'InstanceIsExistsInCluster.Error', 'errorMessage' => 'instance already in the cluster', 'description' => ''], + ['errorCode' => 'RegionNoEmpty.Error', 'errorMessage' => 'region no. is empty', 'description' => ''], + ['errorCode' => 'ClusterNameEmpty.Error', 'errorMessage' => 'empty cluster name not allowed', 'description' => ''], + ['errorCode' => 'ClusterNameIsExists.Error', 'errorMessage' => 'the cluster name is already taken', 'description' => ''], + ['errorCode' => 'IpNotValid.Error', 'errorMessage' => 'ip not valid', 'description' => ''], + ['errorCode' => 'ClusterIsEmpty.Error', 'errorMessage' => 'cluster is empty', 'description' => ''], + ['errorCode' => 'NoMasterFoundInCluster.Error', 'errorMessage' => 'cluster has no master instance', 'description' => ''], + ['errorCode' => 'HsmInstanceIdNotFound.Error', 'errorMessage' => 'no such instance', 'description' => ''], + ['errorCode' => 'NoInstanceFoundInCluster.Error', 'errorMessage' => 'cluster is empty', 'description' => ''], + ['errorCode' => 'Whitelist.Invalid', 'errorMessage' => 'Whitelist blocks not in CIDR format.', 'description' => ''], + ['errorCode' => 'Whitelist.TooLong', 'errorMessage' => 'Whitelist too long, exceeds 10 CIDR blocks.', 'description' => ''], ], 403 => [ - [ - 'errorCode' => 'NoPermission', - 'errorMessage' => 'caller has no permission', - ], - [ - 'errorCode' => 'Backup.ActionForbidden', - 'errorMessage' => 'This API is forbidden for this backup type.', - ], + ['errorCode' => 'NoPermission', 'errorMessage' => 'Caller has no permission on the resource.', 'description' => ''], + ['errorCode' => 'InstanceNotPaused', 'errorMessage' => 'Please pause the instance before reset.', 'description' => ''], + ['errorCode' => 'InstanceNotActive', 'errorMessage' => 'Instance is not active.', 'description' => ''], + ['errorCode' => 'ConfigIp.IncorrectState', 'errorMessage' => 'Instance not in pending or active state, can not config IP address.', 'description' => ''], + ['errorCode' => 'SwitchMaster.IncorrectState', 'errorMessage' => 'Cluster not initialized, please initialize the cluster first.', 'description' => ''], + ['errorCode' => 'SyncCluster.IncorrectState', 'errorMessage' => 'Cluster not initialized, please initialize the cluster first.', 'description' => ''], + ['errorCode' => 'LeaveCluster.InstanceInvalid', 'errorMessage' => 'The instance is not in the cluster.', 'description' => ''], + ['errorCode' => 'DeleteCluster.IncorrectState', 'errorMessage' => 'Cluster not empty, please remove all instances first.', 'description' => ''], + ['errorCode' => 'JoinCluster.InstanceVSwitchNotInCluster', 'errorMessage' => 'Instance\'s vSwitch is not in cluster config, please change instance\'s vSwitch first.', 'description' => ''], + ['errorCode' => 'JoinCluster.InstanceInitialized', 'errorMessage' => 'Initialized instance can not join a cluster.', 'description' => ''], + ['errorCode' => 'JoinCluster.IncorrectState', 'errorMessage' => 'Cluster not initialized, please initialize the cluster first.', 'description' => ''], + ['errorCode' => 'InitializeCluster.InstanceNotInitialized', 'errorMessage' => 'Cluster master instance not initialized, please initialize cluster master instance first.', 'description' => ''], + ['errorCode' => 'InitializeCluster.IncorrectConfig', 'errorMessage' => 'Cluster subnet not configured, please config cluster subnet first.', 'description' => ''], + ['errorCode' => 'InitializeCluster.IncorrectState', 'errorMessage' => 'Cluster initialized, do not re-initialize.', 'description' => ''], + ['errorCode' => 'Cluster.CN.ActionForbidden', 'errorMessage' => 'This API is forbidden for non-international site cluster.', 'description' => ''], + ['errorCode' => 'Cluster.INTL.ActionForbidden', 'errorMessage' => 'This API is forbidden for international site cluster.', 'description' => ''], + ['errorCode' => 'ConfigClusterCertificate.IncorrectState', 'errorMessage' => 'Cluster initialized or certificates already configured.', 'description' => ''], + ['errorCode' => 'ConfigClusterSubnet.InvalidVpcId', 'errorMessage' => 'VPC Id invalid. Cluster VPC is the same as cluster master\'s VPC.', 'description' => ''], + ['errorCode' => 'ConfigClusterSubnet.InvalidVSwitchId', 'errorMessage' => 'VSwitch Id invalid. VSwitches should contain all current cluster vSwitches.', 'description' => ''], + ['errorCode' => 'ConfigClusterSubnet.IncorrectState', 'errorMessage' => 'Cluster not in NEW state, can not config cluster subnet.', 'description' => ''], + ['errorCode' => 'ClusterName.Exist', 'errorMessage' => 'Cluster name already exists, please use another name.', 'description' => ''], + ['errorCode' => 'Whitelist.InstanceInCluster', 'errorMessage' => 'Whitelist.InstanceInCluster', 'description' => ''], + ], + [ + ['errorCode' => 'Resource.NotFound', 'errorMessage' => 'Resource not found.', 'description' => ''], + ], + [ + ['errorCode' => 'ClusterAPI.NotSupported', 'errorMessage' => 'ClusterAPI not supported in this region.', 'description' => ''], + ], + 409 => [ + ['errorCode' => 'Conflict', 'errorMessage' => 'Resource is being updated by a previous request. Current request is redundant.', 'description' => ''], + ['errorCode' => 'Cluster.Conflict', 'errorMessage' => 'The cluster is being updated by a previous request. Please try again later.', 'description' => ''], ], 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'The request processing has failed due to some unknown error.', - ], + ['errorCode' => 'ConfigWhitelistFailed.Error', 'errorMessage' => 'config white list error', 'description' => ''], + ['errorCode' => 'ActionFailed.Error', 'errorMessage' => 'internal error, please try again', 'description' => ''], + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to some unknown error.', 'description' => '未知错误导致请求处理失败。'], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '配置实例白名单', + 'description' => '未加入集群且状态为ACTIVE(已启用)的密码机实例可以配置白名单。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], + ], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'yundun-hsm:ConfigInstanceWhitelist', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DataEncryptionService', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"4C467B38-3910-447D-87BC-AC049166F216\\"\\n}","type":"json"}]', - 'title' => '启用备份', - 'description' => '仅支持中国内地备份调用。', ], - 'GetBackup' => [ - 'summary' => '查询指定备份信息。', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'CopyImage' => [ + 'summary' => '复制镜像到其他地域。', + 'methods' => ['post'], + 'schemes' => ['https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'readAndWrite', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'get', - 'abilityTreeCode' => '203668', - 'abilityTreeNodes' => [ - 'FEATUREhsmQEGDGS', - ], + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '218511', + 'abilityTreeNodes' => ['FEATUREhsmQEGDGS'], ], 'parameters' => [ [ - 'name' => 'BackupId', - 'in' => 'query', - 'schema' => [ - 'description' => '备份ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'backup-fdb897sdf****', - ], + 'name' => 'ImageUid', + 'in' => 'formData', + 'schema' => ['description' => '镜像ID。', 'type' => 'string', 'required' => false, 'example' => 'image-hafiudfahdd****'], + ], + [ + 'name' => 'TargetRegionId', + 'in' => 'formData', + 'schema' => ['description' => '目标地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-beijing'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => '响应信息。', + 'title' => 'PlainResult<OpenApiAsyncJob>', + 'description' => '任务详情。', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '本次调用请求的ID,是由阿里云为该请求生成的唯一标识符,可用于排查和定位问题。', - 'type' => 'string', - 'example' => '4C467B38-3910-447D-87BC-AC049166F216', - ], - 'Backup' => [ - 'description' => '返回的备份信息。', - 'type' => 'object', - 'properties' => [ - 'BackupId' => [ - 'description' => '备份ID。', - 'type' => 'string', - 'example' => 'backup-fdb897sdf****', - ], - 'CreateTime' => [ - 'description' => '备份创建时间,精确到毫秒。时间戳格式。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1682417553781', - ], - 'ExpireTime' => [ - 'description' => '备份过期时间,精确到毫秒。时间戳格式。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1682417553781', - ], - 'InstanceId' => [ - 'description' => '备份关联的密码机实例ID。', - 'type' => 'string', - 'example' => 'hsm-cn-5yd35431****', - ], - 'Name' => [ - 'description' => '备份名称。', - 'type' => 'string', - 'example' => 'backup-te****', - ], - 'RegionId' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'example' => 'cn-hangzhou', - ], - 'Remark' => [ - 'description' => '备份备注。', - 'type' => 'string', - 'example' => 'test', - ], - 'Status' => [ - 'description' => '备份状态。'."\n" - ."\n" - .'- NEW:未启用'."\n" - ."\n" - .'- EXPIRED:已过期'."\n" - ."\n" - .'- ENABLED:已启用', - 'type' => 'string', - 'enumValueTitles' => [], - 'example' => 'NEW', - 'enum' => [ - 'EXPIRED', - 'ENABLED', - 'NEW', - ], - ], - 'MaxImageCount' => [ - 'description' => '最大镜像数量。', - 'type' => 'string', - 'example' => '3', - ], - 'Type' => [ - 'description' => '备份类型。'."\n" - ."\n" - .'- DEFAULT:默认备份'."\n" - ."\n" - .'- NORMAL:普通备份', - 'type' => 'string', - 'enumValueTitles' => [], - 'example' => 'DEFAULT', - 'enum' => [ - 'DEFAULT', - 'NORMAL', - ], - ], - 'BackupPeriod' => [ - 'description' => '自动备份周期,单位天数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '3', - ], - 'NextImageCreateTime' => [ - 'description' => '镜像下一次创建时间,精确到毫秒。时间戳格式。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1682417553781', - ], - 'BackupHourInDay' => [ - 'description' => '备份时间,24小时制整点时间。', - 'type' => 'string', - 'example' => '10', - ], - 'SpInstanceId' => [ - 'description' => '售卖域备份ID。 仅中国内地密码机备份有此属性。', - 'type' => 'string', - 'example' => 'backup-fdb897sdfg53****', - ], - 'AutoImageCount' => [ - 'description' => '自动备份镜像数量。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1', - ], - 'OwnerInstanceId' => [ - 'description' => '备份所属的密码机实例ID。仅非中国内地密码机备份有此属性,且与InstanceId一致。', - 'type' => 'string', - 'example' => 'hsm-cn-huoahd****', - ], - 'ReleaseTime' => [ - 'description' => '备份释放时间,精确到毫秒。时间戳格式。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1641275680000', - ], - ], - ], + 'JobId' => ['description' => '任务ID。', 'type' => 'string', 'example' => 'job-202401250936hze747fd7e0007005'], + 'Type' => ['description' => '操作类型。'."\n" + ."\n" + .'- create:创建任务'."\n" + ."\n" + .'- cancel:取消任务', 'type' => 'string', 'example' => 'create'], + 'Completed' => ['description' => '任务是否完成。', 'type' => 'boolean', 'example' => 'true'], + 'CreateTime' => ['description' => '任务创建时间,精确到毫秒。时间戳格式。', 'type' => 'string', 'example' => '1724379766191'], + 'Status' => ['description' => '任务状态。', 'type' => 'string', 'example' => 'running'], + 'Response' => ['description' => '当任务成功后返回的响应信息。', 'type' => 'string', 'example' => 'success'], + 'Error' => ['description' => '任务失败时的错误信息。', 'type' => 'string', 'example' => 'OperationTimeout'], + 'Progress' => ['description' => '任务执行进度。单位为百分比。', 'type' => 'integer', 'format' => 'int32', 'example' => '100'], + 'RequestId' => ['description' => '本次调用请求的ID,是由阿里云为该请求生成的唯一标识符,可用于排查和定位问题。', 'type' => 'string', 'example' => '4C467B38-3910-447D-87BC-AC049166F216'], ], ], ], ], 'errorCodes' => [ + 400 => [ + ['errorCode' => 'SwitchMaster.InstanceInvalid', 'errorMessage' => 'Instance not in the cluster.', 'description' => ''], + ['errorCode' => 'LeaveCluster.MasterLast', 'errorMessage' => 'Master instance can not leave a cluster until all other instances are left.', 'description' => ''], + ['errorCode' => 'Certificate.ChainInvalid', 'errorMessage' => 'Certificate chain invalid. Please make sure issuer certificate is the trust anchor and cluster certificate is signed by issuer certificate.', 'description' => ''], + ['errorCode' => 'Certificate.FormatInvalid', 'errorMessage' => 'Certificate format invalid. Cluster/Issuer certificate must be in PEM format.', 'description' => ''], + ['errorCode' => 'ConfigClusterSubnet.DuplicateZone', 'errorMessage' => 'VSwitches should not contain duplicate zones.', 'description' => ''], + ['errorCode' => 'InvalidApiParam.Error', 'errorMessage' => 'api param is invalid', 'description' => ''], + ['errorCode' => 'InvalidClusterName', 'errorMessage' => 'Invalid parameter clusterName.', 'description' => ''], + ['errorCode' => 'InvalidPageSize', 'errorMessage' => 'Invalid parameter pageSize.', 'description' => ''], + ['errorCode' => 'InvalidCurrentPage', 'errorMessage' => 'Invalid parameter currentPage.', 'description' => ''], + ['errorCode' => 'InvalidRegionId', 'errorMessage' => 'Invalid parameter regionId.', 'description' => ''], + ['errorCode' => 'InvalidZoneId', 'errorMessage' => 'Invalid parameter zoneId.', 'description' => ''], + ['errorCode' => 'InvalidVSwitch', 'errorMessage' => 'Invalid parameter vSwitch.', 'description' => ''], + ['errorCode' => 'InvalidVpc', 'errorMessage' => 'Invalid parameter vpcId.', 'description' => ''], + ['errorCode' => 'InvalidVsmType', 'errorMessage' => 'Invalid parameter vsmType.', 'description' => ''], + ['errorCode' => 'InvalidIp', 'errorMessage' => 'Invalid parameter IP.', 'description' => ''], + ['errorCode' => 'InvalidAliuid', 'errorMessage' => 'Invalid parameter aliuid.', 'description' => ''], + ['errorCode' => 'InvalidClusterId', 'errorMessage' => 'Invalid parameter clusterId.', 'description' => ''], + ['errorCode' => 'InvalidInstanceId', 'errorMessage' => 'Invalid parameter instanceId.', 'description' => ''], + ['errorCode' => 'InvalidBackupId', 'errorMessage' => 'Invalid parameter backupId.', 'description' => ''], + ['errorCode' => 'InvalidImageId', 'errorMessage' => 'Invalid parameter imageId.', 'description' => ''], + ['errorCode' => 'HsmInstanceNotExist.Error', 'errorMessage' => 'hsm instance not exist', 'description' => ''], + ['errorCode' => 'HSMIntanceNotActived.Error', 'errorMessage' => 'hsm intance is not actived', 'description' => ''], + ['errorCode' => 'WhiteListMaxCount.Error', 'errorMessage' => 'whilte list is more than max count', 'description' => ''], + ['errorCode' => 'ClusterIdIsNotExists.Error', 'errorMessage' => 'cluster ID non-exists', 'description' => ''], + ['errorCode' => 'InstanceListIsEmpty.Error', 'errorMessage' => 'instance list is empty', 'description' => ''], + ['errorCode' => 'InstanceIdIsEmpty.Error', 'errorMessage' => 'instance id is empty', 'description' => ''], + ['errorCode' => 'InstanceIsNotExistsInCluster.Error', 'errorMessage' => 'cluster has no such instance', 'description' => ''], + ['errorCode' => 'InstanceIsExistsInCluster.Error', 'errorMessage' => 'instance already in the cluster', 'description' => ''], + ['errorCode' => 'RegionNoEmpty.Error', 'errorMessage' => 'region no. is empty', 'description' => ''], + ['errorCode' => 'ClusterNameEmpty.Error', 'errorMessage' => 'empty cluster name not allowed', 'description' => ''], + ['errorCode' => 'ClusterNameIsExists.Error', 'errorMessage' => 'the cluster name is already taken', 'description' => ''], + ['errorCode' => 'IpNotValid.Error', 'errorMessage' => 'ip not valid', 'description' => ''], + ['errorCode' => 'ClusterIsEmpty.Error', 'errorMessage' => 'cluster is empty', 'description' => ''], + ['errorCode' => 'NoMasterFoundInCluster.Error', 'errorMessage' => 'cluster has no master instance', 'description' => ''], + ['errorCode' => 'HsmInstanceIdNotFound.Error', 'errorMessage' => 'no such instance', 'description' => ''], + ['errorCode' => 'NoInstanceFoundInCluster.Error', 'errorMessage' => 'cluster is empty', 'description' => ''], + ['errorCode' => 'Whitelist.Invalid', 'errorMessage' => 'Whitelist blocks not in CIDR format.', 'description' => ''], + ['errorCode' => 'Whitelist.TooLong', 'errorMessage' => 'Whitelist too long, exceeds 10 CIDR blocks.', 'description' => ''], + ], 403 => [ - [ - 'errorCode' => 'NoPermission', - 'errorMessage' => 'caller has no permission', - ], + ['errorCode' => 'NoPermission', 'errorMessage' => 'User has no permission to access this resource.', 'description' => ''], + ['errorCode' => 'Trial.Forbidden', 'errorMessage' => 'Current user is not allowed for trials!', 'description' => ''], + ['errorCode' => 'Forbidden.InstanceInCluster', 'errorMessage' => 'This API is forbidden for instances in cluster.', 'description' => ''], + ['errorCode' => 'JoinCluster.InstanceIncorrectState', 'errorMessage' => 'Instance not in Active/Pending state.', 'description' => ''], + ['errorCode' => 'InstanceNotPaused', 'errorMessage' => 'Please pause the instance before reset.', 'description' => ''], + ['errorCode' => 'InstanceNotActive', 'errorMessage' => 'Instance is not active.', 'description' => ''], + ['errorCode' => 'ConfigIp.IncorrectState', 'errorMessage' => 'Instance not in pending or active state, can not config IP address.', 'description' => ''], + ['errorCode' => 'SwitchMaster.IncorrectState', 'errorMessage' => 'Cluster not initialized, please initialize the cluster first.', 'description' => ''], + ['errorCode' => 'SyncCluster.IncorrectState', 'errorMessage' => 'Cluster not initialized, please initialize the cluster first.', 'description' => ''], + ['errorCode' => 'LeaveCluster.InstanceInvalid', 'errorMessage' => 'The instance is not in the cluster.', 'description' => ''], + ['errorCode' => 'DeleteCluster.IncorrectState', 'errorMessage' => 'Cluster not empty, please remove all instances first.', 'description' => ''], + ['errorCode' => 'JoinCluster.InstanceVSwitchNotInCluster', 'errorMessage' => 'Instance\'s vSwitch is not in cluster config, please change instance\'s vSwitch first.', 'description' => ''], + ['errorCode' => 'JoinCluster.InstanceInitialized', 'errorMessage' => 'Initialized instance can not join a cluster.', 'description' => ''], + ['errorCode' => 'JoinCluster.IncorrectState', 'errorMessage' => 'Cluster not initialized, please initialize the cluster first.', 'description' => ''], + ['errorCode' => 'InitializeCluster.InstanceNotInitialized', 'errorMessage' => 'Cluster master instance not initialized, please initialize cluster master instance first.', 'description' => ''], + ['errorCode' => 'InitializeCluster.IncorrectConfig', 'errorMessage' => 'Cluster subnet not configured, please config cluster subnet first.', 'description' => ''], + ['errorCode' => 'InitializeCluster.IncorrectState', 'errorMessage' => 'Cluster initialized, do not re-initialize.', 'description' => ''], + ['errorCode' => 'Cluster.CN.ActionForbidden', 'errorMessage' => 'This API is forbidden for non-international site cluster.', 'description' => ''], + ['errorCode' => 'Cluster.INTL.ActionForbidden', 'errorMessage' => 'This API is forbidden for international site cluster.', 'description' => ''], + ['errorCode' => 'ConfigClusterCertificate.IncorrectState', 'errorMessage' => 'Cluster initialized or certificates already configured.', 'description' => ''], + ['errorCode' => 'ConfigClusterSubnet.InvalidVpcId', 'errorMessage' => 'VPC Id invalid. Cluster VPC is the same as cluster master\'s VPC.', 'description' => ''], + ['errorCode' => 'ConfigClusterSubnet.InvalidVSwitchId', 'errorMessage' => 'VSwitch Id invalid. VSwitches should contain all current cluster vSwitches.', 'description' => ''], + ['errorCode' => 'ConfigClusterSubnet.IncorrectState', 'errorMessage' => 'Cluster not in NEW state, can not config cluster subnet.', 'description' => ''], + ['errorCode' => 'ClusterName.Exist', 'errorMessage' => 'Cluster name already exists, please use another name.', 'description' => ''], + ['errorCode' => 'Image.ImageStatusInValid', 'errorMessage' => 'Image status is invalid.', 'description' => ''], + ['errorCode' => 'CopyImage.ImageAlreadyCopied', 'errorMessage' => 'Image already copied, secondary copy is not supported.', 'description' => ''], + ['errorCode' => 'Image.ActionForbiddenINTL', 'errorMessage' => 'This API is forbidden for international site.', 'description' => ''], + ['errorCode' => 'Image.ActionForbiddenCN', 'errorMessage' => 'This API is forbidden for non-international site.', 'description' => ''], + ['errorCode' => 'CopyImage.RegionInvalid', 'errorMessage' => 'Source region or target region invalid.', 'description' => ''], + ['errorCode' => 'Backup.ActionForbiddenINTL', 'errorMessage' => 'This API is forbidden for international site.', 'description' => ''], + ['errorCode' => 'CopyImage.TargetRegionImageAlreadyExists', 'errorMessage' => 'Target region has the same digest image.', 'description' => ''], + ], + [ + ['errorCode' => 'Resource.NotFound', 'errorMessage' => 'Resource not found.', 'description' => ''], + ], + [ + ['errorCode' => 'ClusterAPI.NotSupported', 'errorMessage' => 'ClusterAPI not supported in this region.', 'description' => ''], + ], + 409 => [ + ['errorCode' => 'Conflict.InstanceModifying', 'errorMessage' => 'Instance is being modified by a previous request. Please try again later.', 'description' => ''], + ['errorCode' => 'Conflict', 'errorMessage' => 'Resource is being updated by a previous request. Current request is redundant.', 'description' => ''], + ['errorCode' => 'Cluster.Conflict', 'errorMessage' => 'The cluster is being updated by a previous request. Please try again later.', 'description' => ''], + ], + 500 => [ + ['errorCode' => 'ConfigWhitelistFailed.Error', 'errorMessage' => 'config white list error', 'description' => ''], + ['errorCode' => 'ActionFailed.Error', 'errorMessage' => 'internal error, please try again', 'description' => ''], + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to some unknown error.', 'description' => '未知错误导致请求处理失败。'], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '复制镜像', + 'description' => '要求目标地域没有相同镜像。仅非中国内地密码机支持此接口调用。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], + ], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'yundun-hsm:CopyImage', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DataEncryptionService', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], - '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' => '查询备份', + '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"}]', ], - 'ListBackups' => [ - 'summary' => '获取符合查询条件的备份集合。', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'CreateCluster' => [ + 'summary' => '选择一台密码机作为主密码机创建集群。', + 'methods' => ['post'], + 'schemes' => ['https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'write', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'list', - 'abilityTreeCode' => '203775', - 'abilityTreeNodes' => [ - 'FEATUREhsmQEGDGS', - ], + 'operationType' => 'create', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => ['FEATUREhsmV7VE3Y', 'FEATUREhsm01FLNB', 'FEATUREhsmGIFYCG', 'FEATUREhsmLBBV5W'], ], 'parameters' => [ [ + 'name' => 'ClusterName', + 'in' => 'formData', + 'schema' => ['description' => '集群名称。', 'type' => 'string', 'required' => true, 'example' => 'cluster_on****'], + ], + [ 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'cn-hangzhou', - ], + 'in' => 'formData', + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => true, 'example' => 'cn-hangzhou'], ], [ - 'name' => 'CurrentPage', - 'in' => 'query', + 'name' => 'MasterInstanceId', + 'in' => 'formData', + 'schema' => ['description' => '主密码机实例ID。', 'type' => 'string', 'required' => true, 'example' => 'hsm_intl-sg-uz63ixak****'], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => '当前分页。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - 'example' => '1', + 'title' => 'PlainResult<OpenApiCreateClusterResponse>', + 'description' => 'PlainResult<OpenApiCreateClusterResponse>', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => '本次调用请求的ID,是由阿里云为该请求生成的唯一标识符,可用于排查和定位问题。', 'type' => 'string', 'example' => '5F58413E-8F57-585B-BE48-64CC1E31133C'], + 'ClusterId' => ['description' => '集群ID。', 'type' => 'string', 'example' => 'cluster-729dm40FG****'], + ], ], ], - [ - 'name' => 'PageSize', - 'in' => 'query', - 'schema' => [ - 'description' => '每页显示的备份个数。取值:1~1000。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - 'example' => '20', + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'SwitchMaster.InstanceInvalid', 'errorMessage' => 'Instance not in the cluster.', 'description' => ''], + ['errorCode' => 'LeaveCluster.MasterLast', 'errorMessage' => 'Master instance can not leave a cluster until all other instances are left.', 'description' => ''], + ['errorCode' => 'Certificate.ChainInvalid', 'errorMessage' => 'Certificate chain invalid. Please make sure issuer certificate is the trust anchor and cluster certificate is signed by issuer certificate.', 'description' => ''], + ['errorCode' => 'Certificate.FormatInvalid', 'errorMessage' => 'Certificate format invalid. Cluster/Issuer certificate must be in PEM format.', 'description' => ''], + ['errorCode' => 'ConfigClusterSubnet.DuplicateZone', 'errorMessage' => 'VSwitches should not contain duplicate zones.', 'description' => ''], + ['errorCode' => 'InvalidApiParam.Error', 'errorMessage' => 'api param is invalid', 'description' => ''], + ['errorCode' => 'InvalidClusterName', 'errorMessage' => 'Invalid parameter clusterName.', 'description' => ''], + ['errorCode' => 'InvalidPageSize', 'errorMessage' => 'Invalid parameter pageSize.', 'description' => ''], + ['errorCode' => 'InvalidCurrentPage', 'errorMessage' => 'Invalid parameter currentPage.', 'description' => ''], + ['errorCode' => 'InvalidRegionId', 'errorMessage' => 'Invalid parameter regionId.', 'description' => ''], + ['errorCode' => 'InvalidVSwitch', 'errorMessage' => 'Invalid parameter vSwitch.', 'description' => ''], + ['errorCode' => 'InvalidVpc', 'errorMessage' => 'Invalid parameter vpcId.', 'description' => ''], + ['errorCode' => 'InvalidIp', 'errorMessage' => 'Invalid parameter IP.', 'description' => ''], + ['errorCode' => 'InvalidAliuid', 'errorMessage' => 'Invalid parameter aliuid.', 'description' => ''], + ['errorCode' => 'InvalidClusterId', 'errorMessage' => 'Invalid parameter clusterId.', 'description' => ''], + ['errorCode' => 'InvalidInstanceId', 'errorMessage' => 'Invalid parameter instanceId.', 'description' => ''], + ['errorCode' => 'InvalidBackupId', 'errorMessage' => 'Invalid parameter backupId.', 'description' => ''], + ['errorCode' => 'InvalidImageId', 'errorMessage' => 'Invalid parameter imageId.', 'description' => ''], + ['errorCode' => 'HsmInstanceNotExist.Error', 'errorMessage' => 'hsm instance not exist', 'description' => ''], + ['errorCode' => 'HSMIntanceNotActived.Error', 'errorMessage' => 'hsm intance is not actived', 'description' => ''], + ['errorCode' => 'WhiteListMaxCount.Error', 'errorMessage' => 'whilte list is more than max count', 'description' => ''], + ['errorCode' => 'ClusterIdIsNotExists.Error', 'errorMessage' => 'cluster ID non-exists', 'description' => ''], + ['errorCode' => 'InstanceListIsEmpty.Error', 'errorMessage' => 'instance list is empty', 'description' => ''], + ['errorCode' => 'InstanceIdIsEmpty.Error', 'errorMessage' => 'instance id is empty', 'description' => ''], + ['errorCode' => 'InstanceIsNotExistsInCluster.Error', 'errorMessage' => 'cluster has no such instance', 'description' => ''], + ['errorCode' => 'InstanceIsExistsInCluster.Error', 'errorMessage' => 'instance already in the cluster', 'description' => ''], + ['errorCode' => 'RegionNoEmpty.Error', 'errorMessage' => 'region no. is empty', 'description' => ''], + ['errorCode' => 'ClusterNameEmpty.Error', 'errorMessage' => 'empty cluster name not allowed', 'description' => ''], + ['errorCode' => 'ClusterNameIsExists.Error', 'errorMessage' => 'the cluster name is already taken', 'description' => ''], + ['errorCode' => 'IpNotValid.Error', 'errorMessage' => 'ip not valid', 'description' => ''], + ['errorCode' => 'ClusterIsEmpty.Error', 'errorMessage' => 'cluster is empty', 'description' => ''], + ['errorCode' => 'NoMasterFoundInCluster.Error', 'errorMessage' => 'cluster has no master instance', 'description' => ''], + ['errorCode' => 'HsmInstanceIdNotFound.Error', 'errorMessage' => 'no such instance', 'description' => ''], + ['errorCode' => 'NoInstanceFoundInCluster.Error', 'errorMessage' => 'cluster is empty', 'description' => ''], + ['errorCode' => 'Whitelist.Invalid', 'errorMessage' => 'Whitelist blocks not in CIDR format.', 'description' => ''], + ['errorCode' => 'Whitelist.TooLong', 'errorMessage' => 'Whitelist too long, exceeds 10 CIDR blocks.', 'description' => ''], + ], + 403 => [ + ['errorCode' => 'NoPermission', 'errorMessage' => 'Caller has no permission on the resource.', 'description' => ''], + ['errorCode' => 'InstanceNotPaused', 'errorMessage' => 'Please pause the instance before reset.', 'description' => ''], + ['errorCode' => 'InstanceNotActive', 'errorMessage' => 'Instance is not active.', 'description' => ''], + ['errorCode' => 'ConfigIp.IncorrectState', 'errorMessage' => 'Instance not in pending or active state, can not config IP address.', 'description' => ''], + ['errorCode' => 'SwitchMaster.IncorrectState', 'errorMessage' => 'Cluster not initialized, please initialize the cluster first.', 'description' => ''], + ['errorCode' => 'SyncCluster.IncorrectState', 'errorMessage' => 'Cluster not initialized, please initialize the cluster first.', 'description' => ''], + ['errorCode' => 'LeaveCluster.InstanceInvalid', 'errorMessage' => 'The instance is not in the cluster.', 'description' => ''], + ['errorCode' => 'DeleteCluster.IncorrectState', 'errorMessage' => 'Cluster not empty, please remove all instances first.', 'description' => ''], + ['errorCode' => 'JoinCluster.InstanceVSwitchNotInCluster', 'errorMessage' => 'Instance\'s vSwitch is not in cluster config, please change instance\'s vSwitch first.', 'description' => ''], + ['errorCode' => 'JoinCluster.InstanceInitialized', 'errorMessage' => 'Initialized instance can not join a cluster.', 'description' => ''], + ['errorCode' => 'JoinCluster.IncorrectState', 'errorMessage' => 'Cluster not initialized, please initialize the cluster first.', 'description' => ''], + ['errorCode' => 'InitializeCluster.InstanceNotInitialized', 'errorMessage' => 'Cluster master instance not initialized, please initialize cluster master instance first.', 'description' => ''], + ['errorCode' => 'InitializeCluster.IncorrectConfig', 'errorMessage' => 'Cluster subnet not configured, please config cluster subnet first.', 'description' => ''], + ['errorCode' => 'InitializeCluster.IncorrectState', 'errorMessage' => 'Cluster initialized, do not re-initialize.', 'description' => ''], + ['errorCode' => 'Cluster.CN.ActionForbidden', 'errorMessage' => 'This API is forbidden for non-international site cluster.', 'description' => ''], + ['errorCode' => 'Cluster.INTL.ActionForbidden', 'errorMessage' => 'This API is forbidden for international site cluster.', 'description' => ''], + ['errorCode' => 'ConfigClusterCertificate.IncorrectState', 'errorMessage' => 'Cluster initialized or certificates already configured.', 'description' => ''], + ['errorCode' => 'ConfigClusterSubnet.InvalidVpcId', 'errorMessage' => 'VPC Id invalid. Cluster VPC is the same as cluster master\'s VPC.', 'description' => ''], + ['errorCode' => 'ConfigClusterSubnet.InvalidVSwitchId', 'errorMessage' => 'VSwitch Id invalid. VSwitches should contain all current cluster vSwitches.', 'description' => ''], + ['errorCode' => 'ConfigClusterSubnet.IncorrectState', 'errorMessage' => 'Cluster not in NEW state, can not config cluster subnet.', 'description' => ''], + ['errorCode' => 'ClusterName.Exist', 'errorMessage' => 'Cluster name already exists, please use another name.', 'description' => ''], + ['errorCode' => 'Whitelist.InstanceInCluster', 'errorMessage' => 'Whitelist.InstanceInCluster', 'description' => ''], + ], + [ + ['errorCode' => 'Resource.NotFound', 'errorMessage' => 'Resource not found.', 'description' => ''], + ], + [ + ['errorCode' => 'ClusterAPI.NotSupported', 'errorMessage' => 'ClusterAPI not supported in this region.', 'description' => ''], + ], + 409 => [ + ['errorCode' => 'Conflict', 'errorMessage' => 'Resource is being updated by a previous request. Current request is redundant.', 'description' => ''], + ['errorCode' => 'Cluster.Conflict', 'errorMessage' => 'The cluster is being updated by a previous request. Please try again later.', 'description' => ''], + ], + 500 => [ + ['errorCode' => 'ConfigWhitelistFailed.Error', 'errorMessage' => 'config white list error', 'description' => ''], + ['errorCode' => 'ActionFailed.Error', 'errorMessage' => 'internal error, please try again', 'description' => ''], + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to some unknown error.', 'description' => '未知错误导致请求处理失败。'], + ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '创建集群', + 'description' => '创建集群选择的密码机实例状态必须为ACTIVE(已启用)。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], + ], + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'yundun-hsm:CreateCluster', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DataEncryptionService', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"5F58413E-8F57-585B-BE48-64CC1E31133C\\",\\n \\"ClusterId\\": \\"cluster-729dm40FG****\\"\\n}","type":"json"}]', + ], + 'DeleteCluster' => [ + 'summary' => '删除指定集群。', + 'methods' => ['post'], + 'schemes' => ['https'], + 'security' => [ [ - 'name' => 'Name', - 'in' => 'query', - 'schema' => [ - 'description' => '备份名称。', - 'type' => 'string', - 'required' => false, - 'example' => 'hsm-te****', - ], + 'AK' => [], ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => ['FEATUREhsmV7VE3Y', 'FEATUREhsm01FLNB', 'FEATUREhsmGIFYCG', 'FEATUREhsmLBBV5W'], + ], + 'parameters' => [ [ - 'name' => 'BackupId', - 'in' => 'query', + 'name' => 'ClusterId', + 'in' => 'formData', + 'schema' => ['description' => '集群ID。', 'type' => 'string', 'required' => true, 'example' => 'cluster-NZB9Oj5Yfd8Y****'], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => '备份ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'backup-1648438****', + 'title' => 'BaseResult', + 'description' => 'BaseResult', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => '本次调用请求的ID,是由阿里云为该请求生成的唯一标识符,可用于排查和定位问题。', 'type' => 'string', 'example' => '4C467B38-3910-447D-87BC-AC049166F216'], + ], ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'SwitchMaster.InstanceInvalid', 'errorMessage' => 'Instance not in the cluster.', 'description' => ''], + ['errorCode' => 'LeaveCluster.MasterLast', 'errorMessage' => 'Master instance can not leave a cluster until all other instances are left.', 'description' => ''], + ['errorCode' => 'Certificate.ChainInvalid', 'errorMessage' => 'Certificate chain invalid. Please make sure issuer certificate is the trust anchor and cluster certificate is signed by issuer certificate.', 'description' => ''], + ['errorCode' => 'Certificate.FormatInvalid', 'errorMessage' => 'Certificate format invalid. Cluster/Issuer certificate must be in PEM format.', 'description' => ''], + ['errorCode' => 'ConfigClusterSubnet.DuplicateZone', 'errorMessage' => 'VSwitches should not contain duplicate zones.', 'description' => ''], + ['errorCode' => 'InvalidApiParam.Error', 'errorMessage' => 'api param is invalid', 'description' => ''], + ['errorCode' => 'InvalidClusterName', 'errorMessage' => 'Invalid parameter clusterName.', 'description' => ''], + ['errorCode' => 'InvalidPageSize', 'errorMessage' => 'Invalid parameter pageSize.', 'description' => ''], + ['errorCode' => 'InvalidCurrentPage', 'errorMessage' => 'Invalid parameter currentPage.', 'description' => ''], + ['errorCode' => 'InvalidRegionId', 'errorMessage' => 'Invalid parameter regionId.', 'description' => ''], + ['errorCode' => 'InvalidVSwitch', 'errorMessage' => 'Invalid parameter vSwitch.', 'description' => ''], + ['errorCode' => 'InvalidVpc', 'errorMessage' => 'Invalid parameter vpcId.', 'description' => ''], + ['errorCode' => 'InvalidIp', 'errorMessage' => 'Invalid parameter IP.', 'description' => ''], + ['errorCode' => 'InvalidAliuid', 'errorMessage' => 'Invalid parameter aliuid.', 'description' => ''], + ['errorCode' => 'InvalidClusterId', 'errorMessage' => 'Invalid parameter clusterId.', 'description' => ''], + ['errorCode' => 'InvalidInstanceId', 'errorMessage' => 'Invalid parameter instanceId.', 'description' => ''], + ['errorCode' => 'InvalidBackupId', 'errorMessage' => 'Invalid parameter backupId.', 'description' => ''], + ['errorCode' => 'InvalidImageId', 'errorMessage' => 'Invalid parameter imageId.', 'description' => ''], + ['errorCode' => 'HsmInstanceNotExist.Error', 'errorMessage' => 'hsm instance not exist', 'description' => ''], + ['errorCode' => 'HSMIntanceNotActived.Error', 'errorMessage' => 'hsm intance is not actived', 'description' => ''], + ['errorCode' => 'WhiteListMaxCount.Error', 'errorMessage' => 'whilte list is more than max count', 'description' => ''], + ['errorCode' => 'ClusterIdIsNotExists.Error', 'errorMessage' => 'cluster ID non-exists', 'description' => ''], + ['errorCode' => 'InstanceListIsEmpty.Error', 'errorMessage' => 'instance list is empty', 'description' => ''], + ['errorCode' => 'InstanceIdIsEmpty.Error', 'errorMessage' => 'instance id is empty', 'description' => ''], + ['errorCode' => 'InstanceIsNotExistsInCluster.Error', 'errorMessage' => 'cluster has no such instance', 'description' => ''], + ['errorCode' => 'InstanceIsExistsInCluster.Error', 'errorMessage' => 'instance already in the cluster', 'description' => ''], + ['errorCode' => 'RegionNoEmpty.Error', 'errorMessage' => 'region no. is empty', 'description' => ''], + ['errorCode' => 'ClusterNameEmpty.Error', 'errorMessage' => 'empty cluster name not allowed', 'description' => ''], + ['errorCode' => 'ClusterNameIsExists.Error', 'errorMessage' => 'the cluster name is already taken', 'description' => ''], + ['errorCode' => 'IpNotValid.Error', 'errorMessage' => 'ip not valid', 'description' => ''], + ['errorCode' => 'ClusterIsEmpty.Error', 'errorMessage' => 'cluster is empty', 'description' => ''], + ['errorCode' => 'NoMasterFoundInCluster.Error', 'errorMessage' => 'cluster has no master instance', 'description' => ''], + ['errorCode' => 'HsmInstanceIdNotFound.Error', 'errorMessage' => 'no such instance', 'description' => ''], + ['errorCode' => 'NoInstanceFoundInCluster.Error', 'errorMessage' => 'cluster is empty', 'description' => ''], + ['errorCode' => 'Whitelist.Invalid', 'errorMessage' => 'Whitelist blocks not in CIDR format.', 'description' => ''], + ['errorCode' => 'Whitelist.TooLong', 'errorMessage' => 'Whitelist too long, exceeds 10 CIDR blocks.', 'description' => ''], + ], + 403 => [ + ['errorCode' => 'NoPermission', 'errorMessage' => 'Caller has no permission on the resource.', 'description' => ''], + ['errorCode' => 'InstanceNotPaused', 'errorMessage' => 'Please pause the instance before reset.', 'description' => ''], + ['errorCode' => 'InstanceNotActive', 'errorMessage' => 'Instance is not active.', 'description' => ''], + ['errorCode' => 'ConfigIp.IncorrectState', 'errorMessage' => 'Instance not in pending or active state, can not config IP address.', 'description' => ''], + ['errorCode' => 'SwitchMaster.IncorrectState', 'errorMessage' => 'Cluster not initialized, please initialize the cluster first.', 'description' => ''], + ['errorCode' => 'SyncCluster.IncorrectState', 'errorMessage' => 'Cluster not initialized, please initialize the cluster first.', 'description' => ''], + ['errorCode' => 'LeaveCluster.InstanceInvalid', 'errorMessage' => 'The instance is not in the cluster.', 'description' => ''], + ['errorCode' => 'DeleteCluster.IncorrectState', 'errorMessage' => 'Cluster not empty, please remove all instances first.', 'description' => ''], + ['errorCode' => 'JoinCluster.InstanceVSwitchNotInCluster', 'errorMessage' => 'Instance\'s vSwitch is not in cluster config, please change instance\'s vSwitch first.', 'description' => ''], + ['errorCode' => 'JoinCluster.InstanceInitialized', 'errorMessage' => 'Initialized instance can not join a cluster.', 'description' => ''], + ['errorCode' => 'JoinCluster.IncorrectState', 'errorMessage' => 'Cluster not initialized, please initialize the cluster first.', 'description' => ''], + ['errorCode' => 'InitializeCluster.InstanceNotInitialized', 'errorMessage' => 'Cluster master instance not initialized, please initialize cluster master instance first.', 'description' => ''], + ['errorCode' => 'InitializeCluster.IncorrectConfig', 'errorMessage' => 'Cluster subnet not configured, please config cluster subnet first.', 'description' => ''], + ['errorCode' => 'InitializeCluster.IncorrectState', 'errorMessage' => 'Cluster initialized, do not re-initialize.', 'description' => ''], + ['errorCode' => 'Cluster.CN.ActionForbidden', 'errorMessage' => 'This API is forbidden for non-international site cluster.', 'description' => ''], + ['errorCode' => 'Cluster.INTL.ActionForbidden', 'errorMessage' => 'This API is forbidden for international site cluster.', 'description' => ''], + ['errorCode' => 'ConfigClusterCertificate.IncorrectState', 'errorMessage' => 'Cluster initialized or certificates already configured.', 'description' => ''], + ['errorCode' => 'ConfigClusterSubnet.InvalidVpcId', 'errorMessage' => 'VPC Id invalid. Cluster VPC is the same as cluster master\'s VPC.', 'description' => ''], + ['errorCode' => 'ConfigClusterSubnet.InvalidVSwitchId', 'errorMessage' => 'VSwitch Id invalid. VSwitches should contain all current cluster vSwitches.', 'description' => ''], + ['errorCode' => 'ConfigClusterSubnet.IncorrectState', 'errorMessage' => 'Cluster not in NEW state, can not config cluster subnet.', 'description' => ''], + ['errorCode' => 'ClusterName.Exist', 'errorMessage' => 'Cluster name already exists, please use another name.', 'description' => ''], + ['errorCode' => 'Whitelist.InstanceInCluster', 'errorMessage' => 'Whitelist.InstanceInCluster', 'description' => ''], + ], + [ + ['errorCode' => 'Resource.NotFound', 'errorMessage' => 'Resource not found.', 'description' => ''], + ], + [ + ['errorCode' => 'ClusterAPI.NotSupported', 'errorMessage' => 'ClusterAPI not supported in this region.', 'description' => ''], + ], + 409 => [ + ['errorCode' => 'Conflict', 'errorMessage' => 'Resource is being updated by a previous request. Current request is redundant.', 'description' => ''], + ['errorCode' => 'Cluster.Conflict', 'errorMessage' => 'The cluster is being updated by a previous request. Please try again later.', 'description' => ''], + ], + 500 => [ + ['errorCode' => 'ConfigWhitelistFailed.Error', 'errorMessage' => 'config white list error', 'description' => ''], + ['errorCode' => 'ActionFailed.Error', 'errorMessage' => 'internal error, please try again', 'description' => ''], + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to some unknown error.', 'description' => '未知错误导致请求处理失败。'], + ], + ], + 'title' => '删除集群', + 'description' => '只有集群不存在密码机实例时可以删除。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], + ], + 'ramActions' => [ + [ + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'yundun-hsm:DeleteCluster', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DataEncryptionService', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"4C467B38-3910-447D-87BC-AC049166F216\\"\\n}","type":"json"}]', + ], + 'DescribeRegions' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'InstanceId', + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'list', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '203661', + 'abilityTreeNodes' => ['FEATUREhsmV7VE3Y'], + ], + 'parameters' => [ + [ + 'name' => 'AcceptLanguage', 'in' => 'query', 'schema' => [ - 'description' => '密码机实例ID。', + 'description' => '要查询的语言。 '."\n" + ."\n" + .'- zh:中文'."\n" + ."\n" + .' - en:英文', 'type' => 'string', 'required' => false, - 'example' => 'hsm-cn-vj30bil8****', + 'enumValueTitles' => [], + 'example' => 'zh', ], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => '响应信息。', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '本次调用请求的ID,是由阿里云为该请求生成的唯一标识符,可用于排查和定位问题。', - 'type' => 'string', - 'example' => '4C467B38-3910-447D-87BC-AC049166F216', - ], - 'TotalCount' => [ - 'description' => '查询结果总数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '30', - ], - 'PageSize' => [ - 'description' => '每页显示的备份个数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '20', - ], - 'CurrentPage' => [ - 'description' => '当前分页。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'Backups' => [ - 'description' => '返回的备份列表。', + 'RequestId' => ['description' => '本次调用请求的ID,是由阿里云为该请求生成的唯一标识符,可用于排查和定位问题。', 'type' => 'string', 'example' => '4C467B38-3910-447D-87BC-AC049166F216'], + 'Regions' => [ + 'description' => '地域信息列表。', 'type' => 'array', 'items' => [ - 'description' => '备份详情。', + 'description' => '地域信息。', 'type' => 'object', 'properties' => [ - 'BackupId' => [ - 'description' => '备份ID。', - 'type' => 'string', - 'example' => 'backup-1648438****', - ], - 'CreateTime' => [ - 'description' => '备份创建时间,精确到毫秒。时间戳格式。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1637229596000', - ], - 'ExpireTime' => [ - 'description' => '备份过期时间,精确到毫秒。时间戳格式。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1682417553781'."\n", - ], - 'InstanceId' => [ - 'description' => '备份关联的密码机实例ID。', - 'type' => 'string', - 'example' => 'hsm-cn-vj30bil8****', - ], - 'Name' => [ - 'description' => '备份名称。', - 'type' => 'string', - 'example' => 'backup-te****', - ], - 'RegionId' => [ - 'description' => '区域ID。', - 'type' => 'string', - 'example' => 'ap-southeast-1', - ], - 'Remark' => [ - 'description' => '备份备注。', - 'type' => 'string', - 'example' => 'normal backup', - ], - 'Status' => [ - 'description' => '备份状态。'."\n" - .'- NEW:未启用'."\n" - .'- EXPIRED:已过期'."\n" - .'- ENABLED:已启用', - 'type' => 'string', - 'enumValueTitles' => [], - 'example' => 'ENABLED', - 'enum' => [ - 'NEW', - 'ENABLED', - 'EXPIRED', - ], - ], - 'MaxImageCount' => [ - 'description' => '镜像数量。', - 'type' => 'string', - 'example' => '3', - ], - 'Type' => [ - 'description' => '备份类型。'."\n" - .'- DEFAULT:默认备份'."\n" - .'- NORMAL:普通备份', - 'type' => 'string', - 'enumValueTitles' => [], - 'example' => 'NORMAL', - 'enum' => [ - 'NORMAL', - 'DEFAULT', + 'LocalName' => ['description' => '地域名称。', 'type' => 'string', 'example' => 'China (Hangzhou)'], + 'RegionId' => ['description' => '地域ID。', 'type' => 'string', 'example' => 'cn-hangzhou'], + 'Zones' => [ + 'description' => '可用区列表。', + 'type' => 'array', + 'items' => [ + 'description' => '可用区信息。', + 'type' => 'object', + 'properties' => [ + 'ZoneId' => ['description' => '可用区ID。', 'type' => 'string', 'example' => 'cn-hangzhou-a'], + 'LocalName' => ['description' => '可用区名称。', 'type' => 'string', 'example' => 'Hangzhou Zone A'], + 'Cluster' => ['description' => '是否支持集群。'."\n" + ."\n" + .'- yes:支持'."\n" + .'- no:不支持', 'type' => 'string', 'example' => 'yes'], + ], ], ], - 'BackupPeriod' => [ - 'description' => '自动备份周期,单位天数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '3', - ], - 'NextImageCreateTime' => [ - 'description' => '镜像下一次创建时间,精确到毫秒。时间戳格式。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1682417553781'."\n", - ], - 'AutoImageCount' => [ - 'description' => '自动备份镜像数量。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1', - ], - 'BackupHourInDay' => [ - 'description' => '备份时间,24小时制整点时间。', - 'type' => 'string', - 'example' => '13', - ], - 'SpInstanceId' => [ - 'description' => '售卖域备份ID。'."\n" - .'仅中国内地密码机备份有此属性。', - 'type' => 'string', - 'example' => 'backup-fdb897sdfg534-****', - ], - 'ReleaseTime' => [ - 'description' => '备份释放时间,精确到毫秒。时间戳格式。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1641275680000', - ], - 'OwnerInstanceId' => [ - 'description' => '备份所属的密码机实例ID。仅非中国内地密码机备份有此属性,且与InstanceId一致。', - 'type' => 'string', - 'example' => 'hsm-cn-vj30bil8****', - ], ], ], ], ], + 'description' => '', ], ], ], 'errorCodes' => [ + 400 => [ + ['errorCode' => 'InvalidApiParam.Error', 'errorMessage' => 'api param is invalid', 'description' => ''], + ], 403 => [ - [ - 'errorCode' => 'NoPermission', - 'errorMessage' => 'caller has no permission', - ], + ['errorCode' => 'NoPermission.Error', 'errorMessage' => 'caller has no permission', 'description' => ''], + ], + 500 => [ + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to some unknown error.', 'description' => '未知错误导致请求处理失败。'], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'title' => '查询支持加密服务的区域列表', + 'summary' => '查询支持加密服务的地域。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], + ], + 'ramActions' => [ + [ + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'yundun-hsm:DescribeRegions', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DataEncryptionService', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], - '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' => '查询备份列表', + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"4C467B38-3910-447D-87BC-AC049166F216\\",\\n \\"Regions\\": [\\n {\\n \\"LocalName\\": \\"China (Hangzhou)\\",\\n \\"RegionId\\": \\"cn-hangzhou\\",\\n \\"Zones\\": [\\n {\\n \\"ZoneId\\": \\"cn-hangzhou-a\\",\\n \\"LocalName\\": \\"Hangzhou Zone A\\",\\n \\"Cluster\\": \\"yes\\"\\n }\\n ]\\n }\\n ]\\n}","type":"json"}]', ], - 'ConfigBackupTask' => [ - 'summary' => '修改备份任务执行模式。', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'DownloadClusterManagedCert' => [ + 'summary' => '下载集群托管证书。', + 'description' => '仅支持中国站中国地域的证书托管集群调用。', + 'path' => '/', + 'methods' => ['get', 'post'], + 'schemes' => ['https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', + 'operationType' => 'read', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'update', + 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREhsmV7VE3Y', - 'FEATUREhsm01FLNB', - 'FEATUREhsmGIFYCG', - 'FEATUREhsmLBBV5W', - ], + 'abilityTreeNodes' => ['FEATUREhsmV7VE3Y', 'FEATUREhsm01FLNB'], ], 'parameters' => [ [ - 'name' => 'BackupId', - 'in' => 'query', - 'schema' => [ - 'description' => '备份ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'backup-173620705****', - ], - ], - [ - 'name' => 'BackupPeriod', - 'in' => 'query', - 'schema' => [ - 'description' => '自动备份周期,单位天数。 取值为1、3、7、30。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - 'maximum' => '30', - 'minimum' => '1', - 'enumValueTitles' => [], - 'example' => '3', - 'enum' => [ - '1', - '3', - '7', - '30', - ], - ], - ], - [ - 'name' => 'BackupHourInDay', - 'in' => 'query', - 'schema' => [ - 'description' => '备份时间,24小时制整点时间。取值:1~24。', - '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', + 'name' => 'ClusterId', 'in' => 'query', - 'style' => 'flat', - 'schema' => [ - 'description' => '手动备份更新为自动备份的镜像ID列表。', - 'type' => 'array', - 'items' => [ - 'description' => '手动备份更新为自动备份的镜像ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'image-haiduf23bj****', - ], - 'required' => false, - ], - ], - [ - 'name' => 'Periodic2ManualList', - 'in' => 'query', - 'style' => 'flat', - 'schema' => [ - 'description' => '自动备份更新为手动备份的镜像ID列表。', - 'type' => 'array', - 'items' => [ - 'description' => '自动备份更新为手动备份的镜像ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'image-daiduahsbj****', - ], - 'required' => false, - ], + 'schema' => ['title' => '**ClusterId**'."\n", 'description' => '集群ID。', 'type' => 'string', 'required' => true, 'example' => 'cluster-001***hui'], ], ], 'responses' => [ 200 => [ + 'description' => '成功响应', 'schema' => [ + 'title' => 'Schema of Response', + 'description' => '返回值。', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '本次调用请求的ID,是由阿里云为该请求生成的唯一标识符,可用于排查和定位问题。', - 'type' => 'string', - 'example' => '4C467B38-3910-447D-87BC-AC049166F216', - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '4C467B38-3910-447D-87BC-AC049166F216'], + 'Content' => ['description' => 'base64转码过的zip压缩文件,需要用base64解码得获取zip文件原内容,最后通过zip解压缩获取证书文件。', 'type' => 'string', 'example' => 'emhlbmdza****W5qaWFuYmlhbm1hY2VzaGk='], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidApiParam.Error', - 'errorMessage' => 'api param is invalid', - ], + ['errorCode' => 'Cluster.ClusterManagedCertDownload.NotSupport', 'errorMessage' => 'download cluster managed cert not support.', 'description' => ''], + ['errorCode' => 'Cluster.CertsManageNotFinished', 'errorMessage' => 'cluster certs manage not finished.', 'description' => ''], ], 403 => [ - [ - 'errorCode' => 'NoPermission', - 'errorMessage' => 'caller has no permission', - ], - [ - 'errorCode' => 'Backup.ActionForbidden', - 'errorMessage' => 'This API is forbidden for this backup type.', - ], + ['errorCode' => 'NoPermission', 'errorMessage' => 'caller has no permission', 'description' => ''], ], 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'The request processing has failed due to some unknown error.', - ], + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to some unknown error.', 'description' => '未知错误导致请求处理失败。'], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '下载集群托管证书', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], + ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'yundun-hsm:DownloadClusterManagedCert', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DataEncryptionService', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"4C467B38-3910-447D-87BC-AC049166F216\\"\\n}","type":"json"}]', - 'title' => '配置备份任务', - 'description' => '仅支持中国内地密码机实例备份调用。', + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"4C467B38-3910-447D-87BC-AC049166F216\\",\\n \\"Content\\": \\"emhlbmdza****W5qaWFuYmlhbm1hY2VzaGk=\\"\\n}","type":"json"}]', ], - 'ResetBackup' => [ - 'summary' => '将备份与当前实例解绑。', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'EnableBackup' => [ + 'summary' => '将备份与指定实例绑定。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -2218,80 +2096,69 @@ 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREhsmQEGDGS', - ], + 'abilityTreeCode' => '203669', + 'abilityTreeNodes' => ['FEATUREhsmQEGDGS'], ], 'parameters' => [ [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => ['description' => '密码机实例ID。', 'type' => 'string', 'required' => true, 'example' => 'hsm-cn-mp90fxef****'], + ], + [ 'name' => 'BackupId', 'in' => 'query', - 'schema' => [ - 'description' => '备份ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'backup-fdb897sdfg5****', - ], + 'schema' => ['description' => '备份ID。', 'type' => 'string', 'required' => true, 'example' => 'backup-1736207****'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'Schema of Response', - 'description' => '返回参数结构。', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '本次调用请求的ID,是由阿里云为该请求生成的唯一标识符,可用于排查和定位问题。', - 'type' => 'string', - 'example' => '4C467B38-3910-447D-87BC-AC049166F216', - ], + 'RequestId' => ['description' => '本次调用请求的ID,是由阿里云为该请求生成的唯一标识符,可用于排查和定位问题。', 'type' => 'string', 'example' => '4C467B38-3910-447D-87BC-AC049166F216'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidApiParam.Error', - 'errorMessage' => 'api param is invalid', - ], + ['errorCode' => 'InvalidApiParam.Error', 'errorMessage' => 'api param is invalid', 'description' => ''], ], 403 => [ - [ - 'errorCode' => 'NoPermission', - 'errorMessage' => 'caller has no permission', - ], - [ - 'errorCode' => 'Backup.ActionForbidden', - 'errorMessage' => 'This API is forbidden for this backup type.', - ], + ['errorCode' => 'NoPermission', 'errorMessage' => 'caller has no permission', 'description' => ''], + ['errorCode' => 'Backup.ActionForbidden', 'errorMessage' => 'This API is forbidden for this backup type.', 'description' => ''], ], 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'The request processing has failed due to some unknown error.', - ], + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to some unknown error.', 'description' => '未知错误导致请求处理失败。'], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '启用备份', + 'description' => '仅支持中国内地备份调用。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], + ], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'yundun-hsm:EnableBackup', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DataEncryptionService', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"4C467B38-3910-447D-87BC-AC049166F216\\"\\n}","type":"json"}]', - 'title' => '重置备份', - 'description' => '仅支持中国内地密码机实例调用。', ], - 'ConfigBackupRemark' => [ - 'summary' => '配置备份的名称及备注信息。', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'ExportImage' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -2300,56 +2167,63 @@ 'operationType' => 'write', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'update', - 'abilityTreeCode' => '203655', - 'abilityTreeNodes' => [ - 'FEATUREhsmQEGDGS', - ], + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '203656', + 'abilityTreeNodes' => ['FEATUREhsmV7VE3Y', 'FEATUREhsm01FLNB', 'FEATUREhsmGIFYCG', 'FEATUREhsmLBBV5W'], ], 'parameters' => [ [ - 'name' => 'BackupId', - 'in' => 'query', - 'schema' => [ - 'description' => '备份ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'backup-fdb897sdfg****', - ], - ], - [ - 'name' => 'Remark', + 'name' => 'InstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '备份备注信息。', - 'type' => 'string', - 'required' => false, - 'example' => '2月9日test1B', - ], + 'schema' => ['description' => '密码机实例ID。', 'type' => 'string', 'required' => true, 'example' => 'hsm-cn-vj30bil8****'], ], [ - 'name' => 'Name', + 'name' => 'ImageId', 'in' => 'query', - 'schema' => [ - 'description' => '备份名称。', - 'type' => 'string', - 'required' => false, - 'example' => 'backup-test', - ], + 'schema' => ['description' => '镜像ID。', 'type' => 'string', 'required' => true, 'example' => 'image-8vbdd5uc6v10ecn5****'], ], ], 'responses' => [ 200 => [ 'schema' => [ 'title' => 'Schema of Response', - 'description' => '返回参数结构。', + 'description' => '响应信息。', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '本次调用请求的ID,是由阿里云为该请求生成的唯一标识符,可用于排查和定位问题。', - 'type' => 'string', - 'example' => '4C467B38-3910-447D-87BC-AC049166F216', + 'RequestId' => ['title' => 'Id of the request', 'description' => '本次调用请求的ID,是由阿里云为该请求生成的唯一标识符,可用于排查和定位问题。', 'type' => 'string', 'example' => '4C467B38-3910-447D-87BC-AC049166F216'], + 'Job' => [ + 'description' => '返回的异步任务信息。', + 'type' => 'object', + 'properties' => [ + 'JobId' => ['description' => '任务ID。', 'type' => 'string', 'example' => 'b1748ca6-6b55-49f4-a6d4-2d694a9f3693'], + 'Type' => ['description' => '任务操作类型。'."\n" + ."\n" + .'- create:创建任务'."\n" + ."\n" + .'- cancel:取消任务', 'type' => 'string', 'example' => 'create'], + 'Completed' => ['description' => '任务是否完成。'."\n" + ."\n" + .'- true:已完成'."\n" + ."\n" + .'- false:未完成', 'type' => 'boolean', 'example' => 'true'], + 'Status' => [ + 'description' => '任务状态。'."\n" + .'- running:执行中'."\n" + ."\n" + .' - cancel:取消'."\n" + .'- fail:失败 '."\n" + .'- success:成功', + 'type' => 'string', + 'enumValueTitles' => ['running' => '执行中', 'cancel' => '取消', 'fail' => '失败', 'success' => '成功'], + 'example' => 'running', + 'enum' => ['running', 'success', 'fail', 'cancel'], + ], + 'Response' => ['description' => '操作成功后的响应信息。', 'type' => 'string', 'example' => 'success'], + 'Error' => ['description' => '操作异常或者失败时的错误信息。', 'type' => 'string', 'example' => 'Job.Canceled'], + 'Process' => ['description' => '任务执行进度。单位为百分比。', 'type' => 'integer', 'format' => 'int32', 'example' => '100'], + ], ], ], ], @@ -2357,489 +2231,212 @@ ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidApiParam.Error', - 'errorMessage' => 'api param is invalid', - ], + ['errorCode' => 'InvalidApiParam.Error', 'errorMessage' => 'api param is invalid', 'description' => ''], ], 403 => [ - [ - 'errorCode' => 'NoPermission', - 'errorMessage' => 'caller has no permission', - ], + ['errorCode' => 'NoPermission', 'errorMessage' => 'User has no permission to access this resource.', 'description' => ''], + ['errorCode' => 'Backup.ActionForbidden', 'errorMessage' => 'This API is forbidden for this backup type.', 'description' => ''], ], 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'The request processing has failed due to some unknown error.', - ], + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to some unknown error.', 'description' => '未知错误导致请求处理失败。'], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '导出镜像', + 'summary' => '导出指定密码机的镜像。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], + ], + 'ramActions' => [ + [ + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'yundun-hsm:ExportImage', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DataEncryptionService', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"4C467B38-3910-447D-87BC-AC049166F216\\"\\n}","type":"json"}]', - 'title' => '配置备份备注信息', + '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"}]', ], - 'DeleteCluster' => [ - 'methods' => [ - 'post', - ], - 'schemes' => [ - 'https', - ], + 'GetAuditLogStatus' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', + 'operationType' => 'read', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'delete', + 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', + 'abilityTreeCode' => '203664', + 'abilityTreeNodes' => ['FEATUREhsmVF2KT5'], ], 'parameters' => [ [ - 'name' => 'ClusterId', - 'in' => 'formData', - 'schema' => [ - 'description' => '集群ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'cluster-NZB9Oj5Yfd8Y****', - ], + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => true, 'example' => 'cn-hangzhou'], + ], + [ + 'name' => 'GetOssBucket', + 'in' => 'query', + 'schema' => ['description' => '是否获取可用于存储审计日志的OSS Bucket列表。'."\n" + ."\n" + .'- true:是'."\n" + ."\n" + .'- false:否', 'type' => 'boolean', 'required' => false, 'example' => 'true'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'BaseResult', - 'description' => 'BaseResult', + 'description' => '响应信息。', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '本次调用请求的ID,是由阿里云为该请求生成的唯一标识符,可用于排查和定位问题。', + 'RequestId' => ['description' => '本次调用请求的ID,是由阿里云为该请求生成的唯一标识符,可用于排查和定位问题。', 'type' => 'string', 'example' => '4C467B38-3910-447D-87BC-AC049166F216'], + 'Success' => ['description' => '调用是否成功。'."\n" + ."\n" + .'- true:成功'."\n" + ."\n" + .'- false:失败', 'type' => 'boolean', 'example' => 'true'], + 'RegionId' => ['description' => '地域ID。', 'type' => 'string', 'example' => 'cn-hangzhou'], + 'AuditLogStatus' => [ + 'description' => '审计日志开通状态。'."\n" + .'- enable:已开通 '."\n" + .'- disable:未开通', 'type' => 'string', - 'example' => '4C467B38-3910-447D-87BC-AC049166F216', + 'enumValueTitles' => [], + 'example' => 'enable', + 'enum' => ['enable', 'disable'], + ], + 'GrantedServiceAccess' => ['description' => '是否授权加密服务投递日志。'."\n" + ."\n" + .'- true:已授权'."\n" + ."\n" + .'- false:未授权', 'type' => 'boolean', 'example' => 'true'], + 'AuditOssBucket' => ['description' => '审计日志存储的Bucket。', 'type' => 'string', 'example' => 'bucket-test'], + 'OssBuckets' => [ + 'description' => '可用于存储审计日志的OSS Bucket列表。', + 'type' => 'array', + 'items' => ['description' => 'Bucket名称。', 'type' => 'string', 'example' => 'bucket-test'], ], ], ], ], ], '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.', - ], + ['errorCode' => 'OSSPermissionDenied.Error', 'errorMessage' => '获取对应OSS bucket权限失败,请检查OSS权限设置: %s', 'description' => ''], ], 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.', + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to some unknown error.', 'description' => '未知错误导致请求处理失败。'], + ], + ], + 'title' => '查询审计日志开通状态', + 'summary' => '查询当前地域下审计日志开通状态。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], + ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'yundun-hsm:GetAuditLogStatus', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DataEncryptionService', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"4C467B38-3910-447D-87BC-AC049166F216\\"\\n}","type":"json"}]', - 'title' => '删除集群', - 'summary' => '删除指定集群。', - 'description' => '只有集群不存在密码机实例时可以删除。', + '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"}]', ], - 'JoinCluster' => [ - 'summary' => '将集群外的一台密码机加入当前集群。', - 'methods' => [ - 'post', - ], - 'schemes' => [ - 'https', - ], + 'GetBackup' => [ + 'summary' => '查询指定备份信息。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'read', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'update', + 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREhsmV7VE3Y', - 'FEATUREhsm01FLNB', - 'FEATUREhsmGIFYCG', - 'FEATUREhsmLBBV5W', - ], + 'abilityTreeCode' => '203668', + 'abilityTreeNodes' => ['FEATUREhsmQEGDGS'], ], 'parameters' => [ [ - 'name' => 'ClusterId', - 'in' => 'formData', - 'schema' => [ - 'title' => '集群ID', - 'description' => '集群ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'cluster-NZB9Oj5Yfd8Y****', - ], - ], - [ - 'name' => 'InstanceId', - 'in' => 'formData', - 'schema' => [ - 'title' => '实例ID', - 'description' => '加入集群的密码机实例ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'hsm-cn-vj30bil8****', - ], + 'name' => 'BackupId', + 'in' => 'query', + 'schema' => ['description' => '备份ID。', 'type' => 'string', 'required' => false, 'example' => 'backup-fdb897sdf****'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'PlainResult<OpenApiJoinClusterResponse>', - 'description' => 'PlainResult<OpenApiJoinClusterResponse>', + 'description' => '响应信息。', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => '请求的唯一标识符', - 'description' => '本次调用请求的ID,是由阿里云为该请求生成的唯一标识符,可用于排查和定位问题。', - 'type' => 'string', - 'example' => '4C467B38-3910-447D-87BC-AC049166F216', - ], - 'Job' => [ - 'title' => '异步任务对象', - 'description' => '任务详情。', + 'RequestId' => ['description' => '本次调用请求的ID,是由阿里云为该请求生成的唯一标识符,可用于排查和定位问题。', 'type' => 'string', 'example' => '4C467B38-3910-447D-87BC-AC049166F216'], + 'Backup' => [ + 'description' => '返回的备份信息。', 'type' => 'object', 'properties' => [ - 'JobId' => [ - 'title' => '异步任务ID', - 'description' => '任务ID。', - 'type' => 'string', - 'example' => 'job-202401250936hze747fd7e0007005', - ], - 'Type' => [ - 'title' => '任务类型', - 'description' => '操作类型。'."\n" - ."\n" - .'- create:创建任务'."\n" + 'BackupId' => ['description' => '备份ID。', 'type' => 'string', 'example' => 'backup-fdb897sdf****'], + 'CreateTime' => ['description' => '备份创建时间,精确到毫秒。时间戳格式。', 'type' => 'integer', 'format' => 'int64', 'example' => '1682417553781'], + 'ExpireTime' => ['description' => '备份过期时间,精确到毫秒。时间戳格式。', 'type' => 'integer', 'format' => 'int64', 'example' => '1682417553781'], + 'InstanceId' => ['description' => '备份关联的密码机实例ID。', 'type' => 'string', 'example' => 'hsm-cn-5yd35431****'], + 'Name' => ['description' => '备份名称。', 'type' => 'string', 'example' => 'backup-te****'], + 'RegionId' => ['description' => '地域ID。', 'type' => 'string', 'example' => 'cn-hangzhou'], + 'Remark' => ['description' => '备份备注。', 'type' => 'string', 'example' => 'test'], + 'Status' => [ + 'description' => '备份状态。'."\n" ."\n" - .'- cancel:取消任务', - 'type' => 'string', - 'example' => 'create', - ], - 'Completed' => [ - 'title' => '任务完成情况', - 'description' => '任务是否完成。'."\n" + .'- NEW:未启用'."\n" ."\n" - .'- true:是'."\n" + .'- EXPIRED:已过期'."\n" ."\n" - .'- false:否', - 'type' => 'boolean', - 'example' => 'true', - ], - 'CreateTime' => [ - 'title' => '创建时间', - 'description' => '任务创建时间,精确到毫秒。时间戳格式。', + .'- ENABLED:已启用', 'type' => 'string', - 'example' => '1711764127000', + 'enumValueTitles' => [], + 'example' => 'NEW', + 'enum' => ['EXPIRED', 'ENABLED', 'NEW'], ], - 'Status' => [ - 'title' => '任务状态', - 'description' => '任务状态。'."\n" - ."\n" - .'- success:任务成功'."\n" - ."\n" - .'- running:任务执行中'."\n" + 'MaxImageCount' => ['description' => '最大镜像数量。', 'type' => 'string', 'example' => '3'], + 'Type' => [ + 'description' => '备份类型。'."\n" ."\n" - .'- cancel:任务取消'."\n" + .'- DEFAULT:默认备份'."\n" ."\n" - .'- fail:任务失败', - 'type' => 'string', - 'example' => 'running', - ], - 'Response' => [ - 'title' => '任务返回值', - 'description' => '任务成功后返回的响应信息。', - 'type' => 'string', - 'example' => 'success', - ], - 'Error' => [ - 'title' => '任务报错信息', - 'description' => '任务失败时的错误信息。', + .'- NORMAL:普通备份', 'type' => 'string', - 'example' => 'OperationTimeout', - ], - 'Progress' => [ - 'title' => '任务进度', - 'description' => '任务执行进度。单位为百分比。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '86', - ], + 'enumValueTitles' => [], + 'example' => 'DEFAULT', + 'enum' => ['DEFAULT', 'NORMAL'], + ], + 'BackupPeriod' => ['description' => '自动备份周期,单位天数。', 'type' => 'integer', 'format' => 'int64', 'example' => '3'], + 'NextImageCreateTime' => ['description' => '镜像下一次创建时间,精确到毫秒。时间戳格式。', 'type' => 'integer', 'format' => 'int64', 'example' => '1682417553781'], + 'BackupHourInDay' => ['description' => '备份时间,24小时制整点时间。', 'type' => 'string', 'example' => '10'], + 'SpInstanceId' => ['description' => '售卖域备份ID。 仅中国内地密码机备份有此属性。', 'type' => 'string', 'example' => 'backup-fdb897sdfg53****'], + 'AutoImageCount' => ['description' => '自动备份镜像数量。', 'type' => 'integer', 'format' => 'int64', 'example' => '1'], + 'OwnerInstanceId' => ['description' => '备份所属的密码机实例ID。仅非中国内地密码机备份有此属性,且与InstanceId一致。', 'type' => 'string', 'example' => 'hsm-cn-huoahd****'], + 'ReleaseTime' => ['description' => '备份释放时间,精确到毫秒。时间戳格式。', 'type' => 'integer', 'format' => 'int64', 'example' => '1641275680000'], ], ], ], @@ -2847,389 +2444,149 @@ ], ], '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.', - ], + ['errorCode' => 'NoPermission', 'errorMessage' => 'caller has no permission', 'description' => ''], ], - 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'], + 'title' => '查询备份', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], + ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'yundun-hsm:GetBackup', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DataEncryptionService', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], ], - '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' => '加入集群', - 'description' => '- 只有已初始化(INITIALIZED)状态的集群可加入新的密码机实例。'."\n" - .'- 待加入集群的密码机实例状态为已启用或未启用,且未初始化。', + '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"}]', ], - 'ConfigClusterSubnet' => [ - 'summary' => '修改集群绑定的交换机列表。', - 'methods' => [ - 'post', - ], - 'schemes' => [ - 'https', - ], + 'GetCluster' => [ + 'summary' => '查询指定集群信息。', + 'methods' => ['post', 'get'], + 'schemes' => ['https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'read', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'update', + 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '211854', - 'abilityTreeNodes' => [ - 'FEATUREhsmV7VE3Y', - 'FEATUREhsm01FLNB', - 'FEATUREhsmGIFYCG', - 'FEATUREhsmLBBV5W', - ], + 'abilityTreeNodes' => ['FEATUREhsmV7VE3Y', 'FEATUREhsm01FLNB', 'FEATUREhsmGIFYCG', 'FEATUREhsmLBBV5W'], ], 'parameters' => [ [ 'name' => 'ClusterId', 'in' => 'formData', - 'schema' => [ - 'description' => '集群ID。可以通过调用ListCluster获取集群ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'cluster-BqxX63Bsg****', - ], - ], - [ - 'name' => 'RegionId', - 'in' => 'formData', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'cn-hangzhou', - ], - ], - [ - 'name' => 'VpcId', - 'in' => 'formData', - 'schema' => [ - 'description' => 'VPC网络ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'vpc-7xvkh90cw39p0****', - ], - ], - [ - 'name' => 'VSwitchIds', - 'in' => 'formData', - 'style' => 'json', - 'schema' => [ - 'description' => '集群配置的交换机列表。注意:必须包含集群要配置的所有交换机。', - 'type' => 'array', - 'items' => [ - 'description' => '交换机ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'vsw-2zeqkh8ar8yey5ejv****', - ], - 'required' => true, - ], + 'schema' => ['description' => '集群ID。', 'type' => 'string', 'required' => true, 'example' => 'cluster-p94y1dud9ts****'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'BaseResult', - 'description' => 'BaseResult', + 'title' => 'PlainResult<OpenApiGetClusterResponse>', + 'description' => 'PlainResult<OpenApiGetClusterResponse>', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '本次调用请求的 ID,是由阿里云为该请求生成的唯一标识符,可用于排查和定位问题。', - 'type' => 'string', - 'example' => '4C467B38-3910-447D-87BC-AC049366F216', + 'RequestId' => ['description' => '本次调用请求的ID,是由阿里云为该请求生成的唯一标识符,可用于排查和定位问题。', 'type' => 'string', 'example' => '4C467B38-3910-447D-87BC-AC049166F216'], + 'Cluster' => [ + 'description' => '集群信息。', + 'type' => 'object', + 'properties' => [ + 'ClusterId' => ['title' => '集群基础信息', 'description' => '集群ID。', 'type' => 'string', 'example' => 'cluster-p94y1dud9ts****'], + 'ClusterName' => ['description' => '集群名称。', 'type' => 'string', 'example' => 'cluster_polar_****'], + 'Status' => ['description' => '集群状态。'."\n" + ."\n" + .'- NEW:未初始化'."\n" + ."\n" + .'- INITIALIZED:已初始化'."\n" + ."\n" + .'- DELETED:已删除'."\n" + ."\n" + .'- SYNCHRONIZING:同步中'."\n" + ."\n" + .'- TO_DELETE:待删除', 'type' => 'string', 'example' => 'NEW'], + 'CreateTime' => ['title' => '时间信息', 'description' => '集群创建时间,精确到毫秒。时间戳格式。', 'type' => 'integer', 'format' => 'int64', 'example' => '1641275680000'], + 'RegionId' => ['title' => '地域与可用区信息', 'description' => '集群所在地域ID。', 'type' => 'string', 'example' => 'cn-hangzhou'], + 'VpcId' => ['title' => '网络配置信息', 'description' => '集群所属VPC ID。', 'type' => 'string', 'example' => 'vpc-8vbt0fjdm29hofvbo****'], + 'Whitelist' => ['description' => '集群访问白名单列表。', 'type' => 'string', 'example' => '130.176.XX.XX'], + 'Zones' => [ + 'description' => '集群可用区列表。', + 'type' => 'array', + 'items' => [ + 'description' => '可用区。', + 'type' => 'object', + 'properties' => [ + 'VSwitchId' => ['description' => '交换机ID。', 'type' => 'string', 'example' => 'vsw-uf61s651p69bdgmki****'], + 'ZoneId' => ['description' => '可用区ID。', 'type' => 'string', 'example' => 'cn-hangzhou-j'], + ], + ], + ], + 'DeviceType' => ['title' => '规格信息', 'description' => '设备类型。', 'type' => 'string', 'example' => 'jnta'], + 'ClusterCsr' => ['title' => '证书信息', 'description' => '集群证书签名请求文件。', 'type' => 'string', 'example' => '-----BEGIN CERTIFICATE REQUEST-----\\nMIIC5TCCAc0CAQAwgZ8xWTAJBgNVBAYTAlVTMAkGA1UECAwCQ0EwDQYDVQQKDAZD\\nYXZpdW0wDQYDVQQLDAZOM0ZJUFMwDgYDVQQHDAdTYW5Kb3NlMBMGA1UdEQwMMTk****'."\n" + .'-----END CERTIFICATE REQUEST-----'], + 'ClusterCertificate' => ['description' => '集群证书。', 'type' => 'string', 'example' => '-----BEGIN CERTIFICATE-----'."\n" + .'MIIDfTCCAmWgAwIBAgIJAMRqQMr5if66MA0GCSqGSIb3DQEBCwUAMFUxCzAJBgNV'."\n" + .'BAYTAmNuMQswCQYDVQQIDAJ6ajELMAkGA1UEBwwCaHoxFjAUBgNVBAoMDUFsaWJh'."\n" + .'YmEgQ2xvdWQxFDA****'."\n" + .'-----END CERTIFICATE-----'], + 'ClusterOwnerCertificate' => ['description' => '集群自签名证书。', 'type' => 'string', 'example' => '----BEGIN CERTIFICATE-----'."\n" + .'MIIDaTCCAlECAQEwDQYJKoZIhvcNAQELBQAwVTELMAkGA1UEBhMCY24xCzAJBgNV'."\n" + .'BAgMAnpqMQswCQYDVQQHDAJoejEWMBQGA1UECgwNQWxpYmFiYSBDbG91ZDEUMBIG'."\n" + .'A1UECwwLU2VjQ2xvdWRIc20wHhcNMjQwNzAzM****'."\n" + .'-----END CERTIFICATE-----'], + 'Size' => ['title' => '实例信息', 'description' => '集群内实例数量。', 'type' => 'integer', 'format' => 'int32', 'example' => '2'], + 'Instances' => [ + 'description' => '集群实例列表。', + 'type' => 'array', + 'items' => [ + 'description' => '密码机实例信息。', + 'type' => 'object', + 'properties' => [ + 'InstanceId' => ['title' => '实例基础信息', 'description' => '密码机实例ID。', 'type' => 'string', 'example' => 'hsm-cn-g6z3v0uf****'], + 'NodeId' => ['title' => '状态', 'description' => '密码机实例在集群中的编号。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'Master' => ['description' => '是否为主密码机。'."\n" + ."\n" + .'- true:是'."\n" + ."\n" + .'- false:否', 'type' => 'boolean', 'example' => 'true'], + ], + ], + ], + 'ClusterMode' => ['description' => '集群模式。'."\n" + ."\n" + .'<props="china">'."\n" + ."\n" + .'- 0: 手动同步集群'."\n" + .'- 1: 自动同步集群(中国内地密码机集群)'."\n" + .'- 2: 自动同步集群(非中国内地密码机集群)'."\n" + ."\n" + .'</props>'."\n" + ."\n\n" + .'<props="intl">'."\n" + .'2: 自动同步集群'."\n" + .'</props>', 'type' => 'integer', 'format' => 'int32', 'example' => '2'], + 'EntityCertExpireTime' => ['description' => '集群托管证书到期时间,精确到毫秒,时间戳格式。'."\n" + .'仅当CertManaged为true时该值有意义。', 'type' => 'string', 'example' => '1641275680000'], + 'CertManaged' => ['description' => '集群证书是否托管。'."\n" + ."\n" + .'- true:托管'."\n" + ."\n" + .'- false:非托管', 'type' => 'boolean', 'example' => 'true'], + 'KmsInstanceId' => ['title' => 'KMS实例ID', 'type' => 'string', 'example' => 'kst-xxx'], + ], ], ], ], @@ -3237,1027 +2594,585 @@ ], '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.', - ], + ['errorCode' => 'SwitchMaster.InstanceInvalid', 'errorMessage' => 'Instance not in the cluster.', 'description' => ''], + ['errorCode' => 'LeaveCluster.MasterLast', 'errorMessage' => 'Master instance can not leave a cluster until all other instances are left.', 'description' => ''], + ['errorCode' => 'Certificate.ChainInvalid', 'errorMessage' => 'Certificate chain invalid. Please make sure issuer certificate is the trust anchor and cluster certificate is signed by issuer certificate.', 'description' => ''], + ['errorCode' => 'Certificate.FormatInvalid', 'errorMessage' => 'Certificate format invalid. Cluster/Issuer certificate must be in PEM format.', 'description' => ''], + ['errorCode' => 'ConfigClusterSubnet.DuplicateZone', 'errorMessage' => 'VSwitches should not contain duplicate zones.', 'description' => ''], + ['errorCode' => 'InvalidApiParam.Error', 'errorMessage' => 'api param is invalid', 'description' => ''], + ['errorCode' => 'InvalidClusterName', 'errorMessage' => 'Invalid parameter clusterName.', 'description' => ''], + ['errorCode' => 'InvalidPageSize', 'errorMessage' => 'Invalid parameter pageSize.', 'description' => ''], + ['errorCode' => 'InvalidCurrentPage', 'errorMessage' => 'Invalid parameter currentPage.', 'description' => ''], + ['errorCode' => 'InvalidRegionId', 'errorMessage' => 'Invalid parameter regionId.', 'description' => ''], + ['errorCode' => 'InvalidVSwitch', 'errorMessage' => 'Invalid parameter vSwitch.', 'description' => ''], + ['errorCode' => 'InvalidVpc', 'errorMessage' => 'Invalid parameter vpcId.', 'description' => ''], + ['errorCode' => 'InvalidIp', 'errorMessage' => 'Invalid parameter IP.', 'description' => ''], + ['errorCode' => 'InvalidAliuid', 'errorMessage' => 'Invalid parameter aliuid.', 'description' => ''], + ['errorCode' => 'InvalidClusterId', 'errorMessage' => 'Invalid parameter clusterId.', 'description' => ''], + ['errorCode' => 'InvalidInstanceId', 'errorMessage' => 'Invalid parameter instanceId.', 'description' => ''], + ['errorCode' => 'InvalidBackupId', 'errorMessage' => 'Invalid parameter backupId.', 'description' => ''], + ['errorCode' => 'InvalidImageId', 'errorMessage' => 'Invalid parameter imageId.', 'description' => ''], + ['errorCode' => 'HsmInstanceNotExist.Error', 'errorMessage' => 'hsm instance not exist', 'description' => ''], + ['errorCode' => 'HSMIntanceNotActived.Error', 'errorMessage' => 'hsm intance is not actived', 'description' => ''], + ['errorCode' => 'WhiteListMaxCount.Error', 'errorMessage' => 'whilte list is more than max count', 'description' => ''], + ['errorCode' => 'ClusterIdIsNotExists.Error', 'errorMessage' => 'cluster ID non-exists', 'description' => ''], + ['errorCode' => 'InstanceListIsEmpty.Error', 'errorMessage' => 'instance list is empty', 'description' => ''], + ['errorCode' => 'InstanceIdIsEmpty.Error', 'errorMessage' => 'instance id is empty', 'description' => ''], + ['errorCode' => 'InstanceIsNotExistsInCluster.Error', 'errorMessage' => 'cluster has no such instance', 'description' => ''], + ['errorCode' => 'InstanceIsExistsInCluster.Error', 'errorMessage' => 'instance already in the cluster', 'description' => ''], + ['errorCode' => 'RegionNoEmpty.Error', 'errorMessage' => 'region no. is empty', 'description' => ''], + ['errorCode' => 'ClusterNameEmpty.Error', 'errorMessage' => 'empty cluster name not allowed', 'description' => ''], + ['errorCode' => 'ClusterNameIsExists.Error', 'errorMessage' => 'the cluster name is already taken', 'description' => ''], + ['errorCode' => 'IpNotValid.Error', 'errorMessage' => 'ip not valid', 'description' => ''], + ['errorCode' => 'ClusterIsEmpty.Error', 'errorMessage' => 'cluster is empty', 'description' => ''], + ['errorCode' => 'NoMasterFoundInCluster.Error', 'errorMessage' => 'cluster has no master instance', 'description' => ''], + ['errorCode' => 'HsmInstanceIdNotFound.Error', 'errorMessage' => 'no such instance', 'description' => ''], + ['errorCode' => 'NoInstanceFoundInCluster.Error', 'errorMessage' => 'cluster is empty', 'description' => ''], + ['errorCode' => 'Whitelist.Invalid', 'errorMessage' => 'Whitelist blocks not in CIDR format.', 'description' => ''], + ['errorCode' => 'Whitelist.TooLong', 'errorMessage' => 'Whitelist too long, exceeds 10 CIDR blocks.', 'description' => ''], ], 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.', - ], + ['errorCode' => 'NoPermission', 'errorMessage' => 'Caller has no permission on the resource.', 'description' => ''], + ['errorCode' => 'InstanceNotPaused', 'errorMessage' => 'Please pause the instance before reset.', 'description' => ''], + ['errorCode' => 'InstanceNotActive', 'errorMessage' => 'Instance is not active.', 'description' => ''], + ['errorCode' => 'ConfigIp.IncorrectState', 'errorMessage' => 'Instance not in pending or active state, can not config IP address.', 'description' => ''], + ['errorCode' => 'SwitchMaster.IncorrectState', 'errorMessage' => 'Cluster not initialized, please initialize the cluster first.', 'description' => ''], + ['errorCode' => 'SyncCluster.IncorrectState', 'errorMessage' => 'Cluster not initialized, please initialize the cluster first.', 'description' => ''], + ['errorCode' => 'LeaveCluster.InstanceInvalid', 'errorMessage' => 'The instance is not in the cluster.', 'description' => ''], + ['errorCode' => 'DeleteCluster.IncorrectState', 'errorMessage' => 'Cluster not empty, please remove all instances first.', 'description' => ''], + ['errorCode' => 'JoinCluster.InstanceVSwitchNotInCluster', 'errorMessage' => 'Instance\'s vSwitch is not in cluster config, please change instance\'s vSwitch first.', 'description' => ''], + ['errorCode' => 'JoinCluster.InstanceInitialized', 'errorMessage' => 'Initialized instance can not join a cluster.', 'description' => ''], + ['errorCode' => 'JoinCluster.IncorrectState', 'errorMessage' => 'Cluster not initialized, please initialize the cluster first.', 'description' => ''], + ['errorCode' => 'InitializeCluster.InstanceNotInitialized', 'errorMessage' => 'Cluster master instance not initialized, please initialize cluster master instance first.', 'description' => ''], + ['errorCode' => 'InitializeCluster.IncorrectConfig', 'errorMessage' => 'Cluster subnet not configured, please config cluster subnet first.', 'description' => ''], + ['errorCode' => 'InitializeCluster.IncorrectState', 'errorMessage' => 'Cluster initialized, do not re-initialize.', 'description' => ''], + ['errorCode' => 'Cluster.CN.ActionForbidden', 'errorMessage' => 'This API is forbidden for non-international site cluster.', 'description' => ''], + ['errorCode' => 'Cluster.INTL.ActionForbidden', 'errorMessage' => 'This API is forbidden for international site cluster.', 'description' => ''], + ['errorCode' => 'ConfigClusterCertificate.IncorrectState', 'errorMessage' => 'Cluster initialized or certificates already configured.', 'description' => ''], + ['errorCode' => 'ConfigClusterSubnet.InvalidVpcId', 'errorMessage' => 'VPC Id invalid. Cluster VPC is the same as cluster master\'s VPC.', 'description' => ''], + ['errorCode' => 'ConfigClusterSubnet.InvalidVSwitchId', 'errorMessage' => 'VSwitch Id invalid. VSwitches should contain all current cluster vSwitches.', 'description' => ''], + ['errorCode' => 'ConfigClusterSubnet.IncorrectState', 'errorMessage' => 'Cluster not in NEW state, can not config cluster subnet.', 'description' => ''], + ['errorCode' => 'ClusterName.Exist', 'errorMessage' => 'Cluster name already exists, please use another name.', 'description' => ''], + ['errorCode' => 'Whitelist.InstanceInCluster', 'errorMessage' => 'Whitelist.InstanceInCluster', 'description' => ''], + ], + [ + ['errorCode' => 'Resource.NotFound', 'errorMessage' => 'Resource not found.', 'description' => ''], + ], + [ + ['errorCode' => 'ClusterAPI.NotSupported', 'errorMessage' => 'ClusterAPI not supported in this region.', 'description' => ''], ], 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.', - ], + ['errorCode' => 'Conflict', 'errorMessage' => 'Resource is being updated by a previous request. Current request is redundant.', 'description' => ''], + ['errorCode' => 'Cluster.Conflict', 'errorMessage' => 'The cluster is being updated by a previous request. Please try again later.', 'description' => ''], ], 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.', - ], + ['errorCode' => 'ConfigWhitelistFailed.Error', 'errorMessage' => 'config white list error', 'description' => ''], + ['errorCode' => 'ActionFailed.Error', 'errorMessage' => 'internal error, please try again', 'description' => ''], + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to some unknown error.', 'description' => '未知错误导致请求处理失败。'], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '查询集群', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], + ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'yundun-hsm:GetCluster', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DataEncryptionService', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"4C467B38-3910-447D-87BC-AC049366F216\\"\\n}","type":"json"}]', - 'title' => '配置集群交换机', - 'description' => '全量配置对应集群绑定的交换机列表,仅允许新增交换机,不允许删除交换机。', + '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 \\"KmsInstanceId\\": \\"kst-xxx\\"\\n }\\n}","type":"json"}]', ], - 'SyncCluster' => [ - 'summary' => '同步集群内实例数据。', - 'methods' => [ - 'post', - ], - 'schemes' => [ - 'https', - ], + 'GetImage' => [ + 'summary' => '查询指定镜像信息。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'read', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'update', + 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREhsmV7VE3Y', - 'FEATUREhsm01FLNB', - 'FEATUREhsmGIFYCG', - ], + 'abilityTreeCode' => '203665', + 'abilityTreeNodes' => ['FEATUREhsmQEGDGS'], ], 'parameters' => [ [ - 'name' => 'ClusterId', - 'in' => 'formData', - 'schema' => [ - 'description' => '集群ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'cluster-BqxX63Bsgytet****', - ], + 'name' => 'ImageId', + 'in' => 'query', + 'schema' => ['description' => '镜像ID。', 'type' => 'string', 'required' => true, 'example' => 'image-wz9c5ths5dfuwx47****'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'PlainResult<OpenApiSyncClusterResponse>', - 'description' => 'PlainResult<OpenApiSyncClusterResponse>', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '本次调用请求的ID,是由阿里云为该请求生成的唯一标识符,可用于排查和定位问题。', - 'type' => 'string', - 'example' => '4C467B38-3910-447D-87BC-AC049166F216', - ], - 'Job' => [ - 'description' => '任务详情。', + 'RequestId' => ['description' => '本次调用请求的ID,是由阿里云为该请求生成的唯一标识符,可用于排查和定位问题。', 'type' => 'string', 'example' => '4C467B38-3910-447D-87BC-AC049166F216'], + 'Image' => [ + 'description' => '返回的镜像信息。', 'type' => 'object', 'properties' => [ - 'JobId' => [ - 'description' => '任务ID。', - 'type' => 'string', - 'example' => 'job-000bu7m5vjmyz9s7qz85', - ], - 'Type' => [ - 'description' => '操作类型。'."\n" + 'BackupId' => ['description' => '备份ID。', 'type' => 'string', 'example' => 'backup-1618017313'], + 'ExportTime' => ['description' => '镜像生成时间,精确到毫秒。时间戳格式。', 'type' => 'integer', 'format' => 'int64', 'example' => '1786776567788'], + 'ImageId' => ['description' => '镜像ID。', 'type' => 'string', 'example' => 'image-wz9c5ths5dfuwx47****'], + 'InstanceId' => ['description' => '密码机实例ID。', 'type' => 'string', 'example' => 'hsm-cn-9lb32vll****'], + 'RegionId' => ['description' => '地域ID。', 'type' => 'string', 'example' => 'cn-hangzhou'], + 'Remark' => ['description' => '备份备注。', 'type' => 'string', 'example' => 'hsm-test'], + 'Status' => [ + 'description' => '镜像状态。'."\n" ."\n" - .'- create:创建任务'."\n" + .'- NEW:未启用'."\n" ."\n" - .'- cancel:取消任务', - 'type' => 'string', - 'example' => 'create', - ], - 'Completed' => [ - 'description' => '任务是否完成。'."\n" + .'- DELETED:已删除'."\n" ."\n" - .'- true:是'."\n" + .'- CREATING:创建中'."\n" ."\n" - .'- false:否', - 'type' => 'boolean', - 'example' => 'true', - ], - 'CreateTime' => [ - 'description' => '任务创建时间,精确到毫秒。时间戳格式。', + .'- NORMAL:创建完成', 'type' => 'string', - 'example' => '1711764127000', + 'enumValueTitles' => [], + 'example' => 'NEW', + 'enum' => ['CREATING', 'NEW', 'NORMAL', 'DELETED'], ], - 'Status' => [ - 'description' => '任务状态。'."\n" - ."\n" - .'- success:任务成功'."\n" - ."\n" - .'- running:任务执行中'."\n" + 'Mode' => [ + 'description' => '镜像生成模式。'."\n" ."\n" - .'- cancel:任务取消'."\n" + .'- PERIODIC:自动生成'."\n" ."\n" - .'- fail:任务失败', - 'type' => 'string', - 'example' => 'success', - ], - 'Response' => [ - 'description' => '任务成功后返回的响应信息。', - 'type' => 'string', - 'example' => 'success', - ], - 'Error' => [ - 'description' => '任务失败时的错误信息。', + .'- MANUAL:手动生成', 'type' => 'string', - 'example' => 'OperationTimeout', - ], - 'Progress' => [ - 'description' => '任务执行进度。单位为百分比。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '90', - ], + 'enumValueTitles' => [], + 'example' => 'MANUAL', + 'enum' => ['MANUAL', 'PERIODIC'], + ], + 'VsmDigest' => ['description' => '密码机实例摘要。', 'type' => 'string', 'example' => '3kGeHnmQzXwSsfF0Jk9eJYhe2gP6An0/HlYIiZh1****'], + 'SourceImageUid' => ['description' => '源镜像ID。', 'type' => 'string', 'example' => 'image-kklhhhh****'], + 'SourceRegionId' => ['description' => '源镜像的地域ID。', 'type' => 'string', 'example' => 'cn-beijing'], + 'SourceBackupUid' => ['description' => '源备份ID。', 'type' => 'string', 'example' => 'backup-gfuiasdfa****'], + 'SourceInstanceId' => ['description' => '源实例ID。', 'type' => 'string', 'example' => 'hsm-wz9fnmvx190shfbk****'], + 'CopyTime' => ['description' => '镜像复制时间,精确到毫秒。时间戳格式。', 'type' => 'integer', 'format' => 'int64', 'example' => '1641275680000'], ], ], ], + 'description' => '', ], ], ], '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' => 'NoPermission', 'errorMessage' => 'caller has no permission', 'description' => ''], + ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '查询镜像', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], + ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'yundun-hsm:GetImage', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DataEncryptionService', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], + ], + '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"}]', + ], + 'GetInstance' => [ + 'summary' => '查询指定实例信息。', + 'methods' => ['post', 'get'], + 'schemes' => ['https'], + 'security' => [ [ - [ - 'errorCode' => 'Resource.NotFound', - 'errorMessage' => 'Resource not found.', - ], + 'AK' => [], ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '209071', + 'abilityTreeNodes' => ['FEATUREhsmV7VE3Y', 'FEATUREhsmUNBCOF', 'FEATUREhsm01FLNB', 'FEATUREhsmGIFYCG', 'FEATUREhsmLBBV5W'], + ], + 'parameters' => [ [ - [ - 'errorCode' => 'ClusterAPI.NotSupported', - 'errorMessage' => 'ClusterAPI not supported in this region.', + 'name' => 'InstanceId', + 'in' => 'formData', + 'schema' => ['title' => '密码机实例ID。', 'description' => '密码机实例ID。', 'type' => 'string', 'required' => false, 'example' => 'hsm-cn-vj30bil****'], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => 'PlainResult<OpenApiGetInstanceResponse>', + 'description' => 'PlainResult<OpenApiGetInstanceResponse>', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['title' => '本次调用请求的ID,是由阿里云为该请求生成的唯一标识符,可用于排查和定位问题。', 'description' => '本次调用请求的ID,是由阿里云为该请求生成的唯一标识符,可用于排查和定位问题。', 'type' => 'string', 'example' => '4C467B38-3910-447D-87BC-AC049166F216'], + 'Instance' => [ + 'title' => '实例信息。', + 'description' => '实例信息。', + 'type' => 'object', + 'properties' => [ + 'InstanceId' => ['title' => '实例基础信息', 'description' => '密码机实例ID。', 'type' => 'string', 'example' => 'hsm-cn-g4t3jwsc****'], + 'Remark' => ['title' => '备注信息。', 'description' => '备注信息。', 'type' => 'string', 'example' => 'hsmOnline'], + 'RegionId' => ['title' => '地域ID。', 'description' => '地域ID。', 'type' => 'string', 'example' => 'cn-hangzhou'], + 'ZoneId' => ['title' => '可用区ID。', 'description' => '可用区ID。', 'type' => 'string', 'example' => 'cn-hangzhou-b'], + 'Vendor' => ['title' => '硬件信息', 'description' => '厂商信息。', 'type' => 'string', 'example' => 'jnta'], + 'DeviceType' => ['title' => '设备类型。', 'description' => '设备类型。', 'type' => 'string', 'example' => 'jnta.SJJ1528-G'], + 'PqcEnabled' => [ + 'title' => '实例是否启用PQC功能', + 'description' => '实例是否启用PQC功能', + 'type' => 'integer', + 'format' => 'int32', + 'example' => '1', + 'enum' => ['1', '0'], + ], + 'TpsEnabled' => [ + 'description' => '实例是否支持TPS监控。', + 'type' => 'integer', + 'format' => 'int32', + 'enumValueTitles' => ['不支持', '支持'], + 'example' => '1', + 'enum' => ['0', '1'], + ], + 'TenantIsolationType' => ['title' => '密码机硬件隔离类型,枚举值"vsm"虚拟密码机,"hostedHsm"托管硬件密码机', 'description' => '密码机硬件隔离类型,枚举值"vsm"虚拟密码机,"hostedHsm"托管硬件密码机', 'type' => 'string', 'example' => 'hostedHsm'], + 'OrderId' => ['title' => '售卖信息', 'description' => '订单ID。', 'type' => 'string', 'example' => '23576634952****'], + 'IsTrial' => ['title' => '是否试用。'."\n" + ."\n" + .'- true:是'."\n" + ."\n" + .'- false:否', 'description' => '是否试用。'."\n" + ."\n" + .'- true:是'."\n" + ."\n" + .'- false:否', 'type' => 'boolean', 'example' => 'false'], + 'VpcId' => ['title' => '网络配置', 'description' => '实例所属VPC ID。', 'type' => 'string', 'example' => 'vpc-uf69i66j9kmoko52p****'], + 'VSwitchId' => ['title' => '密码机实例配置的交换机ID。', 'description' => '密码机实例配置的交换机ID。', 'type' => 'string', 'example' => 'vsw-bp1mvfs31ltt0wyhf****'], + 'Ip' => ['title' => '密码机实例在VPC网络中的IP地址。', 'description' => '密码机实例在VPC网络中的IP地址。', 'type' => 'string', 'example' => '10.192.XX.XX'], + 'Whitelist' => ['title' => '白名单IP列表。', 'description' => '白名单IP列表。', 'type' => 'string', 'example' => '18.68.XX.XX'], + 'CreateTime' => ['title' => '时间信息', 'description' => '实例创建时间。', 'type' => 'integer', 'format' => 'int64', 'example' => '1699515963000'], + 'ExpireTime' => ['title' => '实例过期时间。', 'description' => '实例过期时间。', 'type' => 'integer', 'format' => 'int64', 'example' => '1699496389720'], + 'ClusterId' => ['title' => '集群信息', 'description' => '实例所属集群ID。', 'type' => 'string', 'example' => 'cluster-w3G9vOJI2****'], + 'ClusterName' => ['title' => '集群名称。', 'description' => '集群名称。', 'type' => 'string', 'example' => 'cluster_online'], + 'Master' => ['title' => '是否为主密码机。 '."\n" + ."\n" + .'- true:主密码机'."\n" + ."\n" + .' - false:子密码机', 'description' => '是否为主密码机。 '."\n" + ."\n" + .'- true:主密码机'."\n" + ."\n" + .' - false:子密码机', 'type' => 'boolean', 'example' => 'true'], + 'Status' => ['title' => '数据状态', 'description' => '实例状态。 '."\n" + ."\n" + .'- PENDING:未启用'."\n" + ."\n" + .' - ACTIVE:已启用'."\n" + ."\n" + .' - EXPIRED:已过期'."\n" + ."\n" + .' - INVALID:已失效'."\n" + ."\n" + .' - FAILURE:生产失败'."\n" + ."\n" + .' - RESET:重置中'."\n" + ."\n" + .'- PAUSED:已停用'."\n" + ."\n" + .' - MODIFYING:变更中', 'type' => 'string', 'example' => 'EXPIRED'], + 'Certification' => ['title' => '密码机资质认证', 'description' => '密码机资质认证。', 'type' => 'string', 'example' => 'GM/T0028_LEVEL_2'], + 'CertificationUrl' => ['description' => '密码机资质认证证书下载链接。', 'type' => 'string', 'example' => 'https://xxxxxx'], + 'KmsInstanceId' => ['title' => 'KMS实例ID', 'type' => 'string', 'example' => 'kst-xxxxx'], + ], + ], + ], ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'SwitchMaster.InstanceInvalid', 'errorMessage' => 'Instance not in the cluster.', 'description' => ''], + ['errorCode' => 'LeaveCluster.MasterLast', 'errorMessage' => 'Master instance can not leave a cluster until all other instances are left.', 'description' => ''], + ['errorCode' => 'Certificate.ChainInvalid', 'errorMessage' => 'Certificate chain invalid. Please make sure issuer certificate is the trust anchor and cluster certificate is signed by issuer certificate.', 'description' => ''], + ['errorCode' => 'Certificate.FormatInvalid', 'errorMessage' => 'Certificate format invalid. Cluster/Issuer certificate must be in PEM format.', 'description' => ''], + ['errorCode' => 'ConfigClusterSubnet.DuplicateZone', 'errorMessage' => 'VSwitches should not contain duplicate zones.', 'description' => ''], + ['errorCode' => 'InvalidApiParam.Error', 'errorMessage' => 'api param is invalid', 'description' => ''], + ['errorCode' => 'InvalidClusterName', 'errorMessage' => 'Invalid parameter clusterName.', 'description' => ''], + ['errorCode' => 'InvalidPageSize', 'errorMessage' => 'Invalid parameter pageSize.', 'description' => ''], + ['errorCode' => 'InvalidCurrentPage', 'errorMessage' => 'Invalid parameter currentPage.', 'description' => ''], + ['errorCode' => 'InvalidRegionId', 'errorMessage' => 'Invalid parameter regionId.', 'description' => ''], + ['errorCode' => 'InvalidVSwitch', 'errorMessage' => 'Invalid parameter vSwitch.', 'description' => ''], + ['errorCode' => 'InvalidVpc', 'errorMessage' => 'Invalid parameter vpcId.', 'description' => ''], + ['errorCode' => 'InvalidIp', 'errorMessage' => 'Invalid parameter IP.', 'description' => ''], + ['errorCode' => 'InvalidAliuid', 'errorMessage' => 'Invalid parameter aliuid.', 'description' => ''], + ['errorCode' => 'InvalidClusterId', 'errorMessage' => 'Invalid parameter clusterId.', 'description' => ''], + ['errorCode' => 'InvalidInstanceId', 'errorMessage' => 'Invalid parameter instanceId.', 'description' => ''], + ['errorCode' => 'InvalidBackupId', 'errorMessage' => 'Invalid parameter backupId.', 'description' => ''], + ['errorCode' => 'InvalidImageId', 'errorMessage' => 'Invalid parameter imageId.', 'description' => ''], + ['errorCode' => 'HsmInstanceNotExist.Error', 'errorMessage' => 'hsm instance not exist', 'description' => ''], + ['errorCode' => 'HSMIntanceNotActived.Error', 'errorMessage' => 'hsm intance is not actived', 'description' => ''], + ['errorCode' => 'WhiteListMaxCount.Error', 'errorMessage' => 'whilte list is more than max count', 'description' => ''], + ['errorCode' => 'ClusterIdIsNotExists.Error', 'errorMessage' => 'cluster ID non-exists', 'description' => ''], + ['errorCode' => 'InstanceListIsEmpty.Error', 'errorMessage' => 'instance list is empty', 'description' => ''], + ['errorCode' => 'InstanceIdIsEmpty.Error', 'errorMessage' => 'instance id is empty', 'description' => ''], + ['errorCode' => 'InstanceIsNotExistsInCluster.Error', 'errorMessage' => 'cluster has no such instance', 'description' => ''], + ['errorCode' => 'InstanceIsExistsInCluster.Error', 'errorMessage' => 'instance already in the cluster', 'description' => ''], + ['errorCode' => 'RegionNoEmpty.Error', 'errorMessage' => 'region no. is empty', 'description' => ''], + ['errorCode' => 'ClusterNameEmpty.Error', 'errorMessage' => 'empty cluster name not allowed', 'description' => ''], + ['errorCode' => 'ClusterNameIsExists.Error', 'errorMessage' => 'the cluster name is already taken', 'description' => ''], + ['errorCode' => 'IpNotValid.Error', 'errorMessage' => 'ip not valid', 'description' => ''], + ['errorCode' => 'ClusterIsEmpty.Error', 'errorMessage' => 'cluster is empty', 'description' => ''], + ['errorCode' => 'NoMasterFoundInCluster.Error', 'errorMessage' => 'cluster has no master instance', 'description' => ''], + ['errorCode' => 'HsmInstanceIdNotFound.Error', 'errorMessage' => 'no such instance', 'description' => ''], + ['errorCode' => 'NoInstanceFoundInCluster.Error', 'errorMessage' => 'cluster is empty', 'description' => ''], + ['errorCode' => 'Whitelist.Invalid', 'errorMessage' => 'Whitelist blocks not in CIDR format.', 'description' => ''], + ['errorCode' => 'Whitelist.TooLong', 'errorMessage' => 'Whitelist too long, exceeds 10 CIDR blocks.', 'description' => ''], + ], + 403 => [ + ['errorCode' => 'Forbidden.InstanceInCluster', 'errorMessage' => 'This API is forbidden for instances in cluster.', 'description' => ''], + ['errorCode' => 'JoinCluster.InstanceIncorrectState', 'errorMessage' => 'Instance not in Active/Pending state.', 'description' => ''], + ['errorCode' => 'NoPermission', 'errorMessage' => 'Caller has no permission on the resource.', 'description' => ''], + ['errorCode' => 'InstanceNotPaused', 'errorMessage' => 'Please pause the instance before reset.', 'description' => ''], + ['errorCode' => 'InstanceNotActive', 'errorMessage' => 'Instance is not active.', 'description' => ''], + ['errorCode' => 'ConfigIp.IncorrectState', 'errorMessage' => 'Instance not in pending or active state, can not config IP address.', 'description' => ''], + ['errorCode' => 'SwitchMaster.IncorrectState', 'errorMessage' => 'Cluster not initialized, please initialize the cluster first.', 'description' => ''], + ['errorCode' => 'SyncCluster.IncorrectState', 'errorMessage' => 'Cluster not initialized, please initialize the cluster first.', 'description' => ''], + ['errorCode' => 'LeaveCluster.InstanceInvalid', 'errorMessage' => 'The instance is not in the cluster.', 'description' => ''], + ['errorCode' => 'DeleteCluster.IncorrectState', 'errorMessage' => 'Cluster not empty, please remove all instances first.', 'description' => ''], + ['errorCode' => 'JoinCluster.InstanceVSwitchNotInCluster', 'errorMessage' => 'Instance\'s vSwitch is not in cluster config, please change instance\'s vSwitch first.', 'description' => ''], + ['errorCode' => 'JoinCluster.InstanceInitialized', 'errorMessage' => 'Initialized instance can not join a cluster.', 'description' => ''], + ['errorCode' => 'JoinCluster.IncorrectState', 'errorMessage' => 'Cluster not initialized, please initialize the cluster first.', 'description' => ''], + ['errorCode' => 'InitializeCluster.InstanceNotInitialized', 'errorMessage' => 'Cluster master instance not initialized, please initialize cluster master instance first.', 'description' => ''], + ['errorCode' => 'InitializeCluster.IncorrectConfig', 'errorMessage' => 'Cluster subnet not configured, please config cluster subnet first.', 'description' => ''], + ['errorCode' => 'InitializeCluster.IncorrectState', 'errorMessage' => 'Cluster initialized, do not re-initialize.', 'description' => ''], + ['errorCode' => 'Cluster.CN.ActionForbidden', 'errorMessage' => 'This API is forbidden for non-international site cluster.', 'description' => ''], + ['errorCode' => 'Cluster.INTL.ActionForbidden', 'errorMessage' => 'This API is forbidden for international site cluster.', 'description' => ''], + ['errorCode' => 'ConfigClusterCertificate.IncorrectState', 'errorMessage' => 'Cluster initialized or certificates already configured.', 'description' => ''], + ['errorCode' => 'ConfigClusterSubnet.InvalidVpcId', 'errorMessage' => 'VPC Id invalid. Cluster VPC is the same as cluster master\'s VPC.', 'description' => ''], + ['errorCode' => 'ConfigClusterSubnet.InvalidVSwitchId', 'errorMessage' => 'VSwitch Id invalid. VSwitches should contain all current cluster vSwitches.', 'description' => ''], + ['errorCode' => 'ConfigClusterSubnet.IncorrectState', 'errorMessage' => 'Cluster not in NEW state, can not config cluster subnet.', 'description' => ''], + ['errorCode' => 'ClusterName.Exist', 'errorMessage' => 'Cluster name already exists, please use another name.', 'description' => ''], + ], + [ + ['errorCode' => 'Resource.NotFound', 'errorMessage' => 'Resource not found.', 'description' => ''], + ], + [ + ['errorCode' => 'ClusterAPI.NotSupported', 'errorMessage' => 'ClusterAPI not supported in this region.', 'description' => ''], + ], 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.', - ], + ['errorCode' => 'Conflict.InstanceModifying', 'errorMessage' => 'Instance is being modified by a previous request. Please try again later.', 'description' => ''], + ['errorCode' => 'Conflict', 'errorMessage' => 'Resource is being updated by a previous request. Current request is redundant.', 'description' => ''], + ['errorCode' => 'Cluster.Conflict', 'errorMessage' => 'The cluster is being updated by a previous request. Please try again later.', 'description' => ''], ], 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.', - ], + ['errorCode' => 'ConfigWhitelistFailed.Error', 'errorMessage' => 'config white list error', 'description' => ''], + ['errorCode' => 'ActionFailed.Error', 'errorMessage' => 'internal error, please try again', 'description' => ''], + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to some unknown error.', 'description' => '未知错误导致请求处理失败。'], ], ], - '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' => '同步集群', - 'description' => '- 只有中国内地手动同步密码机集群支持此接口。'."\n" - ."\n" - .'- 同步集群预计需要5分钟,请在业务空闲期进行同步,以免影响业务运行。', - ], - 'InitializeCluster' => [ - 'summary' => '初始化集群。', - 'methods' => [ - 'post', + 'staticInfo' => ['returnType' => 'synchronous'], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], ], - 'schemes' => [ - 'https', + 'title' => '查询实例', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], + ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'yundun-hsm:GetInstance', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DataEncryptionService', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + '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 \\"KmsInstanceId\\": \\"kst-xxxxx\\"\\n }\\n}","type":"json"}]', + ], + 'GetJob' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'read', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'update', + 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', + 'abilityTreeCode' => '201995', + 'abilityTreeNodes' => ['FEATUREhsm01FLNB', 'FEATUREhsmV7VE3Y', 'FEATUREhsmGIFYCG'], ], 'parameters' => [ [ - 'name' => 'ClusterId', - 'in' => 'formData', - 'schema' => [ - 'description' => '集群ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'cluster-p94y1dud9****', - ], + 'name' => 'JobId', + 'in' => 'query', + 'schema' => ['description' => '任务ID。', 'type' => 'string', 'required' => true, 'example' => 'job-202401250936hze747fd7e0007005'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'BaseResult', - 'description' => 'BaseResult', + 'title' => 'Schema of Response', + 'description' => '响应信息。', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '本次调用请求的ID,是由阿里云为该请求生成的唯一标识符,可用于排查和定位问题。', - 'type' => 'string', - 'example' => '4C467B38-3910-447D-87BC-AC049366F216', + 'RequestId' => ['title' => 'Id of the request', 'description' => '本次调用请求的ID,是由阿里云为该请求生成的唯一标识符,可用于排查和定位问题。', 'type' => 'string', 'example' => '4C467B38-3910-447D-87BC-AC049166F216'], + 'Job' => [ + 'description' => '任务详情。', + 'type' => 'object', + 'properties' => [ + 'JobId' => ['description' => '任务ID。', 'type' => 'string', 'example' => 'job-202401250936hze747fd7e0007005'], + 'Type' => ['description' => '操作类型。'."\n" + ."\n" + .'- create:创建任务'."\n" + ."\n" + .'- cancel:取消任务', 'type' => 'string', 'example' => 'create'], + 'Completed' => ['description' => '任务是否完成。'."\n" + ."\n" + .'- true:已完成'."\n" + ."\n" + .'- false:未完成', 'type' => 'boolean', 'example' => 'true'], + 'Status' => ['description' => '任务状态。'."\n" + ."\n" + .'- success:成功'."\n" + ."\n" + .'- running:执行中'."\n" + ."\n" + .'- fail:失败'."\n" + .'- cancel:取消', 'type' => 'string', 'example' => 'fail'], + 'Response' => ['description' => '任务成功后返回的响应信息。', 'type' => 'string', 'example' => 'success'], + 'Error' => ['description' => '任务失败时的错误信息。', 'type' => 'string', 'example' => 'OperationTimeout'], + 'Progress' => ['description' => '任务执行进度。单位为百分比。', 'type' => 'integer', 'format' => 'int64', 'example' => '95'], + ], ], ], ], ], ], - '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', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '获取异步任务', + 'summary' => '获取异步任务的详细信息。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], + ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'yundun-hsm:GetJob', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DataEncryptionService', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], + ], + '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"}]', + ], + 'InitializeAuditLog' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - [ - 'errorCode' => 'Resource.NotFound', - 'errorMessage' => 'Resource not found.', - ], + 'AK' => [], ], - [ - [ - 'errorCode' => 'ClusterAPI.NotSupported', - 'errorMessage' => 'ClusterAPI not supported in this region.', + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => ['FEATUREhsmVF2KT5'], + ], + 'parameters' => [], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => '本次调用请求的ID,是由阿里云为该请求生成的唯一标识符,可用于排查和定位问题。', 'type' => 'string', 'example' => '4FE969D9-E1C7-5274-BE7D-8C3534587605'], + ], + 'description' => '', ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'CreateServiceLinkedRole.Error %s', 'errorMessage' => 'sdfsfa %s', 'description' => ''], + ], + 404 => [ + ['errorCode' => 'EntityNotExist.Service', 'errorMessage' => '服务不存在: %s', 'description' => ''], + ['errorCode' => 'EntityNotExist.User', 'errorMessage' => '角色不存在: %s', 'description' => ''], + ['errorCode' => 'NoPermission.Client', 'errorMessage' => '当前账户无创建服务角色权限!', 'description' => ''], + ], 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.', - ], + ['errorCode' => 'EntityAlreadyExists.Role', 'errorMessage' => '服务角色已存在,请勿重复创建!', 'description' => ''], ], 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.', - ], + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to some unknown error.', 'description' => '未知错误导致请求处理失败。'], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'title' => '初始化审计日志', + 'summary' => '授权加密服务投递日志。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], + ], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'yundun-hsm:InitializeAuditLog', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DataEncryptionService', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"4C467B38-3910-447D-87BC-AC049366F216\\"\\n}","type":"json"}]', - 'title' => '初始化集群', - 'description' => '- 集群为未初始化状态,且集群主密码机已初始化。'."\n" - ."\n" - .'- 集群已配置2个及以上交换机。', + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"4FE969D9-E1C7-5274-BE7D-8C3534587605\\"\\n}","type":"json"}]', ], - 'SwitchClusterMaster' => [ - 'summary' => '将集群内一台子密码机切换为主密码机。中国内地手动同步集群不支持此接口。', - 'methods' => [ - 'post', - ], - 'schemes' => [ - 'https', - ], + 'InitializeCluster' => [ + 'summary' => '初始化集群。', + 'methods' => ['post'], + 'schemes' => ['https'], 'security' => [ [ 'AK' => [], @@ -4269,33 +3184,13 @@ 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREhsmV7VE3Y', - 'FEATUREhsm01FLNB', - 'FEATUREhsmGIFYCG', - 'FEATUREhsmLBBV5W', - ], + 'abilityTreeNodes' => ['FEATUREhsmV7VE3Y', 'FEATUREhsm01FLNB', 'FEATUREhsmGIFYCG', 'FEATUREhsmLBBV5W'], ], 'parameters' => [ [ 'name' => 'ClusterId', 'in' => 'formData', - 'schema' => [ - 'description' => '集群ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'cluster-w3G9vOJI2****', - ], - ], - [ - 'name' => 'InstanceId', - 'in' => 'formData', - 'schema' => [ - 'description' => '切换为主密码机的密码机实例ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'hsm-cn-vj30bil8****', - ], + 'schema' => ['description' => '集群ID。', 'type' => 'string', 'required' => true, 'example' => 'cluster-p94y1dud9****'], ], ], 'responses' => [ @@ -4305,349 +3200,181 @@ 'description' => 'BaseResult', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '本次调用请求的ID,是由阿里云为该请求生成的唯一标识符,可用于排查和定位问题。', - 'type' => 'string', - 'example' => '4C467B38-3910-447D-87BC-AC049166F216', - ], + 'RequestId' => ['description' => '本次调用请求的ID,是由阿里云为该请求生成的唯一标识符,可用于排查和定位问题。', '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.', - ], + ['errorCode' => 'SwitchMaster.InstanceInvalid', 'errorMessage' => 'Instance not in the cluster.', 'description' => ''], + ['errorCode' => 'LeaveCluster.MasterLast', 'errorMessage' => 'Master instance can not leave a cluster until all other instances are left.', 'description' => ''], + ['errorCode' => 'Certificate.ChainInvalid', 'errorMessage' => 'Certificate chain invalid. Please make sure issuer certificate is the trust anchor and cluster certificate is signed by issuer certificate.', 'description' => ''], + ['errorCode' => 'Certificate.FormatInvalid', 'errorMessage' => 'Certificate format invalid. Cluster/Issuer certificate must be in PEM format.', 'description' => ''], + ['errorCode' => 'ConfigClusterSubnet.DuplicateZone', 'errorMessage' => 'VSwitches should not contain duplicate zones.', 'description' => ''], + ['errorCode' => 'InvalidApiParam.Error', 'errorMessage' => 'api param is invalid', 'description' => ''], + ['errorCode' => 'InvalidClusterName', 'errorMessage' => 'Invalid parameter clusterName.', 'description' => ''], + ['errorCode' => 'InvalidPageSize', 'errorMessage' => 'Invalid parameter pageSize.', 'description' => ''], + ['errorCode' => 'InvalidCurrentPage', 'errorMessage' => 'Invalid parameter currentPage.', 'description' => ''], + ['errorCode' => 'InvalidRegionId', 'errorMessage' => 'Invalid parameter regionId.', 'description' => ''], + ['errorCode' => 'InvalidVSwitch', 'errorMessage' => 'Invalid parameter vSwitch.', 'description' => ''], + ['errorCode' => 'InvalidVpc', 'errorMessage' => 'Invalid parameter vpcId.', 'description' => ''], + ['errorCode' => 'InvalidIp', 'errorMessage' => 'Invalid parameter IP.', 'description' => ''], + ['errorCode' => 'InvalidAliuid', 'errorMessage' => 'Invalid parameter aliuid.', 'description' => ''], + ['errorCode' => 'InvalidClusterId', 'errorMessage' => 'Invalid parameter clusterId.', 'description' => ''], + ['errorCode' => 'InvalidInstanceId', 'errorMessage' => 'Invalid parameter instanceId.', 'description' => ''], + ['errorCode' => 'InvalidBackupId', 'errorMessage' => 'Invalid parameter backupId.', 'description' => ''], + ['errorCode' => 'InvalidImageId', 'errorMessage' => 'Invalid parameter imageId.', 'description' => ''], + ['errorCode' => 'HsmInstanceNotExist.Error', 'errorMessage' => 'hsm instance not exist', 'description' => ''], + ['errorCode' => 'HSMIntanceNotActived.Error', 'errorMessage' => 'hsm intance is not actived', 'description' => ''], + ['errorCode' => 'WhiteListMaxCount.Error', 'errorMessage' => 'whilte list is more than max count', 'description' => ''], + ['errorCode' => 'ClusterIdIsNotExists.Error', 'errorMessage' => 'cluster ID non-exists', 'description' => ''], + ['errorCode' => 'InstanceListIsEmpty.Error', 'errorMessage' => 'instance list is empty', 'description' => ''], + ['errorCode' => 'InstanceIdIsEmpty.Error', 'errorMessage' => 'instance id is empty', 'description' => ''], + ['errorCode' => 'InstanceIsNotExistsInCluster.Error', 'errorMessage' => 'cluster has no such instance', 'description' => ''], + ['errorCode' => 'InstanceIsExistsInCluster.Error', 'errorMessage' => 'instance already in the cluster', 'description' => ''], + ['errorCode' => 'RegionNoEmpty.Error', 'errorMessage' => 'region no. is empty', 'description' => ''], + ['errorCode' => 'ClusterNameEmpty.Error', 'errorMessage' => 'empty cluster name not allowed', 'description' => ''], + ['errorCode' => 'ClusterNameIsExists.Error', 'errorMessage' => 'the cluster name is already taken', 'description' => ''], + ['errorCode' => 'IpNotValid.Error', 'errorMessage' => 'ip not valid', 'description' => ''], + ['errorCode' => 'ClusterIsEmpty.Error', 'errorMessage' => 'cluster is empty', 'description' => ''], + ['errorCode' => 'NoMasterFoundInCluster.Error', 'errorMessage' => 'cluster has no master instance', 'description' => ''], + ['errorCode' => 'HsmInstanceIdNotFound.Error', 'errorMessage' => 'no such instance', 'description' => ''], + ['errorCode' => 'NoInstanceFoundInCluster.Error', 'errorMessage' => 'cluster is empty', 'description' => ''], + ['errorCode' => 'Whitelist.Invalid', 'errorMessage' => 'Whitelist blocks not in CIDR format.', 'description' => ''], + ['errorCode' => 'Whitelist.TooLong', 'errorMessage' => 'Whitelist too long, exceeds 10 CIDR blocks.', 'description' => ''], ], 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.', - ], + ['errorCode' => 'NoPermission', 'errorMessage' => 'Caller has no permission on the resource.', 'description' => ''], + ['errorCode' => 'InstanceNotPaused', 'errorMessage' => 'Please pause the instance before reset.', 'description' => ''], + ['errorCode' => 'InstanceNotActive', 'errorMessage' => 'Instance is not active.', 'description' => ''], + ['errorCode' => 'ConfigIp.IncorrectState', 'errorMessage' => 'Instance not in pending or active state, can not config IP address.', 'description' => ''], + ['errorCode' => 'SwitchMaster.IncorrectState', 'errorMessage' => 'Cluster not initialized, please initialize the cluster first.', 'description' => ''], + ['errorCode' => 'SyncCluster.IncorrectState', 'errorMessage' => 'Cluster not initialized, please initialize the cluster first.', 'description' => ''], + ['errorCode' => 'LeaveCluster.InstanceInvalid', 'errorMessage' => 'The instance is not in the cluster.', 'description' => ''], + ['errorCode' => 'DeleteCluster.IncorrectState', 'errorMessage' => 'Cluster not empty, please remove all instances first.', 'description' => ''], + ['errorCode' => 'JoinCluster.InstanceVSwitchNotInCluster', 'errorMessage' => 'Instance\'s vSwitch is not in cluster config, please change instance\'s vSwitch first.', 'description' => ''], + ['errorCode' => 'JoinCluster.InstanceInitialized', 'errorMessage' => 'Initialized instance can not join a cluster.', 'description' => ''], + ['errorCode' => 'JoinCluster.IncorrectState', 'errorMessage' => 'Cluster not initialized, please initialize the cluster first.', 'description' => ''], + ['errorCode' => 'InitializeCluster.InstanceNotInitialized', 'errorMessage' => 'Cluster master instance not initialized, please initialize cluster master instance first.', 'description' => ''], + ['errorCode' => 'InitializeCluster.IncorrectConfig', 'errorMessage' => 'Cluster subnet not configured, please config cluster subnet first.', 'description' => ''], + ['errorCode' => 'InitializeCluster.IncorrectState', 'errorMessage' => 'Cluster initialized, do not re-initialize.', 'description' => ''], + ['errorCode' => 'Cluster.CN.ActionForbidden', 'errorMessage' => 'This API is forbidden for non-international site cluster.', 'description' => ''], + ['errorCode' => 'Cluster.INTL.ActionForbidden', 'errorMessage' => 'This API is forbidden for international site cluster.', 'description' => ''], + ['errorCode' => 'ConfigClusterCertificate.IncorrectState', 'errorMessage' => 'Cluster initialized or certificates already configured.', 'description' => ''], + ['errorCode' => 'ConfigClusterSubnet.InvalidVpcId', 'errorMessage' => 'VPC Id invalid. Cluster VPC is the same as cluster master\'s VPC.', 'description' => ''], + ['errorCode' => 'ConfigClusterSubnet.InvalidVSwitchId', 'errorMessage' => 'VSwitch Id invalid. VSwitches should contain all current cluster vSwitches.', 'description' => ''], + ['errorCode' => 'ConfigClusterSubnet.IncorrectState', 'errorMessage' => 'Cluster not in NEW state, can not config cluster subnet.', 'description' => ''], + ['errorCode' => 'ClusterName.Exist', 'errorMessage' => 'Cluster name already exists, please use another name.', 'description' => ''], + ['errorCode' => 'Whitelist.InstanceInCluster', 'errorMessage' => 'Whitelist.InstanceInCluster', 'description' => ''], + ], + [ + ['errorCode' => 'Resource.NotFound', 'errorMessage' => 'Resource not found.', 'description' => ''], + ], + [ + ['errorCode' => 'ClusterAPI.NotSupported', 'errorMessage' => 'ClusterAPI not supported in this region.', 'description' => ''], ], 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.', - ], + ['errorCode' => 'Conflict', 'errorMessage' => 'Resource is being updated by a previous request. Current request is redundant.', 'description' => ''], + ['errorCode' => 'Cluster.Conflict', 'errorMessage' => 'The cluster is being updated by a previous request. Please try again later.', 'description' => ''], ], 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.', + ['errorCode' => 'ConfigWhitelistFailed.Error', 'errorMessage' => 'config white list error', 'description' => ''], + ['errorCode' => 'ActionFailed.Error', 'errorMessage' => 'internal error, please try again', 'description' => ''], + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to some unknown error.', 'description' => '未知错误导致请求处理失败。'], + ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '初始化集群', + 'description' => '- 集群为未初始化状态,且集群主密码机已初始化。'."\n" + ."\n" + .'- 集群已配置2个及以上交换机。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], + ], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'yundun-hsm:InitializeCluster', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DataEncryptionService', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"4C467B38-3910-447D-87BC-AC049166F216\\"\\n}","type":"json"}]', - 'title' => '切换集群主密码机', + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"4C467B38-3910-447D-87BC-AC049366F216\\"\\n}","type":"json"}]', ], - 'ConfigClusterName' => [ - 'summary' => '修改集群名称。', - 'methods' => [ - 'post', - ], - 'schemes' => [ - 'https', - ], + 'JoinCluster' => [ + 'summary' => '将集群外的一台密码机加入当前集群。', + 'methods' => ['post'], + 'schemes' => ['https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', + 'operationType' => 'readAndWrite', 'deprecated' => false, 'systemTags' => [ 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', + 'abilityTreeNodes' => ['FEATUREhsmV7VE3Y', 'FEATUREhsm01FLNB', 'FEATUREhsmGIFYCG', 'FEATUREhsmLBBV5W'], ], 'parameters' => [ [ 'name' => 'ClusterId', 'in' => 'formData', - 'schema' => [ - 'description' => '集群ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'cluster-BqxX63Bsgfaisdf****', - ], + 'schema' => ['description' => '集群ID。', 'type' => 'string', 'required' => true, 'example' => 'cluster-NZB9Oj5Yfd8Y****', 'title' => '集群ID'], ], [ - 'name' => 'ClusterName', + 'name' => 'InstanceId', 'in' => 'formData', - 'schema' => [ - 'description' => '集群名称。', - 'type' => 'string', - 'required' => true, - 'example' => 'cluster_on****', - ], + 'schema' => ['description' => '加入集群的密码机实例ID。', 'type' => 'string', 'required' => true, 'example' => 'hsm-cn-vj30bil8****', 'title' => '实例ID'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'BaseResult', - 'description' => 'BaseResult', + 'title' => 'PlainResult<OpenApiJoinClusterResponse>', + 'description' => 'PlainResult<OpenApiJoinClusterResponse>', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '本次调用请求的ID,是由阿里云为该请求生成的唯一标识符,可用于排查和定位问题。', - 'type' => 'string', - 'example' => '4C467B38-3910-447D-87BC-AC049166F216', + 'RequestId' => ['description' => '本次调用请求的ID,是由阿里云为该请求生成的唯一标识符,可用于排查和定位问题。', 'type' => 'string', 'example' => '4C467B38-3910-447D-87BC-AC049166F216', 'title' => '请求的唯一标识符'], + 'Job' => [ + 'description' => '任务详情。', + 'type' => 'object', + 'properties' => [ + 'JobId' => ['description' => '任务ID。', 'type' => 'string', 'example' => 'job-202401250936hze747fd7e0007005', 'title' => '异步任务ID'], + 'Type' => ['description' => '操作类型。'."\n" + ."\n" + .'- create:创建任务'."\n" + ."\n" + .'- cancel:取消任务', 'type' => 'string', 'example' => 'create', 'title' => '任务类型'], + 'Completed' => ['description' => '任务是否完成。'."\n" + ."\n" + .'- true:是'."\n" + ."\n" + .'- false:否', 'type' => 'boolean', 'example' => 'true', 'title' => '任务完成情况'], + 'CreateTime' => ['description' => '任务创建时间,精确到毫秒。时间戳格式。', 'type' => 'string', 'example' => '1711764127000', 'title' => '创建时间'], + 'Status' => ['description' => '任务状态。'."\n" + ."\n" + .'- success:任务成功'."\n" + ."\n" + .'- running:任务执行中'."\n" + ."\n" + .'- cancel:任务取消'."\n" + ."\n" + .'- fail:任务失败', 'type' => 'string', 'example' => 'running', 'title' => '任务状态'], + 'Response' => ['description' => '任务成功后返回的响应信息。', 'type' => 'string', 'example' => 'success', 'title' => '任务返回值'], + 'Error' => ['description' => '任务失败时的错误信息。', 'type' => 'string', 'example' => 'OperationTimeout', 'title' => '任务报错信息'], + 'Progress' => ['description' => '任务执行进度。单位为百分比。', 'type' => 'integer', 'format' => 'int32', 'example' => '86', 'title' => '任务进度'], + ], + 'title' => '异步任务对象', ], ], ], @@ -4655,288 +3382,114 @@ ], '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.', - ], + ['errorCode' => 'SwitchMaster.InstanceInvalid', 'errorMessage' => 'Instance not in the cluster.', 'description' => ''], + ['errorCode' => 'LeaveCluster.MasterLast', 'errorMessage' => 'Master instance can not leave a cluster until all other instances are left.', 'description' => ''], + ['errorCode' => 'Certificate.ChainInvalid', 'errorMessage' => 'Certificate chain invalid. Please make sure issuer certificate is the trust anchor and cluster certificate is signed by issuer certificate.', 'description' => ''], + ['errorCode' => 'Certificate.FormatInvalid', 'errorMessage' => 'Certificate format invalid. Cluster/Issuer certificate must be in PEM format.', 'description' => ''], + ['errorCode' => 'ConfigClusterSubnet.DuplicateZone', 'errorMessage' => 'VSwitches should not contain duplicate zones.', 'description' => ''], + ['errorCode' => 'InvalidApiParam.Error', 'errorMessage' => 'api param is invalid', 'description' => ''], + ['errorCode' => 'InvalidClusterName', 'errorMessage' => 'Invalid parameter clusterName.', 'description' => ''], + ['errorCode' => 'InvalidPageSize', 'errorMessage' => 'Invalid parameter pageSize.', 'description' => ''], + ['errorCode' => 'InvalidCurrentPage', 'errorMessage' => 'Invalid parameter currentPage.', 'description' => ''], + ['errorCode' => 'InvalidRegionId', 'errorMessage' => 'Invalid parameter regionId.', 'description' => ''], + ['errorCode' => 'InvalidVSwitch', 'errorMessage' => 'Invalid parameter vSwitch.', 'description' => ''], + ['errorCode' => 'InvalidVpc', 'errorMessage' => 'Invalid parameter vpcId.', 'description' => ''], + ['errorCode' => 'InvalidIp', 'errorMessage' => 'Invalid parameter IP.', 'description' => ''], + ['errorCode' => 'InvalidAliuid', 'errorMessage' => 'Invalid parameter aliuid.', 'description' => ''], + ['errorCode' => 'InvalidClusterId', 'errorMessage' => 'Invalid parameter clusterId.', 'description' => ''], + ['errorCode' => 'InvalidInstanceId', 'errorMessage' => 'Invalid parameter instanceId.', 'description' => ''], + ['errorCode' => 'InvalidBackupId', 'errorMessage' => 'Invalid parameter backupId.', 'description' => ''], + ['errorCode' => 'InvalidImageId', 'errorMessage' => 'Invalid parameter imageId.', 'description' => ''], + ['errorCode' => 'HsmInstanceNotExist.Error', 'errorMessage' => 'hsm instance not exist', 'description' => ''], + ['errorCode' => 'HSMIntanceNotActived.Error', 'errorMessage' => 'hsm intance is not actived', 'description' => ''], + ['errorCode' => 'WhiteListMaxCount.Error', 'errorMessage' => 'whilte list is more than max count', 'description' => ''], + ['errorCode' => 'ClusterIdIsNotExists.Error', 'errorMessage' => 'cluster ID non-exists', 'description' => ''], + ['errorCode' => 'InstanceListIsEmpty.Error', 'errorMessage' => 'instance list is empty', 'description' => ''], + ['errorCode' => 'InstanceIdIsEmpty.Error', 'errorMessage' => 'instance id is empty', 'description' => ''], + ['errorCode' => 'InstanceIsNotExistsInCluster.Error', 'errorMessage' => 'cluster has no such instance', 'description' => ''], + ['errorCode' => 'InstanceIsExistsInCluster.Error', 'errorMessage' => 'instance already in the cluster', 'description' => ''], + ['errorCode' => 'RegionNoEmpty.Error', 'errorMessage' => 'region no. is empty', 'description' => ''], + ['errorCode' => 'ClusterNameEmpty.Error', 'errorMessage' => 'empty cluster name not allowed', 'description' => ''], + ['errorCode' => 'ClusterNameIsExists.Error', 'errorMessage' => 'the cluster name is already taken', 'description' => ''], + ['errorCode' => 'IpNotValid.Error', 'errorMessage' => 'ip not valid', 'description' => ''], + ['errorCode' => 'ClusterIsEmpty.Error', 'errorMessage' => 'cluster is empty', 'description' => ''], + ['errorCode' => 'NoMasterFoundInCluster.Error', 'errorMessage' => 'cluster has no master instance', 'description' => ''], + ['errorCode' => 'HsmInstanceIdNotFound.Error', 'errorMessage' => 'no such instance', 'description' => ''], + ['errorCode' => 'NoInstanceFoundInCluster.Error', 'errorMessage' => 'cluster is empty', 'description' => ''], + ['errorCode' => 'Whitelist.Invalid', 'errorMessage' => 'Whitelist blocks not in CIDR format.', 'description' => ''], + ['errorCode' => 'Whitelist.TooLong', 'errorMessage' => 'Whitelist too long, exceeds 10 CIDR blocks.', 'description' => ''], ], 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.', - ], + ['errorCode' => 'JoinCluster.InvalidDeviceVersion', 'errorMessage' => 'Instance version is lower than the master in the cluster.', 'description' => ''], + ['errorCode' => 'Cluster.CN.ClusterModeInvalid', 'errorMessage' => 'This API is forbidden for current cluster mode.', 'description' => ''], + ['errorCode' => 'NoPermission', 'errorMessage' => 'Caller has no permission on the resource.', 'description' => ''], + ['errorCode' => 'InstanceNotPaused', 'errorMessage' => 'Please pause the instance before reset.', 'description' => ''], + ['errorCode' => 'InstanceNotActive', 'errorMessage' => 'Instance is not active.', 'description' => ''], + ['errorCode' => 'ConfigIp.IncorrectState', 'errorMessage' => 'Instance not in pending or active state, can not config IP address.', 'description' => ''], + ['errorCode' => 'SwitchMaster.IncorrectState', 'errorMessage' => 'Cluster not initialized, please initialize the cluster first.', 'description' => ''], + ['errorCode' => 'SyncCluster.IncorrectState', 'errorMessage' => 'Cluster not initialized, please initialize the cluster first.', 'description' => ''], + ['errorCode' => 'LeaveCluster.InstanceInvalid', 'errorMessage' => 'The instance is not in the cluster.', 'description' => ''], + ['errorCode' => 'DeleteCluster.IncorrectState', 'errorMessage' => 'Cluster not empty, please remove all instances first.', 'description' => ''], + ['errorCode' => 'JoinCluster.InstanceVSwitchNotInCluster', 'errorMessage' => 'Instance\'s vSwitch is not in cluster config, please change instance\'s vSwitch first.', 'description' => ''], + ['errorCode' => 'JoinCluster.InstanceInitialized', 'errorMessage' => 'Initialized instance can not join a cluster.', 'description' => ''], + ['errorCode' => 'JoinCluster.IncorrectState', 'errorMessage' => 'Cluster not initialized, please initialize the cluster first.', 'description' => ''], + ['errorCode' => 'InitializeCluster.InstanceNotInitialized', 'errorMessage' => 'Cluster master instance not initialized, please initialize cluster master instance first.', 'description' => ''], + ['errorCode' => 'InitializeCluster.IncorrectConfig', 'errorMessage' => 'Cluster subnet not configured, please config cluster subnet first.', 'description' => ''], + ['errorCode' => 'InitializeCluster.IncorrectState', 'errorMessage' => 'Cluster initialized, do not re-initialize.', 'description' => ''], + ['errorCode' => 'Cluster.CN.ActionForbidden', 'errorMessage' => 'This API is forbidden for non-international site cluster.', 'description' => ''], + ['errorCode' => 'Cluster.INTL.ActionForbidden', 'errorMessage' => 'This API is forbidden for international site cluster.', 'description' => ''], + ['errorCode' => 'ConfigClusterCertificate.IncorrectState', 'errorMessage' => 'Cluster initialized or certificates already configured.', 'description' => ''], + ['errorCode' => 'ConfigClusterSubnet.InvalidVpcId', 'errorMessage' => 'VPC Id invalid. Cluster VPC is the same as cluster master\'s VPC.', 'description' => ''], + ['errorCode' => 'ConfigClusterSubnet.InvalidVSwitchId', 'errorMessage' => 'VSwitch Id invalid. VSwitches should contain all current cluster vSwitches.', 'description' => ''], + ['errorCode' => 'ConfigClusterSubnet.IncorrectState', 'errorMessage' => 'Cluster not in NEW state, can not config cluster subnet.', 'description' => ''], + ['errorCode' => 'ClusterName.Exist', 'errorMessage' => 'Cluster name already exists, please use another name.', 'description' => ''], + ['errorCode' => 'Whitelist.InstanceInCluster', 'errorMessage' => 'Whitelist.InstanceInCluster', 'description' => ''], + ['errorCode' => 'JoinCluster.InvalidDeviceType', 'errorMessage' => 'Instance device type mismatches with the cluster\'s.', 'description' => ''], + ['errorCode' => 'JoinCluster.InvalidPqcStatus', 'errorMessage' => 'Instance pqc status mismatches with the cluster\'s.', 'description' => ''], + ], + [ + ['errorCode' => 'Resource.NotFound', 'errorMessage' => 'Resource not found.', 'description' => ''], + ], + [ + ['errorCode' => 'ClusterAPI.NotSupported', 'errorMessage' => 'ClusterAPI not supported in this region.', 'description' => ''], ], 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.', - ], + ['errorCode' => 'Conflict', 'errorMessage' => 'Resource is being updated by a previous request. Current request is redundant.', 'description' => ''], + ['errorCode' => 'Cluster.Conflict', 'errorMessage' => 'The cluster is being updated by a previous request. Please try again later.', 'description' => ''], ], 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.', + ['errorCode' => 'ConfigWhitelistFailed.Error', 'errorMessage' => 'config white list error', 'description' => ''], + ['errorCode' => 'ActionFailed.Error', 'errorMessage' => 'internal error, please try again', 'description' => ''], + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to some unknown error.', 'description' => '未知错误导致请求处理失败。'], + ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '加入集群', + 'description' => '- 只有已初始化(INITIALIZED)状态的集群可加入新的密码机实例。'."\n" + .'- 待加入集群的密码机实例状态为已启用或未启用,且未初始化。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], + ], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'yundun-hsm:JoinCluster', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DataEncryptionService', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"4C467B38-3910-447D-87BC-AC049166F216\\"\\n}","type":"json"}]', - 'title' => '配置集群名称', + '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"}]', ], 'LeaveCluster' => [ - 'methods' => [ - 'post', - ], - 'schemes' => [ - 'https', - ], + 'summary' => '将集群内的一台密码机移出当前集群。', + 'methods' => ['post'], + 'schemes' => ['https'], 'security' => [ [ 'AK' => [], @@ -4948,27 +3501,18 @@ 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', + 'abilityTreeNodes' => ['FEATUREhsmV7VE3Y', 'FEATUREhsm01FLNB', 'FEATUREhsmGIFYCG', 'FEATUREhsmLBBV5W'], ], 'parameters' => [ [ 'name' => 'ClusterId', 'in' => 'formData', - 'schema' => [ - 'description' => '集群ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'cluster-729dm40FG****', - ], + 'schema' => ['description' => '集群ID。', 'type' => 'string', 'required' => true, 'example' => 'cluster-729dm40FG****'], ], [ 'name' => 'InstanceId', 'in' => 'formData', - 'schema' => [ - 'description' => '移出集群的密码机实例ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'hsm-cn-mp90fxef****', - ], + 'schema' => ['description' => '移出集群的密码机实例ID。', 'type' => 'string', 'required' => true, 'example' => 'hsm-cn-mp90fxef****'], ], ], 'responses' => [ @@ -4978,661 +3522,252 @@ 'description' => 'BaseResult', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '本次调用请求的ID,是由阿里云为该请求生成的唯一标识符,可用于排查和定位问题。', - 'type' => 'string', - 'example' => '4C467B38-3910-447D-87BC-AC049166F216', - ], + 'RequestId' => ['description' => '本次调用请求的ID,是由阿里云为该请求生成的唯一标识符,可用于排查和定位问题。', '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.', - ], + ['errorCode' => 'SwitchMaster.InstanceInvalid', 'errorMessage' => 'Instance not in the cluster.', 'description' => ''], + ['errorCode' => 'LeaveCluster.MasterLast', 'errorMessage' => 'Master instance can not leave a cluster until all other instances are left.', 'description' => ''], + ['errorCode' => 'Certificate.ChainInvalid', 'errorMessage' => 'Certificate chain invalid. Please make sure issuer certificate is the trust anchor and cluster certificate is signed by issuer certificate.', 'description' => ''], + ['errorCode' => 'Certificate.FormatInvalid', 'errorMessage' => 'Certificate format invalid. Cluster/Issuer certificate must be in PEM format.', 'description' => ''], + ['errorCode' => 'ConfigClusterSubnet.DuplicateZone', 'errorMessage' => 'VSwitches should not contain duplicate zones.', 'description' => ''], + ['errorCode' => 'InvalidApiParam.Error', 'errorMessage' => 'api param is invalid', 'description' => ''], + ['errorCode' => 'InvalidClusterName', 'errorMessage' => 'Invalid parameter clusterName.', 'description' => ''], + ['errorCode' => 'InvalidPageSize', 'errorMessage' => 'Invalid parameter pageSize.', 'description' => ''], + ['errorCode' => 'InvalidCurrentPage', 'errorMessage' => 'Invalid parameter currentPage.', 'description' => ''], + ['errorCode' => 'InvalidRegionId', 'errorMessage' => 'Invalid parameter regionId.', 'description' => ''], + ['errorCode' => 'InvalidVSwitch', 'errorMessage' => 'Invalid parameter vSwitch.', 'description' => ''], + ['errorCode' => 'InvalidVpc', 'errorMessage' => 'Invalid parameter vpcId.', 'description' => ''], + ['errorCode' => 'InvalidIp', 'errorMessage' => 'Invalid parameter IP.', 'description' => ''], + ['errorCode' => 'InvalidAliuid', 'errorMessage' => 'Invalid parameter aliuid.', 'description' => ''], + ['errorCode' => 'InvalidClusterId', 'errorMessage' => 'Invalid parameter clusterId.', 'description' => ''], + ['errorCode' => 'InvalidInstanceId', 'errorMessage' => 'Invalid parameter instanceId.', 'description' => ''], + ['errorCode' => 'InvalidBackupId', 'errorMessage' => 'Invalid parameter backupId.', 'description' => ''], + ['errorCode' => 'InvalidImageId', 'errorMessage' => 'Invalid parameter imageId.', 'description' => ''], + ['errorCode' => 'HsmInstanceNotExist.Error', 'errorMessage' => 'hsm instance not exist', 'description' => ''], + ['errorCode' => 'HSMIntanceNotActived.Error', 'errorMessage' => 'hsm intance is not actived', 'description' => ''], + ['errorCode' => 'WhiteListMaxCount.Error', 'errorMessage' => 'whilte list is more than max count', 'description' => ''], + ['errorCode' => 'ClusterIdIsNotExists.Error', 'errorMessage' => 'cluster ID non-exists', 'description' => ''], + ['errorCode' => 'InstanceListIsEmpty.Error', 'errorMessage' => 'instance list is empty', 'description' => ''], + ['errorCode' => 'InstanceIdIsEmpty.Error', 'errorMessage' => 'instance id is empty', 'description' => ''], + ['errorCode' => 'InstanceIsNotExistsInCluster.Error', 'errorMessage' => 'cluster has no such instance', 'description' => ''], + ['errorCode' => 'InstanceIsExistsInCluster.Error', 'errorMessage' => 'instance already in the cluster', 'description' => ''], + ['errorCode' => 'RegionNoEmpty.Error', 'errorMessage' => 'region no. is empty', 'description' => ''], + ['errorCode' => 'ClusterNameEmpty.Error', 'errorMessage' => 'empty cluster name not allowed', 'description' => ''], + ['errorCode' => 'ClusterNameIsExists.Error', 'errorMessage' => 'the cluster name is already taken', 'description' => ''], + ['errorCode' => 'IpNotValid.Error', 'errorMessage' => 'ip not valid', 'description' => ''], + ['errorCode' => 'ClusterIsEmpty.Error', 'errorMessage' => 'cluster is empty', 'description' => ''], + ['errorCode' => 'NoMasterFoundInCluster.Error', 'errorMessage' => 'cluster has no master instance', 'description' => ''], + ['errorCode' => 'HsmInstanceIdNotFound.Error', 'errorMessage' => 'no such instance', 'description' => ''], + ['errorCode' => 'NoInstanceFoundInCluster.Error', 'errorMessage' => 'cluster is empty', 'description' => ''], + ['errorCode' => 'Whitelist.Invalid', 'errorMessage' => 'Whitelist blocks not in CIDR format.', 'description' => ''], + ['errorCode' => 'Whitelist.TooLong', 'errorMessage' => 'Whitelist too long, exceeds 10 CIDR blocks.', 'description' => ''], ], 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.', - ], + ['errorCode' => 'NoPermission', 'errorMessage' => 'Caller has no permission on the resource.', 'description' => ''], + ['errorCode' => 'InstanceNotPaused', 'errorMessage' => 'Please pause the instance before reset.', 'description' => ''], + ['errorCode' => 'InstanceNotActive', 'errorMessage' => 'Instance is not active.', 'description' => ''], + ['errorCode' => 'ConfigIp.IncorrectState', 'errorMessage' => 'Instance not in pending or active state, can not config IP address.', 'description' => ''], + ['errorCode' => 'SwitchMaster.IncorrectState', 'errorMessage' => 'Cluster not initialized, please initialize the cluster first.', 'description' => ''], + ['errorCode' => 'SyncCluster.IncorrectState', 'errorMessage' => 'Cluster not initialized, please initialize the cluster first.', 'description' => ''], + ['errorCode' => 'LeaveCluster.InstanceInvalid', 'errorMessage' => 'The instance is not in the cluster.', 'description' => ''], + ['errorCode' => 'DeleteCluster.IncorrectState', 'errorMessage' => 'Cluster not empty, please remove all instances first.', 'description' => ''], + ['errorCode' => 'JoinCluster.InstanceVSwitchNotInCluster', 'errorMessage' => 'Instance\'s vSwitch is not in cluster config, please change instance\'s vSwitch first.', 'description' => ''], + ['errorCode' => 'JoinCluster.InstanceInitialized', 'errorMessage' => 'Initialized instance can not join a cluster.', 'description' => ''], + ['errorCode' => 'JoinCluster.IncorrectState', 'errorMessage' => 'Cluster not initialized, please initialize the cluster first.', 'description' => ''], + ['errorCode' => 'InitializeCluster.InstanceNotInitialized', 'errorMessage' => 'Cluster master instance not initialized, please initialize cluster master instance first.', 'description' => ''], + ['errorCode' => 'InitializeCluster.IncorrectConfig', 'errorMessage' => 'Cluster subnet not configured, please config cluster subnet first.', 'description' => ''], + ['errorCode' => 'InitializeCluster.IncorrectState', 'errorMessage' => 'Cluster initialized, do not re-initialize.', 'description' => ''], + ['errorCode' => 'Cluster.CN.ActionForbidden', 'errorMessage' => 'This API is forbidden for non-international site cluster.', 'description' => ''], + ['errorCode' => 'Cluster.INTL.ActionForbidden', 'errorMessage' => 'This API is forbidden for international site cluster.', 'description' => ''], + ['errorCode' => 'ConfigClusterCertificate.IncorrectState', 'errorMessage' => 'Cluster initialized or certificates already configured.', 'description' => ''], + ['errorCode' => 'ConfigClusterSubnet.InvalidVpcId', 'errorMessage' => 'VPC Id invalid. Cluster VPC is the same as cluster master\'s VPC.', 'description' => ''], + ['errorCode' => 'ConfigClusterSubnet.InvalidVSwitchId', 'errorMessage' => 'VSwitch Id invalid. VSwitches should contain all current cluster vSwitches.', 'description' => ''], + ['errorCode' => 'ConfigClusterSubnet.IncorrectState', 'errorMessage' => 'Cluster not in NEW state, can not config cluster subnet.', 'description' => ''], + ['errorCode' => 'ClusterName.Exist', 'errorMessage' => 'Cluster name already exists, please use another name.', 'description' => ''], + ['errorCode' => 'Whitelist.InstanceInCluster', 'errorMessage' => 'Whitelist.InstanceInCluster', 'description' => ''], + ], + [ + ['errorCode' => 'Resource.NotFound', 'errorMessage' => 'Resource not found.', 'description' => ''], + ], + [ + ['errorCode' => 'ClusterAPI.NotSupported', 'errorMessage' => 'ClusterAPI not supported in this region.', 'description' => ''], ], 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.', - ], + ['errorCode' => 'Conflict', 'errorMessage' => 'Resource is being updated by a previous request. Current request is redundant.', 'description' => ''], + ['errorCode' => 'Cluster.Conflict', 'errorMessage' => 'The cluster is being updated by a previous request. Please try again later.', 'description' => ''], ], 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.', - ], + ['errorCode' => 'ConfigWhitelistFailed.Error', 'errorMessage' => 'config white list error', 'description' => ''], + ['errorCode' => 'ActionFailed.Error', 'errorMessage' => 'internal error, please try again', 'description' => ''], + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to some unknown error.', 'description' => '未知错误导致请求处理失败。'], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"4C467B38-3910-447D-87BC-AC049166F216\\"\\n}","type":"json"}]', + 'staticInfo' => ['returnType' => 'synchronous'], 'title' => '移出集群', - 'summary' => '将集群内的一台密码机移出当前集群。', 'description' => '- 集群内存在子密码机时无法移出主密码机'."\n" ."\n" .'- 主密码机移出后,集群进入待删除(TO_DELETE)状态,且无法恢复到可用状态,请谨慎操作。', - ], - 'CreateCluster' => [ - 'methods' => [ - 'post', - ], - 'schemes' => [ - 'https', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], + ], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'yundun-hsm:LeaveCluster', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DataEncryptionService', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"4C467B38-3910-447D-87BC-AC049166F216\\"\\n}","type":"json"}]', + ], + 'ListBackups' => [ + 'summary' => '获取符合查询条件的备份集合。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', + 'operationType' => 'read', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'create', + 'operationType' => 'list', 'riskType' => 'none', 'chargeType' => 'free', + 'abilityTreeCode' => '203775', + 'abilityTreeNodes' => ['FEATUREhsmQEGDGS'], ], 'parameters' => [ [ - 'name' => 'ClusterName', - 'in' => 'formData', - 'schema' => [ - 'description' => '集群名称。', - 'type' => 'string', - 'required' => true, - 'example' => 'cluster_on****', - ], + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => true, 'example' => 'cn-hangzhou'], ], [ - 'name' => 'RegionId', - 'in' => 'formData', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'cn-hangzhou', - ], + 'name' => 'CurrentPage', + 'in' => 'query', + 'schema' => ['description' => '当前分页。', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'example' => '1'], ], [ - 'name' => 'MasterInstanceId', - 'in' => 'formData', - 'schema' => [ - 'description' => '主密码机实例ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'hsm_intl-sg-uz63ixak****', - ], + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => ['description' => '每页显示的备份个数。取值:1~1000。', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'example' => '20'], + ], + [ + 'name' => 'Name', + 'in' => 'query', + 'schema' => ['description' => '备份名称。', 'type' => 'string', 'required' => false, 'example' => 'hsm-te****'], + ], + [ + 'name' => 'BackupId', + 'in' => 'query', + 'schema' => ['description' => '备份ID。', 'type' => 'string', 'required' => false, 'example' => 'backup-1648438****'], + ], + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => ['description' => '密码机实例ID。', 'type' => 'string', 'required' => false, 'example' => 'hsm-cn-vj30bil8****'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'PlainResult<OpenApiCreateClusterResponse>', - 'description' => 'PlainResult<OpenApiCreateClusterResponse>', + 'description' => '响应信息。', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '本次调用请求的ID,是由阿里云为该请求生成的唯一标识符,可用于排查和定位问题。', - 'type' => 'string', - 'example' => '5F58413E-8F57-585B-BE48-64CC1E31133C', - ], - 'ClusterId' => [ - 'description' => '集群ID。', - 'type' => 'string', - 'example' => 'cluster-729dm40FG****', + 'RequestId' => ['description' => '本次调用请求的ID,是由阿里云为该请求生成的唯一标识符,可用于排查和定位问题。', 'type' => 'string', 'example' => '4C467B38-3910-447D-87BC-AC049166F216'], + 'TotalCount' => ['description' => '查询结果总数。', 'type' => 'integer', 'format' => 'int32', 'example' => '30'], + 'PageSize' => ['description' => '每页显示的备份个数。', 'type' => 'integer', 'format' => 'int32', 'example' => '20'], + 'CurrentPage' => ['description' => '当前分页。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'Backups' => [ + 'description' => '返回的备份列表。', + 'type' => 'array', + 'items' => [ + 'description' => '备份详情。', + 'type' => 'object', + 'properties' => [ + 'BackupId' => ['description' => '备份ID。', 'type' => 'string', 'example' => 'backup-1648438****'], + 'CreateTime' => ['description' => '备份创建时间,精确到毫秒。时间戳格式。', 'type' => 'integer', 'format' => 'int64', 'example' => '1637229596000'], + 'ExpireTime' => ['description' => '备份过期时间,精确到毫秒。时间戳格式。', 'type' => 'integer', 'format' => 'int64', 'example' => '1682417553781'."\n"], + 'InstanceId' => ['description' => '备份关联的密码机实例ID。', 'type' => 'string', 'example' => 'hsm-cn-vj30bil8****'], + 'Name' => ['description' => '备份名称。', 'type' => 'string', 'example' => 'backup-te****'], + 'RegionId' => ['description' => '区域ID。', 'type' => 'string', 'example' => 'ap-southeast-1'], + 'Remark' => ['description' => '备份备注。', 'type' => 'string', 'example' => 'normal backup'], + 'Status' => [ + 'description' => '备份状态。'."\n" + .'- NEW:未启用'."\n" + .'- EXPIRED:已过期'."\n" + .'- ENABLED:已启用', + 'type' => 'string', + 'enumValueTitles' => [], + 'example' => 'ENABLED', + 'enum' => ['NEW', 'ENABLED', 'EXPIRED'], + ], + 'MaxImageCount' => ['description' => '镜像数量。', 'type' => 'string', 'example' => '3'], + 'Type' => [ + 'description' => '备份类型。'."\n" + .'- DEFAULT:默认备份'."\n" + .'- NORMAL:普通备份', + 'type' => 'string', + 'enumValueTitles' => [], + 'example' => 'NORMAL', + 'enum' => ['NORMAL', 'DEFAULT'], + ], + 'BackupPeriod' => ['description' => '自动备份周期,单位天数。', 'type' => 'integer', 'format' => 'int64', 'example' => '3'], + 'NextImageCreateTime' => ['description' => '镜像下一次创建时间,精确到毫秒。时间戳格式。', 'type' => 'integer', 'format' => 'int64', 'example' => '1682417553781'."\n"], + 'AutoImageCount' => ['description' => '自动备份镜像数量。', 'type' => 'integer', 'format' => 'int64', 'example' => '1'], + 'BackupHourInDay' => ['description' => '备份时间,24小时制整点时间。', 'type' => 'string', 'example' => '13'], + 'SpInstanceId' => ['description' => '售卖域备份ID。'."\n" + .'仅中国内地密码机备份有此属性。', 'type' => 'string', 'example' => 'backup-fdb897sdfg534-****'], + 'ReleaseTime' => ['description' => '备份释放时间,精确到毫秒。时间戳格式。', 'type' => 'integer', 'format' => 'int64', 'example' => '1641275680000'], + 'OwnerInstanceId' => ['description' => '备份所属的密码机实例ID。仅非中国内地密码机备份有此属性,且与InstanceId一致。', 'type' => 'string', 'example' => 'hsm-cn-vj30bil8****'], + ], + ], ], ], ], ], ], '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' => 'NoPermission', 'errorMessage' => 'caller has no permission', 'description' => ''], ], - [ - [ - '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'], + 'title' => '查询备份列表', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], + ], + 'ramActions' => [ + [ + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'yundun-hsm:ListBackups', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DataEncryptionService', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"5F58413E-8F57-585B-BE48-64CC1E31133C\\",\\n \\"ClusterId\\": \\"cluster-729dm40FG****\\"\\n}","type":"json"}]', - 'title' => '创建集群', - 'summary' => '选择一台密码机作为主密码机创建集群。', - 'description' => '创建集群选择的密码机实例状态必须为ACTIVE(已启用)。', + '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"}]', ], 'ListClusters' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'https', - ], + 'methods' => ['post', 'get'], + 'schemes' => ['https'], 'security' => [ [ 'AK' => [], @@ -5644,39 +3779,28 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', + 'abilityTreeNodes' => ['FEATUREhsmV7VE3Y', 'FEATUREhsm01FLNB', 'FEATUREhsmGIFYCG', 'FEATUREhsmLBBV5W'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'formData', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => true, 'example' => 'cn-hangzhou'], + ], + [ + 'name' => 'KmsInstanceId', + 'in' => 'query', + 'schema' => ['type' => 'string', 'example' => 'kst-xxxx'], ], [ 'name' => 'CurrentPage', 'in' => 'formData', - 'schema' => [ - 'description' => '当前页。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'example' => '1', - ], + 'schema' => ['description' => '当前页。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '1'], ], [ 'name' => 'PageSize', 'in' => 'formData', - 'schema' => [ - 'description' => '每页展示的集群数量。取值:1~1000。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'example' => '20', - ], + 'schema' => ['description' => '每页展示的集群数量。取值:1~1000。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '20'], ], ], 'responses' => [ @@ -5686,29 +3810,10 @@ 'description' => 'OpenApiPageResult<OpenApiListClustersResponse>', 'type' => 'object', 'properties' => [ - 'Total' => [ - 'description' => '集群总数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '114', - ], - 'PageSize' => [ - 'description' => '每页展示的集群数量。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '20', - ], - 'CurrentPage' => [ - 'description' => '当前页。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'RequestId' => [ - 'description' => '本次调用请求的ID,是由阿里云为该请求生成的唯一标识符,可用于排查和定位问题。', - 'type' => 'string', - 'example' => '4C467B38-3910-447D-87BC-AC049166F216', - ], + 'Total' => ['description' => '集群总数。', 'type' => 'integer', 'format' => 'int32', 'example' => '114'], + 'PageSize' => ['description' => '每页展示的集群数量。', 'type' => 'integer', 'format' => 'int32', 'example' => '20'], + 'CurrentPage' => ['description' => '当前页。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'RequestId' => ['description' => '本次调用请求的ID,是由阿里云为该请求生成的唯一标识符,可用于排查和定位问题。', 'type' => 'string', 'example' => '4C467B38-3910-447D-87BC-AC049166F216'], 'Clusters' => [ 'description' => '集群列表。', 'type' => 'array', @@ -5716,26 +3821,18 @@ 'description' => '集群信息。', 'type' => 'object', 'properties' => [ - 'ClusterId' => [ - 'description' => '集群ID。', - 'type' => 'string', - 'example' => 'cluster-w3G9vOJI2****', - ], - 'Status' => [ - 'description' => '集群状态。'."\n" - ."\n" - .'- NEW:未初始化'."\n" - ."\n" - .'- INITIALIZED:已初始化'."\n" - ."\n" - .'- DELETED:已删除'."\n" - ."\n" - .'- SYNCHRONIZING:同步中'."\n" - ."\n" - .'- TO_DELETE:待删除', - 'type' => 'string', - 'example' => 'INITIALIZED', - ], + 'ClusterId' => ['description' => '集群ID。', 'type' => 'string', 'example' => 'cluster-w3G9vOJI2****'], + 'Status' => ['description' => '集群状态。'."\n" + ."\n" + .'- NEW:未初始化'."\n" + ."\n" + .'- INITIALIZED:已初始化'."\n" + ."\n" + .'- DELETED:已删除'."\n" + ."\n" + .'- SYNCHRONIZING:同步中'."\n" + ."\n" + .'- TO_DELETE:待删除', 'type' => 'string', 'example' => 'INITIALIZED'], ], ], ], @@ -5745,644 +3842,247 @@ ], '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.', - ], + ['errorCode' => 'SwitchMaster.InstanceInvalid', 'errorMessage' => 'Instance not in the cluster.', 'description' => ''], + ['errorCode' => 'LeaveCluster.MasterLast', 'errorMessage' => 'Master instance can not leave a cluster until all other instances are left.', 'description' => ''], + ['errorCode' => 'Certificate.ChainInvalid', 'errorMessage' => 'Certificate chain invalid. Please make sure issuer certificate is the trust anchor and cluster certificate is signed by issuer certificate.', 'description' => ''], + ['errorCode' => 'Certificate.FormatInvalid', 'errorMessage' => 'Certificate format invalid. Cluster/Issuer certificate must be in PEM format.', 'description' => ''], + ['errorCode' => 'ConfigClusterSubnet.DuplicateZone', 'errorMessage' => 'VSwitches should not contain duplicate zones.', 'description' => ''], + ['errorCode' => 'InvalidApiParam.Error', 'errorMessage' => 'api param is invalid', 'description' => ''], + ['errorCode' => 'InvalidClusterName', 'errorMessage' => 'Invalid parameter clusterName.', 'description' => ''], + ['errorCode' => 'InvalidPageSize', 'errorMessage' => 'Invalid parameter pageSize.', 'description' => ''], + ['errorCode' => 'InvalidCurrentPage', 'errorMessage' => 'Invalid parameter currentPage.', 'description' => ''], + ['errorCode' => 'InvalidRegionId', 'errorMessage' => 'Invalid parameter regionId.', 'description' => ''], + ['errorCode' => 'InvalidVSwitch', 'errorMessage' => 'Invalid parameter vSwitch.', 'description' => ''], + ['errorCode' => 'InvalidVpc', 'errorMessage' => 'Invalid parameter vpcId.', 'description' => ''], + ['errorCode' => 'InvalidIp', 'errorMessage' => 'Invalid parameter IP.', 'description' => ''], + ['errorCode' => 'InvalidAliuid', 'errorMessage' => 'Invalid parameter aliuid.', 'description' => ''], + ['errorCode' => 'InvalidClusterId', 'errorMessage' => 'Invalid parameter clusterId.', 'description' => ''], + ['errorCode' => 'InvalidInstanceId', 'errorMessage' => 'Invalid parameter instanceId.', 'description' => ''], + ['errorCode' => 'InvalidBackupId', 'errorMessage' => 'Invalid parameter backupId.', 'description' => ''], + ['errorCode' => 'InvalidImageId', 'errorMessage' => 'Invalid parameter imageId.', 'description' => ''], + ['errorCode' => 'HsmInstanceNotExist.Error', 'errorMessage' => 'hsm instance not exist', 'description' => ''], + ['errorCode' => 'HSMIntanceNotActived.Error', 'errorMessage' => 'hsm intance is not actived', 'description' => ''], + ['errorCode' => 'WhiteListMaxCount.Error', 'errorMessage' => 'whilte list is more than max count', 'description' => ''], + ['errorCode' => 'ClusterIdIsNotExists.Error', 'errorMessage' => 'cluster ID non-exists', 'description' => ''], + ['errorCode' => 'InstanceListIsEmpty.Error', 'errorMessage' => 'instance list is empty', 'description' => ''], + ['errorCode' => 'InstanceIdIsEmpty.Error', 'errorMessage' => 'instance id is empty', 'description' => ''], + ['errorCode' => 'InstanceIsNotExistsInCluster.Error', 'errorMessage' => 'cluster has no such instance', 'description' => ''], + ['errorCode' => 'InstanceIsExistsInCluster.Error', 'errorMessage' => 'instance already in the cluster', 'description' => ''], + ['errorCode' => 'RegionNoEmpty.Error', 'errorMessage' => 'region no. is empty', 'description' => ''], + ['errorCode' => 'ClusterNameEmpty.Error', 'errorMessage' => 'empty cluster name not allowed', 'description' => ''], + ['errorCode' => 'ClusterNameIsExists.Error', 'errorMessage' => 'the cluster name is already taken', 'description' => ''], + ['errorCode' => 'IpNotValid.Error', 'errorMessage' => 'ip not valid', 'description' => ''], + ['errorCode' => 'ClusterIsEmpty.Error', 'errorMessage' => 'cluster is empty', 'description' => ''], + ['errorCode' => 'NoMasterFoundInCluster.Error', 'errorMessage' => 'cluster has no master instance', 'description' => ''], + ['errorCode' => 'HsmInstanceIdNotFound.Error', 'errorMessage' => 'no such instance', 'description' => ''], + ['errorCode' => 'NoInstanceFoundInCluster.Error', 'errorMessage' => 'cluster is empty', 'description' => ''], + ['errorCode' => 'Whitelist.Invalid', 'errorMessage' => 'Whitelist blocks not in CIDR format.', 'description' => ''], + ['errorCode' => 'Whitelist.TooLong', 'errorMessage' => 'Whitelist too long, exceeds 10 CIDR blocks.', 'description' => ''], ], 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.', - ], + ['errorCode' => 'NoPermission', 'errorMessage' => 'Caller has no permission on the resource.', 'description' => ''], + ['errorCode' => 'InstanceNotPaused', 'errorMessage' => 'Please pause the instance before reset.', 'description' => ''], + ['errorCode' => 'InstanceNotActive', 'errorMessage' => 'Instance is not active.', 'description' => ''], + ['errorCode' => 'ConfigIp.IncorrectState', 'errorMessage' => 'Instance not in pending or active state, can not config IP address.', 'description' => ''], + ['errorCode' => 'SwitchMaster.IncorrectState', 'errorMessage' => 'Cluster not initialized, please initialize the cluster first.', 'description' => ''], + ['errorCode' => 'SyncCluster.IncorrectState', 'errorMessage' => 'Cluster not initialized, please initialize the cluster first.', 'description' => ''], + ['errorCode' => 'LeaveCluster.InstanceInvalid', 'errorMessage' => 'The instance is not in the cluster.', 'description' => ''], + ['errorCode' => 'DeleteCluster.IncorrectState', 'errorMessage' => 'Cluster not empty, please remove all instances first.', 'description' => ''], + ['errorCode' => 'JoinCluster.InstanceVSwitchNotInCluster', 'errorMessage' => 'Instance\'s vSwitch is not in cluster config, please change instance\'s vSwitch first.', 'description' => ''], + ['errorCode' => 'JoinCluster.InstanceInitialized', 'errorMessage' => 'Initialized instance can not join a cluster.', 'description' => ''], + ['errorCode' => 'JoinCluster.IncorrectState', 'errorMessage' => 'Cluster not initialized, please initialize the cluster first.', 'description' => ''], + ['errorCode' => 'InitializeCluster.InstanceNotInitialized', 'errorMessage' => 'Cluster master instance not initialized, please initialize cluster master instance first.', 'description' => ''], + ['errorCode' => 'InitializeCluster.IncorrectConfig', 'errorMessage' => 'Cluster subnet not configured, please config cluster subnet first.', 'description' => ''], + ['errorCode' => 'InitializeCluster.IncorrectState', 'errorMessage' => 'Cluster initialized, do not re-initialize.', 'description' => ''], + ['errorCode' => 'Cluster.CN.ActionForbidden', 'errorMessage' => 'This API is forbidden for non-international site cluster.', 'description' => ''], + ['errorCode' => 'Cluster.INTL.ActionForbidden', 'errorMessage' => 'This API is forbidden for international site cluster.', 'description' => ''], + ['errorCode' => 'ConfigClusterCertificate.IncorrectState', 'errorMessage' => 'Cluster initialized or certificates already configured.', 'description' => ''], + ['errorCode' => 'ConfigClusterSubnet.InvalidVpcId', 'errorMessage' => 'VPC Id invalid. Cluster VPC is the same as cluster master\'s VPC.', 'description' => ''], + ['errorCode' => 'ConfigClusterSubnet.InvalidVSwitchId', 'errorMessage' => 'VSwitch Id invalid. VSwitches should contain all current cluster vSwitches.', 'description' => ''], + ['errorCode' => 'ConfigClusterSubnet.IncorrectState', 'errorMessage' => 'Cluster not in NEW state, can not config cluster subnet.', 'description' => ''], + ['errorCode' => 'ClusterName.Exist', 'errorMessage' => 'Cluster name already exists, please use another name.', 'description' => ''], + ['errorCode' => 'Whitelist.InstanceInCluster', 'errorMessage' => 'Whitelist.InstanceInCluster', 'description' => ''], + ], + [ + ['errorCode' => 'Resource.NotFound', 'errorMessage' => 'Resource not found.', 'description' => ''], + ], + [ + ['errorCode' => 'ClusterAPI.NotSupported', 'errorMessage' => 'ClusterAPI not supported in this region.', 'description' => ''], ], 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.', - ], + ['errorCode' => 'Conflict', 'errorMessage' => 'Resource is being updated by a previous request. Current request is redundant.', 'description' => ''], + ['errorCode' => 'Cluster.Conflict', 'errorMessage' => 'The cluster is being updated by a previous request. Please try again later.', 'description' => ''], ], 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.', - ], + ['errorCode' => 'ConfigWhitelistFailed.Error', 'errorMessage' => 'config white list error', 'description' => ''], + ['errorCode' => 'ActionFailed.Error', 'errorMessage' => 'internal error, please try again', 'description' => ''], + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to some unknown error.', 'description' => '未知错误导致请求处理失败。'], ], ], - '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' => '查询集群列表', 'summary' => '获取符合查询条件的集群集合。', - ], - 'ConfigClusterCertificate' => [ - 'summary' => '为非中国内地密码机集群配置证书。', - 'methods' => [ - 'post', - ], - 'schemes' => [ - 'https', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], + ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'yundun-hsm:ListClusters', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DataEncryptionService', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + '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"}]', + ], + 'ListImages' => [ + 'summary' => '查询符合条件的镜像集合。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', + 'operationType' => 'read', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'update', + 'operationType' => 'list', 'riskType' => 'none', 'chargeType' => 'free', + 'abilityTreeCode' => '203777', + 'abilityTreeNodes' => ['FEATUREhsmQEGDGS'], ], 'parameters' => [ [ - 'name' => 'ClusterId', - 'in' => 'formData', - 'schema' => [ - 'description' => '集群ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'cluster-BqxX63Bsg****', - ], + 'name' => 'BackupId', + 'in' => 'query', + 'schema' => ['description' => '备份ID。', 'type' => 'string', 'required' => true, 'example' => 'backup-fdb897sdf****'], ], [ - 'name' => 'IssuerCertificate', - 'in' => 'formData', - 'schema' => [ - 'description' => '自签名证书。', - 'type' => 'string', - 'required' => true, - 'example' => '-----BEGIN CERTIFICATE-----'."\n" - .'MIIDfTCCAmWgAwIBAgIJAMRqQMr5if66MA0GCSqGSIb3DQEBCwUAMFUxCzAJBgNV'."\n" - .'BAYTAmNuMQswCQYDVQQIDAJ6ajELMAkGA1UEBwwCaHoxFjAUBgNVBAoMDUFsaWJh'."\n" - .'YmEgQ2xvdWQxFDA****'."\n" - .'-----END CERTIFICATE-----', - ], + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => true, 'example' => 'cn-hangzhou'], ], [ - 'name' => 'ClusterCertificate', - 'in' => 'formData', + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => ['description' => '每页显示的镜像个数。取值:1~1000。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '20'], + ], + [ + 'name' => 'CurrentPage', + 'in' => 'query', + 'schema' => ['description' => '当前分页。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '1'], + ], + [ + 'name' => 'Mode', + 'in' => 'query', 'schema' => [ - 'description' => '集群证书。', + 'description' => '镜像生成模式。'."\n" + .'- PERIODIC:自动生成'."\n" + .'- MANUAL:手动生成', 'type' => 'string', - 'required' => true, - 'example' => '-----BEGIN CERTIFICATE-----'."\n" - .'MIIDaTCCAlECAQEwDQYJKoZIhvcNAQELBQAwVTELMAkGA1UEBhMCY24xCzAJBgNV'."\n" - .'BAgMAnpqMQswCQYDVQQHDAJoejEWMBQGA1UECgwNQWxpYmFiYSBDbG91ZDEUMBIG'."\n" - .'A1UECwwLU2VjQ2xvdWRIc20wHhcNMjQwNzAzM****-----END CERTIFICATE-----', + 'required' => false, + 'enumValueTitles' => [], + 'example' => 'MANUAL', + 'enum' => ['MANUAL', 'PERIODIC'], ], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'BaseResult', - 'description' => 'BaseResult', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '本次调用请求的ID,是由阿里云为该请求生成的唯一标识符,可用于排查和定位问题。', - 'type' => 'string', - 'example' => '4C467B38-3910-447D-87BC-AC049166F216', + 'RequestId' => ['description' => '本次调用请求的ID,是由阿里云为该请求生成的唯一标识符,可用于排查和定位问题。', 'type' => 'string', 'example' => '4C467B38-3910-447D-87BC-AC049166F216'], + 'TotalCount' => ['description' => '返回的镜像总量。', 'type' => 'integer', 'format' => 'int32', 'example' => '1000'], + 'PageSize' => ['description' => '每页显示的镜像个数。', 'type' => 'integer', 'format' => 'int32', 'example' => '20'], + 'CurrentPage' => ['description' => '当前分页。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'Images' => [ + 'description' => '返回的镜像信息列表。', + 'type' => 'array', + 'items' => [ + 'description' => '镜像详情。', + 'type' => 'object', + 'properties' => [ + 'BackupId' => ['description' => '备份ID。', 'type' => 'string', 'example' => 'backup-fdb897sdf****'], + 'ExportTime' => ['description' => '镜像生成时间,精确到毫秒。时间戳格式。', 'type' => 'integer', 'format' => 'int64', 'example' => '1782849566738'], + 'ImageId' => ['description' => '镜像ID。', 'type' => 'string', 'example' => 'image-d79x4k11pmg19****'], + 'InstanceId' => ['description' => '密码机实例ID。', 'type' => 'string', 'example' => 'hsm-cn-6ja1xknf****'], + 'RegionId' => ['description' => '地域ID。', 'type' => 'string', 'example' => 'cn-hangzhou'], + 'Remark' => ['description' => '备份备注。', 'type' => 'string', 'example' => 'hsm-test'], + 'Status' => [ + 'description' => '镜像状态。'."\n" + ."\n" + .'- NEW:未启用'."\n" + ."\n" + .'- DELETED:已删除'."\n" + .'- CREATING:创建中'."\n" + .'- NORMAL:创建完成', + 'type' => 'string', + 'enumValueTitles' => [], + 'example' => 'CREATING', + 'enum' => ['NORMAL', 'NEW', 'DELETED', 'CREATING'], + ], + 'Mode' => [ + 'description' => '镜像生成模式。'."\n" + .'- PERIODIC:自动生成'."\n" + .'- MANUAL:手动生成', + 'type' => 'string', + 'enumValueTitles' => [], + 'example' => 'MANUAL', + 'enum' => ['PERIODIC', 'MANUAL'], + ], + 'VsmDigest' => ['description' => '密码机实例摘要。', 'type' => 'string', 'example' => '3kGeHnmQzXwSsfF0Jk9eJYhe2gP6An0/HlYIiZh1****'], + 'SourceImageUid' => ['description' => '源镜像ID。', 'type' => 'string', 'example' => 'image-ooopjygsn****'], + 'SourceBackupUid' => ['description' => '源备份ID。', 'type' => 'string', 'example' => 'backup-hodfhaol****'], + 'SourceRegionId' => ['description' => '源镜像所在的地域ID。', 'type' => 'string', 'example' => 'cn-shanghai'], + 'SourceInstanceId' => ['description' => '源密码机实例ID。', 'type' => 'string', 'example' => 'hsm-cn-wz9i2dmefudfxtmb****'], + 'CopyTime' => ['description' => '镜像复制时间,精确到毫秒。时间戳格式。', 'type' => 'string', 'example' => '1641275680000'], + ], + ], ], ], + 'description' => '', ], ], ], '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.', - ], + ['errorCode' => 'NoPermission', 'errorMessage' => 'caller has no permission', 'description' => ''], + ['errorCode' => 'Backup.Deleted', 'errorMessage' => 'Backup has been deleted.', 'description' => ''], ], - 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'], + 'title' => '查询镜像列表', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], + ], + 'ramActions' => [ + [ + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'yundun-hsm:ListImages', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DataEncryptionService', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"4C467B38-3910-447D-87BC-AC049166F216\\"\\n}","type":"json"}]', - 'title' => '配置集群证书', - 'description' => '如何在ECS上创建自签名证书和集群签名证书,请参见[创建GVSM(NIST FIPS)密码机集群](~~293585~~)。', + '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"}]', ], - 'GetCluster' => [ - 'summary' => '查询指定集群信息。', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'https', - ], + 'ListInstances' => [ + 'summary' => '获取符合查询条件的实例集合。', + 'methods' => ['post', 'get'], + 'schemes' => ['https'], 'security' => [ [ 'AK' => [], @@ -6394,213 +4094,64 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREhsmV7VE3Y', - 'FEATUREhsm01FLNB', - 'FEATUREhsmGIFYCG', - 'FEATUREhsmLBBV5W', - ], + 'abilityTreeCode' => '209162', + 'abilityTreeNodes' => ['FEATUREhsmV7VE3Y', 'FEATUREhsmUNBCOF', 'FEATUREhsm01FLNB', 'FEATUREhsmGIFYCG', 'FEATUREhsmLBBV5W'], ], 'parameters' => [ [ - 'name' => 'ClusterId', + 'name' => 'RegionId', 'in' => 'formData', - 'schema' => [ - 'description' => '集群ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'cluster-p94y1dud9ts****', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => true, 'example' => 'cn-hangzhou'], + ], + [ + 'name' => 'KmsInstanceId', + 'in' => 'query', + 'schema' => ['title' => '密钥管理服务实例ID', 'type' => 'string', 'example' => 'kst-xxx'], + ], + [ + 'name' => 'CurrentPage', + 'in' => 'formData', + 'schema' => ['description' => '当前页数。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '1'], + ], + [ + 'name' => 'PageSize', + 'in' => 'formData', + 'schema' => ['description' => '每页查询数目。取值:1~1000。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '20'], + ], + [ + 'name' => 'TenantIsolationType', + 'in' => 'formData', + 'schema' => ['title' => '密码机硬件隔离类型,枚举值"vsm"虚拟密码机,"hostedHsm"托管硬件密码机', 'description' => '密码机硬件隔离类型,枚举值"vsm"虚拟密码机,"hostedHsm"托管硬件密码机', 'type' => 'string', 'required' => false], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'PlainResult<OpenApiGetClusterResponse>', - 'description' => 'PlainResult<OpenApiGetClusterResponse>', + 'title' => 'OpenApiPageResult<OpenApiListInstancesResponse>', + 'description' => 'OpenApiPageResult<OpenApiListInstancesResponse>', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '本次调用请求的ID,是由阿里云为该请求生成的唯一标识符,可用于排查和定位问题。', - 'type' => 'string', - 'example' => '4C467B38-3910-447D-87BC-AC049166F216', - ], - 'Cluster' => [ - 'description' => '集群信息。', - 'type' => 'object', - 'properties' => [ - 'ClusterId' => [ - 'title' => '集群基础信息', - 'description' => '集群ID。', - 'type' => 'string', - 'example' => 'cluster-p94y1dud9ts****', - ], - 'ClusterName' => [ - 'description' => '集群名称。', - 'type' => 'string', - 'example' => 'cluster_polar_****', - ], - 'Status' => [ - 'description' => '集群状态。'."\n" - ."\n" - .'- NEW:未初始化'."\n" - ."\n" - .'- INITIALIZED:已初始化'."\n" - ."\n" - .'- DELETED:已删除'."\n" - ."\n" - .'- SYNCHRONIZING:同步中'."\n" - ."\n" - .'- TO_DELETE:待删除', - 'type' => 'string', - 'example' => 'NEW', - ], - 'CreateTime' => [ - 'title' => '时间信息', - 'description' => '集群创建时间,精确到毫秒。时间戳格式。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1641275680000', - ], - 'RegionId' => [ - 'title' => '地域与可用区信息', - 'description' => '集群所在地域ID。', - 'type' => 'string', - 'example' => 'cn-hangzhou', - ], - 'VpcId' => [ - 'title' => '网络配置信息', - 'description' => '集群所属VPC ID。', - 'type' => 'string', - 'example' => 'vpc-8vbt0fjdm29hofvbo****', - ], - 'Whitelist' => [ - 'description' => '集群访问白名单列表。', - 'type' => 'string', - 'example' => '130.176.XX.XX', - ], - 'Zones' => [ - 'description' => '集群可用区列表。', - 'type' => 'array', - 'items' => [ - 'description' => '可用区。', - 'type' => 'object', - 'properties' => [ - 'VSwitchId' => [ - 'description' => '交换机ID。', - 'type' => 'string', - 'example' => 'vsw-uf61s651p69bdgmki****', - ], - 'ZoneId' => [ - 'description' => '可用区ID。', - 'type' => 'string', - 'example' => 'cn-hangzhou-j', - ], - ], - ], - ], - 'DeviceType' => [ - 'title' => '规格信息', - 'description' => '设备类型。', - 'type' => 'string', - 'example' => 'jnta', - ], - 'ClusterCsr' => [ - 'title' => '证书信息', - 'description' => '集群证书签名请求文件。', - 'type' => 'string', - 'example' => '-----BEGIN CERTIFICATE REQUEST-----\\nMIIC5TCCAc0CAQAwgZ8xWTAJBgNVBAYTAlVTMAkGA1UECAwCQ0EwDQYDVQQKDAZD\\nYXZpdW0wDQYDVQQLDAZOM0ZJUFMwDgYDVQQHDAdTYW5Kb3NlMBMGA1UdEQwMMTk****'."\n" - .'-----END CERTIFICATE REQUEST-----', - ], - 'ClusterCertificate' => [ - 'description' => '集群证书。', - 'type' => 'string', - 'example' => '-----BEGIN CERTIFICATE-----'."\n" - .'MIIDfTCCAmWgAwIBAgIJAMRqQMr5if66MA0GCSqGSIb3DQEBCwUAMFUxCzAJBgNV'."\n" - .'BAYTAmNuMQswCQYDVQQIDAJ6ajELMAkGA1UEBwwCaHoxFjAUBgNVBAoMDUFsaWJh'."\n" - .'YmEgQ2xvdWQxFDA****'."\n" - .'-----END CERTIFICATE-----', - ], - 'ClusterOwnerCertificate' => [ - 'description' => '集群自签名证书。', - 'type' => 'string', - 'example' => '----BEGIN CERTIFICATE-----'."\n" - .'MIIDaTCCAlECAQEwDQYJKoZIhvcNAQELBQAwVTELMAkGA1UEBhMCY24xCzAJBgNV'."\n" - .'BAgMAnpqMQswCQYDVQQHDAJoejEWMBQGA1UECgwNQWxpYmFiYSBDbG91ZDEUMBIG'."\n" - .'A1UECwwLU2VjQ2xvdWRIc20wHhcNMjQwNzAzM****'."\n" - .'-----END CERTIFICATE-----', - ], - 'Size' => [ - 'title' => '实例信息', - 'description' => '集群内实例数量。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '2', - ], - 'Instances' => [ - 'description' => '集群实例列表。', - 'type' => 'array', - 'items' => [ - 'description' => '密码机实例信息。', - 'type' => 'object', - 'properties' => [ - 'InstanceId' => [ - 'title' => '实例基础信息', - 'description' => '密码机实例ID。', - 'type' => 'string', - 'example' => 'hsm-cn-g6z3v0uf****', - ], - 'NodeId' => [ - 'title' => '状态', - 'description' => '密码机实例在集群中的编号。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'Master' => [ - 'description' => '是否为主密码机。'."\n" - ."\n" - .'- true:是'."\n" - ."\n" - .'- false:否', - 'type' => 'boolean', - 'example' => 'true', - ], - ], - ], - ], - 'ClusterMode' => [ - 'description' => '集群模式。'."\n" - ."\n" - .'<props="china">'."\n" - ."\n" - .'- 0: 手动同步集群'."\n" - .'- 1: 自动同步集群(中国内地密码机集群)'."\n" - .'- 2: 自动同步集群(非中国内地密码机集群)'."\n" - ."\n" - .'</props>'."\n" - ."\n\n" - .'<props="intl">'."\n" - .'2: 自动同步集群'."\n" - .'</props>', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '2', - ], - 'EntityCertExpireTime' => [ - 'description' => '集群托管证书到期时间,精确到毫秒,时间戳格式。'."\n" - .'仅当CertManaged为true时该值有意义。', - 'type' => 'string', - 'example' => '1641275680000', - ], - 'CertManaged' => [ - 'description' => '集群证书是否托管。'."\n" - ."\n" - .'- true:托管'."\n" - ."\n" - .'- false:非托管', - 'type' => 'boolean', - 'example' => 'true', + 'Total' => ['description' => '实例总条数。', 'type' => 'integer', 'format' => 'int32', 'example' => '80'], + 'PageSize' => ['description' => '每页查询数目。', 'type' => 'integer', 'format' => 'int32', 'example' => '20'], + 'CurrentPage' => ['description' => '当前页数。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'RequestId' => ['description' => '本次调用请求的ID,是由阿里云为该请求生成的唯一标识符,可用于排查和定位问题。', 'type' => 'string', 'example' => '4C467B38-3910-447D-87BC-AC049166F216'], + 'Instances' => [ + 'description' => '实例列表。', + 'type' => 'array', + 'items' => [ + 'description' => '实例信息。', + 'type' => 'object', + 'properties' => [ + 'InstanceId' => ['description' => '密码机实例ID。', 'type' => 'string', 'example' => 'hsm-cn-vj30bil8****'], + 'Status' => ['description' => '实例状态。'."\n" + .'- PENDING:未启用'."\n" + .'- ACTIVE:已启用'."\n" + .'- EXPIRED:已过期'."\n" + .'- INVALID:已失效'."\n" + .'- FAILURE:生产失败'."\n" + .'- RESET:重置中'."\n" + .'- PAUSED:已停用'."\n" + .'- MODIFYING:变更中', 'type' => 'string', 'example' => 'ACTIVE'], ], ], ], @@ -6610,292 +4161,213 @@ ], '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.', - ], + ['errorCode' => 'InvalidTenantIsolationType.Error', 'errorMessage' => 'Invalid parameter tenantIsolationType. It must be: null, hostedHsm, or vsm.', 'description' => ''], + ['errorCode' => 'InvalidApiParam.Error', 'errorMessage' => 'api param is invalid', 'description' => ''], + ['errorCode' => 'HsmInstanceNotExist.Error', 'errorMessage' => 'hsm instance not exist', 'description' => ''], + ['errorCode' => 'HSMIntanceNotActived.Error', 'errorMessage' => 'hsm intance is not actived', 'description' => ''], + ['errorCode' => 'WhiteListMaxCount.Error', 'errorMessage' => 'whilte list is more than max count', 'description' => ''], + ['errorCode' => 'ClusterIdIsNotExists.Error', 'errorMessage' => 'cluster ID non-exists', 'description' => ''], + ['errorCode' => 'InstanceListIsEmpty.Error', 'errorMessage' => 'instance list is empty', 'description' => ''], + ['errorCode' => 'InstanceIdIsEmpty.Error', 'errorMessage' => 'instance id is empty', 'description' => ''], + ['errorCode' => 'InstanceIsNotExistsInCluster.Error', 'errorMessage' => 'cluster has no such instance', 'description' => ''], + ['errorCode' => 'InstanceIsExistsInCluster.Error', 'errorMessage' => 'instance already in the cluster', 'description' => ''], + ['errorCode' => 'RegionNoEmpty.Error', 'errorMessage' => 'region no. is empty', 'description' => ''], + ['errorCode' => 'ClusterNameEmpty.Error', 'errorMessage' => 'empty cluster name not allowed', 'description' => ''], + ['errorCode' => 'ClusterNameIsExists.Error', 'errorMessage' => 'the cluster name is already taken', 'description' => ''], + ['errorCode' => 'IpNotValid.Error', 'errorMessage' => 'ip not valid', 'description' => ''], + ['errorCode' => 'ClusterIsEmpty.Error', 'errorMessage' => 'cluster is empty', 'description' => ''], + ['errorCode' => 'NoMasterFoundInCluster.Error', 'errorMessage' => 'cluster has no master instance', 'description' => ''], + ['errorCode' => 'HsmInstanceIdNotFound.Error', 'errorMessage' => 'no such instance', 'description' => ''], + ['errorCode' => 'NoInstanceFoundInCluster.Error', 'errorMessage' => 'cluster is empty', 'description' => ''], + ['errorCode' => 'Whitelist.Invalid', 'errorMessage' => 'Whitelist blocks not in CIDR format.', 'description' => ''], + ['errorCode' => 'Whitelist.TooLong', 'errorMessage' => 'Whitelist too long, exceeds 10 CIDR blocks.', 'description' => ''], + ['errorCode' => 'SwitchMaster.InstanceInvalid', 'errorMessage' => 'Instance not in the cluster.', 'description' => ''], + ['errorCode' => 'LeaveCluster.MasterLast', 'errorMessage' => 'Master instance can not leave a cluster until all other instances are left.', 'description' => ''], + ['errorCode' => 'Certificate.ChainInvalid', 'errorMessage' => 'Certificate chain invalid. Please make sure issuer certificate is the trust anchor and cluster certificate is signed by issuer certificate.', 'description' => ''], + ['errorCode' => 'Certificate.FormatInvalid', 'errorMessage' => 'Certificate format invalid. Cluster/Issuer certificate must be in PEM format.', 'description' => ''], + ['errorCode' => 'ConfigClusterSubnet.DuplicateZone', 'errorMessage' => 'VSwitches should not contain duplicate zones.', 'description' => ''], + ['errorCode' => 'InvalidClusterName', 'errorMessage' => 'Invalid parameter clusterName.', 'description' => ''], + ['errorCode' => 'InvalidPageSize', 'errorMessage' => 'Invalid parameter pageSize.', 'description' => ''], + ['errorCode' => 'InvalidCurrentPage', 'errorMessage' => 'Invalid parameter currentPage.', 'description' => ''], + ['errorCode' => 'InvalidRegionId', 'errorMessage' => 'Invalid parameter regionId.', 'description' => ''], + ['errorCode' => 'InvalidZoneId', 'errorMessage' => 'Invalid parameter zoneId.', 'description' => ''], + ['errorCode' => 'InvalidVSwitch', 'errorMessage' => 'Invalid parameter vSwitch.', 'description' => ''], + ['errorCode' => 'InvalidVpc', 'errorMessage' => 'Invalid parameter vpcId.', 'description' => ''], + ['errorCode' => 'InvalidVsmType', 'errorMessage' => 'Invalid parameter vsmType.', 'description' => ''], + ['errorCode' => 'InvalidIp', 'errorMessage' => 'Invalid parameter IP.', 'description' => ''], + ['errorCode' => 'InvalidAliuid', 'errorMessage' => 'Invalid parameter aliuid.', 'description' => ''], + ['errorCode' => 'InvalidClusterId', 'errorMessage' => 'Invalid parameter clusterId.', 'description' => ''], + ['errorCode' => 'InvalidInstanceId', 'errorMessage' => 'Invalid parameter instanceId.', 'description' => ''], + ['errorCode' => 'InvalidBackupId', 'errorMessage' => 'Invalid parameter backupId.', 'description' => ''], + ['errorCode' => 'InvalidImageId', 'errorMessage' => 'Invalid parameter imageId.', 'description' => ''], + ['errorCode' => 'HSMIntanceActived.Error', 'errorMessage' => 'actived hsm instance can not release', 'description' => ''], + ['errorCode' => 'ConfigIp.IpAlreadyInUse', 'errorMessage' => 'Ip is in use, can not config IP address.', 'description' => ''], + ['errorCode' => 'ConfigIp.VpcIpNotMatched', 'errorMessage' => 'Vpc Ip must be in vpc network segment.', 'description' => ''], + ['errorCode' => 'ConfigIp.IpOverFlow', 'errorMessage' => 'Vpc ip last place can not be in [253-255].', 'description' => ''], + ['errorCode' => 'CanRefund.InstanceIdEmpty', 'errorMessage' => 'InstanceId is empty.', 'description' => ''], + ['errorCode' => 'CanRefund.InstanceNotFound', 'errorMessage' => 'Instance Not Exist.', 'description' => ''], + ['errorCode' => 'CanRefund.InstanceAlreadyReleased', 'errorMessage' => 'Instance already released.', 'description' => ''], + ['errorCode' => 'CanRefund.AliUidEmpty', 'errorMessage' => 'AliUid empty.', 'description' => ''], + ['errorCode' => 'CanRefund.NoSupportRefundOnline', 'errorMessage' => 'No support refund online.', 'description' => ''], ], 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' => 'NoPermission', 'errorMessage' => 'Caller has no permission on the resource.', 'description' => ''], + ['errorCode' => 'InstanceNotPaused', 'errorMessage' => 'Please pause the instance before reset.', 'description' => ''], + ['errorCode' => 'Trial.Forbidden', 'errorMessage' => 'Current user is not allowed for trials!', 'description' => ''], + ['errorCode' => 'Forbidden.InstanceInCluster', 'errorMessage' => 'This API is forbidden for instances in cluster.', 'description' => ''], + ['errorCode' => 'JoinCluster.InstanceIncorrectState', 'errorMessage' => 'Instance not in Active/Pending state.', 'description' => ''], + ['errorCode' => 'InstanceNotActive', 'errorMessage' => 'Instance is not active.', 'description' => ''], + ['errorCode' => 'ConfigIp.IncorrectState', 'errorMessage' => 'Instance not in pending or active state, can not config IP address.', 'description' => ''], + ['errorCode' => 'SwitchMaster.IncorrectState', 'errorMessage' => 'Cluster not initialized, please initialize the cluster first.', 'description' => ''], + ['errorCode' => 'SyncCluster.IncorrectState', 'errorMessage' => 'Cluster not initialized, please initialize the cluster first.', 'description' => ''], + ['errorCode' => 'LeaveCluster.InstanceInvalid', 'errorMessage' => 'The instance is not in the cluster.', 'description' => ''], + ['errorCode' => 'DeleteCluster.IncorrectState', 'errorMessage' => 'Cluster not empty, please remove all instances first.', 'description' => ''], + ['errorCode' => 'JoinCluster.InstanceVSwitchNotInCluster', 'errorMessage' => 'Instance\'s vSwitch is not in cluster config, please change instance\'s vSwitch first.', 'description' => ''], + ['errorCode' => 'JoinCluster.InstanceInitialized', 'errorMessage' => 'Initialized instance can not join a cluster.', 'description' => ''], + ['errorCode' => 'JoinCluster.IncorrectState', 'errorMessage' => 'Cluster not initialized, please initialize the cluster first.', 'description' => ''], + ['errorCode' => 'InitializeCluster.InstanceNotInitialized', 'errorMessage' => 'Cluster master instance not initialized, please initialize cluster master instance first.', 'description' => ''], + ['errorCode' => 'InitializeCluster.IncorrectConfig', 'errorMessage' => 'Cluster subnet not configured, please config cluster subnet first.', 'description' => ''], + ['errorCode' => 'InitializeCluster.IncorrectState', 'errorMessage' => 'Cluster initialized, do not re-initialize.', 'description' => ''], + ['errorCode' => 'Cluster.CN.ActionForbidden', 'errorMessage' => 'This API is forbidden for non-international site cluster.', 'description' => ''], + ['errorCode' => 'Cluster.INTL.ActionForbidden', 'errorMessage' => 'This API is forbidden for international site cluster.', 'description' => ''], + ['errorCode' => 'ConfigClusterCertificate.IncorrectState', 'errorMessage' => 'Cluster initialized or certificates already configured.', 'description' => ''], + ['errorCode' => 'ConfigClusterSubnet.InvalidVpcId', 'errorMessage' => 'VPC Id invalid. Cluster VPC is the same as cluster master\'s VPC.', 'description' => ''], + ['errorCode' => 'ConfigClusterSubnet.InvalidVSwitchId', 'errorMessage' => 'VSwitch Id invalid. VSwitches should contain all current cluster vSwitches.', 'description' => ''], + ['errorCode' => 'ConfigClusterSubnet.IncorrectState', 'errorMessage' => 'Cluster not in NEW state, can not config cluster subnet.', 'description' => ''], + ['errorCode' => 'ClusterName.Exist', 'errorMessage' => 'Cluster name already exists, please use another name.', 'description' => ''], + ['errorCode' => 'Image.ImageStatusInValid', 'errorMessage' => 'Image status is invalid.', 'description' => ''], + ['errorCode' => 'CopyImage.ImageAlreadyCopied', 'errorMessage' => 'Image already copied, secondary copy is not supported.', 'description' => ''], + ['errorCode' => 'Image.ActionForbiddenINTL', 'errorMessage' => 'This API is forbidden for international site.', 'description' => ''], + ['errorCode' => 'Image.ActionForbiddenCN', 'errorMessage' => 'This API is forbidden for non-international site.', 'description' => ''], + ['errorCode' => 'CopyImage.RegionInvalid', 'errorMessage' => 'Source region or target region invalid.', 'description' => ''], + ['errorCode' => 'Backup.ActionForbiddenINTL', 'errorMessage' => 'This API is forbidden for international site.', 'description' => ''], + ['errorCode' => 'CopyImage.TargetRegionImageAlreadyExists', 'errorMessage' => 'Target region has the same digest image.', 'description' => ''], + ], + [ + ['errorCode' => 'Resource.NotFound', 'errorMessage' => 'Resource not found.', 'description' => ''], + ], + [ + ['errorCode' => 'ClusterAPI.NotSupported', 'errorMessage' => 'ClusterAPI not supported in this region.', 'description' => ''], + ], + 409 => [ + ['errorCode' => 'Conflict', 'errorMessage' => 'Resource is being updated by a previous request. Current request is redundant.', 'description' => ''], + ['errorCode' => 'ConfigIp.IncorrectState', 'errorMessage' => 'Instance not in pending or active state, can not config IP address.', 'description' => ''], + ['errorCode' => 'Cluster.Conflict', 'errorMessage' => 'The cluster is being updated by a previous request. Please try again later.', 'description' => ''], + ], + 500 => [ + ['errorCode' => 'ConfigWhitelistFailed.Error', 'errorMessage' => 'config white list error', 'description' => ''], + ['errorCode' => 'ActionFailed.Error', 'errorMessage' => 'internal error, please try again', 'description' => ''], + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to some unknown error.', 'description' => '未知错误导致请求处理失败。'], + ], + ], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'title' => '查询实例列表', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], + ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'yundun-hsm:ListInstances', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DataEncryptionService', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], + ], + '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"}]', + ], + 'MoveResourceGroup' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - [ - 'errorCode' => 'Resource.NotFound', - 'errorMessage' => 'Resource not found.', - ], + 'AK' => [], ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => ['FEATUREhsmV7VE3Y', 'FEATUREhsm01FLNB', 'FEATUREhsmGIFYCG', 'FEATUREhsmLBBV5W'], + ], + 'parameters' => [ [ - [ - 'errorCode' => 'ClusterAPI.NotSupported', - 'errorMessage' => 'ClusterAPI not supported in this region.', - ], + 'name' => 'ResourceId', + 'in' => 'query', + 'schema' => ['description' => '密码机实例ID。', 'type' => 'string', 'required' => true, 'example' => 'hsm-2ze0qae64mjuc0ni****'], ], - 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.', + [ + 'name' => 'ResourceGroupId', + 'in' => 'query', + 'schema' => ['description' => '资源组ID。', 'type' => 'string', 'required' => true, 'example' => 'rg-aek2tsvbnfe****'], + ], + [ + 'name' => 'ResourceType', + 'in' => 'query', + 'schema' => ['description' => '资源类型。', 'type' => 'string', 'required' => true, 'example' => 'instance'], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => true, 'example' => 'cn-hangzhou'], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'description' => '返回参数结构。', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => '本次调用请求的ID,是由阿里云为该请求生成的唯一标识符,可用于排查和定位问题。', 'type' => 'string', 'example' => '4C467B38-3910-447D-87BC-AC049166F216'], + ], ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'InvalidApiParam.Error', 'errorMessage' => 'Parameter is invalid.', 'description' => '参数不合法'], + ], + 403 => [ + ['errorCode' => 'NoPermission', 'errorMessage' => 'caller has no permission.', 'description' => '用户没有权限使用。'], + ], 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.', - ], + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to some unknown error.', 'description' => '未知错误导致请求处理失败。'], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'title' => '移动资源所在的资源组', + 'summary' => '移动资源所在的资源组。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], + ], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'yundun-hsm:MoveResourceGroup', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DataEncryptionService', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], - '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' => '查询集群', + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"4C467B38-3910-447D-87BC-AC049166F216\\"\\n}","type":"json"}]', ], - 'ConfigClusterWhitelist' => [ - 'summary' => '修改集群可访问的白名单列表。', - 'methods' => [ - 'post', - ], - 'schemes' => [ - 'https', - ], + 'PauseInstance' => [ + 'methods' => ['post'], + 'schemes' => ['https'], 'security' => [ [ 'AK' => [], @@ -6907,27 +4379,13 @@ 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', + 'abilityTreeNodes' => ['FEATUREhsmV7VE3Y', 'FEATUREhsm01FLNB', 'FEATUREhsmGIFYCG', 'FEATUREhsmLBBV5W'], ], 'parameters' => [ [ - 'name' => 'ClusterId', - 'in' => 'formData', - 'schema' => [ - 'description' => '集群ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'cluster-729dm40FG****', - ], - ], - [ - 'name' => 'Whitelist', + 'name' => 'InstanceId', 'in' => 'formData', - 'schema' => [ - 'description' => '集群访问白名单列表。', - 'type' => 'string', - 'required' => true, - 'example' => '18.68.XX.XX', - ], + 'schema' => ['description' => '密码机实例ID。', 'type' => 'string', 'required' => true, 'example' => 'hsm-cn-vj30bil8****'], ], ], 'responses' => [ @@ -6937,305 +4395,115 @@ 'description' => 'BaseResult', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '本次调用请求的ID,是由阿里云为该请求生成的唯一标识符,可用于排查和定位问题。', - 'type' => 'string', - 'example' => '4C467B38-3910-447D-87BC-AC049166F216', - ], + 'RequestId' => ['description' => '本次调用请求的ID,是由阿里云为该请求生成的唯一标识符,可用于排查和定位问题。', '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.', - ], + ['errorCode' => 'SwitchMaster.InstanceInvalid', 'errorMessage' => 'Instance not in the cluster.', 'description' => ''], + ['errorCode' => 'LeaveCluster.MasterLast', 'errorMessage' => 'Master instance can not leave a cluster until all other instances are left.', 'description' => ''], + ['errorCode' => 'Certificate.ChainInvalid', 'errorMessage' => 'Certificate chain invalid. Please make sure issuer certificate is the trust anchor and cluster certificate is signed by issuer certificate.', 'description' => ''], + ['errorCode' => 'Certificate.FormatInvalid', 'errorMessage' => 'Certificate format invalid. Cluster/Issuer certificate must be in PEM format.', 'description' => ''], + ['errorCode' => 'ConfigClusterSubnet.DuplicateZone', 'errorMessage' => 'VSwitches should not contain duplicate zones.', 'description' => ''], + ['errorCode' => 'InvalidApiParam.Error', 'errorMessage' => 'api param is invalid', 'description' => ''], + ['errorCode' => 'InvalidClusterName', 'errorMessage' => 'Invalid parameter clusterName.', 'description' => ''], + ['errorCode' => 'InvalidPageSize', 'errorMessage' => 'Invalid parameter pageSize.', 'description' => ''], + ['errorCode' => 'InvalidCurrentPage', 'errorMessage' => 'Invalid parameter currentPage.', 'description' => ''], + ['errorCode' => 'InvalidRegionId', 'errorMessage' => 'Invalid parameter regionId.', 'description' => ''], + ['errorCode' => 'InvalidVSwitch', 'errorMessage' => 'Invalid parameter vSwitch.', 'description' => ''], + ['errorCode' => 'InvalidVpc', 'errorMessage' => 'Invalid parameter vpcId.', 'description' => ''], + ['errorCode' => 'InvalidIp', 'errorMessage' => 'Invalid parameter IP.', 'description' => ''], + ['errorCode' => 'InvalidAliuid', 'errorMessage' => 'Invalid parameter aliuid.', 'description' => ''], + ['errorCode' => 'InvalidClusterId', 'errorMessage' => 'Invalid parameter clusterId.', 'description' => ''], + ['errorCode' => 'InvalidInstanceId', 'errorMessage' => 'Invalid parameter instanceId.', 'description' => ''], + ['errorCode' => 'InvalidBackupId', 'errorMessage' => 'Invalid parameter backupId.', 'description' => ''], + ['errorCode' => 'InvalidImageId', 'errorMessage' => 'Invalid parameter imageId.', 'description' => ''], + ['errorCode' => 'HsmInstanceNotExist.Error', 'errorMessage' => 'hsm instance not exist', 'description' => ''], + ['errorCode' => 'HSMIntanceNotActived.Error', 'errorMessage' => 'hsm intance is not actived', 'description' => ''], + ['errorCode' => 'WhiteListMaxCount.Error', 'errorMessage' => 'whilte list is more than max count', 'description' => ''], + ['errorCode' => 'ClusterIdIsNotExists.Error', 'errorMessage' => 'cluster ID non-exists', 'description' => ''], + ['errorCode' => 'InstanceListIsEmpty.Error', 'errorMessage' => 'instance list is empty', 'description' => ''], + ['errorCode' => 'InstanceIdIsEmpty.Error', 'errorMessage' => 'instance id is empty', 'description' => ''], + ['errorCode' => 'InstanceIsNotExistsInCluster.Error', 'errorMessage' => 'cluster has no such instance', 'description' => ''], + ['errorCode' => 'InstanceIsExistsInCluster.Error', 'errorMessage' => 'instance already in the cluster', 'description' => ''], + ['errorCode' => 'RegionNoEmpty.Error', 'errorMessage' => 'region no. is empty', 'description' => ''], + ['errorCode' => 'ClusterNameEmpty.Error', 'errorMessage' => 'empty cluster name not allowed', 'description' => ''], + ['errorCode' => 'ClusterNameIsExists.Error', 'errorMessage' => 'the cluster name is already taken', 'description' => ''], + ['errorCode' => 'IpNotValid.Error', 'errorMessage' => 'ip not valid', 'description' => ''], + ['errorCode' => 'ClusterIsEmpty.Error', 'errorMessage' => 'cluster is empty', 'description' => ''], + ['errorCode' => 'NoMasterFoundInCluster.Error', 'errorMessage' => 'cluster has no master instance', 'description' => ''], + ['errorCode' => 'HsmInstanceIdNotFound.Error', 'errorMessage' => 'no such instance', 'description' => ''], + ['errorCode' => 'NoInstanceFoundInCluster.Error', 'errorMessage' => 'cluster is empty', 'description' => ''], + ['errorCode' => 'Whitelist.Invalid', 'errorMessage' => 'Whitelist blocks not in CIDR format.', 'description' => ''], + ['errorCode' => 'Whitelist.TooLong', 'errorMessage' => 'Whitelist too long, exceeds 10 CIDR blocks.', 'description' => ''], ], 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' => 'NoPermission', 'errorMessage' => 'Caller has no permission on the resource.', 'description' => ''], + ['errorCode' => 'InstanceNotPaused', 'errorMessage' => 'Please pause the instance before reset.', 'description' => ''], ], [ - [ - 'errorCode' => 'Resource.NotFound', - 'errorMessage' => 'Resource not found.', - ], + ['errorCode' => 'Resource.NotFound', 'errorMessage' => 'Resource not found.', 'description' => ''], ], [ - [ - 'errorCode' => 'ClusterAPI.NotSupported', - 'errorMessage' => 'ClusterAPI not supported in this region.', - ], + ['errorCode' => 'ClusterAPI.NotSupported', 'errorMessage' => 'ClusterAPI not supported in this region.', 'description' => ''], ], 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.', - ], + ['errorCode' => 'SwitchMaster.IncorrectState', 'errorMessage' => 'Cluster not initialized, please initialize the cluster first.', 'description' => ''], + ['errorCode' => 'Cluster.Conflict', 'errorMessage' => 'The cluster is being updated by a previous request. Please try again later.', 'description' => ''], + ['errorCode' => 'SyncCluster.IncorrectState', 'errorMessage' => 'Cluster not initialized, please initialize the cluster first.', 'description' => ''], + ['errorCode' => 'LeaveCluster.InstanceInvalid', 'errorMessage' => 'The instance is not in the cluster.', 'description' => ''], + ['errorCode' => 'DeleteCluster.IncorrectState', 'errorMessage' => 'Cluster not empty, please remove all instances first.', 'description' => ''], + ['errorCode' => 'JoinCluster.InstanceVSwitchNotInCluster', 'errorMessage' => 'Instance\'s vSwitch is not in cluster config, please change instance\'s vSwitch first.', 'description' => ''], + ['errorCode' => 'JoinCluster.InstanceInitialized', 'errorMessage' => 'Initialized instance can not join a cluster.', 'description' => ''], + ['errorCode' => 'JoinCluster.IncorrectState', 'errorMessage' => 'Cluster not initialized, please initialize the cluster first.', 'description' => ''], + ['errorCode' => 'InitializeCluster.InstanceNotInitialized', 'errorMessage' => 'Cluster master instance not initialized, please initialize cluster master instance first.', 'description' => ''], + ['errorCode' => 'InitializeCluster.IncorrectConfig', 'errorMessage' => 'Cluster subnet not configured, please config cluster subnet first.', 'description' => ''], + ['errorCode' => 'InitializeCluster.IncorrectState', 'errorMessage' => 'Cluster initialized, do not re-initialize.', 'description' => ''], + ['errorCode' => 'Cluster.CN.ActionForbidden', 'errorMessage' => 'This API is forbidden for non-international site cluster.', 'description' => ''], + ['errorCode' => 'Cluster.INTL.ActionForbidden', 'errorMessage' => 'This API is forbidden for international site cluster.', 'description' => ''], + ['errorCode' => 'ConfigClusterCertificate.IncorrectState', 'errorMessage' => 'Cluster initialized or certificates already configured.', 'description' => ''], + ['errorCode' => 'ConfigClusterSubnet.InvalidVpcId', 'errorMessage' => 'VPC Id invalid. Cluster VPC is the same as cluster master\'s VPC.', 'description' => ''], + ['errorCode' => 'ConfigClusterSubnet.InvalidVSwitchId', 'errorMessage' => 'VSwitch Id invalid. VSwitches should contain all current cluster vSwitches.', 'description' => ''], + ['errorCode' => 'ConfigClusterSubnet.IncorrectState', 'errorMessage' => 'Cluster not in NEW state, can not config cluster subnet.', 'description' => ''], + ['errorCode' => 'ClusterName.Exist', 'errorMessage' => 'Cluster name already exists, please use another name.', 'description' => ''], + ['errorCode' => 'Conflict', 'errorMessage' => 'Resource is being updated by a previous request. Current request is redundant.', 'description' => ''], + ['errorCode' => 'ConfigIp.IncorrectState', 'errorMessage' => 'Instance not in pending or active state, can not config IP address.', 'description' => ''], ], 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.', - ], + ['errorCode' => 'ConfigWhitelistFailed.Error', 'errorMessage' => 'config white list error', 'description' => ''], + ['errorCode' => 'ActionFailed.Error', 'errorMessage' => 'internal error, please try again', 'description' => ''], + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to some unknown error.', 'description' => '未知错误导致请求处理失败。'], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '停用实例', + 'summary' => '停用实例。', + 'description' => '实例被停用后,业务操作将无法进行,请谨慎调用该操作。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], + ], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'yundun-hsm:PauseInstance', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DataEncryptionService', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"4C467B38-3910-447D-87BC-AC049166F216\\"\\n}","type":"json"}]', - 'title' => '配置集群白名单', - 'description' => '集群的白名单优先级高于实例的白名单。集群模式下建议您创建集群白名单,不需要再创建密码机白名单。', + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"4C467B38-3910-447D-87BC-AC049366F216\\"\\n}","type":"json"}]', ], 'QuickDeployCluster' => [ - 'summary' => '快速部署集群。', 'path' => '', - 'methods' => [ - 'post', - ], - 'schemes' => [ - 'https', - ], + 'methods' => ['post'], + 'schemes' => ['https'], 'security' => [ [ 'AK' => [], @@ -7247,10 +4515,7 @@ 'operationType' => 'create', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREhsmV7VE3Y', - 'FEATUREhsm01FLNB', - ], + 'abilityTreeNodes' => ['FEATUREhsmV7VE3Y', 'FEATUREhsm01FLNB'], ], 'parameters' => [ [ @@ -7260,24 +4525,14 @@ 'schema' => [ 'description' => '集群配置的交换机列表。', 'type' => 'array', - 'items' => [ - 'description' => '交换机ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'vsw-2zeqkh8ar8yey5ejv****'."\n", - ], + 'items' => ['description' => '交换机ID。', 'type' => 'string', 'required' => false, 'example' => 'vsw-2zeqkh8ar8yey5ejv****'."\n"], 'required' => true, ], ], [ 'name' => 'VpcId', 'in' => 'query', - 'schema' => [ - 'description' => '密码机实例所属VPC ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'vpc-7xvkh90cw39p0****', - ], + 'schema' => ['description' => '密码机实例所属VPC ID。', 'type' => 'string', 'required' => true, 'example' => 'vpc-7xvkh90cw39p0****'], ], [ 'name' => 'WhiteList', @@ -7286,12 +4541,7 @@ 'schema' => [ 'description' => '集群访问白名单列表。', 'type' => 'array', - 'items' => [ - 'description' => '集群访问白名单。', - 'type' => 'string', - 'required' => false, - 'example' => '18.68.XX.XX'."\n", - ], + 'items' => ['description' => '集群访问白名单。', 'type' => 'string', 'required' => false, 'example' => '18.68.XX.XX'."\n"], 'required' => false, ], ], @@ -7302,48 +4552,28 @@ 'schema' => [ 'description' => '密码机实例列表。', 'type' => 'array', - 'items' => [ - 'description' => '密码机实例ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'hsm-cn-vj30bil8****'."\n", - ], + 'items' => ['description' => '密码机实例ID。', '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", - ], + 'schema' => ['description' => '集群名称。', 'type' => 'string', 'required' => true, 'example' => 'cluster_on****'."\n"], ], [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => true, 'example' => 'cn-hangzhou'], ], [ 'name' => 'CertManaged', 'in' => 'query', - 'schema' => [ - 'description' => '是否自动生成证书。'."\n" - ."\n" - .'- true:是'."\n" - ."\n" - .'- false:否', - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - ], + 'schema' => ['description' => '是否自动生成证书。'."\n" + ."\n" + .'- true:是'."\n" + ."\n" + .'- false:否', 'type' => 'boolean', 'required' => false, 'example' => 'true'], ], ], 'responses' => [ @@ -7353,72 +4583,35 @@ 'description' => '返回值。', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '4C467B38-3910-447D-87BC-AC049166F216', - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '4C467B38-3910-447D-87BC-AC049166F216'], 'Job' => [ 'description' => '任务详情。', 'type' => 'object', 'properties' => [ - 'JobId' => [ - 'description' => '任务ID。', - 'type' => 'string', - 'example' => 'job-202401250936hze747fd7e0007005', - ], - 'Type' => [ - 'description' => '操作类型。'."\n" - ."\n" - .'- create:创建任务'."\n" - ."\n" - .'- cancel:取消任务', - 'type' => 'string', - 'example' => 'create', - ], - 'Completed' => [ - 'description' => '任务是否完成。'."\n" - ."\n" - .'- true:是'."\n" - ."\n" - .'- false:否', - 'type' => 'boolean', - 'example' => 'true', - ], - 'CreateTime' => [ - 'description' => '任务创建时间,精确到毫秒。时间戳格式。', - 'type' => 'string', - 'example' => '1653274407000', - ], - 'Status' => [ - 'description' => '任务状态。'."\n" - ."\n" - .'- success:任务成功'."\n" - ."\n" - .'- running:任务执行中'."\n" - ."\n" - .'- cancel:任务取消'."\n" - ."\n" - .'- fail:任务失败', - 'type' => 'string', - 'example' => 'success', - ], - 'Response' => [ - 'description' => '任务成功后返回的响应信息。', - 'type' => 'string', - 'example' => 'success', - ], - 'Error' => [ - 'description' => '任务失败时的错误信息。', - 'type' => 'string', - 'example' => 'OperationTimeout', - ], - 'Progress' => [ - 'description' => '任务执行进度。单位为百分比。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '86', - ], + 'JobId' => ['description' => '任务ID。', 'type' => 'string', 'example' => 'job-202401250936hze747fd7e0007005'], + 'Type' => ['description' => '操作类型。'."\n" + ."\n" + .'- create:创建任务'."\n" + ."\n" + .'- cancel:取消任务', 'type' => 'string', 'example' => 'create'], + 'Completed' => ['description' => '任务是否完成。'."\n" + ."\n" + .'- true:是'."\n" + ."\n" + .'- false:否', 'type' => 'boolean', 'example' => 'true'], + 'CreateTime' => ['description' => '任务创建时间,精确到毫秒。时间戳格式。', 'type' => 'string', 'example' => '1653274407000'], + 'Status' => ['description' => '任务状态。'."\n" + ."\n" + .'- success:任务成功'."\n" + ."\n" + .'- running:任务执行中'."\n" + ."\n" + .'- cancel:任务取消'."\n" + ."\n" + .'- fail:任务失败', 'type' => 'string', 'example' => 'success'], + 'Response' => ['description' => '任务成功后返回的响应信息。', 'type' => 'string', 'example' => 'success'], + 'Error' => ['description' => '任务失败时的错误信息。', 'type' => 'string', 'example' => 'OperationTimeout'], + 'Progress' => ['description' => '任务执行进度。单位为百分比。', 'type' => 'integer', 'format' => 'int32', 'example' => '86'], ], ], ], @@ -7427,204 +4620,116 @@ ], '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.', - ], + ['errorCode' => 'InvalidApiParam.Error', 'errorMessage' => 'api param is invalid', 'description' => ''], + ['errorCode' => 'InvalidVSwitch', 'errorMessage' => 'Invalid parameter vSwitch', 'description' => ''], + ['errorCode' => 'Whitelist.TooLong', 'errorMessage' => 'Whitelist too long, exceeds 10 CIDR blocks.', 'description' => ''], ], 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.', - ], + ['errorCode' => 'NoPermission', 'errorMessage' => 'caller has no permission', 'description' => ''], + ['errorCode' => 'QuickDeployCluster.InstanceAlreadyInitialized', 'errorMessage' => 'Instance already initialized.', 'description' => ''], + ['errorCode' => 'QuickDeployCluster.InstanceIncorrectState', 'errorMessage' => 'Instance not in Enable/Pending state.', 'description' => ''], + ['errorCode' => 'QuickDeployCluster.InstanceInvalidRegion', 'errorMessage' => 'Instance region invalid.', 'description' => ''], + ['errorCode' => 'QuickDeployCluster.InstanceVersionInvalid', 'errorMessage' => 'Instance device version is invalid', 'description' => ''], + ['errorCode' => 'QuickDeployCluster.InstanceListInvalid', 'errorMessage' => 'Cluster contains instances not in the instance list.', 'description' => ''], + ['errorCode' => 'QuickDeployCluster.InstanceBelongsToOtherCluster', 'errorMessage' => 'Instance has been in other cluster.', 'description' => ''], + ['errorCode' => 'QuickDeployCluster.InvalidVpcId', 'errorMessage' => 'The param vpcId is not the same as existed vpcId of cluster.', 'description' => ''], + ['errorCode' => 'QuickDeployCluster.InvalidVSwitchIdCount', 'errorMessage' => 'VSwitch count is less than 2.', 'description' => ''], + ['errorCode' => 'QuickDeployCluster.DuplicateZone', 'errorMessage' => 'VSwitches should not contain duplicate zones.', 'description' => ''], + ['errorCode' => 'QuickDeployCluster.InstanceCountInvalid', 'errorMessage' => 'Instance number less than 2.', 'description' => ''], + ['errorCode' => 'QuickDeployCluster.InstanceTypeInvalid', 'errorMessage' => 'Instance type invalid.', 'description' => ''], + ['errorCode' => 'QuickDeployCluster.InstanceTypeNotSame', 'errorMessage' => 'Instance type not same.', 'description' => ''], ], 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'The request processing has failed due to some unknown error.', - ], + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to some unknown error.', 'description' => '未知错误导致请求处理失败。'], ], ], - '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"}]', + 'staticInfo' => ['returnType' => 'synchronous'], 'title' => '快速部署集群', + 'summary' => '快速部署集群。', 'description' => '- 所选密码机实例至少包含两个可用区。'."\n" ."\n" .'- 虚拟交换机至少选择两个,且不包含重复可用区。', - ], - 'RotateClusterManagedCert' => [ - 'summary' => '轮转集群托管证书。', - 'description' => '仅支持中国站中国地域的证书托管集群调用。', - 'path' => '/', - 'methods' => [ - 'post', - ], - 'schemes' => [ - 'https', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], + ], + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'yundun-hsm:QuickDeployCluster', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DataEncryptionService', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + '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"}]', + ], + 'QuickInitInstance' => [ + 'summary' => '快速初始化实例。', + 'methods' => ['post'], + 'schemes' => ['https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'write', 'deprecated' => false, 'systemTags' => [ 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREhsmV7VE3Y', - 'FEATUREhsm01FLNB', - ], + 'abilityTreeNodes' => ['FEATUREhsmV7VE3Y', 'FEATUREhsm01FLNB', 'FEATUREhsmGIFYCG', 'FEATUREhsmLBBV5W'], ], 'parameters' => [ [ - 'name' => 'ClusterId', - 'in' => 'query', - 'schema' => [ - 'title' => '- **参数类型**: string'."\n" - .'- **必填**: 是'."\n" - .'- **后端接收参数**: clusterId'."\n", - 'description' => '集群ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'cluster-hfau****gkaud', - ], + 'name' => 'InstanceId', + 'in' => 'formData', + 'schema' => ['description' => '密码机实例ID。', 'type' => 'string', 'required' => true, 'example' => 'hsm-cn-mp90fxef****'], ], ], 'responses' => [ 200 => [ - 'description' => '成功响应', 'schema' => [ - 'title' => 'Schema of Response', - 'description' => '返回值。', + 'title' => 'PlainResult<OpenApiQuickInitInstanceResponse>', + 'description' => 'PlainResult<OpenApiQuickInitInstanceResponse>', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '4C467B38-3910-447D-87BC-AC049166F216', - ], + 'RequestId' => ['description' => '本次调用请求的ID,是由阿里云为该请求生成的唯一标识符,可用于排查和定位问题。', 'type' => 'string', 'example' => '4C467B38-3910-447D-87BC-AC049366F216'], 'Job' => [ 'description' => '任务详情。', 'type' => 'object', 'properties' => [ - 'JobId' => [ - 'description' => '任务ID。', - 'type' => 'string', - 'example' => 'job-202401250936hze747fd7e0007005', - ], + 'JobId' => ['description' => '任务ID。', 'type' => 'string', 'example' => 'job-000fi9k1v2hclo321sal'], 'Type' => [ - 'description' => '任务操作类型。'."\n" + 'description' => '操作类型。'."\n" ."\n" .'- create:创建任务'."\n" - ."\n" .'- cancel:取消任务', 'type' => 'string', + 'enumValueTitles' => [], 'example' => 'create', ], - 'Completed' => [ - 'description' => '任务是否完成。'."\n" - ."\n" - .'- true:是'."\n" - ."\n" - .'- false:否', - 'type' => 'boolean', - 'example' => 'true', - ], - 'CreateTime' => [ - 'description' => '任务创建时间,精确到毫秒。时间戳格式。', - 'type' => 'string', - 'example' => '1653274407000', - ], + 'Completed' => ['description' => '任务是否完成。', 'type' => 'boolean', 'example' => 'true'], + 'CreateTime' => ['description' => '任务创建时间,精确到毫秒。时间戳格式。', 'type' => 'string', 'example' => '1699515963000'], 'Status' => [ 'description' => '任务状态。'."\n" ."\n" .'- success:任务成功'."\n" - ."\n" .'- running:任务执行中'."\n" - ."\n" .'- cancel:任务取消'."\n" - ."\n" .'- fail:任务失败', 'type' => 'string', - 'example' => 'running', - ], - 'Response' => [ - 'description' => '任务成功后返回的响应信息。', - 'type' => 'string', + 'enumValueTitles' => [], 'example' => 'success', ], - 'Error' => [ - 'description' => '任务失败时的错误信息。', - 'type' => 'string', - 'example' => 'OperationTimeout', - ], - 'Process' => [ - 'description' => '任务执行进度。单位为百分比。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '100', - ], + 'Response' => ['description' => '任务成功后返回的响应信息。', 'type' => 'string', 'example' => 'success'], + 'Error' => ['description' => '任务失败时的错误信息。', 'type' => 'string', 'example' => 'OperationTimeout'], + 'Progress' => ['description' => '任务执行进度。单位百分比。', 'type' => 'integer', 'format' => 'int32', 'example' => '100'], ], ], ], @@ -7633,130 +4738,109 @@ ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'Cluster.ClusterManagedCertRotate.NotSupport', - 'errorMessage' => 'rotate cluster managed cert not support', - ], + ['errorCode' => 'SwitchMaster.InstanceInvalid', 'errorMessage' => 'Instance not in the cluster.', 'description' => ''], + ['errorCode' => 'LeaveCluster.MasterLast', 'errorMessage' => 'Master instance can not leave a cluster until all other instances are left.', 'description' => ''], + ['errorCode' => 'Certificate.ChainInvalid', 'errorMessage' => 'Certificate chain invalid. Please make sure issuer certificate is the trust anchor and cluster certificate is signed by issuer certificate.', 'description' => ''], + ['errorCode' => 'Certificate.FormatInvalid', 'errorMessage' => 'Certificate format invalid. Cluster/Issuer certificate must be in PEM format.', 'description' => ''], + ['errorCode' => 'ConfigClusterSubnet.DuplicateZone', 'errorMessage' => 'VSwitches should not contain duplicate zones.', 'description' => ''], + ['errorCode' => 'InvalidApiParam.Error', 'errorMessage' => 'api param is invalid', 'description' => ''], + ['errorCode' => 'InvalidClusterName', 'errorMessage' => 'Invalid parameter clusterName.', 'description' => ''], + ['errorCode' => 'InvalidPageSize', 'errorMessage' => 'Invalid parameter pageSize.', 'description' => ''], + ['errorCode' => 'InvalidCurrentPage', 'errorMessage' => 'Invalid parameter currentPage.', 'description' => ''], + ['errorCode' => 'InvalidRegionId', 'errorMessage' => 'Invalid parameter regionId.', 'description' => ''], + ['errorCode' => 'InvalidVSwitch', 'errorMessage' => 'Invalid parameter vSwitch.', 'description' => ''], + ['errorCode' => 'InvalidVpc', 'errorMessage' => 'Invalid parameter vpcId.', 'description' => ''], + ['errorCode' => 'InvalidIp', 'errorMessage' => 'Invalid parameter IP.', 'description' => ''], + ['errorCode' => 'InvalidAliuid', 'errorMessage' => 'Invalid parameter aliuid.', 'description' => ''], + ['errorCode' => 'InvalidClusterId', 'errorMessage' => 'Invalid parameter clusterId.', 'description' => ''], + ['errorCode' => 'InvalidInstanceId', 'errorMessage' => 'Invalid parameter instanceId.', 'description' => ''], + ['errorCode' => 'InvalidBackupId', 'errorMessage' => 'Invalid parameter backupId.', 'description' => ''], + ['errorCode' => 'InvalidImageId', 'errorMessage' => 'Invalid parameter imageId.', 'description' => ''], + ['errorCode' => 'HsmInstanceNotExist.Error', 'errorMessage' => 'hsm instance not exist', 'description' => ''], + ['errorCode' => 'HSMIntanceNotActived.Error', 'errorMessage' => 'hsm intance is not actived', 'description' => ''], + ['errorCode' => 'WhiteListMaxCount.Error', 'errorMessage' => 'whilte list is more than max count', 'description' => ''], + ['errorCode' => 'ClusterIdIsNotExists.Error', 'errorMessage' => 'cluster ID non-exists', 'description' => ''], + ['errorCode' => 'InstanceListIsEmpty.Error', 'errorMessage' => 'instance list is empty', 'description' => ''], + ['errorCode' => 'InstanceIdIsEmpty.Error', 'errorMessage' => 'instance id is empty', 'description' => ''], + ['errorCode' => 'InstanceIsNotExistsInCluster.Error', 'errorMessage' => 'cluster has no such instance', 'description' => ''], + ['errorCode' => 'InstanceIsExistsInCluster.Error', 'errorMessage' => 'instance already in the cluster', 'description' => ''], + ['errorCode' => 'RegionNoEmpty.Error', 'errorMessage' => 'region no. is empty', 'description' => ''], + ['errorCode' => 'ClusterNameEmpty.Error', 'errorMessage' => 'empty cluster name not allowed', 'description' => ''], + ['errorCode' => 'ClusterNameIsExists.Error', 'errorMessage' => 'the cluster name is already taken', 'description' => ''], + ['errorCode' => 'IpNotValid.Error', 'errorMessage' => 'ip not valid', 'description' => ''], + ['errorCode' => 'ClusterIsEmpty.Error', 'errorMessage' => 'cluster is empty', 'description' => ''], + ['errorCode' => 'NoMasterFoundInCluster.Error', 'errorMessage' => 'cluster has no master instance', 'description' => ''], + ['errorCode' => 'HsmInstanceIdNotFound.Error', 'errorMessage' => 'no such instance', 'description' => ''], + ['errorCode' => 'NoInstanceFoundInCluster.Error', 'errorMessage' => 'cluster is empty', 'description' => ''], + ['errorCode' => 'Whitelist.Invalid', 'errorMessage' => 'Whitelist blocks not in CIDR format.', 'description' => ''], + ['errorCode' => 'Whitelist.TooLong', 'errorMessage' => 'Whitelist too long, exceeds 10 CIDR blocks.', 'description' => ''], ], 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"}]', - 'title' => '轮转集群托管证书', - ], - 'DownloadClusterManagedCert' => [ - 'summary' => '下载集群托管证书。', - 'description' => '仅支持中国站中国地域的证书托管集群调用。', - 'path' => '/', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'https', - ], - 'security' => [ - [ - 'AK' => [], + ['errorCode' => 'NoPermission', 'errorMessage' => 'Caller has no permission on the resource.', 'description' => ''], + ['errorCode' => 'InstanceNotPaused', 'errorMessage' => 'Please pause the instance before reset.', 'description' => ''], + ['errorCode' => 'InstanceNotActive', 'errorMessage' => 'Instance is not active.', 'description' => ''], + ['errorCode' => 'ConfigIp.IncorrectState', 'errorMessage' => 'Instance not in pending or active state, can not config IP address.', 'description' => ''], + ['errorCode' => 'SwitchMaster.IncorrectState', 'errorMessage' => 'Cluster not initialized, please initialize the cluster first.', 'description' => ''], + ['errorCode' => 'SyncCluster.IncorrectState', 'errorMessage' => 'Cluster not initialized, please initialize the cluster first.', 'description' => ''], + ['errorCode' => 'LeaveCluster.InstanceInvalid', 'errorMessage' => 'The instance is not in the cluster.', 'description' => ''], + ['errorCode' => 'DeleteCluster.IncorrectState', 'errorMessage' => 'Cluster not empty, please remove all instances first.', 'description' => ''], + ['errorCode' => 'JoinCluster.InstanceVSwitchNotInCluster', 'errorMessage' => 'Instance\'s vSwitch is not in cluster config, please change instance\'s vSwitch first.', 'description' => ''], + ['errorCode' => 'JoinCluster.InstanceInitialized', 'errorMessage' => 'Initialized instance can not join a cluster.', 'description' => ''], + ['errorCode' => 'JoinCluster.IncorrectState', 'errorMessage' => 'Cluster not initialized, please initialize the cluster first.', 'description' => ''], + ['errorCode' => 'InitializeCluster.InstanceNotInitialized', 'errorMessage' => 'Cluster master instance not initialized, please initialize cluster master instance first.', 'description' => ''], + ['errorCode' => 'InitializeCluster.IncorrectConfig', 'errorMessage' => 'Cluster subnet not configured, please config cluster subnet first.', 'description' => ''], + ['errorCode' => 'InitializeCluster.IncorrectState', 'errorMessage' => 'Cluster initialized, do not re-initialize.', 'description' => ''], + ['errorCode' => 'Cluster.CN.ActionForbidden', 'errorMessage' => 'This API is forbidden for non-international site cluster.', 'description' => ''], + ['errorCode' => 'Cluster.INTL.ActionForbidden', 'errorMessage' => 'This API is forbidden for international site cluster.', 'description' => ''], + ['errorCode' => 'ConfigClusterCertificate.IncorrectState', 'errorMessage' => 'Cluster initialized or certificates already configured.', 'description' => ''], + ['errorCode' => 'ConfigClusterSubnet.InvalidVpcId', 'errorMessage' => 'VPC Id invalid. Cluster VPC is the same as cluster master\'s VPC.', 'description' => ''], + ['errorCode' => 'ConfigClusterSubnet.InvalidVSwitchId', 'errorMessage' => 'VSwitch Id invalid. VSwitches should contain all current cluster vSwitches.', 'description' => ''], + ['errorCode' => 'ConfigClusterSubnet.IncorrectState', 'errorMessage' => 'Cluster not in NEW state, can not config cluster subnet.', 'description' => ''], + ['errorCode' => 'ClusterName.Exist', 'errorMessage' => 'Cluster name already exists, please use another name.', 'description' => ''], + ['errorCode' => 'Whitelist.InstanceInCluster', 'errorMessage' => 'Whitelist.InstanceInCluster', 'description' => ''], + ], + [ + ['errorCode' => 'Resource.NotFound', 'errorMessage' => 'Resource not found.', 'description' => ''], + ], + [ + ['errorCode' => 'ClusterAPI.NotSupported', 'errorMessage' => 'ClusterAPI not supported in this region.', 'description' => ''], ], - ], - 'operationType' => 'read', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'get', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREhsmV7VE3Y', - 'FEATUREhsm01FLNB', + 409 => [ + ['errorCode' => 'Conflict', 'errorMessage' => 'Resource is being updated by a previous request. Current request is redundant.', 'description' => ''], + ['errorCode' => 'Cluster.Conflict', 'errorMessage' => 'The cluster is being updated by a previous request. Please try again later.', 'description' => ''], ], - ], - 'parameters' => [ - [ - 'name' => 'ClusterId', - 'in' => 'query', - 'schema' => [ - 'title' => '**ClusterId**'."\n", - 'description' => '集群ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'cluster-001***hui', - ], + 500 => [ + ['errorCode' => 'ConfigWhitelistFailed.Error', 'errorMessage' => 'config white list error', 'description' => ''], + ['errorCode' => 'ActionFailed.Error', 'errorMessage' => 'internal error, please try again', 'description' => ''], + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to some unknown error.', 'description' => '未知错误导致请求处理失败。'], ], ], - 'responses' => [ - 200 => [ - 'description' => '成功响应', - 'schema' => [ - 'title' => 'Schema of Response', - 'description' => '返回值。', - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '4C467B38-3910-447D-87BC-AC049166F216', - ], - 'Content' => [ - 'description' => 'base64转码过的zip压缩文件,需要用base64解码得获取zip文件原内容,最后通过zip解压缩获取证书文件。', - 'type' => 'string', - 'example' => 'emhlbmdza****W5qaWFuYmlhbm1hY2VzaGk=', - ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '快速初始化实例', + 'description' => '只有中国内地通用服务器密码机GVSM支持此接口。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], + ], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'yundun-hsm:QuickInitInstance', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DataEncryptionService', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], ], - '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"}]', - 'title' => '下载集群托管证书', + '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"}]', ], - 'ConfigInstanceIpAddress' => [ - 'summary' => '修改实例VPC网络地址。', - 'methods' => [ - 'post', - ], - 'schemes' => [ - 'https', - ], + 'ResetBackup' => [ + 'summary' => '将备份与当前实例解绑。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -7768,816 +4852,65 @@ 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '211785', - 'abilityTreeNodes' => [ - 'FEATUREhsmV7VE3Y', - 'FEATUREhsm01FLNB', - 'FEATUREhsmGIFYCG', - 'FEATUREhsmLBBV5W', - ], + 'abilityTreeNodes' => ['FEATUREhsmQEGDGS'], ], 'parameters' => [ [ - 'name' => 'RegionId', - 'in' => 'formData', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'cn-hangzhou', - ], - ], - [ - 'name' => 'InstanceId', - 'in' => 'formData', - 'schema' => [ - 'description' => '密码机实例ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'hsm-cn-mp90fxef****', - ], - ], - [ - 'name' => 'VpcId', - 'in' => 'formData', - 'schema' => [ - 'description' => '密码机实例所属VPC ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'vpc-lmkmivmo6****', - ], - ], - [ - 'name' => 'VSwitchId', - 'in' => 'formData', - 'schema' => [ - 'description' => '密码机实例所属子网的交换机ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'vsw-u7gb0qahu****', - ], - ], - [ - 'name' => 'Ip', - 'in' => 'formData', - 'schema' => [ - 'description' => '密码机实例所属VPC网络内的IP地址。', - 'type' => 'string', - 'required' => true, - 'example' => '192.168.XX.XX', - ], + 'name' => 'BackupId', + 'in' => 'query', + 'schema' => ['description' => '备份ID。', 'type' => 'string', 'required' => false, 'example' => 'backup-fdb897sdfg5****'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'BaseResult', - 'description' => 'BaseResult', + 'title' => 'Schema of Response', + 'description' => '返回参数结构。', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '本次调用请求的ID,是由阿里云为该请求生成的唯一标识符,可用于排查和定位问题。', - 'type' => 'string', - 'example' => '4C467B38-3910-447D-87BC-AC049166F216', - ], + 'RequestId' => ['title' => 'Id of the request', 'description' => '本次调用请求的ID,是由阿里云为该请求生成的唯一标识符,可用于排查和定位问题。', '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].', - ], + ['errorCode' => 'InvalidApiParam.Error', 'errorMessage' => 'api param is invalid', 'description' => ''], ], 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.', - ], + ['errorCode' => 'NoPermission', 'errorMessage' => 'caller has no permission', 'description' => ''], + ['errorCode' => 'Backup.ActionForbidden', 'errorMessage' => 'This API is forbidden for this backup type.', 'description' => ''], ], 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.', - ], + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to some unknown error.', 'description' => '未知错误导致请求处理失败。'], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"4C467B38-3910-447D-87BC-AC049166F216\\"\\n}","type":"json"}]', - 'title' => '配置实例VPC网络地址', - 'description' => '已加入集群的实例无法修改VPC网络地址。', - ], - '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' => '密码机实例ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'hsm-cn-mp90fxef****', - ], - ], - [ - 'name' => 'ImageId', - 'in' => 'formData', - 'schema' => [ - 'description' => '需要恢复的镜像ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'image-eaOGHkRDQgh4****', - ], - ], - ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'title' => 'PlainResult<OpenApiRestoreInstanceResponse>', - 'description' => 'PlainResult<OpenApiRestoreInstanceResponse>', - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'description' => '本次调用请求的ID,是由阿里云为该请求生成的唯一标识符,可用于排查和定位问题。', - 'type' => 'string', - 'example' => '4C467B38-3910-447D-87BC-AC049366F216', - ], - 'Job' => [ - 'description' => '任务详情。', - 'type' => 'object', - 'properties' => [ - 'JobId' => [ - 'description' => '任务ID。', - 'type' => 'string', - 'example' => 'job-540356379023708160', - ], - 'Type' => [ - 'description' => '操作类型。'."\n" - ."\n" - .'- create:新建任务'."\n" - .'- cancel:取消任务', - 'type' => 'string', - 'example' => 'create', - ], - 'Completed' => [ - 'description' => '任务是否完成。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'CreateTime' => [ - 'description' => '任务创建时间,精确到毫秒。时间戳格式。', - 'type' => 'string', - 'example' => '1711764127000', - ], - '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' => '50', - ], - ], - ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '重置备份', + 'description' => '仅支持中国内地密码机实例调用。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], + ], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'yundun-hsm:ResetBackup', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DataEncryptionService', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], ], - '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' => '恢复实例数据', - 'summary' => '使用镜像恢复实例数据。', - 'description' => '只有已停用或未启用状态的实例才能进行镜像导入。', + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"4C467B38-3910-447D-87BC-AC049166F216\\"\\n}","type":"json"}]', ], 'ResetInstance' => [ - 'methods' => [ - 'post', - ], - 'schemes' => [ - 'https', - ], + 'summary' => '重置实例数据。', + 'methods' => ['post'], + 'schemes' => ['https'], 'security' => [ [ 'AK' => [], @@ -8589,17 +4922,13 @@ 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', + 'abilityTreeNodes' => ['FEATUREhsmV7VE3Y', 'FEATUREhsmGIFYCG', 'FEATUREhsm01FLNB', 'FEATUREhsmLBBV5W'], ], 'parameters' => [ [ 'name' => 'InstanceId', 'in' => 'formData', - 'schema' => [ - 'description' => '密码机实例ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'hsm-cn-vj30bil8****', - ], + 'schema' => ['description' => '密码机实例ID。', 'type' => 'string', 'required' => true, 'example' => 'hsm-cn-vj30bil8****'], ], ], 'responses' => [ @@ -8609,20 +4938,12 @@ 'description' => 'PlainResult<OpenApiResetInstanceResponse>', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '本次调用请求的ID,是由阿里云为该请求生成的唯一标识符,可用于排查和定位问题。', - 'type' => 'string', - 'example' => '4C467B38-3910-447D-87BC-AC049166F216', - ], + 'RequestId' => ['description' => '本次调用请求的ID,是由阿里云为该请求生成的唯一标识符,可用于排查和定位问题。', 'type' => 'string', 'example' => '4C467B38-3910-447D-87BC-AC049166F216'], 'Job' => [ 'description' => '任务详情。', 'type' => 'object', 'properties' => [ - 'JobId' => [ - 'description' => '任务ID。', - 'type' => 'string', - 'example' => 'job-0007bl8oev0u3jqyfu6a', - ], + 'JobId' => ['description' => '任务ID。', 'type' => 'string', 'example' => 'job-0007bl8oev0u3jqyfu6a'], 'Type' => [ 'description' => '操作类型。'."\n" ."\n" @@ -8632,16 +4953,8 @@ 'enumValueTitles' => [], 'example' => 'create', ], - 'Completed' => [ - 'description' => '任务是否完成。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'CreateTime' => [ - 'description' => '任务创建时间,精确到毫秒。时间戳格式。', - 'type' => 'string', - 'example' => '1653274407000', - ], + 'Completed' => ['description' => '任务是否完成。', 'type' => 'boolean', 'example' => 'true'], + 'CreateTime' => ['description' => '任务创建时间,精确到毫秒。时间戳格式。', 'type' => 'string', 'example' => '1653274407000'], 'Status' => [ 'description' => '任务状态。'."\n" ."\n" @@ -8653,22 +4966,9 @@ 'enumValueTitles' => [], 'example' => 'success', ], - 'Response' => [ - 'description' => '任务成功后返回的响应信息。', - 'type' => 'string', - 'example' => 'success', - ], - 'Error' => [ - 'description' => '任务失败时的错误信息。', - 'type' => 'string', - 'example' => 'OperationTimeout', - ], - 'Progress' => [ - 'description' => '任务执行进度。单位为百分比。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '80', - ], + 'Response' => ['description' => '任务成功后返回的响应信息。', 'type' => 'string', 'example' => 'success'], + 'Error' => ['description' => '任务失败时的错误信息。', 'type' => 'string', 'example' => 'OperationTimeout'], + 'Progress' => ['description' => '任务执行进度。单位为百分比。', 'type' => 'integer', 'format' => 'int32', 'example' => '80'], ], ], ], @@ -8677,381 +4977,155 @@ ], '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.', - ], + ['errorCode' => 'SwitchMaster.InstanceInvalid', 'errorMessage' => 'Instance not in the cluster.', 'description' => ''], + ['errorCode' => 'LeaveCluster.MasterLast', 'errorMessage' => 'Master instance can not leave a cluster until all other instances are left.', 'description' => ''], + ['errorCode' => 'Certificate.ChainInvalid', 'errorMessage' => 'Certificate chain invalid. Please make sure issuer certificate is the trust anchor and cluster certificate is signed by issuer certificate.', 'description' => ''], + ['errorCode' => 'Certificate.FormatInvalid', 'errorMessage' => 'Certificate format invalid. Cluster/Issuer certificate must be in PEM format.', 'description' => ''], + ['errorCode' => 'ConfigClusterSubnet.DuplicateZone', 'errorMessage' => 'VSwitches should not contain duplicate zones.', 'description' => ''], + ['errorCode' => 'InvalidApiParam.Error', 'errorMessage' => 'api param is invalid', 'description' => ''], + ['errorCode' => 'InvalidClusterName', 'errorMessage' => 'Invalid parameter clusterName.', 'description' => ''], + ['errorCode' => 'InvalidPageSize', 'errorMessage' => 'Invalid parameter pageSize.', 'description' => ''], + ['errorCode' => 'InvalidCurrentPage', 'errorMessage' => 'Invalid parameter currentPage.', 'description' => ''], + ['errorCode' => 'InvalidRegionId', 'errorMessage' => 'Invalid parameter regionId.', 'description' => ''], + ['errorCode' => 'InvalidVSwitch', 'errorMessage' => 'Invalid parameter vSwitch.', 'description' => ''], + ['errorCode' => 'InvalidVpc', 'errorMessage' => 'Invalid parameter vpcId.', 'description' => ''], + ['errorCode' => 'InvalidIp', 'errorMessage' => 'Invalid parameter IP.', 'description' => ''], + ['errorCode' => 'InvalidAliuid', 'errorMessage' => 'Invalid parameter aliuid.', 'description' => ''], + ['errorCode' => 'InvalidClusterId', 'errorMessage' => 'Invalid parameter clusterId.', 'description' => ''], + ['errorCode' => 'InvalidInstanceId', 'errorMessage' => 'Invalid parameter instanceId.', 'description' => ''], + ['errorCode' => 'InvalidBackupId', 'errorMessage' => 'Invalid parameter backupId.', 'description' => ''], + ['errorCode' => 'InvalidImageId', 'errorMessage' => 'Invalid parameter imageId.', 'description' => ''], + ['errorCode' => 'HsmInstanceNotExist.Error', 'errorMessage' => 'hsm instance not exist', 'description' => ''], + ['errorCode' => 'HSMIntanceNotActived.Error', 'errorMessage' => 'hsm intance is not actived', 'description' => ''], + ['errorCode' => 'WhiteListMaxCount.Error', 'errorMessage' => 'whilte list is more than max count', 'description' => ''], + ['errorCode' => 'ClusterIdIsNotExists.Error', 'errorMessage' => 'cluster ID non-exists', 'description' => ''], + ['errorCode' => 'InstanceListIsEmpty.Error', 'errorMessage' => 'instance list is empty', 'description' => ''], + ['errorCode' => 'InstanceIdIsEmpty.Error', 'errorMessage' => 'instance id is empty', 'description' => ''], + ['errorCode' => 'InstanceIsNotExistsInCluster.Error', 'errorMessage' => 'cluster has no such instance', 'description' => ''], + ['errorCode' => 'InstanceIsExistsInCluster.Error', 'errorMessage' => 'instance already in the cluster', 'description' => ''], + ['errorCode' => 'RegionNoEmpty.Error', 'errorMessage' => 'region no. is empty', 'description' => ''], + ['errorCode' => 'ClusterNameEmpty.Error', 'errorMessage' => 'empty cluster name not allowed', 'description' => ''], + ['errorCode' => 'ClusterNameIsExists.Error', 'errorMessage' => 'the cluster name is already taken', 'description' => ''], + ['errorCode' => 'IpNotValid.Error', 'errorMessage' => 'ip not valid', 'description' => ''], + ['errorCode' => 'ClusterIsEmpty.Error', 'errorMessage' => 'cluster is empty', 'description' => ''], + ['errorCode' => 'NoMasterFoundInCluster.Error', 'errorMessage' => 'cluster has no master instance', 'description' => ''], + ['errorCode' => 'HsmInstanceIdNotFound.Error', 'errorMessage' => 'no such instance', 'description' => ''], + ['errorCode' => 'NoInstanceFoundInCluster.Error', 'errorMessage' => 'cluster is empty', 'description' => ''], + ['errorCode' => 'Whitelist.Invalid', 'errorMessage' => 'Whitelist blocks not in CIDR format.', 'description' => ''], + ['errorCode' => 'Whitelist.TooLong', 'errorMessage' => 'Whitelist too long, exceeds 10 CIDR blocks.', 'description' => ''], ], 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.', - ], + ['errorCode' => 'NoPermission', 'errorMessage' => 'Caller has no permission on the resource.', 'description' => ''], + ['errorCode' => 'InstanceNotPaused', 'errorMessage' => 'Please pause the instance before reset.', 'description' => ''], + ['errorCode' => 'InstanceNotActive', 'errorMessage' => 'Instance is not active.', 'description' => ''], + ['errorCode' => 'ConfigIp.IncorrectState', 'errorMessage' => 'Instance not in pending or active state, can not config IP address.', 'description' => ''], + ['errorCode' => 'SwitchMaster.IncorrectState', 'errorMessage' => 'Cluster not initialized, please initialize the cluster first.', 'description' => ''], + ['errorCode' => 'SyncCluster.IncorrectState', 'errorMessage' => 'Cluster not initialized, please initialize the cluster first.', 'description' => ''], + ['errorCode' => 'LeaveCluster.InstanceInvalid', 'errorMessage' => 'The instance is not in the cluster.', 'description' => ''], + ['errorCode' => 'DeleteCluster.IncorrectState', 'errorMessage' => 'Cluster not empty, please remove all instances first.', 'description' => ''], + ['errorCode' => 'JoinCluster.InstanceVSwitchNotInCluster', 'errorMessage' => 'Instance\'s vSwitch is not in cluster config, please change instance\'s vSwitch first.', 'description' => ''], + ['errorCode' => 'JoinCluster.InstanceInitialized', 'errorMessage' => 'Initialized instance can not join a cluster.', 'description' => ''], + ['errorCode' => 'JoinCluster.IncorrectState', 'errorMessage' => 'Cluster not initialized, please initialize the cluster first.', 'description' => ''], + ['errorCode' => 'InitializeCluster.InstanceNotInitialized', 'errorMessage' => 'Cluster master instance not initialized, please initialize cluster master instance first.', 'description' => ''], + ['errorCode' => 'InitializeCluster.IncorrectConfig', 'errorMessage' => 'Cluster subnet not configured, please config cluster subnet first.', 'description' => ''], + ['errorCode' => 'InitializeCluster.IncorrectState', 'errorMessage' => 'Cluster initialized, do not re-initialize.', 'description' => ''], + ['errorCode' => 'Cluster.CN.ActionForbidden', 'errorMessage' => 'This API is forbidden for non-international site cluster.', 'description' => ''], + ['errorCode' => 'Cluster.INTL.ActionForbidden', 'errorMessage' => 'This API is forbidden for international site cluster.', 'description' => ''], + ['errorCode' => 'ConfigClusterCertificate.IncorrectState', 'errorMessage' => 'Cluster initialized or certificates already configured.', 'description' => ''], + ['errorCode' => 'ConfigClusterSubnet.InvalidVpcId', 'errorMessage' => 'VPC Id invalid. Cluster VPC is the same as cluster master\'s VPC.', 'description' => ''], + ['errorCode' => 'ConfigClusterSubnet.InvalidVSwitchId', 'errorMessage' => 'VSwitch Id invalid. VSwitches should contain all current cluster vSwitches.', 'description' => ''], + ['errorCode' => 'ConfigClusterSubnet.IncorrectState', 'errorMessage' => 'Cluster not in NEW state, can not config cluster subnet.', 'description' => ''], + ['errorCode' => 'ClusterName.Exist', 'errorMessage' => 'Cluster name already exists, please use another name.', 'description' => ''], + ['errorCode' => 'Whitelist.InstanceInCluster', 'errorMessage' => 'Whitelist.InstanceInCluster', 'description' => ''], + ], + [ + ['errorCode' => 'Resource.NotFound', 'errorMessage' => 'Resource not found.', 'description' => ''], + ], + [ + ['errorCode' => 'ClusterAPI.NotSupported', 'errorMessage' => 'ClusterAPI not supported in this region.', 'description' => ''], ], 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.', - ], + ['errorCode' => 'Conflict', 'errorMessage' => 'Resource is being updated by a previous request. Current request is redundant.', 'description' => ''], + ['errorCode' => 'Cluster.Conflict', 'errorMessage' => 'The cluster is being updated by a previous request. Please try again later.', 'description' => ''], ], 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.', - ], + ['errorCode' => 'ConfigWhitelistFailed.Error', 'errorMessage' => 'config white list error', 'description' => ''], + ['errorCode' => 'ActionFailed.Error', 'errorMessage' => 'internal error, please try again', 'description' => ''], + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to some unknown error.', 'description' => '未知错误导致请求处理失败。'], ], ], - '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' => '重置实例', - 'summary' => '重置实例数据。', 'description' => '实例被重置后,相关数据全部丢失且永久不可恢复,请谨慎调用该操作。', - ], - 'QuickInitInstance' => [ - 'methods' => [ - 'post', - ], - 'schemes' => [ - 'https', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], + ], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'yundun-hsm:ResetInstance', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DataEncryptionService', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + '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"}]', + ], + 'RestoreInstance' => [ + 'methods' => ['post'], + 'schemes' => ['https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', + 'operationType' => 'readAndWrite', 'deprecated' => false, 'systemTags' => [ 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', + 'abilityTreeNodes' => ['FEATUREhsmV7VE3Y', 'FEATUREhsmGIFYCG', 'FEATUREhsm01FLNB', 'FEATUREhsmLBBV5W'], ], 'parameters' => [ [ 'name' => 'InstanceId', 'in' => 'formData', - 'schema' => [ - 'description' => '密码机实例ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'hsm-cn-mp90fxef****', - ], + 'schema' => ['description' => '密码机实例ID。', 'type' => 'string', 'required' => true, 'example' => 'hsm-cn-mp90fxef****'], + ], + [ + 'name' => 'ImageId', + 'in' => 'formData', + 'schema' => ['description' => '需要恢复的镜像ID。', 'type' => 'string', 'required' => true, 'example' => 'image-eaOGHkRDQgh4****'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'PlainResult<OpenApiQuickInitInstanceResponse>', - 'description' => 'PlainResult<OpenApiQuickInitInstanceResponse>', + 'title' => 'PlainResult<OpenApiRestoreInstanceResponse>', + 'description' => 'PlainResult<OpenApiRestoreInstanceResponse>', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '本次调用请求的ID,是由阿里云为该请求生成的唯一标识符,可用于排查和定位问题。', - 'type' => 'string', - 'example' => '4C467B38-3910-447D-87BC-AC049366F216', - ], + 'RequestId' => ['description' => '本次调用请求的ID,是由阿里云为该请求生成的唯一标识符,可用于排查和定位问题。', 'type' => 'string', 'example' => '4C467B38-3910-447D-87BC-AC049366F216'], 'Job' => [ 'description' => '任务详情。', 'type' => 'object', 'properties' => [ - 'JobId' => [ - 'description' => '任务ID。', - 'type' => 'string', - 'example' => 'job-000fi9k1v2hclo321sal', - ], - 'Type' => [ - 'description' => '操作类型。'."\n" - ."\n" - .'- create:创建任务'."\n" - .'- cancel:取消任务', - 'type' => 'string', - 'enumValueTitles' => [], - 'example' => 'create', - ], - 'Completed' => [ - 'description' => '任务是否完成。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'CreateTime' => [ - 'description' => '任务创建时间,精确到毫秒。时间戳格式。', - 'type' => 'string', - 'example' => '1699515963000', - ], - 'Status' => [ - 'description' => '任务状态。'."\n" - ."\n" - .'- success:任务成功'."\n" - .'- running:任务执行中'."\n" - .'- cancel:任务取消'."\n" - .'- fail:任务失败', - 'type' => 'string', - 'enumValueTitles' => [], - 'example' => 'success', - ], - 'Response' => [ - 'description' => '任务成功后返回的响应信息。', - 'type' => 'string', - 'example' => 'success', - ], - 'Error' => [ - 'description' => '任务失败时的错误信息。', - 'type' => 'string', - 'example' => 'OperationTimeout', - ], - 'Progress' => [ - 'description' => '任务执行进度。单位百分比。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '100', - ], + 'JobId' => ['description' => '任务ID。', 'type' => 'string', 'example' => 'job-540356379023708160'], + 'Type' => ['description' => '操作类型。'."\n" + ."\n" + .'- create:新建任务'."\n" + .'- cancel:取消任务', 'type' => 'string', 'example' => 'create'], + 'Completed' => ['description' => '任务是否完成。', 'type' => 'boolean', 'example' => 'true'], + 'CreateTime' => ['description' => '任务创建时间,精确到毫秒。时间戳格式。', 'type' => 'string', 'example' => '1711764127000'], + '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' => '50'], ], ], ], @@ -9060,294 +5134,109 @@ ], '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.', - ], + ['errorCode' => 'SwitchMaster.InstanceInvalid', 'errorMessage' => 'Instance not in the cluster.', 'description' => ''], + ['errorCode' => 'LeaveCluster.MasterLast', 'errorMessage' => 'Master instance can not leave a cluster until all other instances are left.', 'description' => ''], + ['errorCode' => 'Certificate.ChainInvalid', 'errorMessage' => 'Certificate chain invalid. Please make sure issuer certificate is the trust anchor and cluster certificate is signed by issuer certificate.', 'description' => ''], + ['errorCode' => 'Certificate.FormatInvalid', 'errorMessage' => 'Certificate format invalid. Cluster/Issuer certificate must be in PEM format.', 'description' => ''], + ['errorCode' => 'ConfigClusterSubnet.DuplicateZone', 'errorMessage' => 'VSwitches should not contain duplicate zones.', 'description' => ''], + ['errorCode' => 'InvalidApiParam.Error', 'errorMessage' => 'api param is invalid', 'description' => ''], + ['errorCode' => 'InvalidClusterName', 'errorMessage' => 'Invalid parameter clusterName.', 'description' => ''], + ['errorCode' => 'InvalidPageSize', 'errorMessage' => 'Invalid parameter pageSize.', 'description' => ''], + ['errorCode' => 'InvalidCurrentPage', 'errorMessage' => 'Invalid parameter currentPage.', 'description' => ''], + ['errorCode' => 'InvalidRegionId', 'errorMessage' => 'Invalid parameter regionId.', 'description' => ''], + ['errorCode' => 'InvalidVSwitch', 'errorMessage' => 'Invalid parameter vSwitch.', 'description' => ''], + ['errorCode' => 'InvalidVpc', 'errorMessage' => 'Invalid parameter vpcId.', 'description' => ''], + ['errorCode' => 'InvalidIp', 'errorMessage' => 'Invalid parameter IP.', 'description' => ''], + ['errorCode' => 'InvalidAliuid', 'errorMessage' => 'Invalid parameter aliuid.', 'description' => ''], + ['errorCode' => 'InvalidClusterId', 'errorMessage' => 'Invalid parameter clusterId.', 'description' => ''], + ['errorCode' => 'InvalidInstanceId', 'errorMessage' => 'Invalid parameter instanceId.', 'description' => ''], + ['errorCode' => 'InvalidBackupId', 'errorMessage' => 'Invalid parameter backupId.', 'description' => ''], + ['errorCode' => 'InvalidImageId', 'errorMessage' => 'Invalid parameter imageId.', 'description' => ''], + ['errorCode' => 'HsmInstanceNotExist.Error', 'errorMessage' => 'hsm instance not exist', 'description' => ''], + ['errorCode' => 'HSMIntanceNotActived.Error', 'errorMessage' => 'hsm intance is not actived', 'description' => ''], + ['errorCode' => 'WhiteListMaxCount.Error', 'errorMessage' => 'whilte list is more than max count', 'description' => ''], + ['errorCode' => 'ClusterIdIsNotExists.Error', 'errorMessage' => 'cluster ID non-exists', 'description' => ''], + ['errorCode' => 'InstanceListIsEmpty.Error', 'errorMessage' => 'instance list is empty', 'description' => ''], + ['errorCode' => 'InstanceIdIsEmpty.Error', 'errorMessage' => 'instance id is empty', 'description' => ''], + ['errorCode' => 'InstanceIsNotExistsInCluster.Error', 'errorMessage' => 'cluster has no such instance', 'description' => ''], + ['errorCode' => 'InstanceIsExistsInCluster.Error', 'errorMessage' => 'instance already in the cluster', 'description' => ''], + ['errorCode' => 'RegionNoEmpty.Error', 'errorMessage' => 'region no. is empty', 'description' => ''], + ['errorCode' => 'ClusterNameEmpty.Error', 'errorMessage' => 'empty cluster name not allowed', 'description' => ''], + ['errorCode' => 'ClusterNameIsExists.Error', 'errorMessage' => 'the cluster name is already taken', 'description' => ''], + ['errorCode' => 'IpNotValid.Error', 'errorMessage' => 'ip not valid', 'description' => ''], + ['errorCode' => 'ClusterIsEmpty.Error', 'errorMessage' => 'cluster is empty', 'description' => ''], + ['errorCode' => 'NoMasterFoundInCluster.Error', 'errorMessage' => 'cluster has no master instance', 'description' => ''], + ['errorCode' => 'HsmInstanceIdNotFound.Error', 'errorMessage' => 'no such instance', 'description' => ''], + ['errorCode' => 'NoInstanceFoundInCluster.Error', 'errorMessage' => 'cluster is empty', 'description' => ''], + ['errorCode' => 'Whitelist.Invalid', 'errorMessage' => 'Whitelist blocks not in CIDR format.', 'description' => ''], + ['errorCode' => 'Whitelist.TooLong', 'errorMessage' => 'Whitelist too long, exceeds 10 CIDR blocks.', 'description' => ''], ], 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.', - ], + ['errorCode' => 'NoPermission', 'errorMessage' => 'Caller has no permission on the resource.', 'description' => ''], + ['errorCode' => 'InstanceNotPaused', 'errorMessage' => 'Please pause the instance before reset.', 'description' => ''], + ['errorCode' => 'InstanceNotActive', 'errorMessage' => 'Instance is not active.', 'description' => ''], + ['errorCode' => 'ConfigIp.IncorrectState', 'errorMessage' => 'Instance not in pending or active state, can not config IP address.', 'description' => ''], + ['errorCode' => 'SwitchMaster.IncorrectState', 'errorMessage' => 'Cluster not initialized, please initialize the cluster first.', 'description' => ''], + ['errorCode' => 'SyncCluster.IncorrectState', 'errorMessage' => 'Cluster not initialized, please initialize the cluster first.', 'description' => ''], + ['errorCode' => 'LeaveCluster.InstanceInvalid', 'errorMessage' => 'The instance is not in the cluster.', 'description' => ''], + ['errorCode' => 'DeleteCluster.IncorrectState', 'errorMessage' => 'Cluster not empty, please remove all instances first.', 'description' => ''], + ['errorCode' => 'JoinCluster.InstanceVSwitchNotInCluster', 'errorMessage' => 'Instance\'s vSwitch is not in cluster config, please change instance\'s vSwitch first.', 'description' => ''], + ['errorCode' => 'JoinCluster.InstanceInitialized', 'errorMessage' => 'Initialized instance can not join a cluster.', 'description' => ''], + ['errorCode' => 'JoinCluster.IncorrectState', 'errorMessage' => 'Cluster not initialized, please initialize the cluster first.', 'description' => ''], + ['errorCode' => 'InitializeCluster.InstanceNotInitialized', 'errorMessage' => 'Cluster master instance not initialized, please initialize cluster master instance first.', 'description' => ''], + ['errorCode' => 'InitializeCluster.IncorrectConfig', 'errorMessage' => 'Cluster subnet not configured, please config cluster subnet first.', 'description' => ''], + ['errorCode' => 'InitializeCluster.IncorrectState', 'errorMessage' => 'Cluster initialized, do not re-initialize.', 'description' => ''], + ['errorCode' => 'Cluster.CN.ActionForbidden', 'errorMessage' => 'This API is forbidden for non-international site cluster.', 'description' => ''], + ['errorCode' => 'Cluster.INTL.ActionForbidden', 'errorMessage' => 'This API is forbidden for international site cluster.', 'description' => ''], + ['errorCode' => 'ConfigClusterCertificate.IncorrectState', 'errorMessage' => 'Cluster initialized or certificates already configured.', 'description' => ''], + ['errorCode' => 'ConfigClusterSubnet.InvalidVpcId', 'errorMessage' => 'VPC Id invalid. Cluster VPC is the same as cluster master\'s VPC.', 'description' => ''], + ['errorCode' => 'ConfigClusterSubnet.InvalidVSwitchId', 'errorMessage' => 'VSwitch Id invalid. VSwitches should contain all current cluster vSwitches.', 'description' => ''], + ['errorCode' => 'ConfigClusterSubnet.IncorrectState', 'errorMessage' => 'Cluster not in NEW state, can not config cluster subnet.', 'description' => ''], + ['errorCode' => 'ClusterName.Exist', 'errorMessage' => 'Cluster name already exists, please use another name.', 'description' => ''], + ['errorCode' => 'Whitelist.InstanceInCluster', 'errorMessage' => 'Whitelist.InstanceInCluster', 'description' => ''], + ], + [ + ['errorCode' => 'Resource.NotFound', 'errorMessage' => 'Resource not found.', 'description' => ''], + ], + [ + ['errorCode' => 'ClusterAPI.NotSupported', 'errorMessage' => 'ClusterAPI not supported in this region.', 'description' => ''], ], 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.', - ], + ['errorCode' => 'Conflict', 'errorMessage' => 'Resource is being updated by a previous request. Current request is redundant.', 'description' => ''], + ['errorCode' => 'Cluster.Conflict', 'errorMessage' => 'The cluster is being updated by a previous request. Please try again later.', 'description' => ''], ], 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.', - ], + ['errorCode' => 'ConfigWhitelistFailed.Error', 'errorMessage' => 'config white list error', 'description' => ''], + ['errorCode' => 'ActionFailed.Error', 'errorMessage' => 'internal error, please try again', 'description' => ''], + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to some unknown error.', 'description' => '未知错误导致请求处理失败。'], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'title' => '恢复实例数据', + 'summary' => '使用镜像恢复实例数据。', + 'description' => '只有已停用或未启用状态的实例才能进行镜像导入。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], + ], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'yundun-hsm:RestoreInstance', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DataEncryptionService', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], - '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' => '快速初始化实例', - 'summary' => '快速初始化实例。', - 'description' => '只有中国内地通用服务器密码机GVSM支持此接口。', + '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"}]', ], - 'ConfigInstanceWhitelist' => [ - 'summary' => '修改实例白名单。', - 'methods' => [ - 'post', - ], - 'schemes' => [ - 'https', - ], + 'ResumeInstance' => [ + 'summary' => '恢复停用的实例。', + 'methods' => ['post'], + 'schemes' => ['https'], 'security' => [ [ 'AK' => [], @@ -9359,27 +5248,13 @@ 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', + 'abilityTreeNodes' => ['FEATUREhsmV7VE3Y', 'FEATUREhsm01FLNB', 'FEATUREhsmGIFYCG', 'FEATUREhsmLBBV5W'], ], 'parameters' => [ [ 'name' => 'InstanceId', 'in' => 'formData', - 'schema' => [ - 'description' => '密码机实例ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'hsm-cn-vj30bil8****', - ], - ], - [ - 'name' => 'Whitelist', - 'in' => 'formData', - 'schema' => [ - 'description' => '要配置的白名单IP列表,多个IP之间用空格或半角逗号分隔。', - 'type' => 'string', - 'required' => true, - 'example' => '18.68.XX.XX,18.68.XX.XX', - ], + 'schema' => ['description' => '密码机实例ID。', 'type' => 'string', 'required' => true, 'example' => 'hsm-cn-vj30bil8****'], ], ], 'responses' => [ @@ -9389,338 +5264,172 @@ 'description' => 'BaseResult', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '本次调用请求的ID,是由阿里云为该请求生成的唯一标识符,可用于排查和定位问题。', - 'type' => 'string', - 'example' => '4C467B38-3910-447D-87BC-AC049166F216', - ], + 'RequestId' => ['description' => '本次调用请求的ID,是由阿里云为该请求生成的唯一标识符,可用于排查和定位问题。', '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.', - ], + ['errorCode' => 'SwitchMaster.InstanceInvalid', 'errorMessage' => 'Instance not in the cluster.', 'description' => ''], + ['errorCode' => 'LeaveCluster.MasterLast', 'errorMessage' => 'Master instance can not leave a cluster until all other instances are left.', 'description' => ''], + ['errorCode' => 'Certificate.ChainInvalid', 'errorMessage' => 'Certificate chain invalid. Please make sure issuer certificate is the trust anchor and cluster certificate is signed by issuer certificate.', 'description' => ''], + ['errorCode' => 'Certificate.FormatInvalid', 'errorMessage' => 'Certificate format invalid. Cluster/Issuer certificate must be in PEM format.', 'description' => ''], + ['errorCode' => 'ConfigClusterSubnet.DuplicateZone', 'errorMessage' => 'VSwitches should not contain duplicate zones.', 'description' => ''], + ['errorCode' => 'InvalidApiParam.Error', 'errorMessage' => 'api param is invalid', 'description' => ''], + ['errorCode' => 'InvalidClusterName', 'errorMessage' => 'Invalid parameter clusterName.', 'description' => ''], + ['errorCode' => 'InvalidPageSize', 'errorMessage' => 'Invalid parameter pageSize.', 'description' => ''], + ['errorCode' => 'InvalidCurrentPage', 'errorMessage' => 'Invalid parameter currentPage.', 'description' => ''], + ['errorCode' => 'InvalidRegionId', 'errorMessage' => 'Invalid parameter regionId.', 'description' => ''], + ['errorCode' => 'InvalidVSwitch', 'errorMessage' => 'Invalid parameter vSwitch.', 'description' => ''], + ['errorCode' => 'InvalidVpc', 'errorMessage' => 'Invalid parameter vpcId.', 'description' => ''], + ['errorCode' => 'InvalidIp', 'errorMessage' => 'Invalid parameter IP.', 'description' => ''], + ['errorCode' => 'InvalidAliuid', 'errorMessage' => 'Invalid parameter aliuid.', 'description' => ''], + ['errorCode' => 'InvalidClusterId', 'errorMessage' => 'Invalid parameter clusterId.', 'description' => ''], + ['errorCode' => 'InvalidInstanceId', 'errorMessage' => 'Invalid parameter instanceId.', 'description' => ''], + ['errorCode' => 'InvalidBackupId', 'errorMessage' => 'Invalid parameter backupId.', 'description' => ''], + ['errorCode' => 'InvalidImageId', 'errorMessage' => 'Invalid parameter imageId.', 'description' => ''], + ['errorCode' => 'HsmInstanceNotExist.Error', 'errorMessage' => 'hsm instance not exist', 'description' => ''], + ['errorCode' => 'HSMIntanceNotActived.Error', 'errorMessage' => 'hsm intance is not actived', 'description' => ''], + ['errorCode' => 'WhiteListMaxCount.Error', 'errorMessage' => 'whilte list is more than max count', 'description' => ''], + ['errorCode' => 'ClusterIdIsNotExists.Error', 'errorMessage' => 'cluster ID non-exists', 'description' => ''], + ['errorCode' => 'InstanceListIsEmpty.Error', 'errorMessage' => 'instance list is empty', 'description' => ''], + ['errorCode' => 'InstanceIdIsEmpty.Error', 'errorMessage' => 'instance id is empty', 'description' => ''], + ['errorCode' => 'InstanceIsNotExistsInCluster.Error', 'errorMessage' => 'cluster has no such instance', 'description' => ''], + ['errorCode' => 'InstanceIsExistsInCluster.Error', 'errorMessage' => 'instance already in the cluster', 'description' => ''], + ['errorCode' => 'RegionNoEmpty.Error', 'errorMessage' => 'region no. is empty', 'description' => ''], + ['errorCode' => 'ClusterNameEmpty.Error', 'errorMessage' => 'empty cluster name not allowed', 'description' => ''], + ['errorCode' => 'ClusterNameIsExists.Error', 'errorMessage' => 'the cluster name is already taken', 'description' => ''], + ['errorCode' => 'IpNotValid.Error', 'errorMessage' => 'ip not valid', 'description' => ''], + ['errorCode' => 'ClusterIsEmpty.Error', 'errorMessage' => 'cluster is empty', 'description' => ''], + ['errorCode' => 'NoMasterFoundInCluster.Error', 'errorMessage' => 'cluster has no master instance', 'description' => ''], + ['errorCode' => 'HsmInstanceIdNotFound.Error', 'errorMessage' => 'no such instance', 'description' => ''], + ['errorCode' => 'NoInstanceFoundInCluster.Error', 'errorMessage' => 'cluster is empty', 'description' => ''], + ['errorCode' => 'Whitelist.Invalid', 'errorMessage' => 'Whitelist blocks not in CIDR format.', 'description' => ''], + ['errorCode' => 'Whitelist.TooLong', 'errorMessage' => 'Whitelist too long, exceeds 10 CIDR blocks.', 'description' => ''], ], 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' => 'NoPermission', 'errorMessage' => 'Caller has no permission on the resource.', 'description' => ''], + ['errorCode' => 'InstanceNotPaused', 'errorMessage' => 'Please pause the instance before reset.', 'description' => ''], ], [ - [ - 'errorCode' => 'Resource.NotFound', - 'errorMessage' => 'Resource not found.', - ], + ['errorCode' => 'Resource.NotFound', 'errorMessage' => 'Resource not found.', 'description' => ''], ], [ - [ - 'errorCode' => 'ClusterAPI.NotSupported', - 'errorMessage' => 'ClusterAPI not supported in this region.', - ], + ['errorCode' => 'ClusterAPI.NotSupported', 'errorMessage' => 'ClusterAPI not supported in this region.', 'description' => ''], ], 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.', - ], + ['errorCode' => 'SwitchMaster.IncorrectState', 'errorMessage' => 'Cluster not initialized, please initialize the cluster first.', 'description' => ''], + ['errorCode' => 'Cluster.Conflict', 'errorMessage' => 'The cluster is being updated by a previous request. Please try again later.', 'description' => ''], + ['errorCode' => 'SyncCluster.IncorrectState', 'errorMessage' => 'Cluster not initialized, please initialize the cluster first.', 'description' => ''], + ['errorCode' => 'LeaveCluster.InstanceInvalid', 'errorMessage' => 'The instance is not in the cluster.', 'description' => ''], + ['errorCode' => 'DeleteCluster.IncorrectState', 'errorMessage' => 'Cluster not empty, please remove all instances first.', 'description' => ''], + ['errorCode' => 'JoinCluster.InstanceVSwitchNotInCluster', 'errorMessage' => 'Instance\'s vSwitch is not in cluster config, please change instance\'s vSwitch first.', 'description' => ''], + ['errorCode' => 'JoinCluster.InstanceInitialized', 'errorMessage' => 'Initialized instance can not join a cluster.', 'description' => ''], + ['errorCode' => 'JoinCluster.IncorrectState', 'errorMessage' => 'Cluster not initialized, please initialize the cluster first.', 'description' => ''], + ['errorCode' => 'InitializeCluster.InstanceNotInitialized', 'errorMessage' => 'Cluster master instance not initialized, please initialize cluster master instance first.', 'description' => ''], + ['errorCode' => 'InitializeCluster.IncorrectConfig', 'errorMessage' => 'Cluster subnet not configured, please config cluster subnet first.', 'description' => ''], + ['errorCode' => 'InitializeCluster.IncorrectState', 'errorMessage' => 'Cluster initialized, do not re-initialize.', 'description' => ''], + ['errorCode' => 'Cluster.CN.ActionForbidden', 'errorMessage' => 'This API is forbidden for non-international site cluster.', 'description' => ''], + ['errorCode' => 'Cluster.INTL.ActionForbidden', 'errorMessage' => 'This API is forbidden for international site cluster.', 'description' => ''], + ['errorCode' => 'ConfigClusterCertificate.IncorrectState', 'errorMessage' => 'Cluster initialized or certificates already configured.', 'description' => ''], + ['errorCode' => 'ConfigClusterSubnet.InvalidVpcId', 'errorMessage' => 'VPC Id invalid. Cluster VPC is the same as cluster master\'s VPC.', 'description' => ''], + ['errorCode' => 'ConfigClusterSubnet.InvalidVSwitchId', 'errorMessage' => 'VSwitch Id invalid. VSwitches should contain all current cluster vSwitches.', 'description' => ''], + ['errorCode' => 'ConfigClusterSubnet.IncorrectState', 'errorMessage' => 'Cluster not in NEW state, can not config cluster subnet.', 'description' => ''], + ['errorCode' => 'ClusterName.Exist', 'errorMessage' => 'Cluster name already exists, please use another name.', 'description' => ''], + ['errorCode' => 'Conflict', 'errorMessage' => 'Resource is being updated by a previous request. Current request is redundant.', 'description' => ''], + ['errorCode' => 'ConfigIp.IncorrectState', 'errorMessage' => 'Instance not in pending or active state, can not config IP address.', 'description' => ''], ], 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.', - ], + ['errorCode' => 'ConfigWhitelistFailed.Error', 'errorMessage' => 'config white list error', 'description' => ''], + ['errorCode' => 'ActionFailed.Error', 'errorMessage' => 'internal error, please try again', 'description' => ''], + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to some unknown error.', 'description' => '未知错误导致请求处理失败。'], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '恢复实例', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], + ], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'yundun-hsm:ResumeInstance', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DataEncryptionService', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"4C467B38-3910-447D-87BC-AC049166F216\\"\\n}","type":"json"}]', - 'title' => '配置实例白名单', - 'description' => '未加入集群且状态为ACTIVE(已启用)的密码机实例可以配置白名单。', ], - 'ResumeInstance' => [ - 'methods' => [ - 'post', - ], - 'schemes' => [ - 'https', - ], + 'RotateClusterManagedCert' => [ + 'path' => '/', + 'methods' => ['post'], + 'schemes' => ['https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', + 'operationType' => 'readAndWrite', 'deprecated' => false, 'systemTags' => [ 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', + 'abilityTreeNodes' => ['FEATUREhsmV7VE3Y', 'FEATUREhsm01FLNB'], ], 'parameters' => [ [ - 'name' => 'InstanceId', - 'in' => 'formData', - 'schema' => [ - 'description' => '密码机实例ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'hsm-cn-vj30bil8****', - ], + 'name' => 'ClusterId', + 'in' => 'query', + 'schema' => ['title' => '- **参数类型**: string'."\n" + .'- **必填**: 是'."\n" + .'- **后端接收参数**: clusterId'."\n", 'description' => '集群ID。', 'type' => 'string', 'required' => true, 'example' => 'cluster-hfau****gkaud'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'BaseResult', - 'description' => 'BaseResult', + 'title' => 'Schema of Response', + 'description' => '返回值。', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '本次调用请求的ID,是由阿里云为该请求生成的唯一标识符,可用于排查和定位问题。', - 'type' => 'string', - 'example' => '4C467B38-3910-447D-87BC-AC049166F216', + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '4C467B38-3910-447D-87BC-AC049166F216'], + 'Job' => [ + 'description' => '任务详情。', + 'type' => 'object', + 'properties' => [ + 'JobId' => ['description' => '任务ID。', 'type' => 'string', 'example' => 'job-202401250936hze747fd7e0007005'], + 'Type' => ['description' => '任务操作类型。'."\n" + ."\n" + .'- create:创建任务'."\n" + ."\n" + .'- cancel:取消任务', 'type' => 'string', 'example' => 'create'], + 'Completed' => ['description' => '任务是否完成。'."\n" + ."\n" + .'- true:是'."\n" + ."\n" + .'- false:否', 'type' => 'boolean', 'example' => 'true'], + 'CreateTime' => ['description' => '任务创建时间,精确到毫秒。时间戳格式。', 'type' => 'string', 'example' => '1653274407000'], + 'Status' => ['description' => '任务状态。'."\n" + ."\n" + .'- success:任务成功'."\n" + ."\n" + .'- running:任务执行中'."\n" + ."\n" + .'- cancel:任务取消'."\n" + ."\n" + .'- fail:任务失败', 'type' => 'string', 'example' => 'running'], + 'Response' => ['description' => '任务成功后返回的响应信息。', 'type' => 'string', 'example' => 'success'], + 'Error' => ['description' => '任务失败时的错误信息。', 'type' => 'string', 'example' => 'OperationTimeout'], + 'Process' => ['description' => '任务执行进度。单位为百分比。', 'type' => 'integer', 'format' => 'int32', 'example' => '100'], + ], ], ], ], @@ -9728,855 +5437,239 @@ ], '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.', - ], + ['errorCode' => 'Cluster.ClusterManagedCertRotate.NotSupport', 'errorMessage' => 'rotate cluster managed cert not support', 'description' => ''], ], 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.', - ], + ['errorCode' => 'NoPermission', 'errorMessage' => 'caller has no permission', 'description' => ''], ], 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.', - ], + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to some unknown error.', 'description' => '未知错误导致请求处理失败。'], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '轮转集群托管证书', + 'summary' => '轮转集群托管证书。', + 'description' => '仅支持中国站中国地域的证书托管集群调用。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], + ], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'yundun-hsm:RotateClusterManagedCert', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DataEncryptionService', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"4C467B38-3910-447D-87BC-AC049166F216\\"\\n}","type":"json"}]', - 'title' => '恢复实例', - 'summary' => '恢复停用的实例。', + '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"}]', ], - 'GetInstance' => [ - 'summary' => '查询指定实例信息。', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'https', - ], + 'SwitchClusterMaster' => [ + 'methods' => ['post'], + 'schemes' => ['https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'readAndWrite', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'get', + 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '209071', - 'abilityTreeNodes' => [ - 'FEATUREhsmV7VE3Y', - 'FEATUREhsmUNBCOF', - 'FEATUREhsm01FLNB', - 'FEATUREhsmGIFYCG', - 'FEATUREhsmLBBV5W', - ], + 'abilityTreeNodes' => ['FEATUREhsmV7VE3Y', 'FEATUREhsm01FLNB', 'FEATUREhsmGIFYCG', 'FEATUREhsmLBBV5W'], ], 'parameters' => [ [ + 'name' => 'ClusterId', + 'in' => 'formData', + 'schema' => ['description' => '集群ID。', 'type' => 'string', 'required' => true, 'example' => 'cluster-w3G9vOJI2****'], + ], + [ 'name' => 'InstanceId', 'in' => 'formData', - 'schema' => [ - 'title' => '密码机实例ID。', - 'description' => '密码机实例ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'hsm-cn-vj30bil****', - ], + 'schema' => ['description' => '切换为主密码机的密码机实例ID。', 'type' => 'string', 'required' => true, 'example' => 'hsm-cn-vj30bil8****'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'PlainResult<OpenApiGetInstanceResponse>', - 'description' => 'PlainResult<OpenApiGetInstanceResponse>', + 'title' => 'BaseResult', + 'description' => 'BaseResult', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => '本次调用请求的ID,是由阿里云为该请求生成的唯一标识符,可用于排查和定位问题。', - 'description' => '本次调用请求的ID,是由阿里云为该请求生成的唯一标识符,可用于排查和定位问题。', - 'type' => 'string', - 'example' => '4C467B38-3910-447D-87BC-AC049166F216', - ], - 'Instance' => [ - 'title' => '实例信息。', - 'description' => '实例信息。', - 'type' => 'object', - 'properties' => [ - 'InstanceId' => [ - 'title' => '实例基础信息', - 'description' => '密码机实例ID。', - 'type' => 'string', - 'example' => 'hsm-cn-g4t3jwsc****', - ], - 'Remark' => [ - 'title' => '备注信息。', - 'description' => '备注信息。', - 'type' => 'string', - 'example' => 'hsmOnline', - ], - 'RegionId' => [ - 'title' => '地域ID。', - 'description' => '地域ID。', - 'type' => 'string', - 'example' => 'cn-hangzhou', - ], - 'ZoneId' => [ - 'title' => '可用区ID。', - 'description' => '可用区ID。', - 'type' => 'string', - 'example' => 'cn-hangzhou-b', - ], - 'Vendor' => [ - 'title' => '硬件信息', - 'description' => '厂商信息。', - 'type' => 'string', - 'example' => 'jnta', - ], - 'DeviceType' => [ - 'title' => '设备类型。', - 'description' => '设备类型。', - 'type' => 'string', - 'example' => 'jnta.SJJ1528-G', - ], - 'PqcEnabled' => [ - 'title' => '实例是否启用PQC功能', - 'description' => '实例是否启用PQC功能', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - 'enum' => [ - '1', - '0', - ], - ], - 'TpsEnabled' => [ - 'description' => '实例是否支持TPS监控。', - 'type' => 'integer', - 'format' => 'int32', - 'enumValueTitles' => [ - '不支持', - '支持', - ], - 'example' => '1', - 'enum' => [ - '0', - '1', - ], - ], - 'TenantIsolationType' => [ - 'title' => '密码机硬件隔离类型,枚举值"vsm"虚拟密码机,"hostedHsm"托管硬件密码机', - 'description' => '密码机硬件隔离类型,枚举值"vsm"虚拟密码机,"hostedHsm"托管硬件密码机', - 'type' => 'string', - 'example' => 'hostedHsm', - ], - 'OrderId' => [ - 'title' => '售卖信息', - 'description' => '订单ID。', - 'type' => 'string', - 'example' => '23576634952****', - ], - 'IsTrial' => [ - 'title' => '是否试用。'."\n" - ."\n" - .'- true:是'."\n" - ."\n" - .'- false:否', - 'description' => '是否试用。'."\n" - ."\n" - .'- true:是'."\n" - ."\n" - .'- false:否', - 'type' => 'boolean', - 'example' => 'false', - ], - 'VpcId' => [ - 'title' => '网络配置', - 'description' => '实例所属VPC ID。', - 'type' => 'string', - 'example' => 'vpc-uf69i66j9kmoko52p****', - ], - 'VSwitchId' => [ - 'title' => '密码机实例配置的交换机ID。', - 'description' => '密码机实例配置的交换机ID。', - 'type' => 'string', - 'example' => 'vsw-bp1mvfs31ltt0wyhf****', - ], - 'Ip' => [ - 'title' => '密码机实例在VPC网络中的IP地址。', - 'description' => '密码机实例在VPC网络中的IP地址。', - 'type' => 'string', - 'example' => '10.192.XX.XX', - ], - 'Whitelist' => [ - 'title' => '白名单IP列表。', - 'description' => '白名单IP列表。', - 'type' => 'string', - 'example' => '18.68.XX.XX', - ], - 'CreateTime' => [ - 'title' => '时间信息', - 'description' => '实例创建时间。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1699515963000', - ], - 'ExpireTime' => [ - 'title' => '实例过期时间。', - 'description' => '实例过期时间。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1699496389720', - ], - 'ClusterId' => [ - 'title' => '集群信息', - 'description' => '实例所属集群ID。', - 'type' => 'string', - 'example' => 'cluster-w3G9vOJI2****', - ], - 'ClusterName' => [ - 'title' => '集群名称。', - 'description' => '集群名称。', - 'type' => 'string', - 'example' => 'cluster_online', - ], - 'Master' => [ - 'title' => '是否为主密码机。 '."\n" - ."\n" - .'- true:主密码机'."\n" - ."\n" - .' - false:子密码机', - 'description' => '是否为主密码机。 '."\n" - ."\n" - .'- true:主密码机'."\n" - ."\n" - .' - false:子密码机', - 'type' => 'boolean', - 'example' => 'true', - ], - 'Status' => [ - 'title' => '数据状态', - 'description' => '实例状态。 '."\n" - ."\n" - .'- PENDING:未启用'."\n" - ."\n" - .' - ACTIVE:已启用'."\n" - ."\n" - .' - EXPIRED:已过期'."\n" - ."\n" - .' - INVALID:已失效'."\n" - ."\n" - .' - FAILURE:生产失败'."\n" - ."\n" - .' - RESET:重置中'."\n" - ."\n" - .'- PAUSED:已停用'."\n" - ."\n" - .' - MODIFYING:变更中', - 'type' => 'string', - 'example' => 'EXPIRED', - ], - 'CertificationUrl' => [ - 'description' => '密码机资质认证证书下载链接。', - 'type' => 'string', - 'example' => 'https://xxxxxx', - ], - ], - ], + 'RequestId' => ['description' => '本次调用请求的ID,是由阿里云为该请求生成的唯一标识符,可用于排查和定位问题。', '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.', - ], + ['errorCode' => 'SwitchMaster.InstanceInvalid', 'errorMessage' => 'Instance not in the cluster.', 'description' => ''], + ['errorCode' => 'LeaveCluster.MasterLast', 'errorMessage' => 'Master instance can not leave a cluster until all other instances are left.', 'description' => ''], + ['errorCode' => 'Certificate.ChainInvalid', 'errorMessage' => 'Certificate chain invalid. Please make sure issuer certificate is the trust anchor and cluster certificate is signed by issuer certificate.', 'description' => ''], + ['errorCode' => 'Certificate.FormatInvalid', 'errorMessage' => 'Certificate format invalid. Cluster/Issuer certificate must be in PEM format.', 'description' => ''], + ['errorCode' => 'ConfigClusterSubnet.DuplicateZone', 'errorMessage' => 'VSwitches should not contain duplicate zones.', 'description' => ''], + ['errorCode' => 'InvalidApiParam.Error', 'errorMessage' => 'api param is invalid', 'description' => ''], + ['errorCode' => 'InvalidClusterName', 'errorMessage' => 'Invalid parameter clusterName.', 'description' => ''], + ['errorCode' => 'InvalidPageSize', 'errorMessage' => 'Invalid parameter pageSize.', 'description' => ''], + ['errorCode' => 'InvalidCurrentPage', 'errorMessage' => 'Invalid parameter currentPage.', 'description' => ''], + ['errorCode' => 'InvalidRegionId', 'errorMessage' => 'Invalid parameter regionId.', 'description' => ''], + ['errorCode' => 'InvalidVSwitch', 'errorMessage' => 'Invalid parameter vSwitch.', 'description' => ''], + ['errorCode' => 'InvalidVpc', 'errorMessage' => 'Invalid parameter vpcId.', 'description' => ''], + ['errorCode' => 'InvalidIp', 'errorMessage' => 'Invalid parameter IP.', 'description' => ''], + ['errorCode' => 'InvalidAliuid', 'errorMessage' => 'Invalid parameter aliuid.', 'description' => ''], + ['errorCode' => 'InvalidClusterId', 'errorMessage' => 'Invalid parameter clusterId.', 'description' => ''], + ['errorCode' => 'InvalidInstanceId', 'errorMessage' => 'Invalid parameter instanceId.', 'description' => ''], + ['errorCode' => 'InvalidBackupId', 'errorMessage' => 'Invalid parameter backupId.', 'description' => ''], + ['errorCode' => 'InvalidImageId', 'errorMessage' => 'Invalid parameter imageId.', 'description' => ''], + ['errorCode' => 'HsmInstanceNotExist.Error', 'errorMessage' => 'hsm instance not exist', 'description' => ''], + ['errorCode' => 'HSMIntanceNotActived.Error', 'errorMessage' => 'hsm intance is not actived', 'description' => ''], + ['errorCode' => 'WhiteListMaxCount.Error', 'errorMessage' => 'whilte list is more than max count', 'description' => ''], + ['errorCode' => 'ClusterIdIsNotExists.Error', 'errorMessage' => 'cluster ID non-exists', 'description' => ''], + ['errorCode' => 'InstanceListIsEmpty.Error', 'errorMessage' => 'instance list is empty', 'description' => ''], + ['errorCode' => 'InstanceIdIsEmpty.Error', 'errorMessage' => 'instance id is empty', 'description' => ''], + ['errorCode' => 'InstanceIsNotExistsInCluster.Error', 'errorMessage' => 'cluster has no such instance', 'description' => ''], + ['errorCode' => 'InstanceIsExistsInCluster.Error', 'errorMessage' => 'instance already in the cluster', 'description' => ''], + ['errorCode' => 'RegionNoEmpty.Error', 'errorMessage' => 'region no. is empty', 'description' => ''], + ['errorCode' => 'ClusterNameEmpty.Error', 'errorMessage' => 'empty cluster name not allowed', 'description' => ''], + ['errorCode' => 'ClusterNameIsExists.Error', 'errorMessage' => 'the cluster name is already taken', 'description' => ''], + ['errorCode' => 'IpNotValid.Error', 'errorMessage' => 'ip not valid', 'description' => ''], + ['errorCode' => 'ClusterIsEmpty.Error', 'errorMessage' => 'cluster is empty', 'description' => ''], + ['errorCode' => 'NoMasterFoundInCluster.Error', 'errorMessage' => 'cluster has no master instance', 'description' => ''], + ['errorCode' => 'HsmInstanceIdNotFound.Error', 'errorMessage' => 'no such instance', 'description' => ''], + ['errorCode' => 'NoInstanceFoundInCluster.Error', 'errorMessage' => 'cluster is empty', 'description' => ''], + ['errorCode' => 'Whitelist.Invalid', 'errorMessage' => 'Whitelist blocks not in CIDR format.', 'description' => ''], + ['errorCode' => 'Whitelist.TooLong', 'errorMessage' => 'Whitelist too long, exceeds 10 CIDR blocks.', 'description' => ''], ], 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.', - ], + ['errorCode' => 'Cluster.CN.ClusterModeInvalid', 'errorMessage' => 'This API is forbidden for current cluster mode.', 'description' => ''], + ['errorCode' => 'NoPermission', 'errorMessage' => 'Caller has no permission on the resource.', 'description' => ''], + ['errorCode' => 'InstanceNotPaused', 'errorMessage' => 'Please pause the instance before reset.', 'description' => ''], + ['errorCode' => 'InstanceNotActive', 'errorMessage' => 'Instance is not active.', 'description' => ''], + ['errorCode' => 'ConfigIp.IncorrectState', 'errorMessage' => 'Instance not in pending or active state, can not config IP address.', 'description' => ''], + ['errorCode' => 'SwitchMaster.IncorrectState', 'errorMessage' => 'Cluster not initialized, please initialize the cluster first.', 'description' => ''], + ['errorCode' => 'SyncCluster.IncorrectState', 'errorMessage' => 'Cluster not initialized, please initialize the cluster first.', 'description' => ''], + ['errorCode' => 'LeaveCluster.InstanceInvalid', 'errorMessage' => 'The instance is not in the cluster.', 'description' => ''], + ['errorCode' => 'DeleteCluster.IncorrectState', 'errorMessage' => 'Cluster not empty, please remove all instances first.', 'description' => ''], + ['errorCode' => 'JoinCluster.InstanceVSwitchNotInCluster', 'errorMessage' => 'Instance\'s vSwitch is not in cluster config, please change instance\'s vSwitch first.', 'description' => ''], + ['errorCode' => 'JoinCluster.InstanceInitialized', 'errorMessage' => 'Initialized instance can not join a cluster.', 'description' => ''], + ['errorCode' => 'JoinCluster.IncorrectState', 'errorMessage' => 'Cluster not initialized, please initialize the cluster first.', 'description' => ''], + ['errorCode' => 'InitializeCluster.InstanceNotInitialized', 'errorMessage' => 'Cluster master instance not initialized, please initialize cluster master instance first.', 'description' => ''], + ['errorCode' => 'InitializeCluster.IncorrectConfig', 'errorMessage' => 'Cluster subnet not configured, please config cluster subnet first.', 'description' => ''], + ['errorCode' => 'InitializeCluster.IncorrectState', 'errorMessage' => 'Cluster initialized, do not re-initialize.', 'description' => ''], + ['errorCode' => 'Cluster.CN.ActionForbidden', 'errorMessage' => 'This API is forbidden for non-international site cluster.', 'description' => ''], + ['errorCode' => 'Cluster.INTL.ActionForbidden', 'errorMessage' => 'This API is forbidden for international site cluster.', 'description' => ''], + ['errorCode' => 'ConfigClusterCertificate.IncorrectState', 'errorMessage' => 'Cluster initialized or certificates already configured.', 'description' => ''], + ['errorCode' => 'ConfigClusterSubnet.InvalidVpcId', 'errorMessage' => 'VPC Id invalid. Cluster VPC is the same as cluster master\'s VPC.', 'description' => ''], + ['errorCode' => 'ConfigClusterSubnet.InvalidVSwitchId', 'errorMessage' => 'VSwitch Id invalid. VSwitches should contain all current cluster vSwitches.', 'description' => ''], + ['errorCode' => 'ConfigClusterSubnet.IncorrectState', 'errorMessage' => 'Cluster not in NEW state, can not config cluster subnet.', 'description' => ''], + ['errorCode' => 'ClusterName.Exist', 'errorMessage' => 'Cluster name already exists, please use another name.', 'description' => ''], + ['errorCode' => 'Whitelist.InstanceInCluster', 'errorMessage' => 'Whitelist.InstanceInCluster', 'description' => ''], + ], + [ + ['errorCode' => 'Resource.NotFound', 'errorMessage' => 'Resource not found.', 'description' => ''], + ], + [ + ['errorCode' => 'ClusterAPI.NotSupported', 'errorMessage' => 'ClusterAPI not supported in this region.', 'description' => ''], ], 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.', - ], + ['errorCode' => 'Conflict', 'errorMessage' => 'Resource is being updated by a previous request. Current request is redundant.', 'description' => ''], + ['errorCode' => 'Cluster.Conflict', 'errorMessage' => 'The cluster is being updated by a previous request. Please try again later.', 'description' => ''], ], 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.', - ], + ['errorCode' => 'ConfigWhitelistFailed.Error', 'errorMessage' => 'config white list error', 'description' => ''], + ['errorCode' => 'ActionFailed.Error', 'errorMessage' => 'internal error, please try again', 'description' => ''], + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to some unknown error.', 'description' => '未知错误导致请求处理失败。'], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'eventInfo' => [ - 'enable' => false, - 'eventNames' => [], + 'title' => '切换集群主密码机', + 'summary' => '将集群内一台子密码机切换为主密码机。中国内地手动同步集群不支持此接口。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], + ], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'yundun-hsm:SwitchClusterMaster', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DataEncryptionService', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], - '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' => '查询实例', + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"4C467B38-3910-447D-87BC-AC049166F216\\"\\n}","type":"json"}]', ], - 'PauseInstance' => [ - 'methods' => [ - 'post', - ], - 'schemes' => [ - 'https', - ], + 'SyncCluster' => [ + 'methods' => ['post'], + 'schemes' => ['https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', + 'operationType' => 'readAndWrite', 'deprecated' => false, 'systemTags' => [ 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', + 'abilityTreeNodes' => ['FEATUREhsmV7VE3Y', 'FEATUREhsm01FLNB', 'FEATUREhsmGIFYCG'], ], 'parameters' => [ [ - 'name' => 'InstanceId', + 'name' => 'ClusterId', 'in' => 'formData', - 'schema' => [ - 'description' => '密码机实例ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'hsm-cn-vj30bil8****', - ], + 'schema' => ['description' => '集群ID。', 'type' => 'string', 'required' => true, 'example' => 'cluster-BqxX63Bsgytet****'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'BaseResult', - 'description' => 'BaseResult', + 'title' => 'PlainResult<OpenApiSyncClusterResponse>', + 'description' => 'PlainResult<OpenApiSyncClusterResponse>', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '本次调用请求的ID,是由阿里云为该请求生成的唯一标识符,可用于排查和定位问题。', - 'type' => 'string', - 'example' => '4C467B38-3910-447D-87BC-AC049366F216', + 'RequestId' => ['description' => '本次调用请求的ID,是由阿里云为该请求生成的唯一标识符,可用于排查和定位问题。', 'type' => 'string', 'example' => '4C467B38-3910-447D-87BC-AC049166F216'], + 'Job' => [ + 'description' => '任务详情。', + 'type' => 'object', + 'properties' => [ + 'JobId' => ['description' => '任务ID。', 'type' => 'string', 'example' => 'job-000bu7m5vjmyz9s7qz85'], + 'Type' => ['description' => '操作类型。'."\n" + ."\n" + .'- create:创建任务'."\n" + ."\n" + .'- cancel:取消任务', 'type' => 'string', 'example' => 'create'], + 'Completed' => ['description' => '任务是否完成。'."\n" + ."\n" + .'- true:是'."\n" + ."\n" + .'- false:否', 'type' => 'boolean', 'example' => 'true'], + 'CreateTime' => ['description' => '任务创建时间,精确到毫秒。时间戳格式。', 'type' => 'string', 'example' => '1711764127000'], + 'Status' => ['description' => '任务状态。'."\n" + ."\n" + .'- success:任务成功'."\n" + ."\n" + .'- running:任务执行中'."\n" + ."\n" + .'- cancel:任务取消'."\n" + ."\n" + .'- fail:任务失败', 'type' => 'string', 'example' => 'success'], + 'Response' => ['description' => '任务成功后返回的响应信息。', 'type' => 'string', 'example' => 'success'], + 'Error' => ['description' => '任务失败时的错误信息。', 'type' => 'string', 'example' => 'OperationTimeout'], + 'Progress' => ['description' => '任务执行进度。单位为百分比。', 'type' => 'integer', 'format' => 'int32', 'example' => '90'], + ], ], ], ], @@ -10584,1521 +5677,730 @@ ], '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.', - ], + ['errorCode' => 'SwitchMaster.InstanceInvalid', 'errorMessage' => 'Instance not in the cluster.', 'description' => ''], + ['errorCode' => 'LeaveCluster.MasterLast', 'errorMessage' => 'Master instance can not leave a cluster until all other instances are left.', 'description' => ''], + ['errorCode' => 'Certificate.ChainInvalid', 'errorMessage' => 'Certificate chain invalid. Please make sure issuer certificate is the trust anchor and cluster certificate is signed by issuer certificate.', 'description' => ''], + ['errorCode' => 'Certificate.FormatInvalid', 'errorMessage' => 'Certificate format invalid. Cluster/Issuer certificate must be in PEM format.', 'description' => ''], + ['errorCode' => 'ConfigClusterSubnet.DuplicateZone', 'errorMessage' => 'VSwitches should not contain duplicate zones.', 'description' => ''], + ['errorCode' => 'InvalidApiParam.Error', 'errorMessage' => 'api param is invalid', 'description' => ''], + ['errorCode' => 'InvalidClusterName', 'errorMessage' => 'Invalid parameter clusterName.', 'description' => ''], + ['errorCode' => 'InvalidPageSize', 'errorMessage' => 'Invalid parameter pageSize.', 'description' => ''], + ['errorCode' => 'InvalidCurrentPage', 'errorMessage' => 'Invalid parameter currentPage.', 'description' => ''], + ['errorCode' => 'InvalidRegionId', 'errorMessage' => 'Invalid parameter regionId.', 'description' => ''], + ['errorCode' => 'InvalidVSwitch', 'errorMessage' => 'Invalid parameter vSwitch.', 'description' => ''], + ['errorCode' => 'InvalidVpc', 'errorMessage' => 'Invalid parameter vpcId.', 'description' => ''], + ['errorCode' => 'InvalidIp', 'errorMessage' => 'Invalid parameter IP.', 'description' => ''], + ['errorCode' => 'InvalidAliuid', 'errorMessage' => 'Invalid parameter aliuid.', 'description' => ''], + ['errorCode' => 'InvalidClusterId', 'errorMessage' => 'Invalid parameter clusterId.', 'description' => ''], + ['errorCode' => 'InvalidInstanceId', 'errorMessage' => 'Invalid parameter instanceId.', 'description' => ''], + ['errorCode' => 'InvalidBackupId', 'errorMessage' => 'Invalid parameter backupId.', 'description' => ''], + ['errorCode' => 'InvalidImageId', 'errorMessage' => 'Invalid parameter imageId.', 'description' => ''], + ['errorCode' => 'HsmInstanceNotExist.Error', 'errorMessage' => 'hsm instance not exist', 'description' => ''], + ['errorCode' => 'HSMIntanceNotActived.Error', 'errorMessage' => 'hsm intance is not actived', 'description' => ''], + ['errorCode' => 'WhiteListMaxCount.Error', 'errorMessage' => 'whilte list is more than max count', 'description' => ''], + ['errorCode' => 'ClusterIdIsNotExists.Error', 'errorMessage' => 'cluster ID non-exists', 'description' => ''], + ['errorCode' => 'InstanceListIsEmpty.Error', 'errorMessage' => 'instance list is empty', 'description' => ''], + ['errorCode' => 'InstanceIdIsEmpty.Error', 'errorMessage' => 'instance id is empty', 'description' => ''], + ['errorCode' => 'InstanceIsNotExistsInCluster.Error', 'errorMessage' => 'cluster has no such instance', 'description' => ''], + ['errorCode' => 'InstanceIsExistsInCluster.Error', 'errorMessage' => 'instance already in the cluster', 'description' => ''], + ['errorCode' => 'RegionNoEmpty.Error', 'errorMessage' => 'region no. is empty', 'description' => ''], + ['errorCode' => 'ClusterNameEmpty.Error', 'errorMessage' => 'empty cluster name not allowed', 'description' => ''], + ['errorCode' => 'ClusterNameIsExists.Error', 'errorMessage' => 'the cluster name is already taken', 'description' => ''], + ['errorCode' => 'IpNotValid.Error', 'errorMessage' => 'ip not valid', 'description' => ''], + ['errorCode' => 'ClusterIsEmpty.Error', 'errorMessage' => 'cluster is empty', 'description' => ''], + ['errorCode' => 'NoMasterFoundInCluster.Error', 'errorMessage' => 'cluster has no master instance', 'description' => ''], + ['errorCode' => 'HsmInstanceIdNotFound.Error', 'errorMessage' => 'no such instance', 'description' => ''], + ['errorCode' => 'NoInstanceFoundInCluster.Error', 'errorMessage' => 'cluster is empty', 'description' => ''], + ['errorCode' => 'Whitelist.Invalid', 'errorMessage' => 'Whitelist blocks not in CIDR format.', 'description' => ''], + ['errorCode' => 'Whitelist.TooLong', 'errorMessage' => 'Whitelist too long, exceeds 10 CIDR blocks.', 'description' => ''], ], 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.', - ], + ['errorCode' => 'Cluster.CN.ClusterModeInvalid', 'errorMessage' => 'This API is forbidden for current cluster mode.', 'description' => ''], + ['errorCode' => 'NoPermission', 'errorMessage' => 'Caller has no permission on the resource.', 'description' => ''], + ['errorCode' => 'InstanceNotPaused', 'errorMessage' => 'Please pause the instance before reset.', 'description' => ''], + ['errorCode' => 'InstanceNotActive', 'errorMessage' => 'Instance is not active.', 'description' => ''], + ['errorCode' => 'ConfigIp.IncorrectState', 'errorMessage' => 'Instance not in pending or active state, can not config IP address.', 'description' => ''], + ['errorCode' => 'SwitchMaster.IncorrectState', 'errorMessage' => 'Cluster not initialized, please initialize the cluster first.', 'description' => ''], + ['errorCode' => 'SyncCluster.IncorrectState', 'errorMessage' => 'Cluster not initialized, please initialize the cluster first.', 'description' => ''], + ['errorCode' => 'LeaveCluster.InstanceInvalid', 'errorMessage' => 'The instance is not in the cluster.', 'description' => ''], + ['errorCode' => 'DeleteCluster.IncorrectState', 'errorMessage' => 'Cluster not empty, please remove all instances first.', 'description' => ''], + ['errorCode' => 'JoinCluster.InstanceVSwitchNotInCluster', 'errorMessage' => 'Instance\'s vSwitch is not in cluster config, please change instance\'s vSwitch first.', 'description' => ''], + ['errorCode' => 'JoinCluster.InstanceInitialized', 'errorMessage' => 'Initialized instance can not join a cluster.', 'description' => ''], + ['errorCode' => 'JoinCluster.IncorrectState', 'errorMessage' => 'Cluster not initialized, please initialize the cluster first.', 'description' => ''], + ['errorCode' => 'InitializeCluster.InstanceNotInitialized', 'errorMessage' => 'Cluster master instance not initialized, please initialize cluster master instance first.', 'description' => ''], + ['errorCode' => 'InitializeCluster.IncorrectConfig', 'errorMessage' => 'Cluster subnet not configured, please config cluster subnet first.', 'description' => ''], + ['errorCode' => 'InitializeCluster.IncorrectState', 'errorMessage' => 'Cluster initialized, do not re-initialize.', 'description' => ''], + ['errorCode' => 'Cluster.CN.ActionForbidden', 'errorMessage' => 'This API is forbidden for non-international site cluster.', 'description' => ''], + ['errorCode' => 'Cluster.INTL.ActionForbidden', 'errorMessage' => 'This API is forbidden for international site cluster.', 'description' => ''], + ['errorCode' => 'ConfigClusterCertificate.IncorrectState', 'errorMessage' => 'Cluster initialized or certificates already configured.', 'description' => ''], + ['errorCode' => 'ConfigClusterSubnet.InvalidVpcId', 'errorMessage' => 'VPC Id invalid. Cluster VPC is the same as cluster master\'s VPC.', 'description' => ''], + ['errorCode' => 'ConfigClusterSubnet.InvalidVSwitchId', 'errorMessage' => 'VSwitch Id invalid. VSwitches should contain all current cluster vSwitches.', 'description' => ''], + ['errorCode' => 'ConfigClusterSubnet.IncorrectState', 'errorMessage' => 'Cluster not in NEW state, can not config cluster subnet.', 'description' => ''], + ['errorCode' => 'ClusterName.Exist', 'errorMessage' => 'Cluster name already exists, please use another name.', 'description' => ''], + ['errorCode' => 'Whitelist.InstanceInCluster', 'errorMessage' => 'Whitelist.InstanceInCluster', 'description' => ''], + ], + [ + ['errorCode' => 'Resource.NotFound', 'errorMessage' => 'Resource not found.', 'description' => ''], + ], + [ + ['errorCode' => 'ClusterAPI.NotSupported', 'errorMessage' => 'ClusterAPI not supported in this region.', 'description' => ''], ], 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.', - ], + ['errorCode' => 'Conflict', 'errorMessage' => 'Resource is being updated by a previous request. Current request is redundant.', 'description' => ''], + ['errorCode' => 'Cluster.Conflict', 'errorMessage' => 'The cluster is being updated by a previous request. Please try again later.', 'description' => ''], ], 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.', - ], + ['errorCode' => 'ConfigWhitelistFailed.Error', 'errorMessage' => 'config white list error', 'description' => ''], + ['errorCode' => 'ActionFailed.Error', 'errorMessage' => 'internal error, please try again', 'description' => ''], + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to some unknown error.', 'description' => '未知错误导致请求处理失败。'], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '同步集群', + 'summary' => '同步集群内实例数据。', + 'description' => '- 只有中国内地手动同步密码机集群支持此接口。'."\n" + ."\n" + .'- 同步集群预计需要5分钟,请在业务空闲期进行同步,以免影响业务运行。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], + ], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'yundun-hsm:SyncCluster', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DataEncryptionService', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"4C467B38-3910-447D-87BC-AC049366F216\\"\\n}","type":"json"}]', - 'title' => '停用实例', - 'summary' => '停用实例。', - 'description' => '实例被停用后,业务操作将无法进行,请谨慎调用该操作。', + '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"}]', ], - 'ListInstances' => [ - 'summary' => '获取符合查询条件的实例集合。', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'https', - ], - 'security' => [ - [ - 'AK' => [], + ], + 'endpoints' => [ + ['regionId' => 'cn-shenzhen', 'regionName' => '华南1(深圳)', 'areaId' => 'asiaPacific', 'areaName' => '亚太', 'public' => 'hsm.aliyuncs.com', 'endpoint' => 'hsm.aliyuncs.com', 'vpc' => 'hsm.vpc-proxy.aliyuncs.com'], + ['regionId' => 'cn-beijing', 'regionName' => '华北2(北京)', 'areaId' => 'asiaPacific', 'areaName' => '亚太', 'public' => 'hsm.aliyuncs.com', 'endpoint' => 'hsm.aliyuncs.com', 'vpc' => 'hsm.vpc-proxy.aliyuncs.com'], + ['regionId' => 'cn-chengdu', 'regionName' => '西南1(成都)', 'areaId' => 'asiaPacific', 'areaName' => '亚太', 'public' => 'hsm.aliyuncs.com', 'endpoint' => 'hsm.aliyuncs.com', 'vpc' => 'hsm.vpc-proxy.aliyuncs.com'], + ['regionId' => 'cn-shanghai', 'regionName' => '华东2(上海)', 'areaId' => 'asiaPacific', 'areaName' => '亚太', 'public' => 'hsm.aliyuncs.com', 'endpoint' => 'hsm.aliyuncs.com', 'vpc' => 'hsm.vpc-proxy.aliyuncs.com'], + ['regionId' => 'cn-hongkong', 'regionName' => '中国香港', 'areaId' => 'asiaPacific', 'areaName' => '亚太', 'public' => 'hsm.aliyuncs.com', 'endpoint' => 'hsm.aliyuncs.com', 'vpc' => 'hsm.vpc-proxy.aliyuncs.com'], + ['regionId' => 'cn-heyuan', 'regionName' => '华南2(河源)', 'areaId' => 'asiaPacific', 'areaName' => '亚太', 'public' => 'hsm.aliyuncs.com', 'endpoint' => 'hsm.aliyuncs.com', 'vpc' => 'hsm.vpc-proxy.aliyuncs.com'], + ['regionId' => 'ap-southeast-1', 'regionName' => '新加坡', 'areaId' => 'asiaPacific', 'areaName' => '亚太', 'public' => 'hsm.aliyuncs.com', 'endpoint' => 'hsm.aliyuncs.com', 'vpc' => 'hsm.vpc-proxy.aliyuncs.com'], + ['regionId' => 'ap-southeast-3', 'regionName' => '马来西亚(吉隆坡)', 'areaId' => 'asiaPacific', 'areaName' => '亚太', 'public' => 'hsm.aliyuncs.com', 'endpoint' => 'hsm.aliyuncs.com', 'vpc' => 'hsm.vpc-proxy.aliyuncs.com'], + ['regionId' => 'cn-hangzhou', 'regionName' => '华东1(杭州)', 'areaId' => 'asiaPacific', 'areaName' => '亚太', 'public' => 'hsm.aliyuncs.com', 'endpoint' => 'hsm.aliyuncs.com', 'vpc' => 'hsm.vpc-proxy.aliyuncs.com'], + ['regionId' => 'me-central-1', 'regionName' => '沙特(利雅得)', 'areaId' => 'middleEast', 'areaName' => '中东', 'public' => 'hsm.aliyuncs.com', 'endpoint' => 'hsm.aliyuncs.com', 'vpc' => 'hsm.vpc-proxy.aliyuncs.com'], + ['regionId' => 'me-east-1', 'regionName' => '阿联酋(迪拜)', 'areaId' => 'middleEast', 'areaName' => '中东', 'public' => 'hsm.aliyuncs.com', 'endpoint' => 'hsm.aliyuncs.com', 'vpc' => ''], + ['regionId' => 'cn-shanghai-finance-1', 'regionName' => '华东2 金融云', 'areaId' => 'industryCloud', 'areaName' => '行业云', 'public' => 'hsm.aliyuncs.com', 'endpoint' => 'hsm.aliyuncs.com', 'vpc' => 'hsm.vpc-proxy.aliyuncs.com'], + ['regionId' => 'cn-shenzhen-finance-1', 'regionName' => '华南1 金融云', 'areaId' => 'industryCloud', 'areaName' => '行业云', 'public' => 'hsm.aliyuncs.com', 'endpoint' => 'hsm.aliyuncs.com', 'vpc' => 'hsm.vpc-proxy.aliyuncs.com'], + ['regionId' => 'cn-hangzhou-finance', 'regionName' => '华东1 金融云', 'areaId' => 'industryCloud', 'areaName' => '行业云', 'public' => 'hsm.aliyuncs.com', 'endpoint' => 'hsm.aliyuncs.com', 'vpc' => ''], + ], + 'errorCodes' => [ + ['code' => 'InternalError', 'message' => 'The request processing has failed due to some unknown error.', 'http_code' => 500, 'description' => '未知错误导致请求处理失败。'], + ['code' => 'InvalidApiParam.Error', 'message' => 'Parameter is invalid.', 'http_code' => 400, 'description' => '参数不合法'], + ['code' => 'NoPermission', 'message' => 'caller has no permission.', 'http_code' => 403, 'description' => '用户没有权限使用。'], + ], + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '-1', 'countWindow' => 1, 'regionId' => '*'], + ], + ], + 'ram' => [ + 'productCode' => 'DataEncryptionService', + 'productName' => '加密服务', + 'ramCodes' => ['yundun-hsm'], + 'ramLevel' => '操作级', + 'ramConditions' => [], + 'ramActions' => [ + [ + 'apiName' => 'ListImages', + 'description' => '查询镜像列表', + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'yundun-hsm:ListImages', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DataEncryptionService', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], - 'operationType' => 'read', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'get', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeCode' => '209162', - 'abilityTreeNodes' => [ - 'FEATUREhsmV7VE3Y', - 'FEATUREhsmUNBCOF', - 'FEATUREhsm01FLNB', - 'FEATUREhsmGIFYCG', - 'FEATUREhsmLBBV5W', + [ + 'apiName' => 'ResumeInstance', + 'description' => '恢复实例', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'yundun-hsm:ResumeInstance', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DataEncryptionService', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], - 'parameters' => [ - [ - 'name' => 'RegionId', - 'in' => 'formData', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'cn-hangzhou', + [ + 'apiName' => 'SwitchClusterMaster', + 'description' => '切换集群主密码机', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'yundun-hsm:SwitchClusterMaster', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DataEncryptionService', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'CurrentPage', - 'in' => 'formData', - 'schema' => [ - 'description' => '当前页数。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'example' => '1', + ], + [ + 'apiName' => 'LeaveCluster', + 'description' => '移出集群', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'yundun-hsm:LeaveCluster', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DataEncryptionService', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'PageSize', - 'in' => 'formData', - 'schema' => [ - 'description' => '每页查询数目。取值:1~1000。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'example' => '20', + ], + [ + 'apiName' => 'EnableBackup', + 'description' => '启用备份', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'yundun-hsm:EnableBackup', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DataEncryptionService', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'TenantIsolationType', - 'in' => 'formData', - 'schema' => [ - 'title' => '密码机硬件隔离类型,枚举值"vsm"虚拟密码机,"hostedHsm"托管硬件密码机', - 'description' => '密码机硬件隔离类型,枚举值"vsm"虚拟密码机,"hostedHsm"托管硬件密码机', - 'type' => 'string', - 'required' => false, + ], + [ + 'apiName' => 'InitializeCluster', + 'description' => '初始化集群', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'yundun-hsm:InitializeCluster', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DataEncryptionService', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'title' => 'OpenApiPageResult<OpenApiListInstancesResponse>', - 'description' => 'OpenApiPageResult<OpenApiListInstancesResponse>', - 'type' => 'object', - 'properties' => [ - 'Total' => [ - 'description' => '实例总条数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '80', - ], - 'PageSize' => [ - 'description' => '每页查询数目。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '20', - ], - 'CurrentPage' => [ - 'description' => '当前页数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'RequestId' => [ - 'description' => '本次调用请求的ID,是由阿里云为该请求生成的唯一标识符,可用于排查和定位问题。', - 'type' => 'string', - 'example' => '4C467B38-3910-447D-87BC-AC049166F216', - ], - 'Instances' => [ - 'description' => '实例列表。', - 'type' => 'array', - 'items' => [ - 'description' => '实例信息。', - 'type' => 'object', - 'properties' => [ - 'InstanceId' => [ - 'description' => '密码机实例ID。', - 'type' => 'string', - 'example' => 'hsm-cn-vj30bil8****', - ], - 'Status' => [ - 'description' => '实例状态。'."\n" - .'- PENDING:未启用'."\n" - .'- ACTIVE:已启用'."\n" - .'- EXPIRED:已过期'."\n" - .'- INVALID:已失效'."\n" - .'- FAILURE:生产失败'."\n" - .'- RESET:重置中'."\n" - .'- PAUSED:已停用'."\n" - .'- MODIFYING:变更中', - 'type' => 'string', - 'example' => 'ACTIVE', - ], - ], - ], - ], - ], + [ + 'apiName' => 'ConfigInstanceWhitelist', + 'description' => '配置实例白名单', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'yundun-hsm:ConfigInstanceWhitelist', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DataEncryptionService', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - '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.', + [ + 'apiName' => 'ResetInstance', + 'description' => '重置实例', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'yundun-hsm:ResetInstance', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DataEncryptionService', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - 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.', + ], + [ + 'apiName' => 'PauseInstance', + 'description' => '停用实例', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'yundun-hsm:PauseInstance', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DataEncryptionService', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - [ - 'errorCode' => 'Resource.NotFound', - 'errorMessage' => 'Resource not found.', + ], + [ + 'apiName' => 'JoinCluster', + 'description' => '加入集群', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'yundun-hsm:JoinCluster', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DataEncryptionService', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - [ - 'errorCode' => 'ClusterAPI.NotSupported', - 'errorMessage' => 'ClusterAPI not supported in this region.', + ], + [ + 'apiName' => 'ListBackups', + 'description' => '查询备份列表', + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'yundun-hsm:ListBackups', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DataEncryptionService', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - 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.', + ], + [ + 'apiName' => 'QuickInitInstance', + 'description' => '快速初始化实例', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'yundun-hsm:QuickInitInstance', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DataEncryptionService', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - 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.', + ], + [ + 'apiName' => 'ConfigAuditLog', + 'description' => '配置审计日志', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'yundun-hsm:ConfigAuditLog', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DataEncryptionService', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - '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' => '查询实例列表', - ], - 'ConfigInstanceRemark' => [ - 'methods' => [ - 'post', - ], - 'schemes' => [ - 'https', - ], - 'security' => [ - [ - 'AK' => [], + [ + 'apiName' => 'ExportImage', + 'description' => '导出镜像', + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'yundun-hsm:ExportImage', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DataEncryptionService', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], - 'operationType' => 'write', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'update', - 'riskType' => 'none', - 'chargeType' => 'free', - ], - 'parameters' => [ - [ - 'name' => 'InstanceId', - 'in' => 'formData', - 'schema' => [ - 'description' => '密码机实例ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'hsm-cn-vj30bil8****', + [ + 'apiName' => 'GetTrialStatus', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'yundun-hsm:DescribeTrialStatus', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DataEncryptionService', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'Remark', - 'in' => 'formData', - 'schema' => [ - 'description' => '备注信息。', - 'type' => 'string', - 'required' => true, - 'example' => 'hsmOnline', + ], + [ + 'apiName' => 'GetAuditLogStatus', + 'description' => '查询审计日志开通状态', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'yundun-hsm:GetAuditLogStatus', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DataEncryptionService', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'title' => 'BaseResult', - 'description' => 'BaseResult', - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'description' => '本次调用请求的ID,是由阿里云为该请求生成的唯一标识符,可用于排查和定位问题。', - 'type' => 'string', - 'example' => '4C467B38-3910-447D-87BC-AC049166F216', - ], - ], + [ + 'apiName' => 'DescribeRegions', + 'description' => '查询支持加密服务的区域列表', + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'yundun-hsm:DescribeRegions', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DataEncryptionService', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - '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.', + [ + 'apiName' => 'ConfigInstanceRemark', + 'description' => '配置实例备注', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'yundun-hsm:ConfigInstanceRemark', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DataEncryptionService', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - 403 => [ - [ - 'errorCode' => 'NoPermission', - 'errorMessage' => 'Caller has no permission on the resource.', - ], - [ - 'errorCode' => 'InstanceNotPaused', - 'errorMessage' => 'Please pause the instance before reset.', + ], + [ + 'apiName' => 'ListClusters', + 'description' => '查询集群列表', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'yundun-hsm:ListClusters', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DataEncryptionService', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - [ - 'errorCode' => 'Resource.NotFound', - 'errorMessage' => 'Resource not found.', + ], + [ + 'apiName' => 'GetJob', + 'description' => '获取异步任务', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'yundun-hsm:GetJob', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DataEncryptionService', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - [ - 'errorCode' => 'ClusterAPI.NotSupported', - 'errorMessage' => 'ClusterAPI not supported in this region.', + ], + [ + 'apiName' => 'RestoreInstance', + 'description' => '恢复实例数据', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'yundun-hsm:RestoreInstance', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DataEncryptionService', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - 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.', + ], + [ + 'apiName' => 'ConfigBackupTask', + 'description' => '配置备份任务', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'yundun-hsm:ConfigBackupTask', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DataEncryptionService', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - 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.', + ], + [ + 'apiName' => 'CopyImage', + 'description' => '复制镜像', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'yundun-hsm:CopyImage', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DataEncryptionService', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"4C467B38-3910-447D-87BC-AC049166F216\\"\\n}","type":"json"}]', - 'title' => '配置实例备注', - 'summary' => '修改实例备注。', - ], - 'GetJob' => [ - 'summary' => '获取异步任务的详细信息。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'https', - ], - 'security' => [ - [ - 'AK' => [], + [ + 'apiName' => 'ListInstances', + 'description' => '查询实例列表', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'yundun-hsm:ListInstances', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DataEncryptionService', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], - 'operationType' => 'read', - 'deprecated' => false, - 'systemTags' => [ + [ + 'apiName' => 'GetBackup', + 'description' => '查询备份', 'operationType' => 'get', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeCode' => '201995', - 'abilityTreeNodes' => [ - 'FEATUREhsm01FLNB', - 'FEATUREhsmV7VE3Y', - 'FEATUREhsmGIFYCG', + 'ramAction' => [ + 'action' => 'yundun-hsm:GetBackup', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DataEncryptionService', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], - 'parameters' => [ - [ - 'name' => 'JobId', - 'in' => 'query', - 'schema' => [ - 'description' => '任务ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'job-202401250936hze747fd7e0007005', + [ + 'apiName' => 'ConfigClusterSubnet', + 'description' => '配置集群交换机', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'yundun-hsm:ConfigClusterSubnet', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DataEncryptionService', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'title' => 'Schema of Response', - 'description' => '响应信息。', - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '本次调用请求的ID,是由阿里云为该请求生成的唯一标识符,可用于排查和定位问题。', - 'type' => 'string', - 'example' => '4C467B38-3910-447D-87BC-AC049166F216', - ], - 'Job' => [ - 'description' => '任务详情。', - 'type' => 'object', - 'properties' => [ - 'JobId' => [ - 'description' => '任务ID。', - 'type' => 'string', - 'example' => 'job-202401250936hze747fd7e0007005', - ], - 'Type' => [ - 'description' => '操作类型。'."\n" - ."\n" - .'- create:创建任务'."\n" - ."\n" - .'- cancel:取消任务', - 'type' => 'string', - 'example' => 'create', - ], - 'Completed' => [ - 'description' => '任务是否完成。'."\n" - ."\n" - .'- true:已完成'."\n" - ."\n" - .'- false:未完成', - 'type' => 'boolean', - 'example' => 'true', - ], - 'Status' => [ - 'description' => '任务状态。'."\n" - ."\n" - .'- success:成功'."\n" - ."\n" - .'- running:执行中'."\n" - ."\n" - .'- fail:失败'."\n" - .'- cancel:取消', - 'type' => 'string', - 'example' => 'fail', - ], - 'Response' => [ - 'description' => '任务成功后返回的响应信息。', - 'type' => 'string', - 'example' => 'success', - ], - 'Error' => [ - 'description' => '任务失败时的错误信息。', - 'type' => 'string', - 'example' => 'OperationTimeout', - ], - 'Progress' => [ - 'description' => '任务执行进度。单位为百分比。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '95', - ], - ], - ], - ], + [ + 'apiName' => 'DownloadClusterManagedCert', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'yundun-hsm:DownloadClusterManagedCert', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DataEncryptionService', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - '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' => '获取异步任务', - ], - 'MoveResourceGroup' => [ - 'summary' => '移动资源所在的资源组。', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + [ + 'apiName' => 'GetInstance', + 'description' => '查询实例', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'yundun-hsm:GetInstance', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DataEncryptionService', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], ], - 'security' => [ - [ - 'AK' => [], + [ + 'apiName' => 'CreateCluster', + 'description' => '创建集群', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'yundun-hsm:CreateCluster', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DataEncryptionService', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], - 'operationType' => 'write', - 'deprecated' => false, - 'systemTags' => [ + [ + 'apiName' => 'MoveResourceGroup', + 'description' => '移动资源所在的资源组', 'operationType' => 'update', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREhsmV7VE3Y', - 'FEATUREhsm01FLNB', - 'FEATUREhsmGIFYCG', - 'FEATUREhsmLBBV5W', + 'ramAction' => [ + 'action' => 'yundun-hsm:MoveResourceGroup', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DataEncryptionService', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], - 'parameters' => [ - [ - 'name' => 'ResourceId', - 'in' => 'query', - 'schema' => [ - 'description' => '密码机实例ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'hsm-2ze0qae64mjuc0ni****', + [ + 'apiName' => 'ConfigBackupRemark', + 'description' => '配置备份备注信息', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'yundun-hsm:ConfigBackupRemark', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DataEncryptionService', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'ResourceGroupId', - 'in' => 'query', - 'schema' => [ - 'description' => '资源组ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'rg-aek2tsvbnfe****', + ], + [ + 'apiName' => 'InitializeAuditLog', + 'description' => '初始化审计日志', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'yundun-hsm:InitializeAuditLog', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DataEncryptionService', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'ResourceType', - 'in' => 'query', - 'schema' => [ - 'description' => '资源类型。', - 'type' => 'string', - 'required' => true, - 'example' => 'instance', + ], + [ + 'apiName' => 'ConfigInstanceIpAddress', + 'description' => '配置实例VPC网络地址', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'yundun-hsm:ConfigInstanceIpAddress', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DataEncryptionService', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'cn-hangzhou', + ], + [ + 'apiName' => 'GetImage', + 'description' => '查询镜像', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'yundun-hsm:GetImage', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DataEncryptionService', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'description' => '返回参数结构。', - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'description' => '本次调用请求的ID,是由阿里云为该请求生成的唯一标识符,可用于排查和定位问题。', - 'type' => 'string', - 'example' => '4C467B38-3910-447D-87BC-AC049166F216', - ], - ], + [ + 'apiName' => 'DeleteCluster', + 'description' => '删除集群', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'yundun-hsm:DeleteCluster', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DataEncryptionService', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'InvalidApiParam.Error', - 'errorMessage' => 'Parameter is invalid.', + [ + 'apiName' => 'QuickDeployCluster', + 'description' => '', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'yundun-hsm:QuickDeployCluster', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DataEncryptionService', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - 403 => [ - [ - 'errorCode' => 'NoPermission', - 'errorMessage' => 'caller has no permission.', + ], + [ + 'apiName' => 'ResetBackup', + 'description' => '重置备份', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'yundun-hsm:ResetBackup', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DataEncryptionService', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'The request processing has failed due to some unknown error.', + ], + [ + 'apiName' => 'GetInstanceInternalStatus', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'yundun-hsm:GetInstanceInternalStatus', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DataEncryptionService', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"4C467B38-3910-447D-87BC-AC049166F216\\"\\n}","type":"json"}]', - 'title' => '移动资源所在的资源组', - ], - 'DescribeRegions' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ - [ - 'AK' => [], + [ + 'apiName' => 'SyncCluster', + 'description' => '同步集群', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'yundun-hsm:SyncCluster', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DataEncryptionService', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], - 'operationType' => 'read', - 'systemTags' => [ - 'operationType' => 'list', - 'abilityTreeCode' => '203661', - 'abilityTreeNodes' => [ - 'FEATUREhsmV7VE3Y', + [ + 'apiName' => 'ConfigClusterName', + 'description' => '配置集群名称', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'yundun-hsm:ConfigClusterName', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DataEncryptionService', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], - 'parameters' => [ - [ - 'name' => 'AcceptLanguage', - 'in' => 'query', - 'schema' => [ - 'description' => '要查询的语言。 '."\n" - ."\n" - .'- zh:中文'."\n" - ."\n" - .' - en:英文', - 'type' => 'string', - 'required' => false, - 'enumValueTitles' => [], - 'example' => 'zh', + [ + 'apiName' => 'ConfigClusterWhitelist', + 'description' => '配置集群白名单', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'yundun-hsm:ConfigClusterWhitelist', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DataEncryptionService', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'description' => '本次调用请求的ID,是由阿里云为该请求生成的唯一标识符,可用于排查和定位问题。', - 'type' => 'string', - 'example' => '4C467B38-3910-447D-87BC-AC049166F216', - ], - 'Regions' => [ - 'description' => '地域信息列表。', - 'type' => 'array', - 'items' => [ - 'description' => '地域信息。', - 'type' => 'object', - 'properties' => [ - 'LocalName' => [ - 'description' => '地域名称。', - 'type' => 'string', - 'example' => '华东1(杭州)', - ], - 'RegionId' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'example' => 'cn-hangzhou', - ], - 'Zones' => [ - 'description' => '可用区列表。', - 'type' => 'array', - 'items' => [ - 'description' => '可用区信息。', - 'type' => 'object', - 'properties' => [ - 'ZoneId' => [ - 'description' => '可用区ID。', - 'type' => 'string', - 'example' => 'cn-hangzhou-a', - ], - 'LocalName' => [ - 'description' => '可用区名称。', - 'type' => 'string', - 'example' => '杭州 可用区A', - ], - 'Cluster' => [ - 'description' => '是否支持集群。'."\n" - ."\n" - .'- yes:支持'."\n" - .'- no:不支持', - 'type' => 'string', - 'example' => 'yes', - ], - ], - ], - ], - ], - ], - ], - ], + [ + 'apiName' => 'GetCluster', + 'description' => '查询集群', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'yundun-hsm:GetCluster', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DataEncryptionService', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'InvalidApiParam.Error', - 'errorMessage' => 'api param is invalid', + [ + 'apiName' => 'ConfigImageRemark', + 'description' => '配置镜像备注', + 'operationType' => '', + 'ramAction' => [ + 'action' => 'yundun-hsm:ConfigImageRemark', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DataEncryptionService', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - 403 => [ - [ - 'errorCode' => 'NoPermission.Error', - 'errorMessage' => 'caller has no permission', + ], + [ + 'apiName' => 'ConfigClusterCertificate', + 'description' => '配置集群证书', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'yundun-hsm:ConfigClusterCertificate', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DataEncryptionService', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'The request processing has failed due to some unknown error.', + ], + [ + 'apiName' => 'RotateClusterManagedCert', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'yundun-hsm:RotateClusterManagedCert', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DataEncryptionService', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - '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' => '查询支持加密服务的区域列表', - 'summary' => '查询支持加密服务的地域。', - ], - ], - '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', ], + 'resourceTypes' => [], ], ]; |
