summaryrefslogtreecommitdiff
path: root/data/en_us/ecd/2021-06-02
diff options
context:
space:
mode:
authorZhineng Li <im@zhineng.li>2026-07-12 17:11:17 +0800
committerZhineng Li <im@zhineng.li>2026-07-12 17:11:17 +0800
commit1c7f908ce09f98fdcbf79ed2a8ae21be60eaa634 (patch)
tree5f0857666365b7e40cdaa3733ebe1f3ba9e13c67 /data/en_us/ecd/2021-06-02
parent7347bac4ab7e136157fc94777e6cf87ef9e08599 (diff)
downloadafterglow-metadata-full-1c7f908ce09f98fdcbf79ed2a8ae21be60eaa634.tar.gz
afterglow-metadata-full-1c7f908ce09f98fdcbf79ed2a8ae21be60eaa634.zip
update APIs 20260712
Diffstat (limited to 'data/en_us/ecd/2021-06-02')
-rw-r--r--data/en_us/ecd/2021-06-02/api-docs.php1316
1 files changed, 1316 insertions, 0 deletions
diff --git a/data/en_us/ecd/2021-06-02/api-docs.php b/data/en_us/ecd/2021-06-02/api-docs.php
new file mode 100644
index 0000000..c36d089
--- /dev/null
+++ b/data/en_us/ecd/2021-06-02/api-docs.php
@@ -0,0 +1,1316 @@
+<?php return [
+ 'version' => '1.0',
+ 'info' => ['style' => 'RPC', 'product' => 'ecd', 'version' => '2021-06-02'],
+ 'directories' => [
+ [
+ 'children' => ['GetOssStsToken', 'ParseSkillPackage', 'GetParseProgress', 'CreateTenantSkill', 'SetTenantSkillEnabled', 'DeleteTenantSkills'],
+ 'type' => 'directory',
+ 'title' => 'Skill management',
+ ],
+ [
+ 'children' => ['SetIdentitySkillAuth', 'ListSkillAuthedIdentities'],
+ 'type' => 'directory',
+ 'title' => 'Skill authorization management',
+ ],
+ [
+ 'children' => ['SetIdentitySkillSecurity', 'ListSecureSkillIdentities'],
+ 'type' => 'directory',
+ 'title' => 'Skill security management',
+ ],
+ [
+ 'children' => ['ListSkills'],
+ 'title' => 'Others',
+ 'type' => 'directory',
+ ],
+ ],
+ 'components' => [
+ 'schemas' => [],
+ ],
+ 'apis' => [
+ 'CreateTenantSkill' => [
+ 'methods' => ['post', 'get'],
+ 'schemes' => ['https'],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'systemTags' => ['operationType' => 'create', 'riskType' => 'none', 'chargeType' => 'free'],
+ 'parameters' => [
+ [
+ 'name' => 'Slug',
+ 'in' => 'query',
+ 'schema' => ['description' => 'The slug identifier of the skill. This parameter is user-defined and must be unique within the tenant.', 'type' => 'string', 'docRequired' => true, 'required' => true, 'example' => 'find-skills****'."\n", 'title' => ''],
+ ],
+ [
+ 'name' => 'DisplayName',
+ 'in' => 'query',
+ 'schema' => ['description' => 'The display name.', 'type' => 'string', 'docRequired' => true, 'required' => true, 'example' => 'name****'."\n", 'title' => ''],
+ ],
+ [
+ 'name' => 'Description',
+ 'in' => 'query',
+ 'schema' => ['description' => 'The description of the skill. Maximum length: 500 characters.', 'type' => 'string', 'docRequired' => true, 'required' => true, 'example' => 'This skill is used for****'."\n", 'title' => ''],
+ ],
+ [
+ 'name' => 'SkillIcon',
+ 'in' => 'query',
+ 'schema' => ['description' => 'The skill icon.', 'type' => 'string', 'required' => false, 'example' => 'icon/****/****/****.png'."\n", 'title' => ''],
+ ],
+ [
+ 'name' => 'IconETag',
+ 'in' => 'query',
+ 'schema' => ['description' => 'The icon parsing tag. This parameter is required when SkillIcon is specified.', 'type' => 'string', 'required' => false, 'example' => '21E9A5B273CB8EC0675*********', 'title' => ''],
+ ],
+ [
+ 'name' => 'SkillVersion',
+ 'in' => 'query',
+ 'schema' => ['description' => 'The skill version.', 'type' => 'string', 'docRequired' => true, 'required' => true, 'example' => '0.0.1', 'title' => ''],
+ ],
+ [
+ 'name' => 'SkillChannel',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The skill channel. Valid values:'."\n"
+ .'- ENTERPRISE: Enterprise Edition.'."\n"
+ .'- BUSINESS: Business Edition.',
+ 'enumValueTitles' => ['ENTERPRISE' => 'Enterprise Edition.', 'BUSINESS' => 'Business Edition.'],
+ 'type' => 'string',
+ 'docRequired' => true,
+ 'required' => true,
+ 'example' => 'BUSINESS',
+ 'title' => '',
+ ],
+ ],
+ [
+ 'name' => 'TaskKey',
+ 'in' => 'query',
+ 'schema' => ['description' => 'The file parsing task key.', 'type' => 'string', 'docRequired' => true, 'required' => true, 'example' => 'E1CF3D69-529D-****', 'title' => ''],
+ ],
+ [
+ 'name' => 'ApiKey',
+ 'in' => 'query',
+ 'schema' => ['description' => 'The API key of the skill.', 'type' => 'string', 'required' => false, 'example' => 'akm-98f66829***'."\n", 'title' => ''],
+ ],
+ [
+ 'name' => 'EnvVars',
+ 'in' => 'query',
+ 'style' => 'json',
+ 'schema' => [
+ 'description' => 'The environment variables.',
+ 'type' => 'object',
+ 'required' => false,
+ 'additionalProperties' => ['description' => 'The environment variables.', 'type' => 'string', 'example' => '{\\"key\\":\\"value\\",\\"key\\":\\"value\\"}', 'title' => ''],
+ 'title' => '',
+ 'example' => '',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '1CBAFFAB-B697-4049-A9B1-67E1FC5F****', 'title' => ''],
+ 'SkillId' => ['description' => 'The unique ID of the skill.', 'type' => 'string', 'example' => 's-04rj8mzqj1fu****', 'title' => ''],
+ ],
+ 'description' => '',
+ 'title' => '',
+ 'example' => '',
+ ],
+ ],
+ ],
+ 'title' => 'Create tenant skill',
+ 'summary' => 'Creates a tenant skill.',
+ 'requestParamsDescription' => 'TaskKey parameter: Call the ParseSkillPackage operation to obtain the response, and then extract the value of TaskKey from the data field of the response object.'."\n"
+ ."\n"
+ .'Slug parameter: Call the GetParseProgress operation to obtain the response, and then extract the value of Slug from the Data object within the data field of the response object.',
+ 'changeSet' => [],
+ 'ramActions' => [
+ [
+ 'operationType' => 'create',
+ 'ramAction' => [
+ 'action' => 'ecd:CreateTenantSkill',
+ 'authLevel' => 'operate',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ECD', 'resourceType' => 'All Resource', 'arn' => '*'],
+ ],
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"1CBAFFAB-B697-4049-A9B1-67E1FC5F****\\",\\n \\"SkillId\\": \\"s-04rj8mzqj1fu****\\"\\n}","type":"json"}]',
+ ],
+ 'DeleteTenantSkills' => [
+ 'summary' => 'Deletes skills in batches.',
+ 'methods' => ['post', 'get'],
+ 'schemes' => ['https'],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'systemTags' => ['operationType' => 'delete', 'riskType' => 'none', 'chargeType' => 'free'],
+ 'parameters' => [
+ [
+ 'name' => 'SkillIds',
+ 'in' => 'query',
+ 'style' => 'flat',
+ 'schema' => [
+ 'description' => 'The list of skill IDs.',
+ 'type' => 'array',
+ 'items' => ['description' => 'The skill ID.', 'type' => 'string', 'required' => false, 'example' => 's-04rj8mzqj1fu****', 'title' => ''],
+ 'required' => true,
+ 'docRequired' => true,
+ 'title' => '',
+ 'example' => '',
+ ],
+ ],
+ [
+ 'name' => 'SkillChannel',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The skill channel. Valid values:'."\n"
+ .'- ENTERPRISE: Enterprise edition.'."\n"
+ .'- BUSINESS: Business edition.',
+ 'enumValueTitles' => ['ENTERPRISE' => 'Enterprise edition.', 'BUSINESS' => 'Business edition.'],
+ 'type' => 'string',
+ 'docRequired' => true,
+ 'required' => true,
+ 'example' => 'ENTERPRISE',
+ 'title' => '',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '1CBAFFAB-B697-4049-A9B1-67E1FC5F****', 'title' => ''],
+ ],
+ 'description' => '',
+ 'title' => '',
+ 'example' => '',
+ ],
+ ],
+ ],
+ 'title' => 'Delete skills in batches',
+ 'requestParamsDescription' => 'SkillIds parameter: Call the ListSkills operation to obtain the response, and then extract the SkillId values from the Skills list in the data field of the response object.',
+ 'changeSet' => [],
+ 'ramActions' => [
+ [
+ 'operationType' => 'delete',
+ 'ramAction' => [
+ 'action' => 'ecd:DeleteTenantSkills',
+ 'authLevel' => 'operate',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ECD', 'resourceType' => 'All Resource', 'arn' => '*'],
+ ],
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"1CBAFFAB-B697-4049-A9B1-67E1FC5F****\\"\\n}","type":"json"}]',
+ ],
+ 'GetOssStsToken' => [
+ 'methods' => ['post', 'get'],
+ 'schemes' => ['https'],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'systemTags' => ['operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free'],
+ 'parameters' => [
+ [
+ 'name' => 'FileType',
+ 'in' => 'query',
+ 'schema' => [
+ 'type' => 'string',
+ 'required' => false,
+ 'docRequired' => true,
+ 'description' => '',
+ 'enumValueTitles' => ['SKILL' => '技能包', 'ICON' => '图标'],
+ 'example' => 'SKILL',
+ 'title' => '',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => ['type' => 'string', 'description' => '', 'example' => '1CBAFFAB-B697-4049-A9B1-67E1FC5F****', 'title' => ''],
+ 'AccessKeyId' => ['type' => 'string', 'description' => '', 'example' => 'STS.NZeNA1kdCm4QPuAJ9kN******', 'title' => ''],
+ 'AccessKeySecret' => ['type' => 'string', 'description' => '', 'example' => '9EStV7fgkSQsPuBi576EmNQXLxJGddL2EGyX********', 'title' => ''],
+ 'SecurityToken' => ['type' => 'string', 'description' => '', 'example' => 'CAISvAN1q6Ft5B2yfSjIr5n2Bez81ZRTgqOGZn6FkHBnXf9qgI6apjz2IH*******', 'title' => ''],
+ 'Bucket' => ['type' => 'string', 'description' => '', 'example' => 'prod-wy-*****', 'title' => ''],
+ 'OssRegion' => ['type' => 'string', 'description' => '', 'example' => 'oss-cn-hangzhou', 'title' => ''],
+ 'ObjectKeyPrefix' => ['type' => 'string', 'description' => '', 'example' => 'tmp/skill/tenant/1483****/', 'title' => ''],
+ ],
+ 'description' => '',
+ 'title' => '',
+ 'example' => '',
+ ],
+ ],
+ ],
+ 'title' => '',
+ 'summary' => '',
+ 'description' => '获取到的SecurityToken有效期为15分钟。',
+ 'changeSet' => [],
+ 'ramActions' => [
+ [
+ 'operationType' => 'get',
+ 'ramAction' => [
+ 'action' => 'ecd:GetOssStsToken',
+ 'authLevel' => 'operate',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ECD', 'resourceType' => 'All Resource', 'arn' => '*'],
+ ],
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"1CBAFFAB-B697-4049-A9B1-67E1FC5F****\\",\\n \\"AccessKeyId\\": \\"STS.NZeNA1kdCm4QPuAJ9kN******\\",\\n \\"AccessKeySecret\\": \\"9EStV7fgkSQsPuBi576EmNQXLxJGddL2EGyX********\\",\\n \\"SecurityToken\\": \\"CAISvAN1q6Ft5B2yfSjIr5n2Bez81ZRTgqOGZn6FkHBnXf9qgI6apjz2IH*******\\",\\n \\"Bucket\\": \\"prod-wy-*****\\",\\n \\"OssRegion\\": \\"oss-cn-hangzhou\\",\\n \\"ObjectKeyPrefix\\": \\"tmp/skill/tenant/1483****/\\"\\n}","type":"json"}]',
+ ],
+ 'GetParseProgress' => [
+ 'summary' => 'Retrieves the parsed content of a skill package.',
+ 'methods' => ['get', 'post'],
+ 'schemes' => ['https'],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'systemTags' => ['operationType' => 'none', 'riskType' => 'none', 'chargeType' => 'free'],
+ 'parameters' => [
+ [
+ 'name' => 'TaskKey',
+ 'in' => 'query',
+ 'schema' => ['description' => 'The task key for parsing the skill package.', 'type' => 'string', 'required' => true, 'example' => '2E7D8B71-2677-1B4C-9E25-A88B9C5******', 'title' => ''],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '1CBAFFAB-B697-4049-A9B1-67E1FC5F****', 'title' => ''],
+ 'Data' => [
+ 'description' => 'The response data object for parsing the skill package.',
+ 'type' => 'object',
+ 'properties' => [
+ 'TaskKey' => ['description' => 'The task key for parsing the skill package.', 'type' => 'string', 'example' => '2E7D8B71-2677-1B4C-9E25-A88B9C5******', 'title' => ''],
+ 'Status' => [
+ 'description' => 'The task status. Valid values:'."\n"
+ .'- PARSING_METADATA: parsing in progress.'."\n"
+ .'- COMPLETED: completed.'."\n"
+ .'- FAILED: failed.',
+ 'enumValueTitles' => ['PARSING_METADATA' => 'Parsing in progress.', 'COMPLETED' => 'Completed.', 'FAILED' => 'Failed.'],
+ 'type' => 'string',
+ 'example' => 'COMPLETED',
+ 'title' => '',
+ ],
+ 'SkillName' => ['description' => 'The name in the SKILL.md file.', 'type' => 'string', 'example' => 'name****', 'title' => ''],
+ 'Slug' => ['description' => 'The skill slug identifier. This is user-defined and unique within the tenant dimension.', 'type' => 'string', 'example' => 'admapix******', 'title' => ''],
+ 'Version' => ['description' => 'The version number.', 'type' => 'string', 'example' => '1.0.0', 'title' => ''],
+ 'RequiredEnvVars' => [
+ 'type' => 'array',
+ 'items' => ['type' => 'string', 'description' => '', 'title' => '', 'example' => ''],
+ 'description' => '',
+ 'title' => '',
+ 'example' => '',
+ ],
+ 'RequiresApiKey' => ['type' => 'boolean', 'description' => '', 'title' => '', 'example' => ''],
+ 'Description' => ['type' => 'string', 'description' => '', 'title' => '', 'example' => ''],
+ 'ErrorCode' => ['description' => 'The error code returned when an execution exception occurs.', 'type' => 'string', 'example' => 'Package.ReadFailed', 'title' => ''],
+ 'ErrorMessage' => ['description' => 'The error message returned when an execution exception occurs.', 'type' => 'string', 'example' => 'Failed to read skill package', 'title' => ''],
+ ],
+ 'title' => '',
+ 'example' => '',
+ ],
+ ],
+ 'description' => '',
+ 'title' => '',
+ 'example' => '',
+ ],
+ ],
+ ],
+ 'title' => 'Query parsing progress',
+ 'description' => 'Call the ParseSkillPackage operation first. Poll this operation every 3 seconds.',
+ 'requestParamsDescription' => 'TaskKey parameter: After calling the ParseSkillPackage operation and obtaining the response, extract the value of the TaskKey field from the data object in the response.',
+ 'responseParamsDescription' => 'Slug parameter: After calling the GetParseProgress operation and obtaining the response, extract the value of the Slug field from the Data object within the data field of the response.',
+ 'changeSet' => [],
+ 'ramActions' => [
+ [
+ 'operationType' => 'none',
+ 'ramAction' => [
+ 'action' => 'ecd:GetParseProgress',
+ 'authLevel' => 'operate',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ECD', 'resourceType' => 'All Resource', 'arn' => '*'],
+ ],
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"1CBAFFAB-B697-4049-A9B1-67E1FC5F****\\",\\n \\"Data\\": {\\n \\"TaskKey\\": \\"2E7D8B71-2677-1B4C-9E25-A88B9C5******\\",\\n \\"Status\\": \\"COMPLETED\\",\\n \\"SkillName\\": \\"name****\\",\\n \\"Slug\\": \\"admapix******\\",\\n \\"Version\\": \\"1.0.0\\",\\n \\"RequiredEnvVars\\": [\\n \\"\\"\\n ],\\n \\"RequiresApiKey\\": false,\\n \\"Description\\": \\"\\",\\n \\"ErrorCode\\": \\"Package.ReadFailed\\",\\n \\"ErrorMessage\\": \\"Failed to read skill package\\"\\n }\\n}","type":"json"}]',
+ ],
+ 'ListSecureSkillIdentities' => [
+ 'summary' => 'Queries the list of identities for which security policies are enabled.',
+ 'methods' => ['post', 'get'],
+ 'schemes' => ['https'],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'systemTags' => ['operationType' => 'none', 'riskType' => 'none', 'chargeType' => 'free'],
+ 'parameters' => [
+ [
+ 'name' => 'PageSize',
+ 'in' => 'query',
+ 'schema' => ['description' => 'The number of entries per page. Default value: 20.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '10', 'title' => ''],
+ ],
+ [
+ 'name' => 'PageNumber',
+ 'in' => 'query',
+ 'schema' => ['description' => 'The current page number.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1', 'title' => ''],
+ ],
+ [
+ 'name' => 'SkillChannel',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The skill channel. Valid values:'."\n"
+ ."\n"
+ .'- ENTERPRISE: Enterprise edition.'."\n"
+ .'- BUSINESS: Business edition.',
+ 'enumValueTitles' => ['ENTERPRISE' => 'Enterprise edition.', 'BUSINESS' => 'Business edition.'],
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'ENTERPRISE',
+ 'title' => '',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '51592A88-0F2C-55E6-AD2C-2AD9C10D****', 'title' => ''],
+ 'TotalCount' => ['description' => 'The total number of entries returned.', 'type' => 'integer', 'format' => 'int64', 'example' => '20', 'title' => ''],
+ 'Identities' => [
+ 'description' => 'The list of resource information.',
+ 'type' => 'array',
+ 'items' => ['description' => 'The resource ID.', 'type' => 'string', 'example' => 'ecd-6af3rdkv9ttqqb***', 'title' => ''],
+ 'title' => '',
+ 'example' => '',
+ ],
+ ],
+ 'description' => '',
+ 'title' => '',
+ 'example' => '',
+ ],
+ ],
+ ],
+ 'title' => 'Query resources with custom installation skill permissions',
+ 'description' => 'The resource type supports only cloud computers.',
+ 'changeSet' => [],
+ 'ramActions' => [
+ [
+ 'operationType' => 'none',
+ 'ramAction' => [
+ 'action' => 'ecd:ListSecureSkillIdentities',
+ 'authLevel' => 'operate',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ECD', 'resourceType' => 'All Resource', 'arn' => '*'],
+ ],
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"51592A88-0F2C-55E6-AD2C-2AD9C10D****\\",\\n \\"TotalCount\\": 20,\\n \\"Identities\\": [\\n \\"ecd-6af3rdkv9ttqqb***\\"\\n ]\\n}","type":"json"}]',
+ ],
+ 'ListSkillAuthedIdentities' => [
+ 'summary' => 'Queries the list of identities authorized for a skill.',
+ 'methods' => ['post', 'get'],
+ 'schemes' => ['https'],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'systemTags' => ['operationType' => 'none', 'riskType' => 'none', 'chargeType' => 'free'],
+ 'parameters' => [
+ [
+ 'name' => 'SkillId',
+ 'in' => 'query',
+ 'schema' => ['description' => 'The unique identifier of the skill.', 'type' => 'string', 'required' => true, 'example' => 's-04rj8mzqj1fu****', 'title' => ''],
+ ],
+ [
+ 'name' => 'PageSize',
+ 'in' => 'query',
+ 'schema' => ['description' => 'The number of entries per page. Default value: 20.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '20', 'title' => ''],
+ ],
+ [
+ 'name' => 'PageNumber',
+ 'in' => 'query',
+ 'schema' => ['description' => 'The current page number.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1', 'title' => ''],
+ ],
+ [
+ 'name' => 'SkillChannel',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The skill channel. Valid values:'."\n"
+ ."\n"
+ .'- ENTERPRISE: enterprise edition'."\n"
+ .'- BUSINESS: business edition',
+ 'enumValueTitles' => ['ENTERPRISE' => 'Enterprise edition.', 'BUSINESS' => 'Business edition.'],
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'ENTERPRISE',
+ 'title' => '',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '5CC5E450-FC43-4F5B-B540-9964BD*****', 'title' => ''],
+ 'TotalCount' => ['description' => 'The total number of entries returned.', 'type' => 'integer', 'format' => 'int64', 'example' => '20', 'title' => ''],
+ 'Identities' => [
+ 'description' => 'The list of authorized objects.',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The authorized object.',
+ 'type' => 'object',
+ 'properties' => [
+ 'IdentityId' => ['description' => 'The ID of the authorized object.', 'type' => 'string', 'example' => 'ecd-b9ej3xiok4tjbgf9x****', 'title' => ''],
+ 'AutoInstall' => [
+ 'description' => 'Indicates whether automatic installation is enabled. Valid values:'."\n"
+ ."\n"
+ .'- true: Automatic installation is enabled.'."\n"
+ .'- false: Automatic installation is disabled.',
+ 'enumValueTitles' => ['true' => 'Yes.', 'false' => 'No.'],
+ 'type' => 'boolean',
+ 'example' => 'true',
+ 'title' => '',
+ ],
+ ],
+ 'title' => '',
+ 'example' => '',
+ ],
+ 'title' => '',
+ 'example' => '',
+ ],
+ ],
+ 'description' => '',
+ 'title' => '',
+ 'example' => '',
+ ],
+ ],
+ ],
+ 'title' => 'Query authorized objects by skill',
+ 'description' => 'Authorized objects support only cloud computers.',
+ 'changeSet' => [],
+ 'ramActions' => [
+ [
+ 'operationType' => 'none',
+ 'ramAction' => [
+ 'action' => 'ecd:ListSkillAuthedIdentities',
+ 'authLevel' => 'operate',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ECD', 'resourceType' => 'All Resource', 'arn' => '*'],
+ ],
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"5CC5E450-FC43-4F5B-B540-9964BD*****\\",\\n \\"TotalCount\\": 20,\\n \\"Identities\\": [\\n {\\n \\"IdentityId\\": \\"ecd-b9ej3xiok4tjbgf9x****\\",\\n \\"AutoInstall\\": true\\n }\\n ]\\n}","type":"json"}]',
+ ],
+ 'ListSkills' => [
+ 'summary' => 'Queries the list of skills.',
+ 'methods' => ['post', 'get'],
+ 'schemes' => ['https'],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'systemTags' => ['operationType' => 'none', 'riskType' => 'none', 'chargeType' => 'free'],
+ 'parameters' => [
+ [
+ 'name' => 'SupplierType',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The supply type.',
+ 'enumValueTitles' => ['WUYING' => 'Wuying upload.', 'TENANT' => 'tenant upload.'],
+ 'type' => 'string',
+ 'docRequired' => true,
+ 'required' => true,
+ 'example' => 'WUYING',
+ 'title' => '',
+ ],
+ ],
+ [
+ 'name' => 'SkillChannel',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The skill channel.',
+ 'enumValueTitles' => ['ENTERPRISE' => 'Enterprise Edition.', 'BUSINESS' => 'Business Edition.'],
+ 'type' => 'string',
+ 'required' => true,
+ 'docRequired' => true,
+ 'example' => 'BUSINESS',
+ 'title' => '',
+ ],
+ ],
+ [
+ 'name' => 'SkillIds',
+ 'in' => 'query',
+ 'style' => 'flat',
+ 'schema' => [
+ 'description' => 'The list of skill IDs.',
+ 'type' => 'array',
+ 'items' => ['description' => 'The skill ID.', 'type' => 'string', 'required' => false, 'example' => 's-04rj8mzqj1fu****', 'title' => ''],
+ 'required' => false,
+ 'title' => '',
+ 'example' => '',
+ ],
+ ],
+ [
+ 'name' => 'PageSize',
+ 'in' => 'query',
+ 'schema' => ['description' => 'The maximum number of rows per page in a paged query. Default value: 20.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '20', 'title' => ''],
+ ],
+ [
+ 'name' => 'PageNumber',
+ 'in' => 'query',
+ 'schema' => ['description' => 'The page number of the current page in a paged query.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1', 'title' => ''],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '1CBAFFAB-B697-4049-A9B1-67E1FC5F****', 'title' => ''],
+ 'TotalCount' => ['description' => 'The total number of query results.', 'type' => 'integer', 'format' => 'int64', 'example' => '15', 'title' => ''],
+ 'Skills' => [
+ 'description' => 'The list of skill details.',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The skill details object.',
+ 'type' => 'object',
+ 'properties' => [
+ 'SkillId' => ['description' => 'The unique identifier of the skill.', 'type' => 'string', 'example' => 's-04rj8mzqj1fu****'."\n", 'title' => ''],
+ 'SkillName' => ['description' => 'The name in the SKILL.md file.', 'type' => 'string', 'example' => 'name****', 'title' => ''],
+ 'SkillIconUrl' => ['description' => 'The URL of the skill icon.', 'type' => 'string', 'example' => 'https://***-***-****', 'title' => ''],
+ 'DisplayName' => ['description' => 'The display name.', 'type' => 'string', 'example' => 'name****', 'title' => ''],
+ 'SupplierType' => [
+ 'description' => 'The supply type.',
+ 'enumValueTitles' => ['WUYING' => 'Wuying upload.', 'TENANT' => 'tenant upload.'],
+ 'type' => 'string',
+ 'example' => 'TENANT',
+ 'title' => '',
+ ],
+ 'Author' => ['description' => 'The author.', 'type' => 'string', 'example' => 'Li***', 'title' => ''],
+ 'SourceMarket' => [
+ 'description' => 'The source marketplace code.',
+ 'enumValueTitles' => ['CLAWHUB' => 'ClawHub', 'ALIYUN' => 'Alibaba Cloud.', 'DINGTALK_AI' => 'DingTalk AI Capability Center.', 'MODELSCOPE' => 'ModelScope'],
+ 'type' => 'string',
+ 'example' => 'CLAWHUB',
+ 'title' => '',
+ ],
+ 'SourceMarketName' => ['description' => 'The source marketplace name.', 'type' => 'string', 'example' => 'ClawHub', 'title' => ''],
+ 'Description' => ['description' => 'The description of the skill.', 'type' => 'string', 'example' => 'This skill is used for****', 'title' => ''],
+ 'GmtCreated' => ['description' => 'The creation time.', 'type' => 'string', 'example' => '2026-04-28T10:32:53Z', 'title' => ''],
+ 'Slug' => ['description' => 'The slug identifier of the skill. This value is user-defined and unique within the tenant.', 'type' => 'string', 'example' => 'find-skills****', 'title' => ''],
+ 'DefaultVersion' => ['description' => 'The currently effective version number. If no version is effective, an empty value is returned.', 'type' => 'string', 'example' => '1.0.0', 'title' => ''],
+ 'Enable' => [
+ 'description' => 'Indicates whether the skill is enabled.',
+ 'enumValueTitles' => ['true' => 'Enabled.', 'false' => 'Not enabled.'],
+ 'type' => 'boolean',
+ 'example' => 'true',
+ 'title' => '',
+ ],
+ 'ApiKey' => ['description' => 'The API key of the skill.', 'type' => 'string', 'example' => 'akm-98f66829***', 'title' => ''],
+ 'EnvVars' => [
+ 'description' => 'The environment variables.',
+ 'type' => 'object',
+ 'additionalProperties' => ['description' => 'The environment variables.', 'type' => 'string', 'example' => '{\\"key\\":\\"value\\",\\"key\\":\\"value\\"}'."\n", 'title' => ''],
+ 'title' => '',
+ 'example' => '',
+ ],
+ 'SkillVersions' => [
+ 'type' => 'array',
+ 'items' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'Version' => ['type' => 'string', 'description' => '', 'title' => '', 'example' => ''],
+ 'PublishStatus' => ['type' => 'string', 'description' => '', 'title' => '', 'example' => ''],
+ 'SecurityScanStatus' => ['type' => 'string', 'description' => '', 'title' => '', 'example' => ''],
+ 'SecurityScanFailReason' => ['type' => 'string', 'description' => '', 'title' => '', 'example' => ''],
+ 'SecurityScanScore' => ['type' => 'integer', 'format' => 'int32', 'description' => '', 'title' => '', 'example' => ''],
+ 'ChangeLog' => ['type' => 'string', 'description' => '', 'title' => '', 'example' => ''],
+ 'CreatedAt' => ['type' => 'integer', 'format' => 'int64', 'description' => '', 'title' => '', 'example' => ''],
+ ],
+ 'description' => '',
+ 'title' => '',
+ 'example' => '',
+ ],
+ 'description' => '',
+ 'title' => '',
+ 'example' => '',
+ ],
+ ],
+ 'title' => '',
+ 'example' => '',
+ ],
+ 'title' => '',
+ 'example' => '',
+ ],
+ ],
+ 'description' => '',
+ 'title' => '',
+ 'example' => '',
+ ],
+ ],
+ ],
+ 'title' => 'List skills',
+ 'responseParamsDescription' => 'Slug parameter: Call the GetParseProgress operation to obtain the response. Then, extract the value of Slug from the Data object in the data field of the response.',
+ 'changeSet' => [],
+ 'ramActions' => [
+ [
+ 'operationType' => 'none',
+ 'ramAction' => [
+ 'action' => 'ecd:ListSkills',
+ 'authLevel' => 'operate',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ECD', 'resourceType' => 'All Resource', 'arn' => '*'],
+ ],
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"1CBAFFAB-B697-4049-A9B1-67E1FC5F****\\",\\n \\"TotalCount\\": 15,\\n \\"Skills\\": [\\n {\\n \\"SkillId\\": \\"s-04rj8mzqj1fu****\\\\n\\",\\n \\"SkillName\\": \\"name****\\",\\n \\"SkillIconUrl\\": \\"https://***-***-****\\",\\n \\"DisplayName\\": \\"name****\\",\\n \\"SupplierType\\": \\"TENANT\\",\\n \\"Author\\": \\"Li***\\",\\n \\"SourceMarket\\": \\"CLAWHUB\\",\\n \\"SourceMarketName\\": \\"ClawHub\\",\\n \\"Description\\": \\"This skill is used for****\\",\\n \\"GmtCreated\\": \\"2026-04-28T10:32:53Z\\",\\n \\"Slug\\": \\"find-skills****\\",\\n \\"DefaultVersion\\": \\"1.0.0\\",\\n \\"Enable\\": true,\\n \\"ApiKey\\": \\"akm-98f66829***\\",\\n \\"EnvVars\\": {\\n \\"key\\": \\"{\\\\\\\\\\\\\\"key\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"value\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"key\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"value\\\\\\\\\\\\\\"}\\\\n\\"\\n },\\n \\"SkillVersions\\": [\\n {\\n \\"Version\\": \\"\\",\\n \\"PublishStatus\\": \\"\\",\\n \\"SecurityScanStatus\\": \\"\\",\\n \\"SecurityScanFailReason\\": \\"\\",\\n \\"SecurityScanScore\\": 0,\\n \\"ChangeLog\\": \\"\\",\\n \\"CreatedAt\\": 0\\n }\\n ]\\n }\\n ]\\n}","type":"json"}]',
+ ],
+ 'ParseSkillPackage' => [
+ 'summary' => 'Parses a skill package.',
+ 'methods' => ['post', 'get'],
+ 'schemes' => ['https'],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'systemTags' => ['operationType' => 'create', 'riskType' => 'none', 'chargeType' => 'free'],
+ 'parameters' => [
+ [
+ 'name' => 'OssObjectKey',
+ 'in' => 'query',
+ 'schema' => ['description' => 'The OSS path of the skill package.', 'type' => 'string', 'required' => true, 'example' => 'tmp/skill/wu***/17***.zip', 'title' => ''],
+ ],
+ [
+ 'name' => 'OssObjectETag',
+ 'in' => 'query',
+ 'schema' => ['description' => 'The OSS ETag returned after the file is uploaded to OSS.', 'type' => 'string', 'required' => true, 'example' => '1D9920C4858A60B70705A8765A******', 'title' => ''],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '05C2791F-41A7-5E7C-B5E4-1401FD0E****', 'title' => ''],
+ 'TaskKey' => ['description' => 'The key of the skill package parsing task.', 'type' => 'string', 'example' => '2E7D8B71-2677-1B4C-9E25-A88B9******', 'title' => ''],
+ ],
+ 'description' => '',
+ 'title' => '',
+ 'example' => '',
+ ],
+ ],
+ ],
+ 'title' => 'Parse a skill package',
+ 'changeSet' => [],
+ 'ramActions' => [
+ [
+ 'operationType' => 'create',
+ 'ramAction' => [
+ 'action' => 'ecd:ParseSkillPackage',
+ 'authLevel' => 'operate',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ECD', 'resourceType' => 'All Resource', 'arn' => '*'],
+ ],
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"05C2791F-41A7-5E7C-B5E4-1401FD0E****\\",\\n \\"TaskKey\\": \\"2E7D8B71-2677-1B4C-9E25-A88B9******\\"\\n}","type":"json"}]',
+ ],
+ 'SetIdentitySkillAuth' => [
+ 'methods' => ['post', 'get'],
+ 'schemes' => ['https'],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'systemTags' => ['operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free'],
+ 'parameters' => [
+ [
+ 'name' => 'Identities',
+ 'in' => 'query',
+ 'style' => 'flat',
+ 'schema' => [
+ 'description' => 'The list of authorized objects.',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The authorized object information.',
+ 'type' => 'object',
+ 'properties' => [
+ 'IdentityId' => ['description' => 'The ID of the authorized object.', 'type' => 'string', 'required' => true, 'example' => 'ecd-av4u9m5ghko26****', 'title' => ''],
+ 'RegionId' => ['description' => 'The region ID.', 'type' => 'string', 'required' => true, 'example' => 'cn-hangzhou', 'title' => ''],
+ ],
+ 'required' => true,
+ 'title' => '',
+ 'example' => '',
+ ],
+ 'required' => true,
+ 'maxItems' => 100,
+ 'title' => '',
+ 'example' => '',
+ ],
+ ],
+ [
+ 'name' => 'OperationType',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The operation type.',
+ 'enumValueTitles' => ['SET_AUTH' => 'SET_AUTH', 'CANCEL_AUTH' => 'CANCEL_AUTH'],
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'SET_AUTH',
+ 'title' => '',
+ ],
+ ],
+ [
+ 'name' => 'SkillIds',
+ 'in' => 'query',
+ 'style' => 'flat',
+ 'schema' => [
+ 'description' => 'The list of skill IDs.',
+ 'type' => 'array',
+ 'items' => ['description' => 'The skill ID.', 'type' => 'string', 'required' => true, 'example' => 's-04zzrfqdku5jb****', 'title' => ''],
+ 'required' => true,
+ 'maxItems' => 100,
+ 'title' => '',
+ 'example' => '',
+ ],
+ ],
+ [
+ 'name' => 'SkillChannel',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The skill channel. Valid values:'."\n"
+ ."\n"
+ .'- ENTERPRISE: enterprise edition'."\n"
+ .'- BUSINESS: business edition',
+ 'enumValueTitles' => ['ENTERPRISE' => 'Enterprise edition.', 'BUSINESS' => 'Business edition.'],
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'ENTERPRISE',
+ 'title' => '',
+ ],
+ ],
+ [
+ 'name' => 'AutoInstall',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'Specifies whether to automatically install. Valid values:'."\n"
+ ."\n"
+ .'- true: yes'."\n"
+ .'- false: no',
+ 'enumValueTitles' => ['true' => 'Yes.', 'false' => 'No.'],
+ 'type' => 'boolean',
+ 'required' => true,
+ 'example' => 'true',
+ 'title' => '',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => 'A87DBB05-653A-5E4B-B72B-5F4A1E07****', 'title' => ''],
+ ],
+ 'description' => '',
+ 'title' => '',
+ 'example' => '',
+ ],
+ ],
+ ],
+ 'title' => 'Set skill permissions for an authorized object',
+ 'description' => 'The authorized object supports only cloud computers.',
+ 'summary' => 'Sets skill permissions for an identity.',
+ 'changeSet' => [],
+ 'ramActions' => [
+ [
+ 'operationType' => 'update',
+ 'ramAction' => [
+ 'action' => 'ecd:SetIdentitySkillAuth',
+ 'authLevel' => 'operate',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ECD', 'resourceType' => 'All Resource', 'arn' => '*'],
+ ],
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"A87DBB05-653A-5E4B-B72B-5F4A1E07****\\"\\n}","type":"json"}]',
+ ],
+ 'SetIdentitySkillSecurity' => [
+ 'summary' => 'Sets the security policy for identity skills.',
+ 'methods' => ['post', 'get'],
+ 'schemes' => ['https'],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'systemTags' => ['operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free'],
+ 'parameters' => [
+ [
+ 'name' => 'IdentityIds',
+ 'in' => 'query',
+ 'style' => 'flat',
+ 'schema' => [
+ 'description' => 'The list of resource information.',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The resource information object.',
+ 'type' => 'object',
+ 'properties' => [
+ 'IdentityId' => ['description' => 'The resource information ID.', 'type' => 'string', 'required' => true, 'example' => 'ecd-b9ej3xiok4tjbgf9x', 'title' => ''],
+ 'RegionId' => ['description' => 'The region ID.', 'type' => 'string', 'required' => true, 'example' => 'cn-shanghai', 'title' => ''],
+ ],
+ 'required' => true,
+ 'title' => '',
+ 'example' => '',
+ ],
+ 'required' => true,
+ 'title' => '',
+ 'example' => '',
+ ],
+ ],
+ [
+ 'name' => 'Enabled',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'Specifies whether to enable the skill installation permission. Valid values:'."\n"
+ ."\n"
+ .'- true: enabled.'."\n"
+ .'- false: disabled.',
+ 'enumValueTitles' => ['true' => 'Enabled.', 'false' => 'Disabled.'],
+ 'type' => 'boolean',
+ 'required' => true,
+ 'example' => 'true',
+ 'title' => '',
+ ],
+ ],
+ [
+ 'name' => 'SkillChannel',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The skill channel. Valid values:'."\n"
+ ."\n"
+ .'- ENTERPRISE: enterprise edition.'."\n"
+ .'- BUSINESS: business edition.',
+ 'enumValueTitles' => ['ENTERPRISE' => 'Enterprise edition.', 'BUSINESS' => 'Business edition.'],
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'ENTERPRISE',
+ 'title' => '',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '1CBAFFAB-B697-4049-A9B1-67E1FC5F****', 'title' => ''],
+ ],
+ 'description' => '',
+ 'title' => '',
+ 'example' => '',
+ ],
+ ],
+ ],
+ 'title' => 'Set the security policy for resources',
+ 'description' => 'The resource type supports only cloud computers.',
+ 'changeSet' => [],
+ 'ramActions' => [
+ [
+ 'operationType' => 'update',
+ 'ramAction' => [
+ 'action' => 'ecd:SetIdentitySkillSecurity',
+ 'authLevel' => 'operate',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ECD', 'resourceType' => 'All Resource', 'arn' => '*'],
+ ],
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"1CBAFFAB-B697-4049-A9B1-67E1FC5F****\\"\\n}","type":"json"}]',
+ ],
+ 'SetTenantSkillEnabled' => [
+ 'methods' => ['post', 'get'],
+ 'schemes' => ['https'],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'systemTags' => ['operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free'],
+ 'parameters' => [
+ [
+ 'name' => 'SkillIds',
+ 'in' => 'query',
+ 'style' => 'flat',
+ 'schema' => [
+ 'type' => 'array',
+ 'items' => ['type' => 'string', 'description' => '', 'required' => false, 'example' => 's-051j4osziq4c*****', 'title' => ''],
+ 'docRequired' => true,
+ 'description' => '',
+ 'required' => true,
+ 'title' => '',
+ 'example' => '',
+ ],
+ ],
+ [
+ 'name' => 'Enabled',
+ 'in' => 'query',
+ 'schema' => [
+ 'type' => 'boolean',
+ 'docRequired' => true,
+ 'description' => '',
+ 'required' => true,
+ 'enumValueTitles' => ['true' => '启用', 'false' => '禁用'],
+ 'example' => 'true',
+ 'title' => '',
+ ],
+ ],
+ [
+ 'name' => 'SkillChannel',
+ 'in' => 'query',
+ 'schema' => [
+ 'type' => 'string',
+ 'docRequired' => true,
+ 'description' => '',
+ 'required' => true,
+ 'enumValueTitles' => ['ENTERPRISE' => '商业版', 'BUSINESS' => '企业版'],
+ 'example' => 'BUSINESS',
+ 'title' => '',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => ['type' => 'string', 'description' => '', 'example' => '1CBAFFAB-B697-4049-A9B1-67E1FC5F****', 'title' => ''],
+ ],
+ 'description' => '',
+ 'title' => '',
+ 'example' => '',
+ ],
+ ],
+ ],
+ 'title' => '',
+ 'requestParamsDescription' => 'SkillIds 参数:通过调用 ListSkills 接口获取返回结果后,从响应对象的 data 字段层级中提取出 Skills 列表里的 SkillId 的值。',
+ 'summary' => '',
+ 'changeSet' => [],
+ 'ramActions' => [
+ [
+ 'operationType' => 'update',
+ 'ramAction' => [
+ 'action' => 'ecd:SetTenantSkillEnabled',
+ 'authLevel' => 'operate',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ECD', 'resourceType' => 'All Resource', 'arn' => '*'],
+ ],
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"1CBAFFAB-B697-4049-A9B1-67E1FC5F****\\"\\n}","type":"json"}]',
+ ],
+ ],
+ 'endpoints' => [
+ ['regionId' => 'cn-beijing', 'regionName' => 'China (Beijing)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'ecd.cn-beijing.aliyuncs.com', 'endpoint' => 'ecd.cn-beijing.aliyuncs.com', 'vpc' => 'ecd-intl.vpc-proxy.aliyuncs.com'],
+ ['regionId' => 'cn-wulanchabu', 'regionName' => 'China (Ulanqab)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'ecd.cn-wulanchabu.aliyuncs.com', 'endpoint' => 'ecd.cn-wulanchabu.aliyuncs.com', 'vpc' => 'ecd-intl.vpc-proxy.aliyuncs.com'],
+ ['regionId' => 'cn-qingdao', 'regionName' => 'China (Qingdao)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'ecd.cn-qingdao.aliyuncs.com', 'endpoint' => 'ecd.cn-qingdao.aliyuncs.com', 'vpc' => 'ecd-intl.vpc-proxy.aliyuncs.com'],
+ ['regionId' => 'cn-shanghai', 'regionName' => 'China (Shanghai)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'ecd.cn-shanghai.aliyuncs.com', 'endpoint' => 'ecd.cn-shanghai.aliyuncs.com', 'vpc' => 'ecd-shenzhen-center.vpc-proxy.aliyuncs.com'],
+ ['regionId' => 'cn-hongkong', 'regionName' => 'China (Hong Kong)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'ecd.cn-hongkong.aliyuncs.com', 'endpoint' => 'ecd.cn-hongkong.aliyuncs.com', 'vpc' => 'ecd.vpc-proxy.aliyuncs.com'],
+ ['regionId' => 'cn-zhangjiakou', 'regionName' => 'China (Zhangjiakou)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'ecd.cn-zhangjiakou.aliyuncs.com', 'endpoint' => 'ecd.cn-zhangjiakou.aliyuncs.com', 'vpc' => 'ecd-intl.vpc-proxy.aliyuncs.com'],
+ ['regionId' => 'cn-shenzhen', 'regionName' => 'China (Shenzhen)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'ecd.cn-shenzhen.aliyuncs.com', 'endpoint' => 'ecd.cn-shenzhen.aliyuncs.com', 'vpc' => 'ecd-intl.vpc-proxy.aliyuncs.com'],
+ ['regionId' => 'cn-nanjing', 'regionName' => 'China (Nanjing - Local Region)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'ecd.cn-nanjing.aliyuncs.com', 'endpoint' => 'ecd.cn-nanjing.aliyuncs.com', 'vpc' => 'ecd-intl.vpc-proxy.aliyuncs.com'],
+ ['regionId' => 'ap-northeast-1', 'regionName' => 'Japan (Tokyo)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'ecd.ap-northeast-1.aliyuncs.com', 'endpoint' => 'ecd.ap-northeast-1.aliyuncs.com', 'vpc' => 'ecd.vpc-proxy.aliyuncs.com'],
+ ['regionId' => 'cn-chengdu', 'regionName' => 'China (Chengdu)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'ecd.cn-chengdu.aliyuncs.com', 'endpoint' => 'ecd.cn-chengdu.aliyuncs.com', 'vpc' => 'ecd-intl.vpc-proxy.aliyuncs.com'],
+ ['regionId' => 'cn-guangzhou', 'regionName' => 'China (Guangzhou)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'ecd.cn-guangzhou.aliyuncs.com', 'endpoint' => 'ecd.cn-guangzhou.aliyuncs.com', 'vpc' => 'ecd-intl.vpc-proxy.aliyuncs.com'],
+ ['regionId' => 'ap-southeast-1', 'regionName' => 'Singapore', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'ecd.ap-southeast-1.aliyuncs.com', 'endpoint' => 'ecd.ap-southeast-1.aliyuncs.com', 'vpc' => 'ecd-shenzhen-center.vpc-proxy.aliyuncs.com'],
+ ['regionId' => 'ap-southeast-5', 'regionName' => 'Indonesia (Jakarta)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'ecd.ap-southeast-5.aliyuncs.com', 'endpoint' => 'ecd.ap-southeast-5.aliyuncs.com', 'vpc' => 'ecd-intl.vpc-proxy.aliyuncs.com'],
+ ['regionId' => 'ap-southeast-6', 'regionName' => 'Philippines (Manila)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'ecd.ap-southeast-6.aliyuncs.com', 'endpoint' => 'ecd.ap-southeast-6.aliyuncs.com', 'vpc' => 'ecd-shenzhen-center.vpc-proxy.aliyuncs.com'],
+ ['regionId' => 'ap-southeast-7', 'regionName' => 'Thailand (Bangkok)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'ecd.ap-southeast-7.aliyuncs.com', 'endpoint' => 'ecd.ap-southeast-7.aliyuncs.com', 'vpc' => 'ecd-intl.vpc-proxy.aliyuncs.com'],
+ ['regionId' => 'cn-hangzhou', 'regionName' => 'China (Hangzhou)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'ecd.cn-hangzhou.aliyuncs.com', 'endpoint' => 'ecd.cn-hangzhou.aliyuncs.com', 'vpc' => 'ecd-intl.vpc-proxy.aliyuncs.com'],
+ ['regionId' => 'eu-west-1', 'regionName' => 'UK (London)', 'areaId' => 'europeAmerica', 'areaName' => 'Europe & Americas', 'public' => 'ecd.eu-west-1.aliyuncs.com', 'endpoint' => 'ecd.eu-west-1.aliyuncs.com', 'vpc' => 'ecd.vpc-proxy.aliyuncs.com'],
+ ['regionId' => 'us-west-1', 'regionName' => 'US (Silicon Valley)', 'areaId' => 'europeAmerica', 'areaName' => 'Europe & Americas', 'public' => 'ecd.us-west-1.aliyuncs.com', 'endpoint' => 'ecd.us-west-1.aliyuncs.com', 'vpc' => 'ecd.vpc-proxy.aliyuncs.com'],
+ ['regionId' => 'eu-central-1', 'regionName' => 'Germany (Frankfurt)', 'areaId' => 'europeAmerica', 'areaName' => 'Europe & Americas', 'public' => 'ecd.eu-central-1.aliyuncs.com', 'endpoint' => 'ecd.eu-central-1.aliyuncs.com', 'vpc' => 'ecd.vpc-proxy.aliyuncs.com'],
+ ['regionId' => 'me-east-1', 'regionName' => 'UAE (Dubai)', 'areaId' => 'middleEast', 'areaName' => 'Middle East', 'public' => 'ecd.me-east-1.aliyuncs.com', 'endpoint' => 'ecd.me-east-1.aliyuncs.com', 'vpc' => 'ecd-vpc.me-east-1.aliyuncs.com'],
+ ['regionId' => 'me-central-1', 'regionName' => 'Saudi Arabia (Riyadh)', 'areaId' => 'middleEast', 'areaName' => 'Middle East', 'public' => 'ecd.me-central-1.aliyuncs.com', 'endpoint' => 'ecd.me-central-1.aliyuncs.com', 'vpc' => 'ecd.vpc-proxy.aliyuncs.com'],
+ ['regionId' => 'cn-hangzhou-finance', 'regionName' => 'China East 1 Finance', 'areaId' => 'industryCloud', 'areaName' => 'Industry Cloud', 'public' => 'ecd.cn-hangzhou-finance.aliyuncs.com', 'endpoint' => 'ecd.cn-hangzhou-finance.aliyuncs.com', 'vpc' => 'ecd-vpc.cn-hangzhou-finance.aliyuncs.com'],
+ ['regionId' => 'cn-shanghai-finance-1', 'regionName' => 'China East 2 Finance', 'areaId' => 'industryCloud', 'areaName' => 'Industry Cloud', 'public' => 'ecd.cn-shanghai-finance-1.aliyuncs.com', 'endpoint' => 'ecd.cn-shanghai-finance-1.aliyuncs.com', 'vpc' => 'ecd-intl.vpc-proxy.aliyuncs.com'],
+ ],
+ 'errorCodes' => [
+ ['code' => 'App.Authing', 'message' => 'App is authing.', 'http_code' => 400, 'description' => 'The app is being set to be visible, please try again later.'],
+ ['code' => 'AuthorizeFailed', 'message' => 'Authorize failed, please check your EndUserId and Password.', 'http_code' => 400, 'description' => 'Invalid username or password.'],
+ ['code' => 'Benefit.NotExist', 'message' => 'The specified benefit is not found.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'Benefit.StockInsufficient', 'message' => 'The specified benefit is out of stock.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'Channel.NotExist', 'message' => 'The specified channel is not found.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'Channel.TokenInvalid', 'message' => 'The channel service request token is invalid.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'ChooseClusterError.ZoneId', 'message' => 'Cannot choose zone, please try other zone.', 'http_code' => 400, 'description' => 'The property of the resource zone does not match. Check whether the target office network supports the zone to which the resource belongs.'],
+ ['code' => 'DeletedBundleStatus', 'message' => 'The specified bundle status is deleted.', 'http_code' => 400, 'description' => 'The specified template has been deleted'],
+ ['code' => 'DesktopCpuHighLoad%s', 'message' => 'The specified desktop cpu high load.', 'http_code' => 400, 'description' => 'The CPU usage of this cloud computer is too high, causing the connection to time out. The application with the highest CPU usage is% s. Please reconnect or restart the cloud computer. If the connection failure still occurs, contact your IT administrator.'],
+ ['code' => 'DesktopMemoryHighLoad%s', 'message' => 'The specified desktop memory high load.', 'http_code' => 400, 'description' => 'A time out error occurred when connecting to this cloud computer because the memory usage of it is too high. The app consuming the most memory is %s. Please reconnect or restart the cloud computer. If the issue persists, please contact your IT administrator.'],
+ ['code' => 'ExistedFingerPrintTemplate', 'message' => 'The fingerprint is already registered as %s.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'ExistedHostname', 'message' => 'The specified hostname is existed on the domain.', 'http_code' => 400, 'description' => 'The specified hostname already exists in the current workspace'],
+ ['code' => 'ExportDesktop.UnknowError', 'message' => 'Failed to export desktop list. Please try again. If the problem still exists, submit a ticket.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'ExportDesktopGroup.UnknowError', 'message' => 'Failed to export desktop group list. Please try again. If the problem still exists, submit a ticket.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'FengyuTestCode1.%s', 'message' => 'FengyuTestMsg1.%s.', 'http_code' => 400, 'description' => 'Feng Yu Test Dynamic Error Description 1, Dynamic Error Message (%s)'],
+ ['code' => 'FengyuTestCode2', 'message' => 'FengyuTestMsg2.', 'http_code' => 400, 'description' => 'Feng Yu tests Chinese'],
+ ['code' => 'Forbidden', 'message' => 'User not authorized to operate on the specified resource.', 'http_code' => 403, 'description' => 'User does not have permission to operate on the specified resource'],
+ ['code' => 'FOTAVersion.NotSupported', 'message' => 'Desktop version does not support this function, please upgrade.', 'http_code' => 400, 'description' => 'The current desktop version does not support this feature. Update the version.'],
+ ['code' => 'HostnameCannotCustomizeForLinux', 'message' => 'Customizing hostname is not supported for Linux desktop.', 'http_code' => 400, 'description' => 'The custom hostname feature does not support Linux desktops'],
+ ['code' => 'IncorrectDirectoryStatus', 'message' => 'Only registered directory can create desktop.', 'http_code' => 400, 'description' => 'Workspace status error, only desktop creation with registered workspace is supported'],
+ ['code' => 'IncorrectDirectoryType', 'message' => 'The protocol type of directory and desktop do not match.', 'http_code' => 400, 'description' => 'The protocol types of the specified workspace and the target desktop do not match, please check'],
+ ['code' => 'InternalError', 'message' => 'The request processing has failed due to some unknown error, exception or failure.', 'http_code' => 500, 'description' => ''],
+ ['code' => 'InvalidAmount', 'message' => 'The specified Amount is not a valid value.', 'http_code' => 400, 'description' => 'The specified quantity is illegal'],
+ ['code' => 'InvalidAmount.NotTimesOfUsers', 'message' => 'The specified Amount is notmatch EndUserId size.', 'http_code' => 400, 'description' => 'The number of desktops specified is not equal to the number of users to be assigned, please re-specify'],
+ ['code' => 'InvalidClientIp.Policy', 'message' => 'Client ip %s is not in white list.', 'http_code' => 400, 'description' => 'The IT administrator has set an IP whitelist policy that prevents you from connecting to this cloud computer under your current IP environment (%s). Please contact the IT administrator.'],
+ ['code' => 'InvalidDesktopBundle.NotFound', 'message' => 'The specified param BundleId is not found.', 'http_code' => 400, 'description' => 'Specified BundleId not found'],
+ ['code' => 'InvalidDirectoryId.NotFound', 'message' => 'The specified param DirectoryId is not found.', 'http_code' => 400, 'description' => 'Unable to find workspace ID, please check workspace'],
+ ['code' => 'InvalidDirectoryType.NotSupported', 'message' => 'The specified DirectoryType is not supported.', 'http_code' => 400, 'description' => 'Specified'],
+ ['code' => 'InvalidEncryptionEnabled.Invalid', 'message' => 'The parameter VolumeEncryptionEnabled is invalid.', 'http_code' => 400, 'description' => 'When specifying the encryption key, you need to turn on the disk encryption function.'],
+ ['code' => 'InvalidEncryptionKey.Missing', 'message' => 'Parameter VolumeEncryptionKey is missing.', 'http_code' => 400, 'description' => 'When the disk encryption function is enabled, the encryption key cannot be empty.'],
+ ['code' => 'InvalidEncryptionKey.NotAuthorized', 'message' => 'Eds service cannot access the given VolumeEncryptionKey.', 'http_code' => 400, 'description' => 'Unable to access unauthorized encryption keys'],
+ ['code' => 'InvalidEncryptionKey.NotFound', 'message' => 'The specified VolumeEncryptionKey is not found.', 'http_code' => 400, 'description' => 'The specified encryption key could not be found'],
+ ['code' => 'InvalidFingerPrintTemplate', 'message' => 'The fingerprint template is invalid.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'InvalidFingerPrintTemplateIndex', 'message' => 'The index of the fingerprint template is invalid.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'InvalidImageStatus.NotValid', 'message' => 'The specified image status is not valid.', 'http_code' => 400, 'description' => 'The status of the specified image is unavailable and cannot be created.'],
+ ['code' => 'InvalidImageVersion.NotSupported', 'message' => 'The specified image version is no longer supported.', 'http_code' => 400, 'description' => 'The specified image version is no longer supported. Please select another image.'],
+ ['code' => 'InvalidMemberIp.DesktopAmount', 'message' => 'The desktop amount need to be 1.', 'http_code' => 400, 'description' => 'When you specify an IP to create a desktop, the number of desktops can only be 1'],
+ ['code' => 'InvalidOssObjectPath.NotFound', 'message' => 'Cannot parse input oss object path. eg: http://bucket/object.vhd.', 'http_code' => 400, 'description' => 'It is detected that the uploaded image file is not available, please ensure that the correct custom image is uploaded to the specified OSS bucket address.'],
+ ['code' => 'InvalidParameter.ResourceId', 'message' => 'The specified parameter ResourceId is invalid.', 'http_code' => 400, 'description' => 'The specified parameter ResourceId is invalid.'],
+ ['code' => 'InvalidParameterError', 'message' => 'Cannot query with end user id and include assigned user.', 'http_code' => 400, 'description' => 'Querying unassigned user and end user ID at the same time is not supported.'],
+ ['code' => 'InvalidPolicyGroup.Status', 'message' => 'The target policy group is being created. Please try again later.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'LockedUser', 'message' => 'User is locked.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'NetworkSpace.DependencyViolation', 'message' => 'networkSpace dependency violation.', 'http_code' => 400, 'description' => 'Resources exist in the current office network and cannot be deleted directly.'],
+ ['code' => 'NetworkSpace.VpcInfoExist', 'message' => 'vpc info already exist.', 'http_code' => 400, 'description' => 'Office network already exists for the corresponding VPC'],
+ ['code' => 'NoStock.ZoneInvalid', 'message' => 'The requested resource is sold out in the specified zone.', 'http_code' => 400, 'description' => 'The specified resource is out of stock in the selected Availability Zone.'],
+ ['code' => 'OperationTooFrequent', 'message' => 'The operation is too frequent, please try again later.', 'http_code' => 400, 'description' => 'Operation is too frequent, please try again later'],
+ ['code' => 'Order.Unpaid', 'message' => 'You have unpaid orders, please pay such orders before placing a new order.', 'http_code' => 403, 'description' => ''],
+ ['code' => 'ParamError.NoDesktopGroupId', 'message' => 'You must specify desktopGroupId.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'Protocol.NotAllowed', 'message' => 'Procotol of the image is not allowed.', 'http_code' => 400, 'description' => 'The protocol type of the image is not supported. Check the image ID.'],
+ ['code' => 'RedeemCode.QuantityExceeded', 'message' => 'The number of redeem codes obtained at a time is out of the valid range.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'RESOURCE_GROUP_ALREADY_BOUND_APP_RULE', 'message' => 'Resource group already bound app rule.', 'http_code' => 400, 'description' => 'The resource group to which the cloud computer belongs is binding/unbinding application control rules.'],
+ ['code' => 'RISK.RISK_CONTROL_REJECTION', 'message' => 'In order to protect the security of your account, the order was suspended, please contact customer service for details.', 'http_code' => 400, 'description' => 'In order to protect the security of your account, the order was suspended, please contact customer service for details.'],
+ ['code' => 'SALES_SERVICE_ERROR_INFORMATION', 'message' => 'Your information is incomplete. Complete your information before the operation.', 'http_code' => 400, 'description' => 'Your information is incomplete. Please complete all required fields here(超链接:https://myaccount.alibabacloud.com/user_info.htm?callback=#/userinfo ) before proceeding.'],
+ ['code' => 'StartApplicationFail', 'message' => 'The application start fail.', 'http_code' => 400, 'description' => 'Failed to start, please go to the "start" menu of win system to open shadowless housekeeper'],
+ ['code' => 'StartApplicationGuestNoApp', 'message' => 'The application no start app.', 'http_code' => 400, 'description' => 'Please go to shadowless application center to download shadowless butler'],
+ ['code' => 'StartApplicationGuestOffline', 'message' => 'The application guest offline.', 'http_code' => 400, 'description' => 'Desktop exception, please go to the "start" menu of win system to open shadowless housekeeper'],
+ ['code' => 'StartApplicationGuestTimeout', 'message' => 'The application guest timeout.', 'http_code' => 400, 'description' => 'The call timed out, please go to the "start" menu of win system to open shadowless housekeeper.'],
+ ['code' => 'Throttling.FingerPrintTemplateSet', 'message' => 'The previous fingerprint template setting is not completed yet.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'TooManyFingerPrintTemplateForDevice', 'message' => 'The maximum number of fingerprint templates that any user can save on the current device is exceeded.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'TooManyFingerPrintTemplateForUser', 'message' => 'The maximum number of fingerprint templates that you can save in the current environment is exceeded.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'TransitRouterService.TrNotExistInRegion', 'message' => 'The transit router need create in current region.', 'http_code' => 400, 'description' => 'There is no transit router in the current region in the cloud enterprise network, please go to the cloud enterprise network console to create a new router.'],
+ ['code' => 'UnavailableDesktop', 'message' => 'Authentication failure.', 'http_code' => 400, 'description' => 'Authentication failed, unable to connect.'],
+ ['code' => 'DesktopCanOnlyAssignedToOneUser', 'message' => 'The desktop can only assigned to one user.', 'http_code' => 400, 'description' => 'Forced connection is not allowed when multiple users are assigned to the cloud computer'],
+ ['code' => 'GET_APP_RULE_LOCK_FAILED', 'message' => 'Get app rule lock failed.', 'http_code' => 400, 'description' => 'The operation is too frequent, please try again later.'],
+ ['code' => 'INSUFFICIENT_QUOTA', 'message' => 'Insufficient quota.', 'http_code' => 400, 'description' => 'Insufficient user quota'],
+ ],
+ 'changeSet' => [],
+ 'ram' => [
+ 'productCode' => 'ECD',
+ 'productName' => 'Elastic Desktop Service',
+ 'ramCodes' => ['ecd', 'eds-user', 'gws', 'wss'],
+ 'ramLevel' => 'OPERATION',
+ 'ramConditions' => [],
+ 'ramActions' => [
+ [
+ 'apiName' => 'ParseSkillPackage',
+ 'description' => '',
+ 'operationType' => 'create',
+ 'ramAction' => [
+ 'action' => 'ecd:ParseSkillPackage',
+ 'authLevel' => 'operate',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ECD', 'resourceType' => 'All Resource', 'arn' => '*'],
+ ],
+ ],
+ ],
+ [
+ 'apiName' => 'ListSkills',
+ 'description' => '',
+ 'operationType' => 'none',
+ 'ramAction' => [
+ 'action' => 'ecd:ListSkills',
+ 'authLevel' => 'operate',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ECD', 'resourceType' => 'All Resource', 'arn' => '*'],
+ ],
+ ],
+ ],
+ [
+ 'apiName' => 'ListSecureSkillIdentities',
+ 'description' => '',
+ 'operationType' => 'none',
+ 'ramAction' => [
+ 'action' => 'ecd:ListSecureSkillIdentities',
+ 'authLevel' => 'operate',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ECD', 'resourceType' => 'All Resource', 'arn' => '*'],
+ ],
+ ],
+ ],
+ [
+ 'apiName' => 'GetParseProgress',
+ 'description' => '',
+ 'operationType' => 'none',
+ 'ramAction' => [
+ 'action' => 'ecd:GetParseProgress',
+ 'authLevel' => 'operate',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ECD', 'resourceType' => 'All Resource', 'arn' => '*'],
+ ],
+ ],
+ ],
+ [
+ 'apiName' => 'SetTenantSkillEnabled',
+ 'description' => '',
+ 'operationType' => 'update',
+ 'ramAction' => [
+ 'action' => 'ecd:SetTenantSkillEnabled',
+ 'authLevel' => 'operate',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ECD', 'resourceType' => 'All Resource', 'arn' => '*'],
+ ],
+ ],
+ ],
+ [
+ 'apiName' => 'ListSkillAuthedIdentities',
+ 'description' => '',
+ 'operationType' => 'none',
+ 'ramAction' => [
+ 'action' => 'ecd:ListSkillAuthedIdentities',
+ 'authLevel' => 'operate',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ECD', 'resourceType' => 'All Resource', 'arn' => '*'],
+ ],
+ ],
+ ],
+ [
+ 'apiName' => 'SetIdentitySkillAuth',
+ 'description' => '',
+ 'operationType' => 'update',
+ 'ramAction' => [
+ 'action' => 'ecd:SetIdentitySkillAuth',
+ 'authLevel' => 'operate',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ECD', 'resourceType' => 'All Resource', 'arn' => '*'],
+ ],
+ ],
+ ],
+ [
+ 'apiName' => 'SetIdentitySkillSecurity',
+ 'description' => '',
+ 'operationType' => 'update',
+ 'ramAction' => [
+ 'action' => 'ecd:SetIdentitySkillSecurity',
+ 'authLevel' => 'operate',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ECD', 'resourceType' => 'All Resource', 'arn' => '*'],
+ ],
+ ],
+ ],
+ [
+ 'apiName' => 'CreateTenantSkill',
+ 'description' => '',
+ 'operationType' => 'create',
+ 'ramAction' => [
+ 'action' => 'ecd:CreateTenantSkill',
+ 'authLevel' => 'operate',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ECD', 'resourceType' => 'All Resource', 'arn' => '*'],
+ ],
+ ],
+ ],
+ [
+ 'apiName' => 'GetOssStsToken',
+ 'description' => '',
+ 'operationType' => 'get',
+ 'ramAction' => [
+ 'action' => 'ecd:GetOssStsToken',
+ 'authLevel' => 'operate',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ECD', 'resourceType' => 'All Resource', 'arn' => '*'],
+ ],
+ ],
+ ],
+ [
+ 'apiName' => 'DeleteTenantSkills',
+ 'description' => '',
+ 'operationType' => 'delete',
+ 'ramAction' => [
+ 'action' => 'ecd:DeleteTenantSkills',
+ 'authLevel' => 'operate',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ECD', 'resourceType' => 'All Resource', 'arn' => '*'],
+ ],
+ ],
+ ],
+ ],
+ 'resourceTypes' => [],
+ ],
+];