'1.0', 'info' => ['style' => 'RPC', 'product' => 'appstream-center', 'version' => '2021-02-20'], 'directories' => [ [ 'children' => ['ClientUserLogout', 'GetLoginToken', 'RefreshLoginToken', 'GetStsToken', 'FindIdpListByLoginIdentifier'], 'type' => 'directory', 'title' => '客户端登录认证', 'id' => 289934, ], ], 'components' => [ 'schemas' => [], ], 'apis' => [ 'ClientUserLogout' => [ 'methods' => ['get', 'post'], 'schemes' => ['http', 'https'], 'security' => [ [ 'Anonymous' => [], ], ], 'deprecated' => false, 'systemTags' => ['operationType' => 'none'], 'parameters' => [ [ 'name' => 'LoginToken', 'in' => 'query', 'schema' => ['description' => '登录Token。', 'type' => 'string', 'required' => false, 'example' => 'v22369636c721ba6b3ddb1683341016775c3f63e4d0e78f120f9a0544ed826b7af7daf747c402f0d0730b52f451b70****'], ], [ 'name' => 'SessionId', 'in' => 'query', 'schema' => ['description' => '登录的会话ID。', 'type' => 'string', 'required' => false, 'example' => '597e869d-ea14-4b83-9490-714f68****'], ], [ 'name' => 'ClientId', 'in' => 'query', 'schema' => ['description' => '客户端ID。', 'type' => 'string', 'required' => false, 'example' => 'eac19bef-1e45-4190-a03a-4ea74b****'], ], [ 'name' => 'OfficeSiteId', 'in' => 'query', 'schema' => ['description' => '办公网络ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-hongkong+dir-643067****'], ], [ 'name' => 'ProfileRegion', 'in' => 'query', 'schema' => [ 'description' => '账号所属站点。', 'type' => 'string', 'required' => false, 'enumValueTitles' => ['ap_southeast_1' => '国际站', 'cn_hangzhou' => '国内站'], 'example' => 'cn_hangzhou', ], ], ], 'responses' => [ 200 => [ 'schema' => [ 'title' => 'Schema of Response', 'description' => '返回数据结构。', 'type' => 'object', 'properties' => [ 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => '1CBAFFAB-B697-4049-A9B1-67E1FC5F****'], ], ], ], ], 'title' => '客户端退出登录', 'summary' => '客户端退出登录,销毁登录凭证。', 'changeSet' => [], 'flowControl' => [ 'flowControlList' => [], ], 'ramActions' => [], 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"1CBAFFAB-B697-4049-A9B1-67E1FC5F****\\"\\n}","type":"json"}]', ], 'FindIdpListByLoginIdentifier' => [ 'summary' => '用于客户端查询办公网络或企业标识符的登录配置信息。', 'methods' => ['get', 'post'], 'schemes' => ['http', 'https'], 'security' => [ [ 'Anonymous' => [], ], ], 'operationType' => 'read', 'deprecated' => false, 'systemTags' => [ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', 'abilityTreeCode' => '140090', 'abilityTreeNodes' => ['FEATUREappstreamingV87T4P'], ], 'parameters' => [ [ 'name' => 'ClientId', 'in' => 'formData', 'schema' => ['description' => '自定义的客户端唯一ID。', 'type' => 'string', 'required' => false, 'example' => '370b56f8-2812-4b6c-bfa6-2560791c****'], ], [ 'name' => 'ClientOS', 'in' => 'formData', 'schema' => ['description' => '客户端操作系统。', 'type' => 'string', 'required' => false, 'example' => 'windows_\\"Windows 10 Enterprise\\" 10.0 (Build 14393)'], ], [ 'name' => 'ClientVersion', 'in' => 'formData', 'schema' => ['description' => '应用的客户端版本号。', 'type' => 'string', 'required' => false, 'example' => '2.0.1-D-20211008.101607'], ], [ 'name' => 'ClientChannel', 'in' => 'formData', 'schema' => ['description' => '自定义的客户端标识,用于区分不同的应用。', 'type' => 'string', 'required' => false, 'example' => 'pc'], ], [ 'name' => 'Uuid', 'in' => 'formData', 'schema' => ['description' => '客户端唯一标识。若使用无影客户端,可在客户端登录界面的关于对话框中查看该参数。', 'type' => 'string', 'required' => false, 'example' => '2943802884B27030B6759F9132B2****'], ], [ 'name' => 'LoginIdentifier', 'in' => 'formData', 'schema' => ['description' => '企业标识符。', 'type' => 'string', 'required' => true, 'example' => 'Aliyun123***'], ], [ 'name' => 'SupportTypes', 'in' => 'formData', 'style' => 'repeatList', 'schema' => [ 'description' => '支持的登录类型。', 'type' => 'array', 'items' => [ 'description' => '支持的登录类型。', 'type' => 'string', 'required' => false, 'enumValueTitles' => ['ad' => 'AD域账号', 'simple' => '便捷账号'], 'example' => 'ad', ], 'required' => false, 'maxItems' => 100, ], ], [ 'name' => 'AvailableFeatures', 'in' => 'query', 'style' => 'json', 'schema' => [ 'description' => '客户端支持的特性。', 'type' => 'object', 'required' => false, 'additionalProperties' => [ 'type' => 'string', 'description' => '客户端支持的特性。', 'enumValueTitles' => ['Business' => '支持商业版'], 'example' => '{\\"Business\\":\\"1\\"}', ], ], ], [ 'name' => 'ClientIp', 'in' => 'query', 'schema' => ['description' => '客户端IP。', 'type' => 'string', 'required' => false, 'example' => '22.21.XX.XX'], ], ], 'responses' => [ 200 => [ 'schema' => [ 'title' => 'Schema of Response', 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => 'AD2D0761-1FE5-549D-B169-D3F8D19C****'], 'IdpInfos' => [ 'description' => '身份源信息。', 'type' => 'array', 'items' => [ 'type' => 'object', 'properties' => [ 'IdpId' => ['description' => '用户所属身份源配置ID。', 'type' => 'string', 'example' => 'idp-hlyexfvwert9m8****'], 'IdpName' => ['description' => '用户身份源名称。', 'type' => 'string', 'example' => 'DingTalk'], 'SsoProtocol' => [ 'description' => 'SSO协议类型。', 'type' => 'string', 'enumValueTitles' => ['OAuth2' => 'OAuth2协议', 'SAML' => 'SAML协议', 'OIDC' => 'OIDC协议'], 'example' => 'SAML', ], 'IdpProvider' => ['description' => '应用所属的资源提供者。', 'type' => 'string', 'example' => 'DingTalk'], 'SsoServiceUrl' => ['description' => 'SSO服务地址。', 'type' => 'string', 'example' => 'https://e1iwdlcn.aliyunidaas.com/login/app/app_****/saml2/sso'], 'Cookies' => ['description' => '用于使用Cookie方式实现应用内免登时告知客户端需要写入哪些Cookie到应用内。', 'type' => 'string', 'example' => 'null'], 'AccountType' => [ 'description' => '账号类型。', 'type' => 'string', 'enumValueTitles' => ['ad' => 'AD域账号', 'simple' => '便捷账号'], 'example' => 'simple', ], 'JumpSwitch' => ['description' => '是否跳转到浏览器登录。', 'type' => 'string', 'example' => 'true'], 'IdpNameEN' => ['description' => '英文名称。', 'type' => 'string', 'example' => 'wy-simple'], ], 'description' => '', ], ], 'OfficeSiteInfo' => [ 'description' => '查询到的办公网络信息。', 'type' => 'object', 'properties' => [ 'OfficeSiteId' => ['description' => '办公网络ID。', 'type' => 'string', 'example' => 'cn-shanghai+dir-448204****'], 'SsoServiceUrl' => ['description' => 'SSO服务地址。', 'type' => 'string', 'example' => 'https://e1iwdlcn.aliyunidaas.com/login/app/app_****/saml2/sso'], 'RegionId' => ['description' => '地域ID。', 'type' => 'string', 'example' => 'cn-hangzhou'], 'AccessType' => [ 'description' => '允许的客户端网络连接方式。', 'type' => 'string', 'enumValueTitles' => ['INTERNET' => '互联网访问', 'VPC' => '专网访问', 'ANY' => '都允许'], 'example' => 'INTERNET', ], 'ProviderId' => ['description' => '所属账号的BID。', 'type' => 'string', 'example' => '26842'], 'PreferVpcAccess' => ['title' => '是否优先专网', 'type' => 'boolean'], 'VpcAccessAddress' => ['title' => '专网接入地址', 'type' => 'string'], ], ], 'TenantAliasInfo' => [ 'description' => '企业标识符信息。', 'type' => 'object', 'properties' => [ 'TenantAlias' => ['description' => '企业标识符。', 'type' => 'string', 'example' => 'Or09****'], 'AccessType' => [ 'description' => '允许的客户端网络连接方式。', 'type' => 'string', 'enumValueTitles' => ['INTERNET' => '互联网访问', 'VPC' => '专网访问', 'ANY' => '都允许'], 'example' => 'INTERNET', ], 'PreferVpcAccess' => ['title' => '是否优先专网', 'type' => 'boolean'], 'VpcAccessAddress' => ['title' => '专网接入地址', 'type' => 'string'], 'IsLoginByCipherParam' => ['type' => 'string'], ], ], 'ProfileRegion' => [ 'description' => '账号所属站点。', 'type' => 'string', 'enumValueTitles' => ['ap_southeast_1' => '国际站', 'cn_hangzhou' => '中国站'], 'example' => 'cn_hangzhou', ], 'PopRegionConfig' => [ 'description' => '中心服务请求地址,用于服务高可用场景。', 'type' => 'object', 'additionalProperties' => ['type' => 'string', 'description' => '登录服务地址。', 'example' => 'cn-shanghai'], ], ], ], ], ], 'title' => '查询登录配置', 'changeSet' => [ ['createdAt' => '2024-12-13T02:07:38.000Z', 'description' => '请求参数发生变更'], ['createdAt' => '2024-11-02T06:16:44.000Z', 'description' => '请求参数发生变更、响应参数发生变更'], ['createdAt' => '2022-06-22T06:10:33.000Z', 'description' => 'OpenAPI 下线'], ], 'flowControl' => [ 'flowControlList' => [], ], 'ramActions' => [], 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"AD2D0761-1FE5-549D-B169-D3F8D19C****\\",\\n \\"IdpInfos\\": [\\n {\\n \\"IdpId\\": \\"idp-hlyexfvwert9m8****\\",\\n \\"IdpName\\": \\"DingTalk\\",\\n \\"SsoProtocol\\": \\"SAML\\",\\n \\"IdpProvider\\": \\"DingTalk\\",\\n \\"SsoServiceUrl\\": \\"https://e1iwdlcn.aliyunidaas.com/login/app/app_****/saml2/sso\\",\\n \\"Cookies\\": \\"null\\",\\n \\"AccountType\\": \\"simple\\",\\n \\"JumpSwitch\\": \\"true\\",\\n \\"IdpNameEN\\": \\"wy-simple\\"\\n }\\n ],\\n \\"OfficeSiteInfo\\": {\\n \\"OfficeSiteId\\": \\"cn-shanghai+dir-448204****\\",\\n \\"SsoServiceUrl\\": \\"https://e1iwdlcn.aliyunidaas.com/login/app/app_****/saml2/sso\\",\\n \\"RegionId\\": \\"cn-hangzhou\\",\\n \\"AccessType\\": \\"INTERNET\\",\\n \\"ProviderId\\": \\"26842\\",\\n \\"PreferVpcAccess\\": true,\\n \\"VpcAccessAddress\\": \\"\\"\\n },\\n \\"TenantAliasInfo\\": {\\n \\"TenantAlias\\": \\"Or09****\\",\\n \\"AccessType\\": \\"INTERNET\\",\\n \\"PreferVpcAccess\\": true,\\n \\"VpcAccessAddress\\": \\"\\",\\n \\"IsLoginByCipherParam\\": \\"\\"\\n },\\n \\"ProfileRegion\\": \\"cn_hangzhou\\",\\n \\"PopRegionConfig\\": {\\n \\"key\\": \\"cn-shanghai\\"\\n }\\n}","type":"json"}]', ], 'GetLoginToken' => [ 'methods' => ['post', 'get'], 'schemes' => ['http', 'https'], 'security' => [ [ 'Anonymous' => [], ], ], 'operationType' => 'read', 'deprecated' => false, 'systemTags' => [ 'operationType' => 'none', 'riskType' => 'none', 'chargeType' => 'free', 'abilityTreeCode' => '125244', 'abilityTreeNodes' => ['FEATUREappstreamingV87T4P'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', 'schema' => ['description' => '地域 ID。', 'type' => 'string', 'required' => false, 'docRequired' => true, 'example' => 'cn-shanghai'], ], [ 'name' => 'ClientId', 'in' => 'query', 'schema' => ['description' => '客户端生成的唯一ID。', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => '05967f80-6f51-46cb-a27c-****'], ], [ 'name' => 'DirectoryId', 'in' => 'query', 'schema' => ['description' => '办公网络ID,与`OfficeSiteId`含义相同。建议停止使用`DirectoryId`,改为使用`OfficeSiteId`。`DirectoryId`和`OfficeSiteId`只能填写一个,不可同时填写。', 'type' => 'string', 'required' => false, 'docRequired' => false, 'example' => 'cn-beijing+dir-j9dd****'], ], [ 'name' => 'OfficeSiteId', 'in' => 'query', 'schema' => ['description' => '办公网络ID。', 'type' => 'string', 'required' => false, 'docRequired' => false, 'example' => 'cn-beijing+dir-j9dd****'], ], [ 'name' => 'SessionId', 'in' => 'query', 'schema' => ['description' => '登录的会话ID。'."\n" ."\n" .'若未绑定虚拟MFA设备或者未开启客户端二次认证,则不需要填写SessionId。'."\n" .'若已绑定虚拟MFA设备或者已开启客户端二次认证,则ADPassword之后的登录认证阶段需要填写SessionId。可从便捷账号验证(即GetLoginToken请求处于ADPassword阶段)的返回结果中获取SessionId。', 'type' => 'string', 'required' => false, 'docRequired' => false, 'example' => 'c6f3cd91-65fc-4c7b-b189-2a73da0****'], ], [ 'name' => 'CurrentStage', 'in' => 'query', 'schema' => ['description' => '当前登录认证阶段,依次为:'."\n" ."\n" .'1. `ADPassword`:验证用户信息。当使用便捷账号或者AD账号的账密认证时填写此值。'."\n" .'1. `MFABind`:绑定虚拟MFA设备。'."\n" .'1. `MFAVerify`:验证虚拟MFA设备生成的安全码。'."\n" .'1. `TokenVerify`:客户端二次认证。'."\n" .'1. `ChangePassword`:修改用户密码。'."\n" .'1. `KeepAliveVerify`: KeepAliveToken有效时,可用于换取LoginToken。'."\n" .'1. `PhoneVerifyTenantSelect`: 手机号登录场景下,用于选择其中一个企业ID登录。'."\n" .'1. `VerifyForRisk`: 识别登录风险后的核身校验。', 'type' => 'string', 'required' => false, 'docRequired' => false, 'example' => 'SsoTokenLogin'], ], [ 'name' => 'EndUserId', 'in' => 'query', 'schema' => ['description' => '便捷账号或AD域账号的用户名。当`CurrentStage`为`ADPassword`时必填。', 'type' => 'string', 'required' => false, 'docRequired' => false, 'example' => 'user01'], ], [ 'name' => 'Password', 'in' => 'query', 'schema' => ['description' => '便捷账号或AD域账号的密码。当`CurrentStage`为`ADPassword`时必填。', 'type' => 'string', 'required' => false, 'docRequired' => false, 'example' => 'Admin@1234****', 'maxLength' => 500, 'minLength' => 1], ], [ 'name' => 'EncryptedPassword', 'in' => 'query', 'schema' => ['description' => '已加密密码。', 'type' => 'string', 'required' => false, 'docRequired' => false, 'example' => '04d7****8e90bb0484fc;gJ1GLca1vQRRqQbRvByU0A==;5kOWZE7AtbQhki+4LAo69A=='], ], [ 'name' => 'OldPassword', 'in' => 'query', 'schema' => ['description' => '旧密码。当`CurrentStage`为`ChangePassword`时必填。', 'type' => 'string', 'required' => false, 'docRequired' => false, 'example' => 'Admin@1234****'."\n"], ], [ 'name' => 'NewPassword', 'in' => 'query', 'schema' => ['description' => '新密码。当`CurrentStage`为`ChangePassword`时必填。', 'type' => 'string', 'required' => false, 'docRequired' => false, 'example' => 'Admin@1234****'."\n"], ], [ 'name' => 'AuthenticationCode', 'in' => 'query', 'schema' => ['description' => '虚拟MFA设备生成的安全码。当`CurrentStage`为`MFAVerify`时必填。', 'type' => 'string', 'required' => false, 'docRequired' => false, 'example' => '182901'], ], [ 'name' => 'SsoSessionToken', 'in' => 'query', 'schema' => ['description' => 'SSO场景下的登录令牌。', 'type' => 'string', 'required' => false, 'docRequired' => false, 'example' => '04d707a6-fb23-44a7-aae7-8e90****'], ], [ 'name' => 'ClientOS', 'in' => 'query', 'schema' => ['description' => '客户端操作系统。', 'type' => 'string', 'required' => false, 'example' => 'windows_\\"Windows 10 Pro\\" 10.0 (Build 22631)'], ], [ 'name' => 'ClientVersion', 'in' => 'query', 'schema' => ['description' => '客户端版本。', 'type' => 'string', 'required' => false, 'example' => '7.3.0-20240619.143924'], ], [ 'name' => 'TokenCode', 'in' => 'query', 'schema' => ['description' => '若已在无影云电脑企业版控制台开启客户端二次认证,且识别到当前登录用户有风险时,会发送该二次认证验证码到终端用户邮箱。当`CurrentStage`为`TokenVerify`时必填。', 'type' => 'string', 'required' => false, 'docRequired' => false, 'example' => '1234***'], ], [ 'name' => 'UmidToken', 'in' => 'query', 'schema' => ['description' => '幂等校验参数。', 'type' => 'string', 'required' => false, 'docRequired' => false, 'example' => '04d707a6-fb23-44a7-aae7-8e90bb04****'], ], [ 'name' => 'FingerPrintData', 'in' => 'query', 'schema' => ['description' => '指纹信息,目前暂时停止支持。', 'type' => 'string', 'required' => false, 'example' => 'null'], ], [ 'name' => 'KeepAlive', 'in' => 'query', 'schema' => ['description' => '是否保持登录。', 'type' => 'boolean', 'required' => false, 'example' => 'true'], ], [ 'name' => 'KeepAliveToken', 'in' => 'query', 'schema' => ['description' => '用于保持登录的凭证(Token),在登录成功且用户开启了保持登录选项后,接口会返回KeepAliveToken,在KeepAliveToken有效期内可以调用GetLoginToken接口并将CurrentStage设为KeepAliveVerify来换取登录凭证(LoginToken)。当CurrentStage为KeepAliveVerify时,KeepAliveToken必填。', 'type' => 'string', 'required' => false, 'example' => '00ugamMAoO1+u1MlhmgCeZJ75q094x3H/4kg7ZaTI3f/joVTVPIpJgfv9JFkPLNxnQjblrvsByNas08mc6FtVWvQPOE68fqmt6QMM4UbRtahm8luxEXvicF58qSPXW1hxOtV/Ev6d92VBz2Bck/N4CYyjD0iLocfN8jkBnt231****'], ], [ 'name' => 'Uuid', 'in' => 'query', 'schema' => ['description' => '客户端唯一标识。若使用无影客户端,可在客户端登录界面的关于对话框中查看该参数。', 'type' => 'string', 'required' => false, 'example' => 'C50973691A6D2BE23F2CDD73B85B****'], ], [ 'name' => 'ImageUrl', 'in' => 'query', 'schema' => ['description' => '图片URL。'."\n" ."\n" .'> 该参数已停用。', 'type' => 'string', 'required' => false, 'example' => 'null'], ], [ 'name' => 'EncryptedFingerPrintData', 'in' => 'query', 'schema' => ['description' => '指纹信息。'."\n" ."\n" .'> 该参数已停用。', 'type' => 'string', 'required' => false, 'example' => 'null'], ], [ 'name' => 'EncryptedKey', 'in' => 'query', 'schema' => ['description' => '加密的密钥ID。', 'type' => 'string', 'required' => false, 'example' => '4d7****8e90bb0484fc'], ], [ 'name' => 'ClientType', 'in' => 'query', 'schema' => ['description' => '客户端的类型。', 'type' => 'string', 'required' => false, 'example' => 'windows'], ], [ 'name' => 'SsoExtendsCookies', 'in' => 'query', 'schema' => ['description' => 'SSO 登录的Cookie,应用内免登使用。', 'type' => 'string', 'required' => false, 'example' => 'null'], ], [ 'name' => 'LoginName', 'in' => 'query', 'schema' => ['description' => '已停用。', 'type' => 'string', 'required' => false, 'example' => 'null'], ], [ 'name' => 'LoginIdentifier', 'in' => 'query', 'schema' => ['description' => '企业标识符。', 'type' => 'string', 'required' => false, 'example' => 'Fe04****'], ], [ 'name' => 'IdpId', 'in' => 'query', 'schema' => ['description' => '登录认证服务ID,通过接口[FindIdpListByLoginIdentifier](~~FindIdpListByLoginIdentifier~~)获取。', 'type' => 'string', 'required' => false, 'example' => 'idp-iwntrlbb98q7v****'], ], [ 'name' => 'NetworkType', 'in' => 'query', 'schema' => [ 'description' => '客户端的网络连接类型。', 'type' => 'string', 'required' => false, 'enumValueTitles' => ['INTERNET' => '互联网', 'VPC' => '企业专网'], 'example' => 'INTERNET', ], ], [ 'name' => 'Phone', 'in' => 'query', 'schema' => ['description' => '手机号码,手机号登录场景下使用。'."\n" .'> 国际站账号不支持。', 'type' => 'string', 'required' => false, 'example' => '1822727****'], ], [ 'name' => 'PhoneVerifyCode', 'in' => 'query', 'schema' => ['description' => '手机验证码,手机号登录场景下使用。'."\n" .'> 国际站账号不支持。', 'type' => 'string', 'required' => false, 'example' => '321123'], ], [ 'name' => 'AvailableFeatures', 'in' => 'query', 'style' => 'json', 'schema' => [ 'description' => '客户端支持的特性。', 'type' => 'object', 'required' => false, 'additionalProperties' => [ 'type' => 'string', 'enumValueTitles' => ['Business' => '支持商业版'], 'description' => '客户端支持的特性。', 'example' => '{\\"Business\\":\\"1\\"}', ], ], ], [ 'name' => 'MfaType', 'in' => 'query', 'schema' => [ 'description' => 'MFA校验的类型。', 'type' => 'string', 'required' => false, 'enumValueTitles' => ['TOTP' => '手机令牌', 'PHONE' => '手机验证码', 'EMAIL' => '邮箱'], 'example' => 'TOTP', ], ], [ 'name' => 'ClientName', 'in' => 'query', 'schema' => ['description' => '客户端名称。', 'type' => 'string', 'required' => false, 'example' => 'HONOR-BRN-HXXB'], ], [ 'name' => 'ProfileRegion', 'in' => 'query', 'schema' => [ 'description' => '租户所属站点。', 'type' => 'string', 'required' => false, 'enumValueTitles' => ['ap_southeast_1' => '国际站', 'cn_hangzhou' => '中国站'], 'example' => 'cn_hangzhou', ], ], [ 'name' => 'Channel', 'in' => 'query', 'schema' => ['type' => 'string'], ], [ 'name' => 'AreaSite', 'in' => 'query', 'schema' => ['type' => 'string'], ], [ 'name' => 'CipherEndUserId', 'in' => 'query', 'schema' => ['type' => 'string'], ], [ 'name' => 'CipherPassword', 'in' => 'query', 'schema' => ['type' => 'string'], ], ], 'responses' => [ 200 => [ 'schema' => [ 'description' => '返回信息集合。', 'type' => 'object', 'properties' => [ 'Email' => ['description' => '用户邮箱。在登录后随LoginToken返回。'."\n" ."\n" .'- 如果是便捷账号,返回创建便捷账号时设置的邮箱。'."\n" .'- 如果是AD域账号,返回以下形式:用户名@AD域名。', 'type' => 'string', 'example' => 'alice***@example.com'], 'Secret' => ['description' => '绑定虚拟MFA设备时的密钥。用于`MFABind`阶段。'."\n" ."\n" .'> 关于各认证阶段的详细信息,参见本接口请求参数`CurrentStage`的参数说明。', 'type' => 'string', 'example' => '4JZNSDHDM3T6AZ4G2O5OWXBLLE4P****'], 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'EEA72491-B731-53D6-83ED-209769D6****'], 'EndUserId' => ['description' => '便捷账号用户名或AD用户名。', 'type' => 'string', 'example' => 'alice'], 'LoginToken' => ['description' => '登录凭证。', 'type' => 'string', 'example' => 'v185fdd7f6d39fa7861981639366085772e150a390a5bb7b43c4e62440d94fc392b945770e1596cebe90085ce0af4d****'], 'NextStage' => ['description' => '预期的下一阶段。例如,若管理员在无影云电脑企业版控制台开启了MFA认证,则当用户名密码认证通过后(即`ADPassword`阶段后),该参数会返回`MFAVerify`,表示此时需要做MFA认证。'."\n" ."\n" .'> 关于各认证阶段的详细信息,参见本接口请求参数`CurrentStage`的参数说明。', 'type' => 'string', 'example' => 'MFABind'], 'QrCodePng' => ['description' => '绑定虚拟MFA设备时的密钥二维码。使用Base64编码。可以为空,用于`MFABind`阶段。'."\n" ."\n" .'> 关于各认证阶段的详细信息,参见本接口请求参数`CurrentStage`的参数说明。', 'type' => 'string', 'example' => '5OCLLKKOJU5HPBX66H3QCTWY******'."\n"], 'Label' => ['description' => '便捷账号属性。如果是AD域账号,则返回空值。', 'type' => 'string', 'example' => 'test:wuying'."\n"], 'SessionId' => ['description' => '会话ID。 仅在同一会话第一次调用GetLoginToken时返回。需要多次认证时,后续的阶段需要传入该参数。', 'type' => 'string', 'example' => 'cc15c91c-821b-4edd-9af2-6df66cc****'], 'Phone' => ['description' => '便捷账号的手机号。如果是AD域账号,则返回空值。', 'type' => 'string', 'example' => '1826717****'], 'TenantId' => ['description' => '阿里云账号ID。硬件终端识别使用。', 'type' => 'integer', 'format' => 'int64', 'example' => '13747924304****'], 'KeepAliveToken' => ['description' => '用于保持登录的凭证(Token),在登录成功且用户开启了保持登录选项后,接口会返回`KeepAliveToken`。若未开启保持登录选项,则返回空值。', 'type' => 'string', 'example' => '006YwvYMsesWWsDBZnVB+Wq9AvJDVIqOY3YCktvtb7+KxMb3ClnNlV8+l/knhZYrXUmeP06IzkjF+IgcZ3vZKOyMprDyFHjCy1r27FRE/U7+geWCl8iQ+yF8GaCRHfJEkC2+ROs93HkT4tfHxyY1J8W7O7ZQGUC/cdCvm+cCP6FIy73IUuPuVR6PcKYXIp***'], 'Industry' => ['description' => '> 该参数不对外开放使用。', 'type' => 'string', 'example' => 'edu'], 'Props' => [ 'description' => '> 该参数不对外开放使用。', 'type' => 'object', 'additionalProperties' => ['type' => 'string', 'description' => '> 该参数不对外开放使用。', 'example' => '{\'environment\': \'online\', \'sourceClientType\': \'WINDOWS'], ], 'WyId' => ['description' => '用户全局唯一ID。', 'type' => 'string', 'example' => '0aba1403b337a***'], 'VpcRegionId' => ['description' => 'VPC地域ID,用于专网登录。', 'type' => 'string', 'example' => 'cn-beijing'], 'WindowDisplayMode' => ['description' => '> 该参数不对外开放使用。', 'type' => 'string', 'example' => 'Windowed'], 'AccountType' => ['description' => '账号类型, 便捷账号或者AD域账号。', 'type' => 'string', 'example' => 'ad'], 'TenantInfos' => [ 'description' => '企业ID信息,在手机号登录场景下,一个手机号可能开通了多个企业ID的登录能力,此时需要传入CurrentState:PhoneVerifyTenantSelect选择其中一个企业ID进行登录。', 'type' => 'array', 'items' => [ 'description' => '企业ID信息。', 'type' => 'object', 'properties' => [ 'TenantAlias' => ['description' => '企业ID。', 'type' => 'string', 'example' => 'Up830***'], 'AccessType' => [ 'description' => '客户端的网络连接类型。', 'type' => 'string', 'enumValueTitles' => ['INTERNET' => '互联网', 'VPC' => '企业专网', 'ANY' => '都允许'], 'example' => 'INTERNET', ], ], ], ], 'TenantAlias' => ['description' => '登录的企业标识符名称。', 'type' => 'string', 'example' => 'Rq201***'], 'AccessType' => ['description' => '客户端的网络连接类型。', 'type' => 'string', 'example' => 'INTERNET'], 'OfficeSites' => [ 'description' => 'AD登录后,该AD对应的办公网络信息。', 'type' => 'array', 'items' => ['description' => 'AD登录后,该AD对应的办公网络ID。', 'type' => 'string', 'example' => '[\'cn-beijing+dir-096920***\', \'cn-shenzhen+dir-2546908***\']'], ], 'IdpId' => ['description' => '用户所属身份源配置ID。', 'type' => 'string', 'example' => 'idp-7ttvs4ove8bo5***'], 'AdDomain' => ['description' => 'AD办公网络地址。', 'type' => 'string', 'example' => 'easthp***.com'], 'RiskVerifyInfo' => [ 'description' => '登录风险识别相关信息,如检测到风险,需要通过返回的邮箱或者手机号进行核身。'."\n" .'通过返回的手机号或邮箱,调用`SendVerifyCode`接口发送验证码,然后调用`GetLoginToken`接口指定`CurrentStage`参数为`VerifyForRisk`进行核身。', 'type' => 'object', 'properties' => [ 'Email' => ['description' => '用于身份验证的邮箱地址。', 'type' => 'string', 'example' => 'ppas***@aliyun.com'], 'LastLockDuration' => ['description' => '锁定时间。单位:秒。', 'type' => 'integer', 'format' => 'int64', 'example' => '12000'], 'Locked' => ['description' => '用户是否被锁定。', 'type' => 'boolean', 'example' => 'true'], 'Phone' => ['description' => '用于核身的手机号。', 'type' => 'string', 'example' => '138****1111'], ], ], 'PasswordStrategy' => [ 'description' => '密码策略。', 'type' => 'object', 'properties' => [ 'TenantPasswordLength' => ['description' => '要求的密码长度。', 'type' => 'integer', 'format' => 'int32', 'example' => '12'], 'TenantAlternativeChars' => [ 'description' => '要求的密码内容。', 'type' => 'array', 'items' => [ 'description' => '要求的密码内容。', 'type' => 'string', 'enumValueTitles' => ['NUMBER' => '数字', 'SPECIAL_CHAR' => '特殊字符', 'LOWER_LETTER' => '小写字母', 'UPPER_LETTER' => '大写字母'], 'example' => 'UPPER_LETTER', ], ], ], ], 'Reason' => [ 'description' => '登录失败的原因。', 'type' => 'string', 'enumValueTitles' => ['ResetPassword' => '密码已重置', 'PasswordExpired' => '需要修改密码'], 'example' => 'PasswordExpired', ], 'MfaTypeList' => [ 'description' => '触发MFA校验时,可选的MFA校验类型。', 'type' => 'array', 'items' => [ 'type' => 'object', 'properties' => [ 'Name' => [ 'description' => 'MFA校验类型。', 'type' => 'string', 'enumValueTitles' => ['TOTP' => '手机令牌', 'PHONE' => '手机验证码', 'EMAIL' => '邮箱'], 'example' => 'PHONE', ], 'Stage' => [ 'description' => '选定MFA类型后,对应CurrentStage参数的值。', 'type' => 'string', 'enumValueTitles' => ['MFAVerifyV1' => '执行MFA校验', 'MFABindV1' => '绑定MFA设备'], 'example' => 'MFABindV1', ], ], 'description' => '', ], ], 'NickName' => ['type' => 'string', 'description' => ''], ], ], ], ], 'title' => '获取登录凭证', 'summary' => '通过企业标识符获取登录凭证。', 'changeSet' => [ ['createdAt' => '2025-04-27T03:27:39.000Z', 'description' => '响应参数发生变更'], ['createdAt' => '2025-02-27T12:04:12.000Z', 'description' => '请求参数发生变更'], ['createdAt' => '2024-12-11T03:48:32.000Z', 'description' => '请求参数发生变更'], ['createdAt' => '2024-12-06T09:32:21.000Z', 'description' => '请求参数发生变更'], ['createdAt' => '2024-12-06T09:27:27.000Z', 'description' => '请求参数发生变更'], ['createdAt' => '2024-11-02T06:19:13.000Z', 'description' => '请求参数发生变更、响应参数发生变更'], ['createdAt' => '2022-06-22T08:13:40.000Z', 'description' => '请求参数发生变更'], ['createdAt' => '2022-04-28T15:40:09.000Z', 'description' => 'OpenAPI 下线'], ], 'flowControl' => [ 'flowControlList' => [], ], 'ramActions' => [], 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Email\\": \\"alice***@example.com\\",\\n \\"Secret\\": \\"4JZNSDHDM3T6AZ4G2O5OWXBLLE4P****\\",\\n \\"RequestId\\": \\"EEA72491-B731-53D6-83ED-209769D6****\\",\\n \\"EndUserId\\": \\"alice\\",\\n \\"LoginToken\\": \\"v185fdd7f6d39fa7861981639366085772e150a390a5bb7b43c4e62440d94fc392b945770e1596cebe90085ce0af4d****\\",\\n \\"NextStage\\": \\"MFABind\\",\\n \\"QrCodePng\\": \\"5OCLLKKOJU5HPBX66H3QCTWY******\\\\n\\",\\n \\"Label\\": \\"test:wuying\\\\n\\",\\n \\"SessionId\\": \\"cc15c91c-821b-4edd-9af2-6df66cc****\\",\\n \\"Phone\\": \\"1826717****\\",\\n \\"TenantId\\": 0,\\n \\"KeepAliveToken\\": \\"006YwvYMsesWWsDBZnVB+Wq9AvJDVIqOY3YCktvtb7+KxMb3ClnNlV8+l/knhZYrXUmeP06IzkjF+IgcZ3vZKOyMprDyFHjCy1r27FRE/U7+geWCl8iQ+yF8GaCRHfJEkC2+ROs93HkT4tfHxyY1J8W7O7ZQGUC/cdCvm+cCP6FIy73IUuPuVR6PcKYXIp***\\",\\n \\"Industry\\": \\"edu\\",\\n \\"Props\\": {\\n \\"key\\": \\"{\'environment\': \'online\', \'sourceClientType\': \'WINDOWS\\"\\n },\\n \\"WyId\\": \\"0aba1403b337a***\\",\\n \\"VpcRegionId\\": \\"cn-beijing\\",\\n \\"WindowDisplayMode\\": \\"Windowed\\",\\n \\"AccountType\\": \\"ad\\",\\n \\"TenantInfos\\": [\\n {\\n \\"TenantAlias\\": \\"Up830***\\",\\n \\"AccessType\\": \\"INTERNET\\"\\n }\\n ],\\n \\"TenantAlias\\": \\"Rq201***\\",\\n \\"AccessType\\": \\"INTERNET\\",\\n \\"OfficeSites\\": [\\n \\"[\'cn-beijing+dir-096920***\', \'cn-shenzhen+dir-2546908***\']\\"\\n ],\\n \\"IdpId\\": \\"idp-7ttvs4ove8bo5***\\",\\n \\"AdDomain\\": \\"easthp***.com\\",\\n \\"RiskVerifyInfo\\": {\\n \\"Email\\": \\"ppas***@aliyun.com\\",\\n \\"LastLockDuration\\": 12000,\\n \\"Locked\\": true,\\n \\"Phone\\": \\"138****1111\\"\\n },\\n \\"PasswordStrategy\\": {\\n \\"TenantPasswordLength\\": 12,\\n \\"TenantAlternativeChars\\": [\\n \\"UPPER_LETTER\\"\\n ]\\n },\\n \\"Reason\\": \\"PasswordExpired\\",\\n \\"MfaTypeList\\": [\\n {\\n \\"Name\\": \\"PHONE\\",\\n \\"Stage\\": \\"MFABindV1\\"\\n }\\n ],\\n \\"NickName\\": \\"\\"\\n}","type":"json"}]', ], 'GetStsToken' => [ 'methods' => ['post', 'get'], 'schemes' => ['http', 'https'], 'security' => [ [ 'Anonymous' => [], ], ], 'operationType' => 'read', 'deprecated' => false, 'systemTags' => [ 'operationType' => 'none', 'riskType' => 'none', 'chargeType' => 'free', 'abilityTreeNodes' => ['FEATUREappstreamingV87T4P'], 'autoTest' => false, 'tenantRelevance' => 'publicInformation', ], 'parameters' => [ [ 'name' => 'ClientId', 'in' => 'formData', 'schema' => ['description' => '客户端生成的唯一ID。', 'type' => 'string', 'required' => false, 'example' => 'eac19bef-1e45-4190-a03a-4ea74b69****'], ], [ 'name' => 'ClientOS', 'in' => 'formData', 'schema' => ['description' => '客户端操作系统。', 'type' => 'string', 'required' => false, 'example' => 'windows_\\"Windows 10 Enterprise\\" 10.0 (Build 14393)'], ], [ 'name' => 'ClientVersion', 'in' => 'formData', 'schema' => ['description' => '客户端版本号。', 'type' => 'string', 'required' => false, 'example' => '6.3.0-R-20231106.210000'], ], [ 'name' => 'ClientIp', 'in' => 'formData', 'schema' => ['description' => '客户端IP地址。', 'type' => 'string', 'required' => false, 'example' => '22.21.2.**'], ], [ 'name' => 'Uuid', 'in' => 'formData', 'schema' => ['description' => '设备UUID。', 'type' => 'string', 'required' => false, 'example' => '2943802884B27030B6759F9132B2****'], ], [ 'name' => 'AuthCode', 'in' => 'formData', 'schema' => ['description' => '授权码。该授权码有效期为3分钟,且无论校验成功或失败,只能被使用一次。当为一个用户生成多个授权码时,只有最后一次生成的有效。', 'type' => 'string', 'required' => true, 'example' => 'e4e169bea1cc48e8afac53**********'], ], ], 'responses' => [ 200 => [ 'schema' => [ 'title' => 'Schema of Response', 'description' => '返回数据集合。', 'type' => 'object', 'properties' => [ 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => 'CCF92035-6231-5ABB-930E-1E003C32****'], 'StsTokenModel' => [ 'description' => '临时身份凭证的详细信息。', 'type' => 'object', 'properties' => [ 'SessionId' => ['description' => '登录的会话ID。', 'type' => 'string', 'example' => 'be4be09e-cd00-4b4c-add7-11b4d8****'], 'StsToken' => ['description' => '临时身份凭证。', 'type' => 'string', 'example' => 'sts****'], 'TenantId' => ['description' => '租户ID(阿里云账号UID)。', 'type' => 'integer', 'format' => 'int64', 'example' => '105552640689****'], 'LoginToken' => ['type' => 'string'], 'EndUserId' => ['type' => 'string'], 'ProfileRegion' => ['type' => 'string'], ], ], ], ], ], ], 'staticInfo' => ['returnType' => 'synchronous'], 'title' => '获取临时身份凭证', 'summary' => '获取无影STS Token(临时身份凭证)。', 'changeSet' => [], 'flowControl' => [ 'flowControlList' => [], ], 'ramActions' => [], 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"CCF92035-6231-5ABB-930E-1E003C32****\\",\\n \\"StsTokenModel\\": {\\n \\"SessionId\\": \\"be4be09e-cd00-4b4c-add7-11b4d8****\\",\\n \\"StsToken\\": \\"sts****\\",\\n \\"TenantId\\": 0,\\n \\"LoginToken\\": \\"\\",\\n \\"EndUserId\\": \\"\\",\\n \\"ProfileRegion\\": \\"\\"\\n }\\n}","type":"json"}]', ], 'RefreshLoginToken' => [ 'methods' => ['post', 'get'], 'schemes' => ['http', 'https'], 'security' => [ [ 'Anonymous' => [], ], ], 'systemTags' => [ 'operationType' => 'none', 'abilityTreeCode' => '128463', 'abilityTreeNodes' => ['FEATUREappstreamingV87T4P'], ], 'parameters' => [ [ 'name' => 'ClientId', 'in' => 'query', 'schema' => ['description' => '客户端生成的唯一ID,参考`UUID`。该参数非敏感字段,无需加密。', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'f4a0dc8e-1702-4728-9a60-95b27a35****'."\n"], ], [ 'name' => 'SessionId', 'in' => 'query', 'schema' => ['description' => '登录的会话ID。', 'type' => 'string', 'required' => true, 'docRequired' => false, 'example' => '6442b2fd-ed3e-423a-8e6e-352d26a4****'], ], [ 'name' => 'EndUserId', 'in' => 'query', 'schema' => ['description' => '用户名。', 'type' => 'string', 'required' => false, 'docRequired' => true, 'example' => 'alice'], ], [ 'name' => 'LoginToken', 'in' => 'query', 'schema' => ['description' => '登录凭证。', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'v1046341d8d4e2f05c4aa168196009613594aaf451499bfc75e54699efa7230bc968e1debb1fa4063b01e5d327b467****'], ], [ 'name' => 'OfficeSiteId', 'in' => 'query', 'schema' => ['description' => '办公网络ID。非办公网络登录场景下为空。', 'type' => 'string', 'required' => false, 'example' => 'cn-shenzhen+dir-436909****'], ], [ 'name' => 'LoginIdentifier', 'in' => 'query', 'schema' => ['description' => '企业标识符。', 'type' => 'string', 'required' => false, 'example' => 'Alibaba****'], ], [ 'name' => 'ClientType', 'in' => 'query', 'schema' => [ 'description' => '客户端类型。', 'type' => 'string', 'required' => false, 'enumValueTitles' => ['html5' => 'Web客户端', 'android' => 'Android客户端', 'windows' => 'Windows客户端', 'ios' => 'iOS客户端', 'macos' => 'macOS客户端'], 'example' => 'windows', ], ], [ 'name' => 'Uuid', 'in' => 'query', 'schema' => ['description' => '登录使用的设备UUID。', 'type' => 'string', 'required' => false, 'example' => '2943802884B27030B6759F9132B2****'], ], [ 'name' => 'ProfileRegion', 'in' => 'query', 'schema' => [ 'description' => '账号所属站点。', 'type' => 'string', 'required' => false, 'enumValueTitles' => ['ap_southeast_1' => '国际站', 'cn_hangzhou' => '中国站'], 'example' => 'cn_hangzhou', ], ], ], 'responses' => [ 200 => [ 'schema' => [ 'type' => 'object', 'properties' => [ 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '419F31B9-1FDF-5644-ABA3-D00026FA****'], 'LoginToken' => ['description' => '登录凭证。', 'type' => 'string', 'example' => 'v12369636c721ba6b3ddb1683341016775c3f63e4d0e78f120f9a0544ed826b7af7daf747c402f0d0730b52f451b70****'], ], ], ], ], 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"419F31B9-1FDF-5644-ABA3-D00026FA****\\",\\n \\"LoginToken\\": \\"v12369636c721ba6b3ddb1683341016775c3f63e4d0e78f120f9a0544ed826b7af7daf747c402f0d0730b52f451b70****\\"\\n}","type":"json"}]', 'title' => '刷新登录凭证', 'summary' => '刷新登录凭证。', 'description' => '登录凭证(LoginToken)的有效期为8小时。如果在8小时内终端用户没有退出客户端,客户端需要重新刷新登录凭证。', 'changeSet' => [], 'ramActions' => [], ], ], 'endpoints' => [ ['regionId' => 'cn-shanghai', 'regionName' => '华东2(上海)', 'areaId' => 'asiaPacific', 'areaName' => '亚太', 'public' => 'appstream-center.cn-shanghai.aliyuncs.com', 'endpoint' => 'appstream-center.cn-shanghai.aliyuncs.com', 'vpc' => 'appstream-center-intl.vpc-proxy.aliyuncs.com'], ['regionId' => 'ap-southeast-1', 'regionName' => '新加坡', 'areaId' => 'asiaPacific', 'areaName' => '亚太', 'public' => 'appstream-center.ap-southeast-1.aliyuncs.com', 'endpoint' => 'appstream-center.ap-southeast-1.aliyuncs.com', 'vpc' => 'appstream-center-intl.vpc-proxy.aliyuncs.com'], ], 'errorCodes' => [ ['code' => 'AddRemoveAccountIsSame', 'message' => 'The same account is to be added and to be removed at the same time.', 'http_code' => 400, 'description' => '添加移除包含相同账号。'], ['code' => 'AppCenterImageId.Missing', 'message' => 'The AppCenter ImageId is missing.', 'http_code' => 400, 'description' => '参数ImageId缺失'], ['code' => 'AppCenterImageInfo.NotFound', 'message' => 'The AppCenter ImageInfo is not found.', 'http_code' => 400, 'description' => '镜像信息找不到'], ['code' => 'AppDeploymentInfo.NotFound', 'message' => 'The AppDeploymentInfo is not found.', 'http_code' => 400, 'description' => '应用信息未找到'], ['code' => 'AppInstallation.StartFailed', 'message' => 'Start app installation failed.', 'http_code' => 400, 'description' => '启动应用安装失败。'], ['code' => 'AppInstallationStatus.IsFailed', 'message' => 'App installation failed.', 'http_code' => 400, 'description' => '应用安装状态失败。'], ['code' => 'AppInstanceGroupAttributeModify.Failed', 'message' => 'Failed to modify the delivery group attribute.', 'http_code' => 400, 'description' => '修改交付组属性失败'], ['code' => 'AppInstanceGroupIdIsNull', 'message' => 'The AppInstanceGroupId is null.', 'http_code' => 400, 'description' => '交付组ID是空值'], ['code' => 'AppInstanceGroupImageCreate.Failed', 'message' => 'Failed to create an image from the debugging app instance group.', 'http_code' => 400, 'description' => '基于调试交付组创建镜像失败。'], ['code' => 'AppInstanceGroupNotFound', 'message' => 'The AppInstanceGroup is not found.', 'http_code' => 400, 'description' => '交付组未找到'], ['code' => 'AppInstanceGroupNotFound', 'message' => 'The specified AppInstanceGroup not found.', 'http_code' => 400, 'description' => '交付组找不到'], ['code' => 'AppType.ValueNotSupported', 'message' => 'The category of the app is not supported.', 'http_code' => 400, 'description' => '不支持该应用类别。'], ['code' => 'AuthorizeFailed', 'message' => 'Authorize failed, please check your EndUserId and Password.', 'http_code' => 400, 'description' => '您的用户名或密码不正确。'], ['code' => 'BillingItem.InsertFailure', 'message' => 'Failed to insert the billing item.', 'http_code' => 400, 'description' => '无法插入计费项。'], ['code' => 'BizTypeNotMatch', 'message' => 'The bizType and image do not match.', 'http_code' => 400, 'description' => '输入BizType和镜像不匹配。'], ['code' => 'BuilderImage.StartTaskFailed', 'message' => 'Failed to start the builder image task.', 'http_code' => 400, 'description' => '启动镜像制作任务失败。'], ['code' => 'CallBack.PayOrderCallbackFailed', 'message' => 'Failed to lock the order.', 'http_code' => 400, 'description' => '无法锁定订单。'], ['code' => 'CashBookInsufficient', 'message' => 'No payment method is specified for your account. We recommend that you add a payment method or add funds to the prepayment balance.', 'http_code' => 400, 'description' => '余额不足'], ['code' => 'CheckStock.Failed', 'message' => 'Failed to check the stock.', 'http_code' => 400, 'description' => '检查库存失败'], ['code' => 'ConnectLdapServer.Failed', 'message' => 'Failed to connect to the LDAP server. Please check the configuration.', 'http_code' => 400, 'description' => '连接LDAP服务器失败,请检查配置是否正确。'], ['code' => 'CreateAppInstanceGroup.Failed', 'message' => 'Failed to create the app instance group.', 'http_code' => 400, 'description' => '创建交付组失败'], ['code' => 'CreateDesktopImageRecord.Failed', 'message' => 'Create cloud computer image failed.', 'http_code' => 400, 'description' => '创建云电脑镜像失败。'], ['code' => 'DeleteTemplate.Failed', 'message' => 'Delete template failed.', 'http_code' => 400, 'description' => '删除模板失败。'], ['code' => 'DesktopInstance.NotFound', 'message' => 'The cloud computer instance does not exist.', 'http_code' => 400, 'description' => '云电脑实例不存在。'], ['code' => 'ExceedAddAccountQuota', 'message' => 'The maximum number of account addition is reached.', 'http_code' => 400, 'description' => '添加账号达到上限。'], ['code' => 'ExceedAppAuthUserQuota', 'message' => 'The authorized user quota of the app is exceeded.', 'http_code' => 400, 'description' => '授权用户超过上限'], ['code' => 'ExceedAppInstanceGroupQuota', 'message' => 'The app instance group quota is exceeded.', 'http_code' => 400, 'description' => '交付组超过上限'], ['code' => 'ExceedBuilderQuota', 'message' => 'The maximum number of builders is reached.', 'http_code' => 400, 'description' => 'Builder数量达到了上限。'], ['code' => 'ExceedImageQuota', 'message' => 'The maximum number of images is reached.', 'http_code' => 400, 'description' => '镜像数量达到了上限。'], ['code' => 'ExceedPoolNodeAmountQuota', 'message' => 'The pool node amount quota is exceeded.', 'http_code' => 400, 'description' => '资源节点数量超过购买上限'], ['code' => 'ExceedRemoveAccountQuota', 'message' => 'The maximum number of account removal is reached.', 'http_code' => 400, 'description' => '移除账号达到上限。'], ['code' => 'Forbidden.NoPermission', 'message' => 'You are not authorized to access this page.', 'http_code' => 403, 'description' => '您没有权限访问当前页面。'], ['code' => 'ForbiddenNoRealNameAuthentication', 'message' => 'Operation failed. The user has not completed the real-name authentication.', 'http_code' => 400, 'description' => '尚未通过实名认证'], ['code' => 'ForbiddenNoRealNameAuthentication', 'message' => 'Forbidden by user real name authentication status.', 'http_code' => 400, 'description' => '没有实名认证'], ['code' => 'GetLoginTokenError', 'message' => 'Failed to get the login token.', 'http_code' => 400, 'description' => '无法获取登录令牌。'], ['code' => 'Image.CreateModeInvalid', 'message' => 'The creation mode of this task is invalid.', 'http_code' => 400, 'description' => '任务创建模式无效。'], ['code' => 'Image.NotExist', 'message' => 'The image does not exist.', 'http_code' => 400, 'description' => '镜像不存在。'], ['code' => 'ImageCreateByInstance.TaskExist', 'message' => 'The image task of instance creation already exists.', 'http_code' => 400, 'description' => '实例创建镜像任务已存在。'], ['code' => 'ImageDeleteFailed.HasSharedImage', 'message' => 'The shared image is not allowed to be deleted.', 'http_code' => 400, 'description' => '共享镜像不允许删除。'], ['code' => 'ImageDeleteFailed.NotAllow', 'message' => 'The image is not allowed to be deleted.', 'http_code' => 400, 'description' => '镜像不允许删除。'], ['code' => 'ImageDeleteFailed.NotAllowCommunityParent', 'message' => 'The parent image of a community image is not allowed to be deleted.', 'http_code' => 400, 'description' => '社区镜像父镜像不允许删除。'], ['code' => 'ImageDeleteFailed.NotAllowSharedImage', 'message' => 'The shared image is not allowed to be deleted.', 'http_code' => 400, 'description' => '共享镜像不允许删除。'], ['code' => 'ImageDistribute.ImageNotSupport', 'message' => 'The image does not support region distribution.', 'http_code' => 400, 'description' => '镜像不支持分发,如:加密镜像。'], ['code' => 'ImageDistribute.RepeatedDistribution', 'message' => 'This image has been distributed to this region.', 'http_code' => 400, 'description' => '镜像已经分发过该地域。'], ['code' => 'ImageDistribute.TargetDistributeRegionListEmpty', 'message' => 'The target distribution region list is empty.', 'http_code' => 400, 'description' => '分发地域配置为空。'], ['code' => 'ImageDistribute.Undistributed', 'message' => 'The image has not been distributed to any region.', 'http_code' => 400, 'description' => '镜像分发无拷贝源地址,检查镜像分发地域是否已经清空。'], ['code' => 'ImageIsNull', 'message' => 'The image does not exist.', 'http_code' => 400, 'description' => '镜像不存在'], ['code' => 'ImageNotAllowDelete', 'message' => 'The image cannot be deleted, because shared cloud computers already exist.', 'http_code' => 400, 'description' => '镜像不能删除,已经存在共享型云电脑资源。'], ['code' => 'ImageRegion.NotConfigured', 'message' => 'The image does not have any region configuration.', 'http_code' => 400, 'description' => '镜像无任何地域配置信息。'], ['code' => 'ImageRegionDistribute.NotAllow', 'message' => 'This image cannot be distributed.', 'http_code' => 400, 'description' => '镜像不允许分发操作。'], ['code' => 'ImageStatus.Error', 'message' => 'The image status is error.', 'http_code' => 400, 'description' => '镜像状态错误。'], ['code' => 'ImageStatus.ValueNotSupported', 'message' => 'The image status is not supported for creating a delivery group.', 'http_code' => 400, 'description' => '该镜像状态下不可创建交付组。'], ['code' => 'ImageTask.Failed', 'message' => 'Start image task failed.', 'http_code' => 400, 'description' => '任务失败。'], ['code' => 'ImageUpdateFailed.NotAllow', 'message' => 'The image is not allowed to be modified.', 'http_code' => 400, 'description' => '镜像不允许修改。'], ['code' => 'ImageUpdateSharedImageFailed.NotAllow', 'message' => 'The shared image is not allowed to be modified.', 'http_code' => 400, 'description' => '共享镜像不允许修改。'], ['code' => 'Instance.ImageUnsupported', 'message' => 'A non-centralized image does not support this type of operation.', 'http_code' => 400, 'description' => '使用非中心化镜像不支持该操作。'], ['code' => 'Instance.NotFound', 'message' => 'The instance is not found.', 'http_code' => 400, 'description' => '实例找不到。'], ['code' => 'Instance.PhysicalNodeNotExist', 'message' => 'The instance physical node does not exist.', 'http_code' => 400, 'description' => '物理节点不存在。'], ['code' => 'InternalError', 'message' => 'Internal error.', 'http_code' => 400, 'description' => '内部错误'], ['code' => 'InternalError.TicketGenInternalError', 'message' => 'An error occurred while generating a ticket.', 'http_code' => 400, 'description' => '生成Ticket时出错。'], ['code' => 'InvalidAliUid.Missing', 'message' => 'The AliUid is missing.', 'http_code' => 400, 'description' => '参数AliUid缺失'], ['code' => 'InvalidAliUid.Missing', 'message' => 'The specified parameter AliUid is missing.', 'http_code' => 400, 'description' => 'AliUid缺失。'], ['code' => 'InvalidAliUid.NotFound', 'message' => 'The AliUid is not found.', 'http_code' => 400, 'description' => '找不到参数AliUid。'], ['code' => 'InvalidAmount.Invalid', 'message' => 'The Amount is invalid.', 'http_code' => 400, 'description' => '参数Amount不合法。'], ['code' => 'InvalidAppId.Missing', 'message' => 'The AppId is missing.', 'http_code' => 400, 'description' => '参数AppId缺失'], ['code' => 'InvalidAppId.NotFound', 'message' => 'The AppId is not found.', 'http_code' => 400, 'description' => '找不到参数AppId。'], ['code' => 'InvalidAppInstanceGroup.NotContainThisAPP', 'message' => 'The app instance group does not contain this app.', 'http_code' => 400, 'description' => '交付组不包含此应用。'], ['code' => 'InvalidAppInstanceGroup.NotFound', 'message' => 'The app instance group is not found.', 'http_code' => 400, 'description' => '交付组未找到'], ['code' => 'InvalidAppInstanceGroup.NotFound', 'message' => 'The AppInstanceGroupId %s is not found.', 'http_code' => 400, 'description' => '找不到AppInstanceGroupId %s。'], ['code' => 'InvalidAppInstanceGroup.NullAppInstanceGroup', 'message' => 'The app instance group is null.', 'http_code' => 400, 'description' => '交付组为空。'], ['code' => 'InvalidAppInstanceGroup.NullOrNotPublishedStatus', 'message' => 'The app instance group does not exist or is not published.', 'http_code' => 400, 'description' => '交付组不存在或未发布。'], ['code' => 'InvalidAppInstanceGroup.StatusInvalid', 'message' => 'The app instance group status is invalid.', 'http_code' => 400, 'description' => '交付组状态无效。'], ['code' => 'InvalidAppInstanceGroup.Unauthorized', 'message' => 'Unauthorized to use this app.', 'http_code' => 400, 'description' => '没有权限使用此应用。'], ['code' => 'InvalidAppInstanceGroupAction.IllegalAction', 'message' => 'The action against the app instance group is not allowed.', 'http_code' => 400, 'description' => '不允许对交付组执行此操作。'], ['code' => 'InvalidAppInstanceGroupId.Missing', 'message' => 'The AppInstanceGroupId is missing.', 'http_code' => 400, 'description' => '参数AppInstanceGroupId缺失'], ['code' => 'InvalidAppInstanceGroupName.Missing', 'message' => 'The AppInstanceGroupName is missing.', 'http_code' => 400, 'description' => '参数AppInstanceGroupName缺失。'], ['code' => 'InvalidAppInstanceGroupSpecItem.NotFound', 'message' => 'The app instance group spec item is not found.', 'http_code' => 400, 'description' => '交付组(旧版概念,已弃用)未找到。'], ['code' => 'InvalidAppInstanceId.NotFound', 'message' => 'The AppInstanceId is not found.', 'http_code' => 400, 'description' => '找不到参数AppInstanceId。'], ['code' => 'InvalidAppInstanceState', 'message' => 'The app instance state is invalid.', 'http_code' => 200, 'description' => '应用实例状态不合法。'], ['code' => 'InvalidAppInstanceType.Invalid', 'message' => 'The AppInstanceType is invalid.', 'http_code' => 400, 'description' => '参数AppInstanceType不合法'], ['code' => 'InvalidAppInstanceType.Missing', 'message' => 'The AppInstanceType is missing.', 'http_code' => 400, 'description' => '参数AppInstanceType缺失'], ['code' => 'InvalidAppInstanceType.NotFound', 'message' => 'The app instance type is not found.', 'http_code' => 400, 'description' => '找不到该应用实例类型。'], ['code' => 'InvalidAppVersion.Missing', 'message' => 'The AppVersion is missing.', 'http_code' => 400, 'description' => '参数AppVersion缺失。'], ['code' => 'InvalidBaseImage.InvalidStatus', 'message' => 'Invalid base image status.', 'http_code' => 400, 'description' => '基础镜像状态无效。'], ['code' => 'InvalidBaseImage.NotConfigured', 'message' => 'Configuration required for Vhd/Container images.', 'http_code' => 400, 'description' => 'Vhd/Container镜像类型需要配置BaseImageId。'], ['code' => 'InvalidBaseImage.NotFound', 'message' => 'Base image not found.', 'http_code' => 400, 'description' => '基础镜像找不到。'], ['code' => 'InvalidBaseImage.NotSystemImage', 'message' => 'Base image is not system image.', 'http_code' => 400, 'description' => '基础镜像不是系统镜像。'], ['code' => 'InvalidBaseImageVersion.NotOnline', 'message' => 'Base image version is not online.', 'http_code' => 400, 'description' => '基础镜像不是有效在线版本。'], ['code' => 'InvalidBindRelationship.NotFound', 'message' => 'The bind relationship is not found.', 'http_code' => 400, 'description' => '交付组绑定的资源池未找到'], ['code' => 'InvalidBindStage.Missing', 'message' => 'The BindStage is missing.', 'http_code' => 400, 'description' => '参数BindStage缺失。'], ['code' => 'InvalidBindStrategy.NotFound', 'message' => 'The bind strategy is not found.', 'http_code' => 400, 'description' => '找不到该绑定策略。'], ['code' => 'InvalidBizType', 'message' => 'The bizType parameter is invalid.', 'http_code' => 400, 'description' => '业务类型不合法。'], ['code' => 'InvalidBrowserInstanceGroup.NotFound', 'message' => 'The browser instance group is not found.', 'http_code' => 400, 'description' => '云浏览器不存在,请确认后重试'], ['code' => 'InvalidBundle.NotFound', 'message' => 'The request bundle does not exist.', 'http_code' => 400, 'description' => '请求的应用资源模板不存在。'], ['code' => 'InvalidChargeType.Missing', 'message' => 'The ChargeType is missing.', 'http_code' => 400, 'description' => '参数ChargeType缺失'], ['code' => 'InvalidChargeType.ValueNotSupported', 'message' => 'The ChargeType is invalid.', 'http_code' => 400, 'description' => '参数ChargeType无效。'], ['code' => 'InvalidDataDiskSize.SmallerThanParent', 'message' => 'Sub-image data disk size is smaller than the parent image.', 'http_code' => 400, 'description' => '子镜像数据盘小于父镜像数据盘。'], ['code' => 'InvalidDomainId.NotFound', 'message' => 'The DomainId is not found.', 'http_code' => 400, 'description' => '找不到参数DomainId。'], ['code' => 'InvalidDriveId.NotFound', 'message' => 'The DriveId is not found.', 'http_code' => 400, 'description' => '找不到参数DriveId。'], ['code' => 'InvalidEndUserId.Missing', 'message' => 'The EndUserId is missing.', 'http_code' => 400, 'description' => '参数EndUserId缺失'], ['code' => 'InvalidEndUserIds.ValueNotSupported', 'message' => 'The EndUserIds is invalid.', 'http_code' => 400, 'description' => '参数EndUserIds无效。'], ['code' => 'InvalidExternalFileId.NotFound', 'message' => 'The ExternalFileId is not found.', 'http_code' => 400, 'description' => '找不到参数ExternalFileId。'], ['code' => 'InvalidGwAddress.NotFound', 'message' => 'The gateway address is not found.', 'http_code' => 400, 'description' => '找不到该网关地址。'], ['code' => 'InvalidGwParam.NotFound', 'message' => 'A parameter error occurred while generating the gateway token.', 'http_code' => 400, 'description' => '生成网关令牌时出现参数错误。'], ['code' => 'InvalidGwToken.ValueTooLong', 'message' => 'The GWToken is too long.', 'http_code' => 400, 'description' => 'GWToken过长。'], ['code' => 'InvalidImageConfig.RegionInvalid', 'message' => 'The region configuration of this image is invalid.', 'http_code' => 400, 'description' => '镜像的地域配置信息无效。'], ['code' => 'InvalidImageId.Invalid', 'message' => 'The specified parameter imageId is invalid.', 'http_code' => 400, 'description' => '镜像ID无效'], ['code' => 'InvalidImageOperation.Failed', 'message' => 'Invalid image operation.', 'http_code' => 400, 'description' => '镜像操作无效。'], ['code' => 'InvalidImageOperation.ImageIsCreating', 'message' => 'Failed to operation the image, it is creating.', 'http_code' => 400, 'description' => '镜像在创建中,操作无效。'], ['code' => 'InvalidImagePackageType.Unsupported', 'message' => 'Unsupported image package type.', 'http_code' => 400, 'description' => '不支持的PackageType。'], ['code' => 'InvalidInstanceId.Missing', 'message' => 'The InstanceId is invalid.', 'http_code' => 400, 'description' => '参数InstanceId不合法'], ['code' => 'InvalidLoginToken.Missing', 'message' => 'The LoginToken is missing.', 'http_code' => 400, 'description' => '参数LoginToken缺失。'], ['code' => 'InvalidMaxResults', 'message' => 'The MaxResults is invalid.', 'http_code' => 400, 'description' => '参数MaxResults无效'], ['code' => 'InvalidNextToken', 'message' => 'The NextToken is invalid.', 'http_code' => 400, 'description' => '参数NextToken无效'], ['code' => 'InvalidNodeInstanceType.NotFound', 'message' => 'The node instance type is not found.', 'http_code' => 400, 'description' => '找不到该节点实例类型。'], ['code' => 'InvalidNodeInstanceType.NotSupportOsType', 'message' => 'The node instance type does not support images with this OS type.', 'http_code' => 400, 'description' => '该资源规格不支持搭载此操作系统的镜像。'], ['code' => 'InvalidOrder.CommodityCodeNotMatch', 'message' => 'No CommodityCode matches this order.', 'http_code' => 400, 'description' => '没有匹配到商品的模块'], ['code' => 'InvalidOrder.CommodityCodeNotMatch', 'message' => 'No commodityCode matched for this order.', 'http_code' => 400, 'description' => '没有匹配到商品的模块'], ['code' => 'InvalidOrderId.NotFound', 'message' => 'The order is not found.', 'http_code' => 400, 'description' => '订单找不到'], ['code' => 'InvalidOrderId.NotFound', 'message' => 'The specified order is not found.', 'http_code' => 400, 'description' => '没有订单信息'], ['code' => 'InvalidOsType.ValueNotSupported', 'message' => 'The operation system type is not supported.', 'http_code' => 400, 'description' => '镜像的操作系统类型不支持'], ['code' => 'InvalidParameter.%s', 'message' => 'The parameter %s is invalid.', 'http_code' => 400, 'description' => '参数值校验不通过。'], ['code' => 'InvalidParameter.AddAccount/RemoveAccount', 'message' => 'The tenant ID to be added or removed is invalid.', 'http_code' => 400, 'description' => '添加或删除共享的租户ID不合法。'], ['code' => 'InvalidParameter.ImageId', 'message' => 'The image ID is invalid.', 'http_code' => 400, 'description' => '镜像ID不合法。'], ['code' => 'InvalidParameter.SystemDiskSize', 'message' => 'The system disk size is invalid.', 'http_code' => 400, 'description' => '系统盘大小不合法。'], ['code' => 'InvalidParentImage.AlreadyHasCommunityImage', 'message' => 'The parent image already has a community image.', 'http_code' => 400, 'description' => '镜像不能发布社区镜像,该镜像已经存在社区镜像。'], ['code' => 'InvalidParentImage.ImageTypeIsNotUserImage', 'message' => 'Invalid operation. The parent image is not a user image.', 'http_code' => 400, 'description' => '父镜像不是用户镜像,操作无效。'], ['code' => 'InvalidParentImage.InvalidStatus', 'message' => 'Invalid parent image status.', 'http_code' => 400, 'description' => '父镜像状态无效。'], ['code' => 'InvalidParentImage.NotFound', 'message' => 'Parent image not found.', 'http_code' => 400, 'description' => '父镜像找不到。'], ['code' => 'InvalidPeriod.Invalid', 'message' => 'The Period is invalid.', 'http_code' => 400, 'description' => '参数Period不合法'], ['code' => 'InvalidPeriod.Missing', 'message' => 'The Period is missing.', 'http_code' => 400, 'description' => '参数Period缺失'], ['code' => 'InvalidPeriodUnit.Missing', 'message' => 'The PeriodUnit is missing.', 'http_code' => 400, 'description' => '参数PeriodUnit缺失'], ['code' => 'InvalidPeriodUnit.ValueNotSupported', 'message' => 'The PeriodUnit is invalid.', 'http_code' => 400, 'description' => '参数PeriodUnit无效。'], ['code' => 'InvalidProductType.Invalid', 'message' => 'The ProductType is invalid.', 'http_code' => 400, 'description' => '参数ProductType无效。'], ['code' => 'InvalidProductType.Missing', 'message' => 'The ProductType is missing.', 'http_code' => 400, 'description' => '参数ProductType缺失'], ['code' => 'InvalidProductType.ValueNotSupported', 'message' => 'The ProductType is not supported.', 'http_code' => 400, 'description' => '不支持该产品类型'], ['code' => 'InvalidRegion.ConfigError', 'message' => 'The region configuration is not found.', 'http_code' => 400, 'description' => '地域配置不存在'], ['code' => 'InvalidRegion.Missing', 'message' => 'The Region is missing.', 'http_code' => 400, 'description' => '参数Region缺失'], ['code' => 'InvalidRegion.NotFound', 'message' => 'The region is not found.', 'http_code' => 400, 'description' => '地域不存在'], ['code' => 'InvalidRegion.NotMatch', 'message' => 'The region does not match the current environment.', 'http_code' => 400, 'description' => '地域与当前环境不匹配。'], ['code' => 'InvalidRegionBind.NotFound', 'message' => 'The AppRegionBind is not found.', 'http_code' => 400, 'description' => '找不到参数AppRegionBind。'], ['code' => 'InvalidRegionId.NotFound', 'message' => 'The RegionId is not found.', 'http_code' => 400, 'description' => '找不到参数RegionId。'], ['code' => 'InvalidResourcePool.NotFound', 'message' => 'The resource pool is not found.', 'http_code' => 400, 'description' => '资源池未找到'], ['code' => 'InvalidResponse.Missing', 'message' => 'The response body is missing.', 'http_code' => 400, 'description' => '响应体缺失。'], ['code' => 'InvalidSessionId.Missing', 'message' => 'The SessionId is missing.', 'http_code' => 400, 'description' => '参数SessionId缺失。'], ['code' => 'InvalidSourceImage.ImageTypeCannotBeShared', 'message' => 'Source image cannot be shared.', 'http_code' => 400, 'description' => '源镜像类型不支持共享。'], ['code' => 'InvalidSourceImage.StatusNotAvailable', 'message' => 'Invalid source image status.', 'http_code' => 400, 'description' => '源镜像状态非正常。'], ['code' => 'InvalidSpecId.Missing', 'message' => 'The SpecId is missing.', 'http_code' => 400, 'description' => '参数SpecId缺失。'], ['code' => 'InvalidStorageType.NotFound', 'message' => 'The StorageType is not found.', 'http_code' => 400, 'description' => '找不到参数StorageType。'], ['code' => 'InvalidStrategyConfig.ChargeTypeNotSupported', 'message' => 'The charge type is not supported for the given strategy.', 'http_code' => 400, 'description' => '指定的策略不支持该付费类型。'], ['code' => 'InvalidStrategyConfig.Invalid', 'message' => 'The StrategyConfig is invalid.', 'http_code' => 400, 'description' => '参数StrategyConfig无效。'], ['code' => 'InvalidStrategyConfig.Invalid', 'message' => 'The policy configuration is invalid.', 'http_code' => 400, 'description' => '策略配置不可用'], ['code' => 'InvalidStrategyConfig.Missing', 'message' => 'The StrategyConfig is missing.', 'http_code' => 400, 'description' => '参数StrategyConfig缺失。'], ['code' => 'InvalidStrategyConfig.NotFound', 'message' => 'The StrategyConfig is not found.', 'http_code' => 400, 'description' => '找不到参数StrategyConfig。'], ['code' => 'InvalidStrategyParam.Invalid', 'message' => 'The StrategyParam is invalid.', 'http_code' => 400, 'description' => '参数StrategyParam无效。'], ['code' => 'InvalidStrategyType.ValueNotSupported', 'message' => 'The strategy type is not supported.', 'http_code' => 400, 'description' => '不支持该策略类型。'], ['code' => 'InvalidStrategyType.ValueNotSupported', 'message' => 'The policy type is not supported.', 'http_code' => 400, 'description' => '策略类型不支持'], ['code' => 'InvalidSubAppType.ValueNotSupported', 'message' => 'The sub-category of the app is not supported.', 'http_code' => 400, 'description' => '镜像内的应用子类型不支持'], ['code' => 'InvalidSystemDiskSize.SmallerThanParent', 'message' => 'Sub-image system disk size is smaller than the parent image.', 'http_code' => 400, 'description' => '子镜像系统盘小于父镜像系统盘。'], ['code' => 'InvalidTargetAliUid.TargetShareImageAlreadyExist', 'message' => 'Target shared image already exists.', 'http_code' => 400, 'description' => '共享镜像已经存在。'], ['code' => 'InvalidTaskId.NotFound', 'message' => 'The TaskId is not found.', 'http_code' => 400, 'description' => '找不到参数TaskId。'], ['code' => 'InvalidTemplate.NotFound', 'message' => 'Template not found.', 'http_code' => 400, 'description' => '模版未找到。'], ['code' => 'InvalidUserId.NotFound', 'message' => 'The UserId is not found.', 'http_code' => 400, 'description' => '找不到参数UserId。'], ['code' => 'LogOffAllSession.Failed', 'message' => 'Failed to log off all sessions in the delivery group.', 'http_code' => 400, 'description' => '注销交付组下所有会话失败'], ['code' => 'MissingParameter', 'message' => 'There is a missing parameter.', 'http_code' => 400, 'description' => '缺少参数'], ['code' => 'MissingParameter.AppIdAndAppVersion', 'message' => 'The AppId and AppVersion are missing.', 'http_code' => 400, 'description' => '参数AppId、AppVersion不存在'], ['code' => 'MissingParameter.RegionId', 'message' => 'The RegionId is missing.', 'http_code' => 400, 'description' => '参数RegionId不存在'], ['code' => 'nvalidStrategyConfig.NotFound', 'message' => 'The policy configuration is not found.', 'http_code' => 400, 'description' => '找不到对应的策略配置'], ['code' => 'OperationDenied.NoStock', 'message' => 'The operation is denied, because the instance stock is unavailable.', 'http_code' => 400, 'description' => '操作已被拒绝,因为实例库存不可用。'], ['code' => 'OtaTask.Canceled', 'message' => 'The task has been cancelled.', 'http_code' => 400, 'description' => '该任务已取消。'], ['code' => 'OtaTask.NotFound', 'message' => 'The ota task is not found.', 'http_code' => 400, 'description' => '找不到该OTA任务。'], ['code' => 'OtaTask.Running', 'message' => 'The task is running and cannot be sumitted.', 'http_code' => 400, 'description' => '该任务正在运行,无法提交。'], ['code' => 'OtaTaskNotifyRegion.Error', 'message' => 'The unit manager failed to receive the OTA upgrade job.', 'http_code' => 400, 'description' => '单元管理器无法接收OTA升级任务。'], ['code' => 'ParentImage.NotExist', 'message' => 'The parent image does not exist.', 'http_code' => 400, 'description' => '依赖父镜像不存在。'], ['code' => 'ParentImageRegionDistribute.NotExist', 'message' => 'The target distribution region of the parent image does not exist.', 'http_code' => 400, 'description' => '依赖父镜像分发地址不存在。'], ['code' => 'ProductTypeInvalid', 'message' => 'The ProductType is invalid.', 'http_code' => 400, 'description' => '产品类型无效'], ['code' => 'ProductTypeNotMatch', 'message' => 'The productType and image do not match.', 'http_code' => 400, 'description' => '输入ProductType和镜像不匹配。'], ['code' => 'QueryTemplate.Failed', 'message' => 'Query template failed.', 'http_code' => 400, 'description' => '查找模板失败。'], ['code' => 'RegionUnBind.Fail', 'message' => 'Failed to unbind.', 'http_code' => 400, 'description' => '无法取消绑定。'], ['code' => 'ServiceUnavailable', 'message' => 'Service unavailable. Please try again later.', 'http_code' => 500, 'description' => '服务不可用,请稍后再试。'], ['code' => 'StockError.InvalidResourceRequest', 'message' => 'Your request cannot be processed currently due to an error. Please try again later.', 'http_code' => 500, 'description' => '库存检查失败,系统暂时无法处理您的请求,请稍后再试。'], ['code' => 'StockError.NoStock', 'message' => 'The selected specification is out of stock. Please try again later or select other specifications.', 'http_code' => 400, 'description' => '您选择的规格库存不足,请稍后再试或更换其他规格。'], ['code' => 'StorageLock.Exist', 'message' => 'The storage lock exists.', 'http_code' => 400, 'description' => '存储读写锁已存在。'], ['code' => 'StorageLock.NotFound', 'message' => 'The storage lock is not found.', 'http_code' => 400, 'description' => '找不到该存储读写锁。'], ['code' => 'StorageLockProperties.NotMatch', 'message' => 'The storage lock properties do not match.', 'http_code' => 400, 'description' => '存储读写锁的属性不匹配。'], ['code' => 'StorageLockUnitResponse.Empty', 'message' => 'The storage lock unit is found empty.', 'http_code' => 400, 'description' => '存储读写锁单元为空。'], ['code' => 'StorageLockUnlockLevel.Error', 'message' => 'An unlock level error occurred while unlocking the storage lock.', 'http_code' => 400, 'description' => '解锁存储读写锁时出现解锁级别错误。'], ['code' => 'Task.ResourceReleased', 'message' => 'Cannot retry because task resource is released.', 'http_code' => 400, 'description' => '任务资源已释放。'], ['code' => 'TaskType.Invalid', 'message' => 'Invalid task type.', 'http_code' => 400, 'description' => '任务类型无效。'], ['code' => 'TryBind.AppRegionBindLockFailed', 'message' => 'Failed to lock the app and region bind.', 'http_code' => 400, 'description' => '无法锁定应用和地域的绑定。'], ['code' => 'TryBind.NoBindContext', 'message' => 'Failed to bind, because there is no bind context.', 'http_code' => 400, 'description' => '无法绑定,因为没有绑定的上下文。'], ['code' => 'TryBind.NoCandidateAppInstanceGroup', 'message' => 'Failed to bind, because there is no candidate app instance group.', 'http_code' => 400, 'description' => '无法绑定,因为没有可用的交付组。'], ['code' => 'TryBind.NoSupportedApp', 'message' => 'Failed to bind, because there is no supported app for this file extension.', 'http_code' => 400, 'description' => '无法绑定,因为没有支持此文件后缀的应用。'], ['code' => 'TryRegionBind.BindExistingAppInstanceFail', 'message' => 'Failed to bind existing app instance.', 'http_code' => 400, 'description' => '无法绑定现有的应用实例。'], ['code' => 'TryRegionBind.NoCandidateAppInstance', 'message' => 'Failed to bind, because there is no candidate app instance.', 'http_code' => 400, 'description' => '无法绑定,因为没有可用的应用实例。'], ['code' => 'TryRegionBind.NoIdleAppInstance', 'message' => 'Failed to bind, because there is no idle app instance.', 'http_code' => 400, 'description' => '无法绑定,因为没有空闲的应用实例。'], ['code' => 'TryRegionBind.TicketIsNull', 'message' => 'Failed to bind, because a null ticket is returned.', 'http_code' => 400, 'description' => '无法绑定,因为返回的Ticket为空。'], ['code' => 'UpdateImage.Failed', 'message' => 'Failed to update the image.', 'http_code' => 400, 'description' => '无法更新镜像。'], ['code' => 'UpdateRegion.NotSupport', 'message' => 'The distributed regions of vhd or container images cannot be modified.', 'http_code' => 400, 'description' => 'Vhd/Container镜像类型不支持修改地域配置信息。'], ['code' => 'UserIdentifier.NotFound', 'message' => 'This username does not exist. Please check if it is correct.', 'http_code' => 400, 'description' => '该用户名不存在,请检查输入是否正确。'], ], 'changeSet' => [ [ 'apis' => [ ['description' => '请求参数发生变更', 'api' => 'GetLoginToken'], ], 'createdAt' => '2025-02-27T12:04:21.000Z', 'description' => '', ], [ 'apis' => [ ['description' => '请求参数发生变更', 'api' => 'FindIdpListByLoginIdentifier'], ], 'createdAt' => '2024-12-13T02:07:46.000Z', 'description' => '', ], [ 'apis' => [ ['description' => '请求参数发生变更', 'api' => 'GetLoginToken'], ['description' => '请求参数发生变更', 'api' => 'RefreshLoginToken'], ], 'createdAt' => '2024-12-11T03:48:41.000Z', 'description' => '', ], [ 'apis' => [ ['description' => '请求参数发生变更', 'api' => 'RefreshLoginToken'], ], 'createdAt' => '2024-12-10T12:05:10.000Z', 'description' => '', ], [ 'apis' => [ ['description' => '请求参数发生变更', 'api' => 'GetLoginToken'], ], 'createdAt' => '2024-12-06T09:32:29.000Z', 'description' => '', ], [ 'apis' => [ ['description' => '请求参数发生变更', 'api' => 'GetLoginToken'], ], 'createdAt' => '2024-12-06T09:27:36.000Z', 'description' => '', ], [ 'apis' => [ ['description' => '请求参数发生变更、响应参数发生变更', 'api' => 'GetLoginToken'], ], 'createdAt' => '2024-11-02T06:19:21.000Z', 'description' => '', ], [ 'apis' => [ ['description' => '请求参数发生变更、响应参数发生变更', 'api' => 'FindIdpListByLoginIdentifier'], ], 'createdAt' => '2024-11-02T06:16:53.000Z', 'description' => '', ], [ 'apis' => [ ['description' => '请求参数发生变更', 'api' => 'RefreshLoginToken'], ], 'createdAt' => '2024-07-22T03:08:26.000Z', 'description' => '', ], [ 'apis' => [ ['description' => 'OpenAPI 下线', 'api' => 'ChangePassword'], ['description' => 'OpenAPI 下线', 'api' => 'FindIdpListByUuid'], ['description' => '请求参数发生变更', 'api' => 'GetLoginToken'], ['description' => '请求参数发生变更', 'api' => 'RefreshLoginToken'], ['description' => 'OpenAPI 下线', 'api' => 'ResetPassword'], ['description' => 'OpenAPI 下线', 'api' => 'SendTokenCode'], ], 'createdAt' => '2022-06-22T08:14:12.000Z', 'description' => '统一认证服务', ], [ 'apis' => [ ['description' => 'OpenAPI 下线', 'api' => 'FindIdpListByLoginIdentifier'], ], 'createdAt' => '2022-06-22T06:11:02.000Z', 'description' => '企业ID', ], [ 'apis' => [ ['description' => 'OpenAPI 下线', 'api' => 'FindIdpListByLoginName'], ['description' => 'OpenAPI 下线', 'api' => 'GetLoginToken'], ['description' => 'OpenAPI 下线', 'api' => 'RefreshLoginToken'], ], 'createdAt' => '2022-04-28T15:40:43.000Z', 'description' => '无影统一身份认证服务', ], ], 'flowControl' => [ 'flowControlList' => [ ['threshold' => '-1', 'countWindow' => 1, 'regionId' => '*'], ], ], 'ram' => [ 'productCode' => 'AppStreaming', 'productName' => '无影云应用', 'ramCodes' => ['appstreaming', 'ecd'], 'ramLevel' => '服务级', 'ramConditions' => [], 'ramActions' => [], 'resourceTypes' => [], ], ];