summaryrefslogtreecommitdiff
path: root/data/en_us/resourcedirectorymaster
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/resourcedirectorymaster
parent7347bac4ab7e136157fc94777e6cf87ef9e08599 (diff)
downloadafterglow-metadata-full-1c7f908ce09f98fdcbf79ed2a8ae21be60eaa634.tar.gz
afterglow-metadata-full-1c7f908ce09f98fdcbf79ed2a8ae21be60eaa634.zip
update APIs 20260712
Diffstat (limited to 'data/en_us/resourcedirectorymaster')
-rw-r--r--data/en_us/resourcedirectorymaster/2022-04-19/api-docs.php13653
1 files changed, 5732 insertions, 7921 deletions
diff --git a/data/en_us/resourcedirectorymaster/2022-04-19/api-docs.php b/data/en_us/resourcedirectorymaster/2022-04-19/api-docs.php
index 4cdf66a..0a3acff 100644
--- a/data/en_us/resourcedirectorymaster/2022-04-19/api-docs.php
+++ b/data/en_us/resourcedirectorymaster/2022-04-19/api-docs.php
@@ -1,134 +1,49 @@
<?php return [
'version' => '1.0',
- 'info' => [
- 'style' => 'RPC',
- 'product' => 'ResourceDirectoryMaster',
- 'version' => '2022-04-19',
- ],
+ 'info' => ['style' => 'RPC', 'product' => 'ResourceDirectoryMaster', 'version' => '2022-04-19'],
'directories' => [
[
- 'id' => 349700,
- 'title' => null,
+ 'children' => ['EnableResourceDirectory', 'SendVerificationCodeForEnableRD'],
'type' => 'directory',
- 'children' => [
- 'EnableResourceDirectory',
- 'SendVerificationCodeForEnableRD',
- 'GetResourceDirectory',
- 'DestroyResourceDirectory',
- ],
+ 'title' => 'Services',
],
[
- 'id' => 349705,
- 'title' => null,
+ 'children' => ['ListAuthorizedFolders'],
'type' => 'directory',
- 'children' => [
- 'CreateFolder',
- 'GetFolder',
- 'DeleteFolder',
- 'ListFoldersForParent',
- 'UpdateFolder',
- 'ListAncestors',
- 'ListAuthorizedFolders',
- ],
+ 'title' => 'Folders',
],
[
- 'id' => 349713,
- 'title' => null,
+ 'children' => ['AddMessageContact', 'UpdateMessageContact', 'ListAuthorizedAccounts'],
'type' => 'directory',
- 'children' => [
- 'CreateResourceAccount',
- 'GetAccount',
- 'MoveAccount',
- 'UpdateAccount',
- 'ListAccounts',
- 'RemoveCloudAccount',
- 'ListAccountsForParent',
- 'GetPayerForAccount',
- 'UpdatePayerForAccount',
- 'InviteAccountToResourceDirectory',
- 'AcceptHandshake',
- 'GetHandshake',
- 'DeclineHandshake',
- 'CancelHandshake',
- 'ListHandshakesForAccount',
- 'ListHandshakesForResourceDirectory',
- 'SendVerificationCodeForBindSecureMobilePhone',
- 'BindSecureMobilePhone',
- 'SetMemberDeletionPermission',
- 'SetMemberDisplayNameSyncStatus',
- 'CheckAccountDelete',
- 'GetAccountDeletionCheckResult',
- 'DeleteAccount',
- 'GetAccountDeletionStatus',
- 'TagResources',
- 'UntagResources',
- 'ListTagResources',
- 'ListTagKeys',
- 'ListTagValues',
- 'ChangeAccountEmail',
- 'RetryChangeAccountEmail',
- 'CancelChangeAccountEmail',
- 'AddMessageContact',
- 'SendEmailVerificationForMessageContact',
- 'SendPhoneVerificationForMessageContact',
- 'ListMessageContactVerifications',
- 'AssociateMembers',
- 'DisassociateMembers',
- 'GetMessageContact',
- 'ListMessageContacts',
- 'DeleteMessageContact',
- 'GetMessageContactDeletionStatus',
- 'UpdateMessageContact',
- 'CancelMessageContactUpdate',
- 'PrecheckForConsolidatedBillingAccount',
- 'ListAuthorizedAccounts',
- ],
+ 'title' => 'Members',
],
[
- 'id' => 349760,
- 'title' => null,
+ 'children' => ['EnableControlPolicy', 'DisableControlPolicy', 'GetControlPolicyEnablementStatus', 'CreateControlPolicy', 'GetControlPolicy', 'ListControlPolicies', 'UpdateControlPolicy', 'DeleteControlPolicy', 'AttachControlPolicy', 'DetachControlPolicy', 'ListControlPolicyAttachmentsForTarget'],
'type' => 'directory',
- 'children' => [
- 'EnableControlPolicy',
- 'DisableControlPolicy',
- 'GetControlPolicyEnablementStatus',
- 'CreateControlPolicy',
- 'GetControlPolicy',
- 'ListControlPolicies',
- 'UpdateControlPolicy',
- 'DeleteControlPolicy',
- 'AttachControlPolicy',
- 'DetachControlPolicy',
- 'ListControlPolicyAttachmentsForTarget',
- 'ListTargetAttachmentsForControlPolicy',
- ],
+ 'title' => 'Control policies',
],
[
- 'id' => 349773,
- 'title' => null,
+ 'children' => ['ListDelegatedServicesForAccount'],
'type' => 'directory',
+ 'title' => 'Trusted services',
+ ],
+ [
'children' => [
- 'ListTrustedServiceStatus',
- 'RegisterDelegatedAdministrator',
- 'DeregisterDelegatedAdministrator',
- 'ListDelegatedAdministrators',
- 'ListDelegatedServicesForAccount',
+ 'AcceptHandshake', 'AssociateMembers', 'BindSecureMobilePhone', 'CancelChangeAccountEmail', 'CancelHandshake', 'CancelMessageContactUpdate', 'ChangeAccountEmail', 'CheckAccountDelete', 'CreateFolder', 'CreateResourceAccount', 'DeclineHandshake', 'DeleteAccount', 'DeleteFolder', 'DeleteMessageContact', 'DeregisterDelegatedAdministrator', 'DestroyResourceDirectory', 'DisassociateMembers', 'GetAccount', 'GetAccountDeletionCheckResult', 'GetAccountDeletionStatus',
+ 'GetFolder', 'GetHandshake', 'GetMessageContact', 'GetMessageContactDeletionStatus', 'GetPayerForAccount', 'GetResourceDirectory', 'InviteAccountToResourceDirectory', 'ListAccounts', 'ListAccountsForParent', 'ListAncestors', 'ListDelegatedAdministrators', 'ListFoldersForParent', 'ListHandshakesForAccount', 'ListHandshakesForResourceDirectory', 'ListMessageContactVerifications', 'ListMessageContacts', 'ListTagKeys', 'ListTagResources', 'ListTagValues', 'ListTargetAttachmentsForControlPolicy',
+ 'ListTrustedServiceStatus', 'MoveAccount', 'PrecheckForConsolidatedBillingAccount', 'RegisterDelegatedAdministrator', 'RemoveCloudAccount', 'RetryChangeAccountEmail', 'SendEmailVerificationForMessageContact', 'SendPhoneVerificationForMessageContact', 'SendVerificationCodeForBindSecureMobilePhone', 'SetMemberDeletionPermission', 'SetMemberDisplayNameSyncStatus', 'TagResources', 'UntagResources', 'UpdateAccount', 'UpdateFolder', 'UpdatePayerForAccount',
],
+ 'title' => 'Others',
+ 'type' => 'directory',
],
],
'components' => [
'schemas' => [],
],
'apis' => [
- 'EnableResourceDirectory' => [
- 'summary' => 'Enables a resource directory.',
- 'methods' => [
- 'post',
- 'get',
- ],
- 'schemes' => [
- 'https',
- ],
+ 'AcceptHandshake' => [
+ 'methods' => ['post', 'get'],
+ 'schemes' => ['https'],
'security' => [
[
'AK' => [],
@@ -136,77 +51,14 @@
],
'operationType' => 'readAndWrite',
'deprecated' => false,
- 'systemTags' => [
- 'operationType' => 'create',
- 'riskType' => 'none',
- 'chargeType' => 'free',
- ],
+ 'systemTags' => ['operationType' => 'update'],
'parameters' => [
[
- 'name' => 'MAName',
- 'in' => 'query',
- 'schema' => [
- 'description' => 'The name of the newly created account.'."\n"
- ."\n"
- .'Specify the name in the `<Prefix>@rdadmin.aliyunid.com` format. The prefix can contain letters, digits, and special characters but cannot contain consecutive special characters. The prefix must start and end with a letter or digit. Valid special characters include underscores (`_`), periods (.), and hyphens (-). The prefix must be 2 to 50 characters in length.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'user01@rdadmin.aliyunid.com',
- ],
- ],
- [
- 'name' => 'MASecureMobilePhone',
- 'in' => 'query',
- 'schema' => [
- 'description' => 'The mobile phone number that is bound to the newly created account.'."\n"
- ."\n"
- .'If you leave this parameter empty, the mobile phone number that is bound to the current account is used. The mobile phone number you specify must be the same as the mobile phone number that you specify when you call the [SendVerificationCodeForEnableRD](~~SendVerificationCodeForEnableRD~~) operation to obtain a verification code.'."\n"
- ."\n"
- .'Specify the mobile phone number in the `<Country code>-<Mobile phone number>` format.'."\n"
- ."\n"
- .'> Mobile phone numbers in the `86-<Mobile phone number>` format in the Chinese mainland are not supported.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'xx-13900001234',
- ],
- ],
- [
- 'name' => 'VerificationCode',
- 'in' => 'query',
- 'schema' => [
- 'description' => 'The verification code.'."\n"
- ."\n"
- .'You can call the [SendVerificationCodeForEnableRD](~~SendVerificationCodeForEnableRD~~) operation to obtain the verification code.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => '123456',
- ],
- ],
- [
- 'name' => 'EnableMode',
- 'in' => 'query',
- 'schema' => [
- 'description' => 'The mode in which you enable a resource directory. Valid values:'."\n"
- ."\n"
- .'* CurrentAccount: The current account is used to enable a resource directory.'."\n"
- .'* NewManagementAccount: A newly created account is used to enable a resource directory. If you select this mode, you must configure the `MAName`, `MASecureMobilePhone`, and `VerificationCode` parameters.'."\n",
- 'type' => 'string',
- 'required' => true,
- 'example' => 'CurrentAccount',
- ],
- ],
- [
- 'name' => 'DryRun',
+ 'name' => 'HandshakeId',
'in' => 'query',
- 'schema' => [
- 'description' => 'Specifies whether to perform only a dry run, without performing the actual request. Valid values:'."\n"
- ."\n"
- .'* **true**: performs only a dry run.'."\n"
- .'* **false** (default): performs a dry run and performs the actual request.'."\n",
- 'type' => 'boolean',
- 'required' => false,
- 'example' => 'false',
- ],
+ 'schema' => ['description' => 'The ID of the invitation.'."\n"
+ ."\n"
+ .'You can call the [ListHandshakesForAccount](~~ListHandshakesForAccount~~) operation to obtain the ID.'."\n", 'type' => 'string', 'required' => true, 'example' => 'h-Ih8IuPfvV0t0****', 'title' => ''],
],
],
'responses' => [
@@ -215,111 +67,66 @@
'description' => 'The returned result.'."\n",
'type' => 'object',
'properties' => [
- 'ResourceDirectory' => [
- 'description' => 'The information about the resource directory.'."\n",
+ 'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => '5828C836-3286-49A6-9006-15231BB19342', 'title' => ''],
+ 'Handshake' => [
+ 'description' => 'The information of the invitation.'."\n",
'type' => 'object',
'properties' => [
- 'ResourceDirectoryId' => [
- 'description' => 'The ID of the resource directory.'."\n",
- 'type' => 'string',
- 'example' => 'rd-54****',
- ],
- 'MasterAccountId' => [
- 'description' => 'The ID of the management account.'."\n",
- 'type' => 'string',
- 'example' => '507408460615****',
- ],
- 'MasterAccountName' => [
- 'description' => 'The name of the management account.'."\n",
- 'type' => 'string',
- 'example' => 'alice@example.com',
- ],
- 'RootFolderId' => [
- 'description' => 'The ID of the Root folder.'."\n",
- 'type' => 'string',
- 'example' => 'r-G9****',
- ],
- 'CreateTime' => [
- 'description' => 'The time when the resource directory was enabled.'."\n",
- 'type' => 'string',
- 'example' => '2021-12-08T02:15:31.744Z',
- ],
+ 'Status' => ['description' => 'The status of the invitation. Valid values:'."\n"
+ ."\n"
+ .'* Pending: The invitation is waiting for confirmation.'."\n"
+ .'* Accepted: The invitation is accepted.'."\n"
+ .'* Cancelled: The invitation is canceled.'."\n"
+ .'* Declined: The invitation is rejected.'."\n"
+ .'* Expired: The invitation expires.'."\n", 'type' => 'string', 'example' => 'Accepted', 'title' => ''],
+ 'ExpireTime' => ['description' => 'The time when the invitation expires. The time is displayed in UTC.'."\n", 'type' => 'string', 'example' => '2021-01-20T02:15:40Z', 'title' => ''],
+ 'ResourceDirectoryId' => ['description' => 'The ID of the resource directory.'."\n", 'type' => 'string', 'example' => 'rd-3G****', 'title' => ''],
+ 'CreateTime' => ['description' => 'The time when the invitation was created. The time is displayed in UTC.'."\n", 'type' => 'string', 'example' => '2021-01-06T02:15:40Z', 'title' => ''],
+ 'Note' => ['description' => 'The description of the invitation.'."\n", 'type' => 'string', 'example' => 'Welcome'."\n", 'title' => ''],
+ 'TargetEntity' => ['description' => 'The ID or logon email address of the invited Alibaba Cloud account.'."\n", 'type' => 'string', 'example' => '177242285274****', 'title' => ''],
+ 'MasterAccountId' => ['description' => 'The ID of the management account of the resource directory.'."\n", 'type' => 'string', 'example' => '151266687691****', 'title' => ''],
+ 'MasterAccountName' => ['description' => 'The name of the management account of the resource directory.'."\n", 'type' => 'string', 'example' => 'CompanyA', 'title' => ''],
+ 'ModifyTime' => ['description' => 'The time when the invitation was modified. The time is displayed in UTC.'."\n", 'type' => 'string', 'example' => '2021-01-06T02:16:40Z', 'title' => ''],
+ 'TargetType' => ['description' => 'The type of the invited Alibaba Cloud account. Valid values:'."\n"
+ ."\n"
+ .'* Account: indicates the ID of the Alibaba Cloud account.'."\n"
+ .'* Email: indicates the logon email address of the Alibaba Cloud account.'."\n", 'type' => 'string', 'example' => 'Account', 'title' => ''],
+ 'HandshakeId' => ['description' => 'The ID of the invitation.'."\n", 'type' => 'string', 'example' => 'h-Ih8IuPfvV0t0****', 'title' => ''],
],
- ],
- 'RequestId' => [
- 'description' => 'The ID of the request.'."\n",
- 'type' => 'string',
- 'example' => 'EC2FE94D-A4A2-51A1-A493-5C273A36C46A',
+ 'title' => '',
],
],
+ 'title' => '',
],
],
],
'errorCodes' => [
+ 400 => [
+ ['errorCode' => 'MissingParameter.HandshakeId', 'errorMessage' => 'You must specify HandshakeId.', 'description' => ''],
+ ['errorCode' => 'InvalidParameter.HandshakeId', 'errorMessage' => 'The HandshakeId is invalid.', 'description' => ''],
+ ],
+ 404 => [
+ ['errorCode' => 'EntityNotExists.Handshake', 'errorMessage' => 'The specified handshake does not exist.', 'description' => ''],
+ ['errorCode' => 'SpecifiedResourceDirectoryNotExists', 'errorMessage' => 'The specified resource directory does not exist. You must specify a valid resource directory.', 'description' => ''],
+ ],
409 => [
- [
- 'errorCode' => 'NotSupport.AccountInAnotherResourceDirectory',
- 'errorMessage' => 'The specified account is an Alibaba Cloud account or already exists in another resource directory.',
- ],
- [
- 'errorCode' => 'Invalid.EnterpriseName',
- 'errorMessage' => 'You must specify the enterprise name.',
- ],
- [
- 'errorCode' => 'EnterpriseRealNameVerificationError',
- 'errorMessage' => 'The specified account does not pass enterprise real-name verification. We recommend you first complete enterprise real-name verification for the account.',
- ],
- [
- 'errorCode' => 'EntityAlreadyExists.ResourceDirectory',
- 'errorMessage' => 'The resource directory for the account is already enabled. We recommend that you do not enable the resource directory again.',
- ],
- [
- 'errorCode' => 'InvalidParameter.ManagementAccountName.AlreadyUsed',
- 'errorMessage' => 'The ManagementAccountName has been used.',
- ],
- [
- 'errorCode' => 'Invalid.VerificationCode',
- 'errorMessage' => 'The verification code is invalid.',
- ],
- [
- 'errorCode' => 'InvalidParameter.ManagementAccountName',
- 'errorMessage' => 'The management account name is in the wrong format.',
- ],
- [
- 'errorCode' => 'InvalidParameter.ManagementAccountSecurityInfo',
- 'errorMessage' => 'The parameter management account secure mobile phone is invalid.',
- ],
- [
- 'errorCode' => 'MissingSecureMobilePhone',
- 'errorMessage' => 'Secure mobile phone is missing.',
- ],
- [
- 'errorCode' => 'MissingSecurityInfo',
- 'errorMessage' => 'Security info is missing.',
- ],
- [
- 'errorCode' => 'NotSupport.Account.Site',
- 'errorMessage' => 'The caller is not a China site account, which is not supported.',
- ],
- [
- 'errorCode' => 'Invalid.AccountType',
- 'errorMessage' => 'The specified profile type of account is invalid.',
- ],
+ ['errorCode' => 'HandshakeStatusMismatch', 'errorMessage' => 'The invitation is invalid.', 'description' => ''],
+ ['errorCode' => 'NotSupport.AccountInAnotherResourceDirectory', 'errorMessage' => 'Your account is a management account for another resource directory or a member of another resource directory.', 'description' => ''],
+ ['errorCode' => 'Invalid.AccountType', 'errorMessage' => 'The specified profile type of account is invalid.', 'description' => ''],
+ ['errorCode' => 'NotSupport.Account.RealNameType', 'errorMessage' => 'Your account is not a real-name of enterprise type, so you cannot accept the invitation.', 'description' => ''],
],
],
- 'responseDemo' => '[{"type":"json","example":"{\\n \\"ResourceDirectory\\": {\\n \\"ResourceDirectoryId\\": \\"rd-54****\\",\\n \\"MasterAccountId\\": \\"507408460615****\\",\\n \\"MasterAccountName\\": \\"alice@example.com\\",\\n \\"RootFolderId\\": \\"r-G9****\\",\\n \\"CreateTime\\": \\"2021-12-08T02:15:31.744Z\\"\\n },\\n \\"RequestId\\": \\"EC2FE94D-A4A2-51A1-A493-5C273A36C46A\\"\\n}","errorExample":""},{"type":"xml","example":"<EnableResourceDirectoryResponse>\\n <RequestId>EC2FE94D-A4A2-51A1-A493-5C273A36C46A</RequestId>\\n <ResourceDirectory>\\n <ResourceDirectoryId>rd-54****</ResourceDirectoryId>\\n <MasterAccountName>alice@example.com</MasterAccountName>\\n <RootFolderId>r-G9****</RootFolderId>\\n <CreateTime>2021-12-08T02:15:31.744Z</CreateTime>\\n <MasterAccountId>507408460615****</MasterAccountId>\\n </ResourceDirectory>\\n</EnableResourceDirectoryResponse>","errorExample":""}]',
- 'title' => 'EnableResourceDirectory',
- 'description' => 'You can use the current account or a newly created account to enable a resource directory. For more information, see [Enable a resource directory](~~111215~~).'."\n",
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"5828C836-3286-49A6-9006-15231BB19342\\",\\n \\"Handshake\\": {\\n \\"Status\\": \\"Accepted\\",\\n \\"ExpireTime\\": \\"2021-01-20T02:15:40Z\\",\\n \\"ResourceDirectoryId\\": \\"rd-3G****\\",\\n \\"CreateTime\\": \\"2021-01-06T02:15:40Z\\",\\n \\"Note\\": \\"Welcome\\\\n\\",\\n \\"TargetEntity\\": \\"177242285274****\\",\\n \\"MasterAccountId\\": \\"151266687691****\\",\\n \\"MasterAccountName\\": \\"CompanyA\\",\\n \\"ModifyTime\\": \\"2021-01-06T02:16:40Z\\",\\n \\"TargetType\\": \\"Account\\",\\n \\"HandshakeId\\": \\"h-Ih8IuPfvV0t0****\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"","errorExample":""}]',
+ 'title' => 'AcceptHandshake',
+ 'summary' => 'Accepts an invitation.',
+ 'description' => 'After an invited Alibaba Cloud account joins a resource directory, it becomes a member of the resource directory. By default, the name of the invited Alibaba Cloud account is used as the display name of the account in the resource directory.'."\n",
+ 'responseParamsDescription' => ' ',
+ 'changeSet' => [],
],
- 'SendVerificationCodeForEnableRD' => [
- 'summary' => 'Sends a verification code to the mobile phone number bound to a newly created account when you use the account to enable a resource directory.',
- 'methods' => [
- 'post',
- 'get',
- ],
- 'schemes' => [
- 'https',
- ],
+ 'AddMessageContact' => [
+ 'summary' => 'Adds a contact.',
+ 'methods' => ['post', 'get'],
+ 'schemes' => ['https'],
'security' => [
[
'AK' => [],
@@ -327,187 +134,329 @@
],
'operationType' => 'readAndWrite',
'deprecated' => false,
- 'systemTags' => [
- 'operationType' => 'none',
- 'riskType' => 'none',
- 'chargeType' => 'free',
- 'tenantRelevance' => 'publicInformation',
- ],
+ 'systemTags' => ['operationType' => 'create'],
'parameters' => [
[
- 'name' => 'SecureMobilePhone',
+ 'name' => 'Name',
+ 'in' => 'query',
+ 'schema' => ['description' => 'The name of the contact.'."\n"
+ ."\n"
+ .'The name must be unique in your resource directory.'."\n"
+ ."\n"
+ .'The name must be 2 to 12 characters in length and can contain only letters.', 'type' => 'string', 'required' => true, 'example' => 'tom', 'title' => ''],
+ ],
+ [
+ 'name' => 'EmailAddress',
+ 'in' => 'query',
+ 'schema' => ['description' => 'The email address of the contact.'."\n"
+ ."\n"
+ .'After you specify an email address, you need to call [SendEmailVerificationForMessageContact](~~SendEmailVerificationForMessageContact~~) to send verification information to the email address. After the verification is passed, the email address takes effect.', 'type' => 'string', 'required' => true, 'example' => 'someone***@example.com', 'title' => ''],
+ ],
+ [
+ 'name' => 'PhoneNumber',
+ 'in' => 'query',
+ 'schema' => ['description' => 'The mobile phone number of the contact.'."\n"
+ ."\n"
+ .'Specify the mobile phone number in the `<Country code>-<Mobile phone number>` format.'."\n"
+ ."\n"
+ .'> Only mobile phone numbers in the `86-<Mobile phone number>` format in the Chinese mainland are supported.'."\n"
+ ."\n"
+ .'After you specify a mobile phone number, you need to call [SendPhoneVerificationForMessageContact](~~SendPhoneVerificationForMessageContact~~) to send verification information to the mobile phone number. After the verification is passed, the mobile phone number takes effect.', 'type' => 'string', 'required' => false, 'example' => '86-139****1234', 'title' => ''],
+ ],
+ [
+ 'name' => 'Title',
'in' => 'query',
'schema' => [
- 'description' => 'The mobile phone number that is bound to the newly created account. If you leave this parameter empty, the mobile phone number that is bound to the current account is used.'."\n"
+ 'description' => 'The job title of the contact.'."\n"
+ ."\n"
+ .'Valid values:'."\n"
+ ."\n"
+ .'- FinanceDirector'."\n"
+ ."\n"
+ .' <!-- -->'."\n"
+ ."\n"
+ .' <!-- -->'."\n"
+ ."\n"
+ .' <!-- -->'."\n"
+ ."\n"
+ .'- TechnicalDirector'."\n"
+ ."\n"
+ .' <!-- -->'."\n"
."\n"
- .'Specify the mobile phone number in the `<Country code>-<Mobile phone number>` format.'."\n"
+ .' <!-- -->'."\n"
."\n"
- .'> Mobile phone numbers in the `86-<Mobile phone number>` format in the Chinese mainland are not supported.'."\n",
+ .' <!-- -->'."\n"
+ ."\n"
+ .'- MaintenanceDirector'."\n"
+ ."\n"
+ .' <!-- -->'."\n"
+ ."\n"
+ .' <!-- -->'."\n"
+ ."\n"
+ .' <!-- -->'."\n"
+ ."\n"
+ .'- CEO'."\n"
+ ."\n"
+ .' <!-- -->'."\n"
+ ."\n"
+ .' <!-- -->'."\n"
+ ."\n"
+ .' <!-- -->'."\n"
+ ."\n"
+ .'- ProjectDirector'."\n"
+ ."\n"
+ .' <!-- -->'."\n"
+ ."\n"
+ .' <!-- -->'."\n"
+ ."\n"
+ .' <!-- -->'."\n"
+ ."\n"
+ .'- Other'."\n"
+ ."\n"
+ .' <!-- -->'."\n"
+ ."\n"
+ .' <!-- -->'."\n"
+ ."\n"
+ .' <!-- -->',
+ 'enumValueTitles' => ['FinanceDirector' => 'Finance manager', 'TechnicalDirector' => 'Technical manager', 'MaintenanceDirector' => 'O\\&M manager', 'CEO' => 'CEO', 'ProjectDirector' => 'Project manager', 'Other' => 'Others'],
'type' => 'string',
- 'required' => false,
- 'example' => 'xx-13900001234',
+ 'required' => true,
+ 'example' => 'TechnicalDirector',
+ 'title' => '',
+ ],
+ ],
+ [
+ 'name' => 'MessageTypes',
+ 'in' => 'query',
+ 'style' => 'flat',
+ 'schema' => [
+ 'description' => 'The types of messages received by the contact.',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The type of the message received by the contact.'."\n"
+ ."\n"
+ .'Valid values:'."\n"
+ ."\n"
+ .'- ServiceMessage'."\n"
+ ."\n"
+ .' <!-- -->'."\n"
+ ."\n"
+ .' <!-- -->'."\n"
+ ."\n"
+ .' <!-- -->'."\n"
+ ."\n"
+ .'- FaultMessage'."\n"
+ ."\n"
+ .' <!-- -->'."\n"
+ ."\n"
+ .' <!-- -->'."\n"
+ ."\n"
+ .' <!-- -->'."\n"
+ ."\n"
+ .'- AccountExpenses'."\n"
+ ."\n"
+ .' <!-- -->'."\n"
+ ."\n"
+ .' <!-- -->'."\n"
+ ."\n"
+ .' <!-- -->'."\n"
+ ."\n"
+ .'- SecurityMessage'."\n"
+ ."\n"
+ .' <!-- -->'."\n"
+ ."\n"
+ .' <!-- -->'."\n"
+ ."\n"
+ .' <!-- -->'."\n"
+ ."\n"
+ .'- ActivityMessage'."\n"
+ ."\n"
+ .' <!-- -->'."\n"
+ ."\n"
+ .' <!-- -->'."\n"
+ ."\n"
+ .' <!-- -->'."\n"
+ ."\n"
+ .'- ProductMessage'."\n"
+ ."\n"
+ .' <!-- -->'."\n"
+ ."\n"
+ .' <!-- -->'."\n"
+ ."\n"
+ .' <!-- -->',
+ 'enumValueTitles' => ['ServiceMessage' => 'Service messages', 'FaultMessage' => 'Fault messages', 'AccountExpenses' => 'Account fund messages', 'SecurityMessage' => 'Security messages', 'ActivityMessage' => 'Promotional messages', 'ProductMessage' => 'Product messages'],
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'AccountExpenses',
+ 'title' => '',
+ ],
+ 'required' => true,
+ 'title' => '',
+ 'example' => '',
],
],
],
'responses' => [
200 => [
'schema' => [
- 'description' => 'The returned result.'."\n",
+ 'title' => 'Schema of Response',
+ 'description' => 'The returned result.',
'type' => 'object',
'properties' => [
- 'RequestId' => [
- 'description' => 'The ID of the request.'."\n",
- 'type' => 'string',
- 'example' => 'EC2FE94D-A4A2-51A1-A493-5C273A36C46A',
+ 'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.', 'type' => 'string', 'example' => '2DFCE4C9-04A9-4C83-BB14-FE791275EC53'],
+ 'Contact' => [
+ 'description' => 'The information about the contact.',
+ 'type' => 'object',
+ 'properties' => [
+ 'ContactId' => ['description' => 'The ID of the contact.', 'type' => 'string', 'example' => 'c-qL4HqKONzOM7****', 'title' => ''],
+ 'CreateDate' => ['description' => 'The time when the contact was created.', 'type' => 'string', 'example' => '2023-03-27 17:19:21', 'title' => ''],
+ ],
+ 'title' => '',
+ 'example' => '',
],
],
+ 'example' => '',
],
],
],
'errorCodes' => [
- 409 => [
- [
- 'errorCode' => 'NotSupport.AccountInAnotherResourceDirectory',
- 'errorMessage' => 'The specified account is an Alibaba Cloud account or already exists in another resource directory.',
- ],
- [
- 'errorCode' => 'EntityAlreadyExists.ResourceDirectory',
- 'errorMessage' => 'The resource directory for the account is already enabled. We recommend that you do not enable the resource directory again.',
- ],
- [
- 'errorCode' => 'SendValidateCodeExceedsLimitForAccount',
- 'errorMessage' => 'For the same account, the number of verification codes sent exceeds the limit.',
- ],
- [
- 'errorCode' => 'InvalidParameter.MobileCountryCode',
- 'errorMessage' => 'The current site does not support the country code.',
- ],
+ 400 => [
+ ['errorCode' => 'MissingParameter.Name', 'errorMessage' => 'You must specify Name.', 'description' => 'You must specify Name.'],
+ ['errorCode' => 'InvalidParameter.Name', 'errorMessage' => 'The Name is invalid.', 'description' => 'The value of the Name parameter is invalid. The value can contain only letters.'],
+ ['errorCode' => 'InvalidParameter.Name.Length', 'errorMessage' => 'The Name exceeds the length limit.', 'description' => 'The length of the value specified for the Name parameter exceeds the upper limit. The value must be 2 to 12 characters in length and can contain only letters.'],
+ ['errorCode' => 'InvalidParameter.Name.AlreadyUsed', 'errorMessage' => 'The Name already exists. Please change to another name.', 'description' => 'The contact name already exists in the resource directory. Use another name.'],
+ ['errorCode' => 'MissingParameter.EmailAddress', 'errorMessage' => 'You must specify EmailAddress.', 'description' => 'The EmailAddress parameter is not configured.'],
+ ['errorCode' => 'InvalidParameter.EmailAddress', 'errorMessage' => 'The EmailAddress is invalid.', 'description' => 'The value of the EmailAddress parameter is invalid.'],
+ ['errorCode' => 'MissingParameter.PhoneNumber', 'errorMessage' => 'You must specify PhoneNumber.', 'description' => 'The PhoneNumber parameter is not configured.'],
+ ['errorCode' => 'InvalidParameter.PhoneNumber', 'errorMessage' => 'The PhoneNumber is invalid.', 'description' => 'The value of the PhoneNumber parameter is invalid.'],
+ ['errorCode' => 'MissingParameter.Title', 'errorMessage' => 'You must specify Title.', 'description' => 'The Title parameter is not configured.'],
+ ['errorCode' => 'InvalidParameter.Title', 'errorMessage' => 'The Title is invalid.', 'description' => 'The value of the Title parameter is invalid.'],
+ ['errorCode' => 'MissingParameter.MessageTypes', 'errorMessage' => 'You must specify MessageTypes.', 'description' => 'The MessageTypes parameter is not configured.'],
+ ['errorCode' => 'InvalidParameter.MessageTypes', 'errorMessage' => 'The MessageTypes is invalid.', 'description' => 'The value of the MessageTypes parameter is invalid.'],
+ ['errorCode' => 'LimitExceeded.Contacts', 'errorMessage' => 'The maximum number of contacts in a resource directory exceeds the limit.', 'description' => 'The number of contacts exceeds the upper limit.'],
+ ['errorCode' => 'InvalidParameter.MobileCountryCode', 'errorMessage' => 'The current site does not support the country code.', 'description' => ''],
+ ['errorCode' => 'InvalidParameter.EmailAddress.Length', 'errorMessage' => 'The EmailAddress exceeds the length limit.', 'description' => 'The length of the value specified for the EmailAddress parameter exceeds the upper limit.'],
+ ],
+ 429 => [
+ ['errorCode' => 'ConcurrentCallNotSupported', 'errorMessage' => 'The operation conflicts with other operations. Please try again later.', 'description' => 'The operation conflicts with other operations. Try again later.'],
],
],
- 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"EC2FE94D-A4A2-51A1-A493-5C273A36C46A\\"\\n}","errorExample":""},{"type":"xml","example":"<SendVerificationCodeForEnableRDResponse>\\n <RequestId>EC2FE94D-A4A2-51A1-A493-5C273A36C46A</RequestId>\\n</SendVerificationCodeForEnableRDResponse>","errorExample":""}]',
- 'title' => 'SendVerificationCodeForEnableRD',
- 'description' => 'Each Alibaba Cloud account can be used to send a maximum of 100 verification codes per day.'."\n",
- ],
- 'GetResourceDirectory' => [
- 'summary' => 'Queries the information of a resource directory. If you use a management account to call this API operation, the system returns the information of the resource directory that is enabled by using the management account. If you use a member to call this operation, the system returns the information of',
- 'methods' => [
- 'post',
- 'get',
+ 'staticInfo' => ['returnType' => 'synchronous'],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"2DFCE4C9-04A9-4C83-BB14-FE791275EC53\\",\\n \\"Contact\\": {\\n \\"ContactId\\": \\"c-qL4HqKONzOM7****\\",\\n \\"CreateDate\\": \\"2023-03-27 17:19:21\\"\\n }\\n}","type":"json"}]',
+ 'title' => 'AddMessageContact',
+ 'changeSet' => [],
+ 'flowControl' => [
+ 'flowControlList' => [
+ ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'AddMessageContact'],
+ ],
],
- 'schemes' => [
- 'https',
+ 'ramActions' => [
+ [
+ 'operationType' => 'create',
+ 'ramAction' => [
+ 'action' => 'resourcemanager:AddMessageContact',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ResourceManager', 'resourceType' => 'MessageContact', 'arn' => 'acs:resourcemanager:*:{#accountId}:messagecontact/*'],
+ ],
+ ],
+ ],
],
+ ],
+ 'AssociateMembers' => [
+ 'methods' => ['post', 'get'],
+ 'schemes' => ['https'],
'security' => [
[
'AK' => [],
],
],
- 'operationType' => 'read',
+ 'operationType' => 'readAndWrite',
'deprecated' => false,
- 'systemTags' => [
- 'operationType' => 'get',
- 'riskType' => 'none',
- 'chargeType' => 'free',
+ 'systemTags' => ['operationType' => 'update'],
+ 'parameters' => [
+ [
+ 'name' => 'ContactId',
+ 'in' => 'query',
+ 'schema' => ['description' => 'The ID of the contact.'."\n", 'type' => 'string', 'required' => false, 'example' => 'c-qL4HqKONzOM7****', 'title' => ''],
+ ],
+ [
+ 'name' => 'Members',
+ 'in' => 'query',
+ 'style' => 'flat',
+ 'schema' => [
+ 'description' => 'The IDs of objects to which you want to bind the contact.'."\n",
+ 'type' => 'array',
+ 'items' => ['description' => 'The ID of the object to which you want to bind the contact. Valid values:'."\n"
+ ."\n"
+ .'* ID of a resource directory'."\n"
+ .'* ID of a folder'."\n"
+ .'* ID of a member'."\n"
+ ."\n"
+ .'Valid values of N: 1 to 5. This indicates that a maximum of five objects can be specified at a time.'."\n", 'type' => 'string', 'required' => false, 'example' => 'fd-ZDNPiT****', 'title' => ''],
+ 'required' => false,
+ 'title' => '',
+ ],
+ ],
],
- 'parameters' => [],
'responses' => [
200 => [
'schema' => [
- 'description' => 'The response parameters.'."\n",
+ 'title' => 'Schema of Response',
+ 'description' => 'The returned result.'."\n",
'type' => 'object',
'properties' => [
- 'RequestId' => [
- 'description' => 'The ID of the request.',
- 'type' => 'string',
- 'example' => 'CD76D376-2517-4924-92C5-DBC52262F93A',
- ],
- 'ResourceDirectory' => [
- 'description' => 'The information about the resource directory.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'RootFolderId' => [
- 'description' => 'The ID of the Root folder.',
- 'type' => 'string',
- 'example' => 'r-Zo****',
- ],
- 'ResourceDirectoryId' => [
- 'description' => 'The ID of the resource directory.',
- 'type' => 'string',
- 'example' => 'rd-St****',
- ],
- 'CreateTime' => [
- 'description' => 'The time when the resource directory was enabled.',
- 'type' => 'string',
- 'example' => '2019-02-18T15:32:10.473Z',
- ],
- 'MasterAccountId' => [
- 'description' => 'The ID of the management account.',
- 'type' => 'string',
- 'example' => '172845045600****',
- ],
- 'MasterAccountName' => [
- 'description' => 'The name of the management account.',
- 'type' => 'string',
- 'example' => 'aliyun-admin',
- ],
- 'ControlPolicyStatus' => [
- 'description' => 'The status of the Control Policy feature. Valid values:'."\n"
- ."\n"
- .'- Enabled: The feature is enabled.'."\n"
- .'- PendingEnable: The feature is being enabled.'."\n"
- .'- Disabled: The feature is disabled.'."\n"
- .'- PendingDisable: The feature is being disabled.',
- 'type' => 'string',
- 'example' => 'Enabled',
- ],
- 'MemberDeletionStatus' => [
- 'description' => 'The status of the member deletion feature. Valid values:'."\n"
- ."\n"
- .'- Enabled: The feature is enabled. You can call the [DeleteAccount](~~DeleteAccount~~) operation to delete members of the resource account type.'."\n"
- .'- Disabled: The feature is disabled. You cannot delete members of the resource account type.',
- 'type' => 'string',
- 'example' => 'Enabled',
- ],
- 'IdentityInformation' => [
- 'description' => 'The real-name verification information.',
- 'type' => 'string',
- 'example' => '*** Co., Ltd.',
- ],
- 'MemberAccountDisplayNameSyncStatus' => [
- 'description' => 'The status of the Member Display Name Synchronization feature. Valid values:'."\n"
+ 'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '95060F1D-6990-4645-8920-A81D1BBFE992'],
+ 'Members' => [
+ 'description' => 'The time when the contact was bound to the object.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => '',
+ 'type' => 'object',
+ 'properties' => [
+ 'ContactId' => ['description' => 'The ID of the contact.', 'type' => 'string', 'example' => 'c-qL4HqKONzOM7****', 'title' => ''],
+ 'MemberId' => ['description' => 'The ID of the object. Valid values:'."\n"
."\n"
- .'* Enabled'."\n"
- .'* Disabled'."\n",
- 'type' => 'string',
- 'example' => 'Enabled',
+ .'- ID of the resource directory'."\n"
+ .'- ID of the folder'."\n"
+ .'- ID of the member', 'type' => 'string', 'example' => 'fd-ZDNPiT****', 'title' => ''],
+ 'ModifyDate' => ['description' => 'The time when the contact was bound to the object.', 'type' => 'string', 'example' => '2023-03-27 17:19:21', 'title' => ''],
],
+ 'title' => '',
],
+ 'title' => '',
],
],
],
],
],
'errorCodes' => [
+ 400 => [
+ ['errorCode' => 'InvalidParameter.ContactId', 'errorMessage' => 'The ContactId is invalid.', 'description' => ''],
+ ['errorCode' => 'MissingParameter.ContactId', 'errorMessage' => 'You must specify ContactId.', 'description' => ''],
+ ['errorCode' => 'InvalidParameter.Members', 'errorMessage' => 'The Members is invalid.', 'description' => ''],
+ ['errorCode' => 'InvalidParameter.Members.Duplicate', 'errorMessage' => 'The Members contains duplicate values.', 'description' => ''],
+ ['errorCode' => 'LimitExceeded.ContactMembers', 'errorMessage' => 'The maximum number of contact members exceeds the limit.', 'description' => ''],
+ ['errorCode' => 'InvalidMember', 'errorMessage' => 'The member does not exist in the resource directory.', 'description' => ''],
+ ['errorCode' => 'ContactStatusMismatchAction', 'errorMessage' => 'The status of the contact does not allow the specified operation.', 'description' => ''],
+ ],
404 => [
- [
- 'errorCode' => 'ResourceDirectoryNotInUse',
- 'errorMessage' => 'The specified account is not an Alibaba Cloud account or a member account of the resource directory.',
- ],
+ ['errorCode' => 'EntityNotExists.Contact', 'errorMessage' => 'This Contact does not exist.', 'description' => ''],
+ ],
+ 429 => [
+ ['errorCode' => 'ConcurrentCallNotSupported', 'errorMessage' => 'The operation conflicts with other operations. Please try again later.', 'description' => ''],
],
],
- 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CD76D376-2517-4924-92C5-DBC52262F93A\\",\\n \\"ResourceDirectory\\": {\\n \\"RootFolderId\\": \\"r-Zo****\\",\\n \\"ResourceDirectoryId\\": \\"rd-St****\\",\\n \\"CreateTime\\": \\"2019-02-18T15:32:10.473Z\\",\\n \\"MasterAccountId\\": \\"172845045600****\\",\\n \\"MasterAccountName\\": \\"aliyun-admin\\",\\n \\"ControlPolicyStatus\\": \\"Enabled\\",\\n \\"MemberDeletionStatus\\": \\"Enabled\\",\\n \\"IdentityInformation\\": \\"***有限公司\\",\\n \\"MemberAccountDisplayNameSyncStatus\\": \\"Enabled\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"<GetResourceDirectoryResponse>\\n <RequestId>CD76D376-2517-4924-92C5-DBC52262F93A</RequestId>\\n <ResourceDirectory>\\n <RootFolderId>r-Zo****</RootFolderId>\\n <ResourceDirectoryId>rd-St****</ResourceDirectoryId>\\n <CreateTime>2019-02-18T15:32:10.473Z</CreateTime>\\n <MasterAccountId>172845045600****</MasterAccountId>\\n <MasterAccountName>aliyun-admin</MasterAccountName>\\n <ControlPolicyStatus>Enabled</ControlPolicyStatus>\\n <MemberDeletionStatus>Enabled</MemberDeletionStatus>\\n <IdentityInformation>***有限公司</IdentityInformation>\\n </ResourceDirectory>\\n</GetResourceDirectoryResponse>","errorExample":""}]',
- 'title' => 'GetResourceDirectory',
- 'responseParamsDescription' => ' ',
- 'extraInfo' => ' ',
+ 'staticInfo' => ['returnType' => 'synchronous'],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"95060F1D-6990-4645-8920-A81D1BBFE992\\",\\n \\"Members\\": [\\n {\\n \\"ContactId\\": \\"c-qL4HqKONzOM7****\\",\\n \\"MemberId\\": \\"fd-ZDNPiT****\\",\\n \\"ModifyDate\\": \\"2023-03-27 17:19:21\\"\\n }\\n ]\\n}","type":"json"}]',
+ 'title' => 'AssociateMembers',
+ 'summary' => 'Binds a contact to a resource directory, folder, or member.',
+ 'changeSet' => [],
],
- 'DestroyResourceDirectory' => [
- 'methods' => [
- 'post',
- 'get',
- ],
- 'schemes' => [
- 'https',
- ],
+ 'AttachControlPolicy' => [
+ 'methods' => ['post', 'get'],
+ 'schemes' => ['https'],
'security' => [
[
'AK' => [],
@@ -515,59 +464,86 @@
],
'operationType' => 'readAndWrite',
'deprecated' => false,
- 'systemTags' => [
- 'operationType' => 'delete',
+ 'systemTags' => ['operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free'],
+ 'parameters' => [
+ [
+ 'name' => 'PolicyId',
+ 'in' => 'query',
+ 'schema' => ['description' => 'The ID of the access control policy.', 'type' => 'string', 'required' => true, 'example' => 'cp-jExXAqIYkwHN****', 'title' => ''],
+ ],
+ [
+ 'name' => 'TargetId',
+ 'in' => 'query',
+ 'schema' => ['description' => 'The ID of the object to which you want to attach the access control policy. Access control policies can be attached to the following objects:'."\n"
+ ."\n"
+ .'- Root folder'."\n"
+ ."\n"
+ .'- Subfolders of the Root folder'."\n"
+ ."\n"
+ .'- Members', 'type' => 'string', 'required' => true, 'example' => 'fd-ZDNPiT****', 'title' => ''],
+ ],
],
- 'parameters' => [],
'responses' => [
200 => [
'schema' => [
- 'description' => 'The returned result.'."\n",
+ 'description' => 'The returned result.',
'type' => 'object',
'properties' => [
- 'RequestId' => [
- 'description' => 'The ID of the request.'."\n",
- 'type' => 'string',
- 'example' => '9B34724D-54B0-4A51-B34D-4512372FE1BE',
- ],
+ 'RequestId' => ['description' => 'The ID of the request.', 'type' => 'string', 'example' => '95060F1D-6990-4645-8920-A81D1BBFE992', 'title' => ''],
],
+ 'title' => '',
+ 'example' => '',
],
],
],
'errorCodes' => [
404 => [
- [
- 'errorCode' => 'EntityNotExists.ResourceDirectory',
- 'errorMessage' => 'The resource directory for the account is not enabled. We recommend that you first enable the resource directory for the account.',
- ],
+ ['errorCode' => 'EntityNotExists.Target', 'errorMessage' => 'The specified target does not exist in the resource directory.', 'description' => 'The specified object does not exist in the resource directory.'],
+ ['errorCode' => 'EntityNotExists.ResourceControlPolicy', 'errorMessage' => 'The specified resource control policy does not exist.', 'description' => ''],
],
409 => [
- [
- 'errorCode' => 'DeleteConflict.ResourceDirectory.Account',
- 'errorMessage' => 'Failed to delete the resource directory because one or more member accounts exist. We recommend that you first remove these member accounts.',
- ],
+ ['errorCode' => 'EntityAlreadyExists.ResourceControlPolicy', 'errorMessage' => 'The resource control policy already exists.', 'description' => ''],
+ ['errorCode' => 'EntityAlreadyExists.ResourceControlPolicyAttachment', 'errorMessage' => 'The resource control policy attachment already exists.', 'description' => ''],
+ ['errorCode' => 'LimitExceeded.ResourceControlPolicyAttachment', 'errorMessage' => 'The resource control policy attachment number exceeds the limit.', 'description' => ''],
],
],
- 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"9B34724D-54B0-4A51-B34D-4512372FE1BE\\"\\n}","errorExample":""},{"type":"xml","example":"<?xml version=\\"1.0\\" encoding=\\"UTF-8\\" ?>\\r\\n<DestroyResourceDirectoryResponse>\\r\\n <RequestId>9B34724D-54B0-4A51-B34D-4512372FE1BE</RequestId>\\r\\n</DestroyResourceDirectoryResponse>","errorExample":""}]',
- 'title' => 'DestroyResourceDirectory',
- 'summary' => 'Disables a resource directory. This operation cannot be undone. Therefore, proceed with caution.',
- 'description' => 'Before you disable a resource directory, you must make sure that the following requirements are met:'."\n"
+ 'title' => 'AttachControlPolicy',
+ 'summary' => 'Attaches an access control policy.',
+ 'description' => 'After you attach a custom access control policy, the operations performed on resources by using members are limited by the policy. Make sure that the attached policy meets your expectations. Otherwise, your business may be affected.'."\n"
."\n"
- .'* All members of the cloud account type in the resource directory are removed. You can call the [RemoveCloudAccount](~~RemoveCloudAccount~~) operation to remove a member of the cloud account type.'."\n"
- .'* All folders except the Root folder are deleted from the resource directory. You can call the [DeleteFolder](~~DeleteFolder~~) operation to delete a folder.'."\n",
- 'requestParamsDescription' => ' ',
+ .'By default, the system access control policy FullAliyunAccess is attached to each folder and member.'."\n"
+ ."\n"
+ .'The access control policy that is attached to a folder also applies to all its subfolders and all members in the subfolders.'."\n"
+ ."\n"
+ .'A maximum of 10 access control policies can be attached to a folder or member.',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
- ],
- 'CreateFolder' => [
- 'summary' => 'Creates a folder.',
- 'methods' => [
- 'post',
- 'get',
- ],
- 'schemes' => [
- 'https',
+ 'changeSet' => [],
+ 'flowControl' => [
+ 'flowControlList' => [
+ ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'AttachControlPolicy'],
+ ],
+ ],
+ 'ramActions' => [
+ [
+ 'operationType' => 'update',
+ 'ramAction' => [
+ 'action' => 'resourcemanager:AttachControlPolicy',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ResourceManager', 'resourceType' => 'Account', 'arn' => 'acs:resourcemanager::{#accountId}:account/{#ResourceDirectoryPath}'],
+ ['validationType' => 'always', 'product' => 'ResourceManager', 'resourceType' => 'Folder', 'arn' => 'acs:resourcemanager::{#accountId}:folder/{#ResourceDirectoryPath}'],
+ ['validationType' => 'always', 'product' => 'ResourceManager', 'resourceType' => 'ControlPolicy', 'arn' => 'acs:resourcemanager::{#accountId}:policy/controlpolicy/{#PolicyId}'],
+ ],
+ ],
+ ],
],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"95060F1D-6990-4645-8920-A81D1BBFE992\\"\\n}","type":"json"}]',
+ ],
+ 'BindSecureMobilePhone' => [
+ 'methods' => ['post', 'get'],
+ 'schemes' => ['https'],
'security' => [
[
'AK' => [],
@@ -575,62 +551,30 @@
],
'operationType' => 'readAndWrite',
'deprecated' => false,
- 'systemTags' => [
- 'operationType' => 'create',
- 'riskType' => 'none',
- 'chargeType' => 'free',
- ],
+ 'systemTags' => ['operationType' => 'update'],
'parameters' => [
[
- 'name' => 'ParentFolderId',
+ 'name' => 'VerificationCode',
'in' => 'query',
- 'schema' => [
- 'description' => 'The ID of the parent folder.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'r-b1****',
- ],
+ 'schema' => ['description' => 'The verification code.'."\n"
+ ."\n"
+ .'You can call the [SendVerificationCodeForBindSecureMobilePhone](~~SendVerificationCodeForBindSecureMobilePhone~~) operation to obtain the verification code.'."\n", 'type' => 'string', 'required' => true, 'example' => '123456', 'title' => ''],
],
[
- 'name' => 'FolderName',
+ 'name' => 'SecureMobilePhone',
'in' => 'query',
- 'schema' => [
- 'description' => 'The name of the folder.'."\n"
- ."\n"
- .'The name must be 1 to 24 characters in length and can contain letters, digits, underscores (\\_), periods (.),and hyphens (-).'."\n",
- 'type' => 'string',
- 'required' => true,
- 'example' => 'rdFolder',
- ],
+ 'schema' => ['description' => 'The mobile phone number that you want to bind to the member for security purposes.'."\n"
+ ."\n"
+ .'The mobile phone number you specify must be the same as the mobile phone number that you specify when you call the [SendVerificationCodeForBindSecureMobilePhone](~~SendVerificationCodeForBindSecureMobilePhone~~) operation to obtain a verification code.'."\n"
+ ."\n"
+ .'Specify the mobile phone number in the \\<Country code>-\\<Mobile phone number> format.'."\n"
+ ."\n"
+ .'> Mobile phone numbers in the `86-<Mobile phone number>` format in the Chinese mainland are not supported.'."\n", 'type' => 'string', 'required' => true, 'example' => 'xx-13900001234', 'title' => ''],
],
[
- 'name' => 'Tag',
+ 'name' => 'AccountId',
'in' => 'query',
- 'style' => 'flat',
- 'schema' => [
- 'description' => 'The tag to add to the folder.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The tag to add to the folder.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'Key' => [
- 'description' => 'The tag key.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'k1',
- ],
- 'Value' => [
- 'description' => 'The tag value.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'v1',
- ],
- ],
- 'required' => false,
- ],
- 'required' => false,
- ],
+ 'schema' => ['description' => 'The Alibaba Cloud account ID of the member.'."\n", 'type' => 'string', 'required' => true, 'example' => '138660628348****', 'title' => ''],
],
],
'responses' => [
@@ -639,120 +583,51 @@
'description' => 'The returned result.'."\n",
'type' => 'object',
'properties' => [
- 'Folder' => [
- 'description' => 'The information about the folder.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'CreateTime' => [
- 'description' => 'The time when the folder was created.'."\n",
- 'type' => 'string',
- 'example' => '2019-02-19T09:34:50.757Z',
- ],
- 'FolderId' => [
- 'description' => 'The ID of the folder.'."\n",
- 'type' => 'string',
- 'example' => 'fd-u8B321****',
- ],
- 'FolderName' => [
- 'description' => 'The name of the folder.'."\n",
- 'type' => 'string',
- 'example' => 'rdFolder',
- ],
- 'ParentFolderId' => [
- 'description' => 'The ID of the parent folder.'."\n",
- 'type' => 'string',
- 'example' => 'r-b1****',
- ],
- ],
- ],
- 'RequestId' => [
- 'description' => 'The ID of the request.'."\n",
- 'type' => 'string',
- 'example' => 'C2CBCA30-C8DD-423E-B4AD-4FB694C9180C',
- ],
+ 'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => '0217AFEB-5318-56D4-B167-1933D83EDF3F', 'title' => ''],
],
+ 'title' => '',
],
],
],
'errorCodes' => [
400 => [
- [
- 'errorCode' => 'InvalidParameter.ParentFolderId',
- 'errorMessage' => 'The ParentFolderId is invalid.',
- ],
- [
- 'errorCode' => 'MissingParameter.Folder.Name',
- 'errorMessage' => 'You must specify the resource folder name.',
- ],
- [
- 'errorCode' => 'InvalidParameter.Folder.Name',
- 'errorMessage' => 'The Name of folder is invalid.',
- ],
- [
- 'errorCode' => 'InvalidParameter.Folder.Name.Length',
- 'errorMessage' => 'The Name of folder exceeds the length limit.',
- ],
- [
- 'errorCode' => 'InvalidParameter.Folder.Name.AlreadyUsed',
- 'errorMessage' => 'The name already exists under the same parent. Please change to another name.',
- ],
- ],
- 404 => [
- [
- 'errorCode' => 'EntityNotExists.ResourceDirectory',
- 'errorMessage' => 'The resource directory for the account is not enabled. We recommend that you first enable the resource directory for the account.',
- ],
- [
- 'errorCode' => 'EntityNotExists.Folder',
- 'errorMessage' => 'The resource directory folder does not exist.',
- ],
+ ['errorCode' => 'NotSupport.Site.Action', 'errorMessage' => 'Site does not allow current action.', 'description' => ''],
],
409 => [
- [
- 'errorCode' => 'LimitExceeded.Folder.Depth',
- 'errorMessage' => 'The folder depth exceeds the limit of 5.',
- ],
- [
- 'errorCode' => 'QuotaExceeded.Folder.Count',
- 'errorMessage' => 'The number of folders exceeds the quota.',
- ],
+ ['errorCode' => 'NotSupport.AccountInAnotherResourceDirectory', 'errorMessage' => 'The specified account is an Alibaba Cloud account or already exists in another resource directory.', 'description' => ''],
+ ['errorCode' => 'Invalid.EnterpriseName', 'errorMessage' => 'You must specify the enterprise name.', 'description' => ''],
+ ['errorCode' => 'EnterpriseRealNameVerificationError', 'errorMessage' => 'The specified account does not pass enterprise real-name verification. We recommend you first complete enterprise real-name verification for the account.', 'description' => ''],
+ ['errorCode' => 'EntityAlreadyExists.ResourceDirectory', 'errorMessage' => 'The resource directory for the account is already enabled. We recommend that you do not enable the resource directory again.', 'description' => ''],
+ ['errorCode' => 'Invalid.VerificationCode', 'errorMessage' => 'The verification code is invalid.', 'description' => ''],
+ ['errorCode' => 'AccountTypeMismatch', 'errorMessage' => 'The type or status of the member account cannot satisfy the current operation.', 'description' => ''],
+ ['errorCode' => 'AccountSecureMobileAlreadyExists', 'errorMessage' => 'The secure mobile number of the member already exists.', 'description' => ''],
+ ['errorCode' => 'CallerIdentityError', 'errorMessage' => 'Please use the RAM user or role of the Management Account.', 'description' => ''],
],
],
- 'responseDemo' => '[{"type":"json","example":"{\\n \\"Folder\\": {\\n \\"CreateTime\\": \\"2019-02-19T09:34:50.757Z\\",\\n \\"FolderId\\": \\"fd-u8B321****\\",\\n \\"FolderName\\": \\"rdFolder\\",\\n \\"ParentFolderId\\": \\"r-b1****\\"\\n },\\n \\"RequestId\\": \\"C2CBCA30-C8DD-423E-B4AD-4FB694C9180C\\"\\n}","errorExample":""},{"type":"xml","example":"<?xml version=\\"1.0\\" encoding=\\"UTF-8\\" ?>\\r\\n<CreateFolderResponse>\\r\\n <Folder>\\r\\n <FolderName>rdFolder</FolderName> \\r\\n <ParentFolderId>r-b1****</ParentFolderId>\\r\\n <FolderId>fd-u8B321****</FolderId>\\r\\n <CreateTime>2019-02-19T09:34:50.757Z</CreateTime>\\r\\n </Folder>\\r\\n <RequestId>C2CBCA30-C8DD-423E-B4AD-4FB694C9180C</RequestId>\\r\\n</CreateFolderResponse>","errorExample":""}]',
- 'title' => 'CreateFolder',
- 'description' => 'A maximum of five levels of folders can be created under the Root folder.'."\n",
- 'responseParamsDescription' => ' ',
- 'extraInfo' => ' ',
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"0217AFEB-5318-56D4-B167-1933D83EDF3F\\"\\n}","errorExample":""},{"type":"xml","example":"<BindSecureMobilePhoneResponse>\\n <RequestId>0217AFEB-5318-56D4-B167-1933D83EDF3F</RequestId>\\n</BindSecureMobilePhoneResponse>","errorExample":""}]',
+ 'title' => 'BindSecureMobilePhone',
+ 'summary' => 'Binds a mobile phone number to a member of the resource account type in a resource directory for security purposes.',
+ 'description' => 'You can call this API operation only to bind a mobile phone number to a member of the resource account type. You cannot call this API operation to change the mobile phone number that is bound to a member of the resource account type.'."\n"
+ ."\n"
+ .'To ensure that the system can record the operators of management operations, you must use a RAM user or RAM role to which the AliyunResourceDirectoryFullAccess policy is attached within the management account of your resource directory to call this API operation.'."\n",
+ 'changeSet' => [],
],
- 'GetFolder' => [
- 'summary' => 'Queries the information about a folder.',
- 'methods' => [
- 'post',
- 'get',
- ],
- 'schemes' => [
- 'https',
- ],
+ 'CancelChangeAccountEmail' => [
+ 'methods' => ['post', 'get'],
+ 'schemes' => ['https'],
'security' => [
[
'AK' => [],
],
],
- 'operationType' => 'read',
+ 'operationType' => 'readAndWrite',
'deprecated' => false,
- 'systemTags' => [
- 'operationType' => 'get',
- ],
+ 'systemTags' => ['operationType' => 'update'],
'parameters' => [
[
- 'name' => 'FolderId',
+ 'name' => 'AccountId',
'in' => 'query',
- 'schema' => [
- 'description' => 'The ID of the folder.'."\n",
- 'type' => 'string',
- 'required' => true,
- 'example' => 'fd-Jyl5U7****',
- ],
+ 'schema' => ['description' => 'The Alibaba Cloud account ID of the member.'."\n", 'type' => 'string', 'required' => true, 'example' => '181761095690****', 'title' => ''],
],
],
'responses' => [
@@ -761,81 +636,27 @@
'description' => 'The returned result.'."\n",
'type' => 'object',
'properties' => [
- 'RequestId' => [
- 'description' => 'The ID of the request.'."\n",
- 'type' => 'string',
- 'example' => 'C2CBCA30-C8DD-423E-B4AD-4FB694C9180C',
- ],
- 'Folder' => [
- 'description' => 'The information about the folder.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'FolderId' => [
- 'description' => 'The ID of the folder.'."\n",
- 'type' => 'string',
- 'example' => 'fd-Jyl5U7****',
- ],
- 'CreateTime' => [
- 'description' => 'The time when the folder was created.'."\n",
- 'type' => 'string',
- 'example' => '2021-06-15T06:39:08.521Z',
- ],
- 'ParentFolderId' => [
- 'description' => 'The ID of the parent folder.'."\n",
- 'type' => 'string',
- 'example' => 'r-Wm****',
- ],
- 'FolderName' => [
- 'description' => 'The name of the folder.'."\n",
- 'type' => 'string',
- 'example' => 'Applications',
- ],
- 'ResourceDirectoryPath' => [
- 'description' => 'The path of the folder in the resource directory.'."\n",
- 'type' => 'string',
- 'example' => 'rd-3G****/r-Wm****/fd-Jyl5U7****',
- ],
- ],
- ],
+ 'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => '9B34724D-54B0-4A51-B34D-4512372FE1BE', 'title' => ''],
],
+ 'title' => '',
],
],
],
'errorCodes' => [
- 400 => [
- [
- 'errorCode' => 'MissingParameter.FolderId',
- 'errorMessage' => 'You must specify FolderId.',
- ],
- [
- 'errorCode' => 'InvalidParameter.FolderId',
- 'errorMessage' => 'The FolderId is invalid.',
- ],
- ],
404 => [
- [
- 'errorCode' => 'EntityNotExists.ResourceDirectory',
- 'errorMessage' => 'The resource directory for the account is not enabled. We recommend that you first enable the resource directory for the account.',
- ],
- [
- 'errorCode' => 'EntityNotExists.Folder',
- 'errorMessage' => 'The resource directory folder does not exist.',
- ],
+ ['errorCode' => 'EntityNotExists.EmailModifyRecord', 'errorMessage' => 'This email modification record of the account does not exist.', 'description' => ''],
+ ['errorCode' => 'EntityNotExists.ResourceDirectory', 'errorMessage' => 'The resource directory for the account is not enabled. We recommend that you first enable the resource directory for the account.', 'description' => ''],
+ ['errorCode' => 'EntityNotExists.Account', 'errorMessage' => 'This resource directory account does not exist.', 'description' => ''],
],
],
- 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"C2CBCA30-C8DD-423E-B4AD-4FB694C9180C\\",\\n \\"Folder\\": {\\n \\"FolderId\\": \\"fd-Jyl5U7****\\",\\n \\"CreateTime\\": \\"2021-06-15T06:39:08.521Z\\",\\n \\"ParentFolderId\\": \\"r-Wm****\\",\\n \\"FolderName\\": \\"Applications\\",\\n \\"ResourceDirectoryPath\\": \\"rd-3G****/r-Wm****/fd-Jyl5U7****\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"<?xml version=\\"1.0\\" encoding=\\"UTF-8\\" ?>\\r\\n<GetFolderResponse>\\r\\n\\t<RequestId>88EF473E-D5CD-589F-AAB3-F6E0D12AECA3</RequestId>\\r\\n\\t<Folder>\\r\\n\\t\\t<CreateTime>2021-06-15T06:39:08.521Z</CreateTime>\\r\\n\\t\\t<FolderId>fd-Jyl5U7****</FolderId>\\r\\n\\t\\t<FolderName>Applications</FolderName>\\r\\n\\t\\t<ParentFolderId>r-Wm****</ParentFolderId>\\r\\n\\t\\t<ResourceDirectoryPath>rd-3G****/r-Wm****/fd-Jyl5U7****</ResourceDirectoryPath>\\r\\n\\t</Folder>\\r\\n</GetFolderResponse>","errorExample":""}]',
- 'title' => 'GetFolder',
- 'responseParamsDescription' => ' ',
- 'extraInfo' => ' ',
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"9B34724D-54B0-4A51-B34D-4512372FE1BE\\"\\n}","errorExample":""},{"type":"xml","example":"<CancelChangeAccountEmailResponse>\\n <RequestId>9B34724D-54B0-4A51-B34D-4512372FE1BE</RequestId>\\n</CancelChangeAccountEmailResponse>","errorExample":""}]',
+ 'title' => 'CancelChangeAccountEmail',
+ 'summary' => 'Cancels the email address change of a member.',
+ 'changeSet' => [],
],
- 'DeleteFolder' => [
- 'methods' => [
- 'post',
- 'get',
- ],
- 'schemes' => [
- 'https',
- ],
+ 'CancelHandshake' => [
+ 'methods' => ['post', 'get'],
+ 'schemes' => ['https'],
'security' => [
[
'AK' => [],
@@ -843,19 +664,12 @@
],
'operationType' => 'readAndWrite',
'deprecated' => false,
- 'systemTags' => [
- 'operationType' => 'delete',
- ],
+ 'systemTags' => ['operationType' => 'update'],
'parameters' => [
[
- 'name' => 'FolderId',
+ 'name' => 'HandshakeId',
'in' => 'query',
- 'schema' => [
- 'description' => 'The ID of the folder.'."\n",
- 'type' => 'string',
- 'required' => true,
- 'example' => 'fd-ae1in7****',
- ],
+ 'schema' => ['description' => 'The ID of the invitation.'."\n", 'type' => 'string', 'required' => true, 'example' => 'h-ycm4rp****', 'title' => ''],
],
],
'responses' => [
@@ -864,155 +678,142 @@
'description' => 'The returned result.'."\n",
'type' => 'object',
'properties' => [
- 'RequestId' => [
- 'description' => 'The ID of the request.'."\n",
- 'type' => 'string',
- 'example' => '9B34724D-54B0-4A51-B34D-4512372FE1BE',
+ 'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => '9B34724D-54B0-4A51-B34D-4512372FE1BE', 'title' => ''],
+ 'Handshake' => [
+ 'description' => 'The information of the invitation.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'Status' => ['description' => 'The status of the invitation. Valid values:'."\n"
+ ."\n"
+ .'* Pending: The invitation is waiting for confirmation.'."\n"
+ .'* Accepted: The invitation is accepted.'."\n"
+ .'* Cancelled: The invitation is canceled.'."\n"
+ .'* Declined: The invitation is rejected.'."\n"
+ .'* Expired: The invitation expires.'."\n", 'type' => 'string', 'example' => 'Cancelled', 'title' => ''],
+ 'ExpireTime' => ['description' => 'The time when the invitation expires. The time is displayed in UTC.'."\n", 'type' => 'string', 'example' => '2018-08-24T09:55:41Z', 'title' => ''],
+ 'ResourceDirectoryId' => ['description' => 'The ID of the resource directory.'."\n", 'type' => 'string', 'example' => 'h-ycm4rp****', 'title' => ''],
+ 'CreateTime' => ['description' => 'The time when the invitation was created. The time is displayed in UTC.'."\n", 'type' => 'string', 'example' => '2018-08-10T09:55:41Z', 'title' => ''],
+ 'Note' => ['description' => 'The description of the invitation.'."\n", 'type' => 'string', 'example' => 'Welcome'."\n", 'title' => ''],
+ 'TargetEntity' => ['description' => 'The ID or logon email address of the invited account.'."\n", 'type' => 'string', 'example' => 'someone@example.com', 'title' => ''],
+ 'MasterAccountId' => ['description' => 'The ID of the management account of the resource directory.'."\n", 'type' => 'string', 'example' => '172841235500****', 'title' => ''],
+ 'MasterAccountName' => ['description' => 'The name of the management account of the resource directory.'."\n", 'type' => 'string', 'example' => 'Alice', 'title' => ''],
+ 'ModifyTime' => ['description' => 'The time when the invitation was modified. The time is displayed in UTC.'."\n", 'type' => 'string', 'example' => '2018-08-10T09:55:41Z', 'title' => ''],
+ 'TargetType' => ['description' => 'The type of the invited account. Valid values:'."\n"
+ ."\n"
+ .'* Account: indicates the ID of the account.'."\n"
+ .'* Email: indicates the logon email address of the account.'."\n", 'type' => 'string', 'example' => 'Email', 'title' => ''],
+ 'HandshakeId' => ['description' => 'The ID of the invitation.'."\n", 'type' => 'string', 'example' => 'h-ycm4rp****', 'title' => ''],
+ ],
+ 'title' => '',
],
],
+ 'title' => '',
],
],
],
'errorCodes' => [
400 => [
- [
- 'errorCode' => 'MissingParameter.FolderId',
- 'errorMessage' => 'You must specify FolderId.',
- ],
- [
- 'errorCode' => 'InvalidParameter.FolderId',
- 'errorMessage' => 'The FolderId is invalid.',
- ],
+ ['errorCode' => 'MissingParameter.HandshakeId', 'errorMessage' => 'You must specify HandshakeId.', 'description' => ''],
+ ['errorCode' => 'InvalidParameter.HandshakeId', 'errorMessage' => 'The HandshakeId is invalid.', 'description' => ''],
],
404 => [
- [
- 'errorCode' => 'EntityNotExists.ResourceDirectory',
- 'errorMessage' => 'The resource directory for the account is not enabled. We recommend that you first enable the resource directory for the account.',
- ],
- [
- 'errorCode' => 'EntityNotExists.Folder',
- 'errorMessage' => 'The resource directory folder does not exist.',
- ],
+ ['errorCode' => 'EntityNotExists.Handshake', 'errorMessage' => 'The specified handshake does not exist.', 'description' => ''],
],
409 => [
- [
- 'errorCode' => 'DeleteConflict.Folder.SubFolder',
- 'errorMessage' => 'This folder has sub folders.',
- ],
- [
- 'errorCode' => 'DeleteConflict.Folder.Account',
- 'errorMessage' => 'This folder has accounts.',
- ],
+ ['errorCode' => 'HandshakeStatusMismatch', 'errorMessage' => 'The invitation is invalid.', 'description' => ''],
],
],
- 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"9B34724D-54B0-4A51-B34D-4512372FE1BE\\"\\n}","errorExample":""},{"type":"xml","example":"<?xml version=\\"1.0\\" encoding=\\"UTF-8\\" ?>\\r\\n<DeleteFolderResponse>\\r\\n <RequestId>9B34724D-54B0-4A51-B34D-4512372FE1BE</RequestId>\\r\\n</DeleteFolderResponse>","errorExample":""}]',
- 'title' => 'DeleteFolder',
- 'summary' => 'Deletes a folder.',
- 'description' => 'Before you delete a folder, you must make sure that the folder does not contain members or subfolders.'."\n",
- 'requestParamsDescription' => ' ',
- 'responseParamsDescription' => ' ',
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"9B34724D-54B0-4A51-B34D-4512372FE1BE\\",\\n \\"Handshake\\": {\\n \\"Status\\": \\"Cancelled\\",\\n \\"ExpireTime\\": \\"2018-08-24T09:55:41Z\\",\\n \\"ResourceDirectoryId\\": \\"h-ycm4rp****\\",\\n \\"CreateTime\\": \\"2018-08-10T09:55:41Z\\",\\n \\"Note\\": \\"Welcome\\\\n\\",\\n \\"TargetEntity\\": \\"someone@example.com\\",\\n \\"MasterAccountId\\": \\"172841235500****\\",\\n \\"MasterAccountName\\": \\"Alice\\",\\n \\"ModifyTime\\": \\"2018-08-10T09:55:41Z\\",\\n \\"TargetType\\": \\"Email\\",\\n \\"HandshakeId\\": \\"h-ycm4rp****\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"","errorExample":""}]',
+ 'title' => 'CancelHandshake',
+ 'summary' => 'Cancels an invitation.',
+ 'responseParamsDescription' => 'For more information about common request parameters, see [Common parameters](~~159973~~).'."\n",
'extraInfo' => ' ',
+ 'changeSet' => [],
],
- 'ListFoldersForParent' => [
- 'summary' => 'Queries the information of all subfolders of a folder.',
- 'methods' => [
- 'post',
- 'get',
- ],
- 'schemes' => [
- 'https',
- ],
+ 'CancelMessageContactUpdate' => [
+ 'methods' => ['post', 'get'],
+ 'schemes' => ['https'],
'security' => [
[
'AK' => [],
],
],
- 'operationType' => 'read',
+ 'operationType' => 'readAndWrite',
'deprecated' => false,
- 'systemTags' => [
- 'operationType' => 'list',
- 'riskType' => 'none',
- 'chargeType' => 'free',
- ],
+ 'systemTags' => ['operationType' => 'update'],
'parameters' => [
[
- 'name' => 'ParentFolderId',
+ 'name' => 'ContactId',
'in' => 'query',
- 'schema' => [
- 'description' => 'The ID of the parent folder.'."\n"
- ."\n"
- .'If you leave this parameter empty, the information of the first-level subfolders of the Root folder is queried.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'r-b1****',
- ],
+ 'schema' => ['description' => 'The ID of the contact.'."\n", 'type' => 'string', 'required' => false, 'example' => 'c-qL4HqKONzOM7****', 'title' => ''],
],
[
- 'name' => 'QueryKeyword',
+ 'name' => 'PhoneNumber',
'in' => 'query',
- 'schema' => [
- 'description' => 'The keyword used for the query, such as a folder name.'."\n"
- ."\n"
- .'Fuzzy match is supported.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'rdFolder',
- ],
+ 'schema' => ['description' => 'The mobile phone number of the contact.'."\n"
+ ."\n"
+ .'Specify the mobile phone number in the `<Country code>-<Mobile phone number>` format.'."\n", 'type' => 'string', 'required' => false, 'example' => '86-139****1234', 'title' => ''],
],
[
- 'name' => 'PageNumber',
+ 'name' => 'EmailAddress',
'in' => 'query',
+ 'schema' => ['description' => 'The email address of the contact.'."\n", 'type' => 'string', 'required' => false, 'example' => 'someone***@example.com', 'title' => ''],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
'schema' => [
- 'description' => 'The number of the page to return.'."\n"
- ."\n"
- .'Pages start from page 1. Default value: 1.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'required' => false,
- 'example' => '1',
+ 'title' => 'Schema of Response',
+ 'description' => 'The returned result.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '9B34724D-54B0-4A51-B34D-4512372FE1BE'],
+ ],
],
],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ ['errorCode' => 'MissingParameter.ContactId', 'errorMessage' => 'You must specify ContactId.', 'description' => ''],
+ ['errorCode' => 'InvalidParameter.ContactId', 'errorMessage' => 'The ContactId is invalid.', 'description' => ''],
+ ['errorCode' => 'InvalidParameter.PhoneNumber', 'errorMessage' => 'The PhoneNumber is invalid.', 'description' => ''],
+ ['errorCode' => 'InvalidParameter.MobileCountryCode', 'errorMessage' => 'The current site does not support the country code.', 'description' => ''],
+ ['errorCode' => 'InvalidParameter.EmailAddress', 'errorMessage' => 'The EmailAddress is invalid.', 'description' => ''],
+ ['errorCode' => 'ContactStatusMismatchAction', 'errorMessage' => 'The status of the contact does not allow the specified operation.', 'description' => ''],
+ ],
+ 404 => [
+ ['errorCode' => 'EntityNotExists.Contact', 'errorMessage' => 'This Contact does not exist.', 'description' => ''],
+ ],
+ ],
+ 'staticInfo' => ['returnType' => 'synchronous'],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"9B34724D-54B0-4A51-B34D-4512372FE1BE\\"\\n}","type":"json"}]',
+ 'title' => 'CancelMessageContactUpdate',
+ 'summary' => 'Cancels the update of the mobile phone number or email address of a contact.',
+ 'changeSet' => [],
+ ],
+ 'ChangeAccountEmail' => [
+ 'methods' => ['post', 'get'],
+ 'schemes' => ['https'],
+ 'security' => [
[
- 'name' => 'PageSize',
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'readAndWrite',
+ 'deprecated' => false,
+ 'systemTags' => ['operationType' => 'update'],
+ 'parameters' => [
+ [
+ 'name' => 'AccountId',
'in' => 'query',
- 'schema' => [
- 'description' => 'The number of entries to return on each page.'."\n"
- ."\n"
- .'Valid values: 1 to 100. Default value: 10.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'required' => false,
- 'example' => '10',
- ],
+ 'schema' => ['description' => 'The Alibaba Cloud account ID of the member.'."\n", 'type' => 'string', 'required' => true, 'example' => '181761095690****', 'title' => ''],
],
[
- 'name' => 'Tag',
+ 'name' => 'Email',
'in' => 'query',
- 'style' => 'flat',
- 'schema' => [
- 'description' => 'The tags. This parameter specifies a filter condition.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'A tag.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'Key' => [
- 'description' => 'The key of the tag.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'k1',
- ],
- 'Value' => [
- 'description' => 'The value of the tag.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'v1',
- ],
- ],
- 'required' => false,
- ],
- 'required' => false,
- ],
+ 'schema' => ['description' => 'The email address to be bound to the member.'."\n"
+ ."\n"
+ .'> The system automatically sends a verification email to the email address. After the verification is passed, the email address takes effect, and the system changes both the logon email address and secure email address of the member.'."\n", 'type' => 'string', 'required' => true, 'example' => 'someone@example.com', 'title' => ''],
],
],
'responses' => [
@@ -1021,127 +822,30 @@
'description' => 'The returned result.'."\n",
'type' => 'object',
'properties' => [
- 'Folders' => [
- 'type' => 'object',
- 'itemNode' => true,
- 'properties' => [
- 'Folder' => [
- 'description' => 'The folders.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The information about a folder.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'CreateTime' => [
- 'description' => 'The time when the folder was created.'."\n",
- 'type' => 'string',
- 'example' => '2015-01-23T12:33:18Z',
- ],
- 'FolderId' => [
- 'description' => 'The ID of the folder.'."\n",
- 'type' => 'string',
- 'example' => 'rd-evic31****',
- ],
- 'FolderName' => [
- 'description' => 'The name of the folder.'."\n",
- 'type' => 'string',
- 'example' => 'project-1',
- ],
- 'Tags' => [
- 'type' => 'object',
- 'itemNode' => true,
- 'properties' => [
- 'Tag' => [
- 'description' => 'The tags added to the folder.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The tag added to the folder.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'Key' => [
- 'description' => 'The key of the tag.'."\n",
- 'type' => 'string',
- 'example' => 'k1',
- ],
- 'Value' => [
- 'description' => 'The value of the tag.'."\n",
- 'type' => 'string',
- 'example' => 'v1',
- ],
- ],
- ],
- ],
- ],
- ],
- ],
- ],
- ],
- ],
- ],
- 'PageNumber' => [
- 'description' => 'The page number of the returned page.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'example' => '1',
- ],
- 'PageSize' => [
- 'description' => 'The number of entries returned per page.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'example' => '5',
- ],
- 'RequestId' => [
- 'description' => 'The ID of the request.'."\n",
- 'type' => 'string',
- 'example' => '7B8A4E7D-6CFF-471D-84DF-195A7A241ECB',
- ],
- 'TotalCount' => [
- 'description' => 'The total number of entries returned.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'example' => '2',
- ],
+ 'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => '9B34724D-54B0-4A51-B34D-4512372FE1BE', 'title' => ''],
],
+ 'title' => '',
],
],
],
'errorCodes' => [
400 => [
- [
- 'errorCode' => 'InvalidParameter.ParentFolderId',
- 'errorMessage' => 'The ParentFolderId is invalid.',
- ],
+ ['errorCode' => 'NotSupportedOperation.Account.EmailModify', 'errorMessage' => 'The operation is not supported because the account email is being modifying.', 'description' => ''],
+ ['errorCode' => 'NotSupport.InvitedAccount', 'errorMessage' => 'The current operation is not supported for accounts invited to join the resource directory.', 'description' => ''],
],
404 => [
- [
- 'errorCode' => 'EntityNotExists.ResourceDirectory',
- 'errorMessage' => 'The resource directory for the account is not enabled. We recommend that you first enable the resource directory for the account.',
- ],
- [
- 'errorCode' => 'EntityNotExists.Folder',
- 'errorMessage' => 'The resource directory folder does not exist.',
- ],
+ ['errorCode' => 'EntityNotExists.ResourceDirectory', 'errorMessage' => 'The resource directory for the account is not enabled. We recommend that you first enable the resource directory for the account.', 'description' => ''],
+ ['errorCode' => 'EntityNotExists.Account', 'errorMessage' => 'This resource directory account does not exist.', 'description' => ''],
],
],
- 'staticInfo' => [
- 'returnType' => 'synchronous',
- ],
- 'responseDemo' => '[{"type":"json","example":"{\\n \\"Folders\\": {\\n \\"Folder\\": [\\n {\\n \\"CreateTime\\": \\"2015-01-23T12:33:18Z\\",\\n \\"FolderId\\": \\"rd-evic31****\\",\\n \\"FolderName\\": \\"project-1\\",\\n \\"Tags\\": {\\n \\"Tag\\": [\\n {\\n \\"Key\\": \\"k1\\",\\n \\"Value\\": \\"v1\\"\\n }\\n ]\\n }\\n }\\n ]\\n },\\n \\"PageNumber\\": 1,\\n \\"PageSize\\": 5,\\n \\"RequestId\\": \\"7B8A4E7D-6CFF-471D-84DF-195A7A241ECB\\",\\n \\"TotalCount\\": 2\\n}","errorExample":""},{"type":"xml","example":"<?xml version=\\"1.0\\" encoding=\\"UTF-8\\" ?>\\r\\n<ListFoldersForParentResponse>\\r\\n <RequestId>7B8A4E7D-6CFF-471D-84DF-195A7A241ECB</RequestId>\\r\\n <PageNumber>1</PageNumber>\\r\\n <PageSize>5</PageSize>\\r\\n <TotalCount>2</TotalCount>\\r\\n <Folders>\\r\\n <Folder>\\r\\n <FolderId>rd-evic31****</FolderId>\\r\\n <FolderName>project-1</FolderName>\\r\\n <CreateTime>2015-01-23T12:33:18Z</CreateTime>\\r\\n </Folder>\\r\\n <Folder>\\r\\n <FolderId>fd-evic31****</FolderId>\\r\\n <FolderName>project-2</FolderName>\\r\\n <CreateTime>2015-01-23T12:33:18Z</CreateTime>\\r\\n </Folder>\\r\\n </Folders>\\r\\n</ListFoldersForParentResponse>","errorExample":""}]',
- 'title' => 'ListFoldersForParent',
- 'description' => 'You can call this API operation to view the information of only the first-level subfolders of a folder.'."\n",
- 'requestParamsDescription' => ' ',
- 'responseParamsDescription' => ' ',
- 'extraInfo' => ' ',
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"9B34724D-54B0-4A51-B34D-4512372FE1BE\\"\\n}","errorExample":""},{"type":"xml","example":"<ChangeAccountEmailResponse>\\n <RequestId>9B34724D-54B0-4A51-B34D-4512372FE1BE</RequestId>\\n</ChangeAccountEmailResponse>","errorExample":""}]',
+ 'title' => 'ChangeAccountEmail',
+ 'summary' => 'Changes the email address that is bound to a member.',
+ 'changeSet' => [],
],
- 'UpdateFolder' => [
- 'summary' => 'Changes the name of a folder.',
- 'methods' => [
- 'post',
- 'get',
- ],
- 'schemes' => [
- 'https',
- ],
+ 'CheckAccountDelete' => [
+ 'methods' => ['post', 'get'],
+ 'schemes' => ['https'],
'security' => [
[
'AK' => [],
@@ -1149,31 +853,12 @@
],
'operationType' => 'readAndWrite',
'deprecated' => false,
- 'systemTags' => [
- 'operationType' => 'update',
- ],
+ 'systemTags' => ['operationType' => 'get'],
'parameters' => [
[
- 'name' => 'FolderId',
+ 'name' => 'AccountId',
'in' => 'query',
- 'schema' => [
- 'description' => 'The ID of the folder.'."\n",
- 'type' => 'string',
- 'required' => true,
- 'example' => 'fd-u8B321****',
- ],
- ],
- [
- 'name' => 'NewFolderName',
- 'in' => 'query',
- 'schema' => [
- 'description' => 'The new name of the folder.'."\n"
- ."\n"
- .'The name must be 1 to 24 characters in length and can contain letters, digits, underscores (\\_), periods (.), and hyphens (-).'."\n",
- 'type' => 'string',
- 'required' => true,
- 'example' => 'rdFolder',
- ],
+ 'schema' => ['description' => 'The Alibaba Cloud account ID of the member that you want to delete.'."\n", 'type' => 'string', 'required' => true, 'example' => '179855839641****', 'title' => ''],
],
],
'responses' => [
@@ -1182,321 +867,280 @@
'description' => 'The returned result.'."\n",
'type' => 'object',
'properties' => [
- 'RequestId' => [
- 'description' => 'The ID of the request.'."\n",
- 'type' => 'string',
- 'example' => 'C2CBCA30-C8DD-423E-B4AD-4FB694C9180C',
- ],
- 'Folder' => [
- 'description' => 'The information about the folder.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'FolderId' => [
- 'description' => 'The ID of the folder.'."\n",
- 'type' => 'string',
- 'example' => 'fd-u8B321****',
- ],
- 'CreateTime' => [
- 'description' => 'The time when the folder was created.'."\n",
- 'type' => 'string',
- 'example' => '2019-02-19T09:34:50.757Z',
- ],
- 'ParentFolderId' => [
- 'description' => 'The ID of the parent folder.'."\n",
- 'type' => 'string',
- 'example' => 'r-b1****',
- ],
- 'FolderName' => [
- 'description' => 'The name of the folder.'."\n",
- 'type' => 'string',
- 'example' => 'rdFolder',
- ],
- ],
- ],
+ 'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => '7CDDDCEF-CDFD-0825-B7D7-217BE0897B22', 'title' => ''],
],
+ 'title' => '',
],
],
],
'errorCodes' => [
400 => [
- [
- 'errorCode' => 'MissingParameter.Folder.Name',
- 'errorMessage' => 'You must specify the resource folder name.',
- ],
- [
- 'errorCode' => 'InvalidParameter.Folder.Name',
- 'errorMessage' => 'The Name of folder is invalid.',
- ],
- [
- 'errorCode' => 'InvalidParameter.Folder.Name.Length',
- 'errorMessage' => 'The Name of folder exceeds the length limit.',
- ],
- [
- 'errorCode' => 'MissingParameter.FolderId',
- 'errorMessage' => 'You must specify FolderId.',
- ],
- [
- 'errorCode' => 'InvalidParameter.FolderId',
- 'errorMessage' => 'The FolderId is invalid.',
- ],
- [
- 'errorCode' => 'InvalidParameter.Folder.Name.AlreadyUsed',
- 'errorMessage' => 'The name already exists under the same parent. Please change to another name.',
- ],
+ ['errorCode' => 'MissingParameter.AccountId', 'errorMessage' => 'You must specify AccountId.', 'description' => ''],
+ ['errorCode' => 'InvalidParameter.AccountId', 'errorMessage' => 'The AccountId is invalid.', 'description' => ''],
],
404 => [
- [
- 'errorCode' => 'EntityNotExists.ResourceDirectory',
- 'errorMessage' => 'The resource directory for the account is not enabled. We recommend that you first enable the resource directory for the account.',
- ],
- [
- 'errorCode' => 'EntityNotExists.Folder',
- 'errorMessage' => 'The resource directory folder does not exist.',
- ],
+ ['errorCode' => 'EntityNotExists.Account', 'errorMessage' => 'This resource directory account does not exist.', 'description' => ''],
+ ['errorCode' => 'EntityNotExists.ResourceDirectory', 'errorMessage' => 'The resource directory for the account is not enabled. We recommend that you first enable the resource directory for the account.', 'description' => ''],
],
409 => [
- [
- 'errorCode' => 'LimitExceeded.Folder.Depth',
- 'errorMessage' => 'The folder depth exceeds the limit of 5.',
- ],
+ ['errorCode' => 'AccountTypeOrStatusMismatch', 'errorMessage' => 'You cannot perform the action on the member account.', 'description' => ''],
+ ['errorCode' => 'InvalidControlPolicyEnablementStatus', 'errorMessage' => 'The control policy enablement status is not valid to perform this operation.', 'description' => ''],
+ ['errorCode' => 'NoLicense.ResourceDirectory', 'errorMessage' => 'The resource directory has not enabled the delete operation.', 'description' => ''],
+ ['errorCode' => 'UnknownError.Account', 'errorMessage' => 'The deletion failed. An unknown error occurred. Please try again later.', 'description' => ''],
+ ['errorCode' => 'CallerIdentityError.DeleteAccount', 'errorMessage' => 'Please use the RAM user or role of the management account to delete.', 'description' => ''],
+ ['errorCode' => 'RemoveConfilctAccountAsDelegatedAdministator', 'errorMessage' => 'You attempted to remove a member that is registered as a delegated administrator. To complete this operation, you must first deregister this account as a delegated administrator.', 'description' => ''],
+ ['errorCode' => 'LegalEntityDifferent', 'errorMessage' => 'The account legal entity is different from the one of the Management Account.', 'description' => ''],
+ ['errorCode' => 'MemberTypeError.DeleteAccount', 'errorMessage' => 'You can only delete accounts of the resource account type created by Resource Directory.', 'description' => ''],
],
],
- 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"C2CBCA30-C8DD-423E-B4AD-4FB694C9180C\\",\\n \\"Folder\\": {\\n \\"FolderId\\": \\"fd-u8B321****\\",\\n \\"CreateTime\\": \\"2019-02-19T09:34:50.757Z\\",\\n \\"ParentFolderId\\": \\"r-b1****\\",\\n \\"FolderName\\": \\"rdFolder\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"<?xml version=\\"1.0\\" encoding=\\"UTF-8\\" ?>\\r\\n<UpdateFolderResponse>\\r\\n <Folder>\\r\\n <FolderName>rdFolder</FolderName>\\r\\n <ParentFolderId>r-b1****</ParentFolderId>\\r\\n <FolderId>fd-u8B321****</FolderId>\\r\\n <CreateTime>2019-02-19T09:34:50.757Z</CreateTime>\\r\\n </Folder>\\r\\n <RequestId>C2CBCA30-C8DD-423E-B4AD-4FB694C9180C</RequestId>\\r\\n</UpdateFolderResponse>","errorExample":""}]',
- 'title' => 'UpdateFolder',
- 'requestParamsDescription' => ' ',
- 'responseParamsDescription' => ' ',
- 'extraInfo' => ' ',
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"7CDDDCEF-CDFD-0825-B7D7-217BE0897B22\\"\\n}","errorExample":""},{"type":"xml","example":"<CheckAccountDeleteResponse>\\n <RequestId>7CDDDCEF-CDFD-0825-B7D7-217BE0897B22</RequestId>\\n</CheckAccountDeleteResponse>","errorExample":""}]',
+ 'title' => 'CheckAccountDelete',
+ 'summary' => 'Performs a member deletion check.',
+ 'description' => 'Before you delete a member, you must call this API operation to check whether the member can be deleted.'."\n",
+ 'extraInfo' => '### What to do next'."\n"
+ ."\n"
+ .'You can call the [GetAccountDeletionCheckResult](~~GetAccountDeletionCheckResult~~) operation to query the deletion check result.'."\n",
+ 'changeSet' => [],
],
- 'ListAncestors' => [
- 'summary' => 'Queries the information of all the parent folders of a specified folder.',
- 'methods' => [
- 'post',
- 'get',
- ],
- 'schemes' => [
- 'https',
- ],
+ 'CreateControlPolicy' => [
+ 'methods' => ['post', 'get'],
+ 'schemes' => ['https'],
'security' => [
[
'AK' => [],
],
],
- 'operationType' => 'read',
+ 'operationType' => 'readAndWrite',
'deprecated' => false,
- 'systemTags' => [
- 'operationType' => 'list',
- ],
+ 'systemTags' => ['operationType' => 'create', 'riskType' => 'none', 'chargeType' => 'free'],
'parameters' => [
[
- 'name' => 'ChildId',
+ 'name' => 'PolicyName',
+ 'in' => 'query',
+ 'schema' => ['description' => 'The name of the control policy.'."\n"
+ ."\n"
+ .'The name must be 1 to 128 characters in length. It must start with a letter and can contain letters, digits, and hyphens (-).', 'type' => 'string', 'required' => true, 'example' => 'ExampleControlPolicy', 'title' => ''],
+ ],
+ [
+ 'name' => 'Description',
'in' => 'query',
+ 'schema' => ['description' => 'The description of the control policy.'."\n"
+ ."\n"
+ .'The description must be 1 to 1,024 characters in length. It must start with a letter and can contain letters, digits, underscores (\\_), and hyphens (-).', 'type' => 'string', 'required' => false, 'example' => 'ExampleControlPolicy', 'title' => ''],
+ ],
+ [
+ 'name' => 'EffectScope',
+ 'in' => 'query',
+ 'schema' => ['description' => 'The effective scope of the control policy.'."\n"
+ ."\n"
+ .'Valid value: RAM. This indicates that the control policy applies only to RAM users or RAM roles.', 'type' => 'string', 'required' => true, 'example' => 'RAM', 'title' => ''],
+ ],
+ [
+ 'name' => 'PolicyDocument',
+ 'in' => 'query',
+ 'schema' => ['description' => 'The policy document.'."\n"
+ ."\n"
+ .'The policy document can be up to 4,096 characters in length.'."\n"
+ ."\n"
+ .'For more information about the policy language, see [Control Policy Language](~~179096~~).'."\n"
+ ."\n"
+ .'For examples, see [Examples of Custom Control Policies](~~181474~~).', 'type' => 'string', 'required' => true, 'example' => '{"Version":"1","Statement":[{"Effect":"Deny","Action":["ram:UpdateRole","ram:DeleteRole","ram:AttachPolicyToRole","ram:DetachPolicyFromRole"],"Resource":"acs:ram:*:*:role/ResourceDirectoryAccountAccessRole"}]}', 'title' => ''],
+ ],
+ [
+ 'name' => 'Tag',
+ 'in' => 'query',
+ 'style' => 'flat',
'schema' => [
- 'description' => 'The ID of the subfolder.'."\n",
- 'type' => 'string',
- 'required' => true,
- 'example' => 'fd-i1c9nr****',
+ 'description' => 'The tags to attach to the control policy.',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'A tag for the control policy.',
+ 'type' => 'object',
+ 'properties' => [
+ 'Key' => ['description' => 'The tag key.', 'type' => 'string', 'required' => false, 'example' => 'k1', 'title' => ''],
+ 'Value' => ['description' => 'The tag value.', 'type' => 'string', 'required' => false, 'example' => 'v1', 'title' => ''],
+ ],
+ 'required' => false,
+ 'title' => '',
+ 'example' => '',
+ ],
+ 'required' => false,
+ 'title' => '',
+ 'example' => '',
],
],
+ [
+ 'name' => 'ControlPolicyType',
+ 'in' => 'query',
+ 'schema' => ['type' => 'string', 'example' => 'RESOURCE_CONTROL_POLICY', 'description' => '', 'title' => ''],
+ ],
],
'responses' => [
200 => [
'schema' => [
- 'description' => 'The returned result.'."\n",
+ 'description' => 'The data returned.',
'type' => 'object',
'properties' => [
- 'RequestId' => [
- 'description' => 'The ID of the request.'."\n",
- 'type' => 'string',
- 'example' => '83AFBEB6-DC03-406E-9686-867461FF6698',
- ],
- 'Folders' => [
+ 'ControlPolicy' => [
+ 'description' => 'The details of the control policy.',
'type' => 'object',
- 'itemNode' => true,
'properties' => [
- 'Folder' => [
- 'description' => 'The information of the folders.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The information of a folder.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'FolderId' => [
- 'description' => 'The ID of the folder.'."\n",
- 'type' => 'string',
- 'example' => 'r-b1****',
- ],
- 'CreateTime' => [
- 'description' => 'The time when the folder was created.'."\n",
- 'type' => 'string',
- 'example' => '2019-01-18T10:03:35.217Z',
- ],
- 'FolderName' => [
- 'description' => 'The name of the folder.'."\n",
- 'type' => 'string',
- 'example' => 'root',
- ],
- ],
- ],
- ],
+ 'AttachmentCount' => ['description' => 'The number of times the control policy is attached.', 'type' => 'string', 'example' => '0', 'title' => ''],
+ 'CreateDate' => ['description' => 'The time when the control policy was created.', 'type' => 'string', 'example' => '2021-03-18T09:24:19Z', 'title' => ''],
+ 'Description' => ['description' => 'The description of the control policy.', 'type' => 'string', 'example' => 'ExampleControlPolicy', 'title' => ''],
+ 'EffectScope' => ['description' => 'The scope of the control policy.'."\n"
+ ."\n"
+ .'Valid value: RAM. This value indicates that the control policy applies only to RAM users and RAM roles.', 'type' => 'string', 'example' => 'RAM', 'title' => ''],
+ 'PolicyId' => ['description' => 'The ID of the control policy.', 'type' => 'string', 'example' => 'cp-jExXAqIYkwHN****', 'title' => ''],
+ 'PolicyName' => ['description' => 'The name of the control policy.', 'type' => 'string', 'example' => 'ExampleControlPolicy', 'title' => ''],
+ 'PolicyType' => ['description' => 'The type of the control policy. Valid values:'."\n"
+ ."\n"
+ .'- `System`: a system control policy.'."\n"
+ ."\n"
+ .'- `Custom`: a custom control policy.', 'type' => 'string', 'example' => 'Custom', 'title' => ''],
+ 'UpdateDate' => ['description' => 'The time when the control policy was last updated.', 'type' => 'string', 'example' => '2021-03-18T09:24:19Z', 'title' => ''],
+ 'ControlPolicyType' => ['type' => 'string', 'example' => 'RESOURCE_CONTROL_POLICY', 'description' => '', 'title' => ''],
],
+ 'title' => '',
+ 'example' => '',
],
+ 'RequestId' => ['description' => 'The ID of the request.', 'type' => 'string', 'example' => '776B05B3-A0B0-464B-A191-F4E1119A94B2', 'title' => ''],
],
+ 'title' => '',
+ 'example' => '',
],
],
],
'errorCodes' => [
- 400 => [
- [
- 'errorCode' => 'MissingParameter.ChildId',
- 'errorMessage' => 'You must specify ChildId.',
- ],
- [
- 'errorCode' => 'InvalidParameter.ChildId',
- 'errorMessage' => 'The ChildId is invalid.',
- ],
- ],
- 404 => [
- [
- 'errorCode' => 'EntityNotExists.ResourceDirectory',
- 'errorMessage' => 'The resource directory for the account is not enabled. We recommend that you first enable the resource directory for the account.',
- ],
- [
- 'errorCode' => 'EntityNotExists.Folder',
- 'errorMessage' => 'The resource directory folder does not exist.',
- ],
+ 409 => [
+ ['errorCode' => 'InvalidParameter.PolicyDocument.Length', 'errorMessage' => 'The maximum length of the policy document is exceeded. It must not exceed 4096 characters.', 'description' => ''],
+ ['errorCode' => 'ResourceControlPolicyNotEnabled', 'errorMessage' => 'Resource control policy has not been enabled.', 'description' => ''],
+ ['errorCode' => 'InvalidResourceControlPolicyEnablementStatus', 'errorMessage' => 'The resource control policy enablement status is not valid to perform this operation.', 'description' => ''],
+ ['errorCode' => 'LimitExceeded.ResourceControlPolicy', 'errorMessage' => 'The resource control policy number exceeds the limit.', 'description' => ''],
],
],
- 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"83AFBEB6-DC03-406E-9686-867461FF6698\\",\\n \\"Folders\\": {\\n \\"Folder\\": [\\n {\\n \\"FolderId\\": \\"r-b1****\\",\\n \\"CreateTime\\": \\"2019-01-18T10:03:35.217Z\\",\\n \\"FolderName\\": \\"root\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<?xml version=\\"1.0\\" encoding=\\"UTF-8\\" ?>\\r\\n<ListAncestorsResponse>\\r\\n <Folders>\\r\\n <Folder>\\r\\n <FolderName>root</FolderName>\\r\\n <FolderId>r-b1****</FolderId>\\r\\n <CreateTime>2019-01-18T10:03:35.217Z</CreateTime>\\r\\n </Folder>\\r\\n <Folder>\\r\\n <FolderName>myFirstFd</FolderName>\\r\\n <FolderId>fd-0adR35****</FolderId>\\r\\n <CreateTime>2019-01-23T08:48:37.530Z</CreateTime>\\r\\n </Folder>\\r\\n </Folders>\\r\\n <RequestId>83AFBEB6-DC03-406E-9686-867461FF6698</RequestId>\\r\\n</ListAncestorsResponse>","errorExample":""}]',
- 'title' => 'ListAncestors',
- 'requestParamsDescription' => ' ',
+ 'title' => 'CreateControlPolicy',
+ 'summary' => 'Use `CreateControlPolicy` to create a custom control policy.',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
- ],
- 'ListAuthorizedFolders' => [
- 'summary' => '列举有查询权限的资源夹列表。',
- 'methods' => [
- 'post',
- 'get',
+ 'changeSet' => [],
+ 'flowControl' => [
+ 'flowControlList' => [
+ ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateControlPolicy'],
+ ],
],
- 'schemes' => [
- 'https',
+ 'ramActions' => [
+ [
+ 'operationType' => 'create',
+ 'ramAction' => [
+ 'action' => 'resourcemanager:CreateControlPolicy',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ResourceManager', 'resourceType' => 'All Resource', 'arn' => '*'],
+ ],
+ ],
+ ],
],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"ControlPolicy\\": {\\n \\"AttachmentCount\\": \\"0\\",\\n \\"CreateDate\\": \\"2021-03-18T09:24:19Z\\",\\n \\"Description\\": \\"ExampleControlPolicy\\",\\n \\"EffectScope\\": \\"RAM\\",\\n \\"PolicyId\\": \\"cp-jExXAqIYkwHN****\\",\\n \\"PolicyName\\": \\"ExampleControlPolicy\\",\\n \\"PolicyType\\": \\"Custom\\",\\n \\"UpdateDate\\": \\"2021-03-18T09:24:19Z\\",\\n \\"ControlPolicyType\\": \\"RESOURCE_CONTROL_POLICY\\"\\n },\\n \\"RequestId\\": \\"776B05B3-A0B0-464B-A191-F4E1119A94B2\\"\\n}","type":"json"}]',
+ ],
+ 'CreateFolder' => [
+ 'methods' => ['post', 'get'],
+ 'schemes' => ['https'],
'security' => [
[
'AK' => [],
],
],
- 'operationType' => 'read',
+ 'operationType' => 'readAndWrite',
'deprecated' => false,
- 'systemTags' => [
- 'operationType' => 'list',
- ],
+ 'systemTags' => ['operationType' => 'create', 'riskType' => 'none', 'chargeType' => 'free'],
'parameters' => [
[
- 'name' => 'PageNumber',
+ 'name' => 'ParentFolderId',
'in' => 'query',
- 'schema' => [
- 'description' => 'The page number.'."\n"
- ."\n"
- .'Page starts from page 1. Default value: 1.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'required' => false,
- 'example' => '1',
- ],
+ 'schema' => ['description' => 'The ID of the parent folder.'."\n", 'type' => 'string', 'required' => false, 'example' => 'r-b1****', 'title' => ''],
],
[
- 'name' => 'PageSize',
+ 'name' => 'FolderName',
'in' => 'query',
+ 'schema' => ['description' => 'The name of the folder.'."\n"
+ ."\n"
+ .'The name must be 1 to 24 characters in length and can contain letters, digits, underscores (\\_), periods (.),and hyphens (-).'."\n", 'type' => 'string', 'required' => true, 'example' => 'rdFolder', 'title' => ''],
+ ],
+ [
+ 'name' => 'Tag',
+ 'in' => 'query',
+ 'style' => 'flat',
'schema' => [
- 'description' => 'The number of entries per page.'."\n"
- ."\n"
- .'Valid values: 1 to 100. Default value: 10.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
+ 'description' => 'The tag to add to the folder.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The tag to add to the folder.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'Key' => ['description' => 'The tag key.'."\n", 'type' => 'string', 'required' => false, 'example' => 'k1', 'title' => ''],
+ 'Value' => ['description' => 'The tag value.'."\n", 'type' => 'string', 'required' => false, 'example' => 'v1', 'title' => ''],
+ ],
+ 'required' => false,
+ 'title' => '',
+ ],
'required' => false,
- 'example' => '10',
+ 'title' => '',
],
],
],
'responses' => [
200 => [
'schema' => [
- 'description' => 'The response parameters.'."\n",
+ 'description' => 'The returned result.'."\n",
'type' => 'object',
'properties' => [
- 'TotalCount' => [
- 'description' => 'The total number of entries returned.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'example' => '2',
- ],
- 'RequestId' => [
- 'description' => 'The request ID.'."\n",
- 'type' => 'string',
- 'example' => '7B8A4E7D-6CFF-471D-84DF-195A7A241ECB',
- ],
- 'PageSize' => [
- 'description' => 'The number of entries per page.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'example' => '10',
- ],
- 'PageNumber' => [
- 'description' => 'The page number.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'example' => '1',
- ],
- 'Folders' => [
+ 'Folder' => [
+ 'description' => 'The information about the folder.'."\n",
'type' => 'object',
- 'itemNode' => true,
'properties' => [
- 'Folder' => [
- 'description' => 'The folders.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The folder.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'FolderId' => [
- 'description' => 'The ID of the folder.'."\n",
- 'type' => 'string',
- 'example' => 'fd-bVaRIG****',
- ],
- 'ResourceDirectoryPath' => [
- 'description' => 'The RDPath of the folder.'."\n",
- 'type' => 'string',
- 'example' => 'rd-k3****/r-Wm****/fd-bVaRIG****',
- ],
- 'FolderName' => [
- 'description' => 'The name of the folder.'."\n",
- 'type' => 'string',
- 'example' => 'project-1',
- ],
- ],
- ],
- ],
+ 'CreateTime' => ['description' => 'The time when the folder was created.'."\n", 'type' => 'string', 'example' => '2019-02-19T09:34:50.757Z', 'title' => ''],
+ 'FolderId' => ['description' => 'The ID of the folder.'."\n", 'type' => 'string', 'example' => 'fd-u8B321****', 'title' => ''],
+ 'FolderName' => ['description' => 'The name of the folder.'."\n", 'type' => 'string', 'example' => 'rdFolder', 'title' => ''],
+ 'ParentFolderId' => ['description' => 'The ID of the parent folder.'."\n", 'type' => 'string', 'example' => 'r-b1****', 'title' => ''],
],
+ 'title' => '',
],
+ 'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => 'C2CBCA30-C8DD-423E-B4AD-4FB694C9180C', 'title' => ''],
],
+ 'title' => '',
],
],
],
- 'staticInfo' => [
- 'returnType' => 'synchronous',
+ 'errorCodes' => [
+ 400 => [
+ ['errorCode' => 'InvalidParameter.ParentFolderId', 'errorMessage' => 'The ParentFolderId is invalid.', 'description' => ''],
+ ['errorCode' => 'MissingParameter.Folder.Name', 'errorMessage' => 'You must specify the resource folder name.', 'description' => ''],
+ ['errorCode' => 'InvalidParameter.Folder.Name', 'errorMessage' => 'The Name of folder is invalid.', 'description' => ''],
+ ['errorCode' => 'InvalidParameter.Folder.Name.Length', 'errorMessage' => 'The Name of folder exceeds the length limit.', 'description' => ''],
+ ['errorCode' => 'InvalidParameter.Folder.Name.AlreadyUsed', 'errorMessage' => 'The name already exists under the same parent. Please change to another name.', 'description' => ''],
+ ],
+ 404 => [
+ ['errorCode' => 'EntityNotExists.ResourceDirectory', 'errorMessage' => 'The resource directory for the account is not enabled. We recommend that you first enable the resource directory for the account.', 'description' => ''],
+ ['errorCode' => 'EntityNotExists.Folder', 'errorMessage' => 'The resource directory folder does not exist.', 'description' => ''],
+ ],
+ 409 => [
+ ['errorCode' => 'LimitExceeded.Folder.Depth', 'errorMessage' => 'The folder depth exceeds the limit of 5.', 'description' => ''],
+ ['errorCode' => 'QuotaExceeded.Folder.Count', 'errorMessage' => 'The number of folders exceeds the quota.', 'description' => ''],
+ ],
],
- 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"TotalCount\\": 2,\\n \\"RequestId\\": \\"7B8A4E7D-6CFF-471D-84DF-195A7A241ECB\\",\\n \\"PageSize\\": 10,\\n \\"PageNumber\\": 1,\\n \\"Folders\\": {\\n \\"Folder\\": [\\n {\\n \\"FolderId\\": \\"fd-bVaRIG****\\",\\n \\"ResourceDirectoryPath\\": \\"rd-k3****/r-Wm****/fd-bVaRIG****\\",\\n \\"FolderName\\": \\"project-1\\"\\n }\\n ]\\n }\\n}","type":"json"}]',
- 'description' => 'The permissions to query subfolder information refer to the permissions to call the [ListAccountsForParent](~~ListAccountsForParent~~) and [ListFoldersForParent](~~ListFoldersForParent~~) API operations.'."\n",
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"Folder\\": {\\n \\"CreateTime\\": \\"2019-02-19T09:34:50.757Z\\",\\n \\"FolderId\\": \\"fd-u8B321****\\",\\n \\"FolderName\\": \\"rdFolder\\",\\n \\"ParentFolderId\\": \\"r-b1****\\"\\n },\\n \\"RequestId\\": \\"C2CBCA30-C8DD-423E-B4AD-4FB694C9180C\\"\\n}","errorExample":""},{"type":"xml","example":"<?xml version=\\"1.0\\" encoding=\\"UTF-8\\" ?>\\r\\n<CreateFolderResponse>\\r\\n <Folder>\\r\\n <FolderName>rdFolder</FolderName> \\r\\n <ParentFolderId>r-b1****</ParentFolderId>\\r\\n <FolderId>fd-u8B321****</FolderId>\\r\\n <CreateTime>2019-02-19T09:34:50.757Z</CreateTime>\\r\\n </Folder>\\r\\n <RequestId>C2CBCA30-C8DD-423E-B4AD-4FB694C9180C</RequestId>\\r\\n</CreateFolderResponse>","errorExample":""}]',
+ 'title' => 'CreateFolder',
+ 'summary' => 'Creates a folder.',
+ 'description' => 'A maximum of five levels of folders can be created under the Root folder.'."\n",
+ 'responseParamsDescription' => ' ',
+ 'extraInfo' => ' ',
+ 'changeSet' => [],
],
'CreateResourceAccount' => [
- 'methods' => [
- 'post',
- 'get',
- ],
- 'schemes' => [
- 'https',
- ],
+ 'methods' => ['post', 'get'],
+ 'schemes' => ['https'],
'security' => [
[
'AK' => [],
@@ -1504,390 +1148,206 @@
],
'operationType' => 'readAndWrite',
'deprecated' => false,
- 'systemTags' => [
- 'operationType' => 'create',
- ],
+ 'systemTags' => ['operationType' => 'create', 'riskType' => 'none', 'chargeType' => 'free'],
'parameters' => [
[
'name' => 'DisplayName',
'in' => 'query',
- 'schema' => [
- 'description' => 'The display name of the member.'."\n"
- ."\n"
- .'The name must be 2 to 50 characters in length.'."\n"
- ."\n"
- .'The name can contain letters, digits, underscores (\\_), periods (.), hyphens (-), and spaces.'."\n"
- ."\n"
- .'The name must be unique in the resource directory.'."\n",
- 'type' => 'string',
- 'required' => true,
- 'example' => 'Dev',
- ],
+ 'schema' => ['description' => 'The display name of the member.'."\n"
+ ."\n"
+ .'Length: 2 to 50 characters.'."\n"
+ ."\n"
+ .'Format: Can contain letters, digits, underscores (\\_), periods (.), hyphens (-), and spaces.'."\n"
+ ."\n"
+ .'The display name must be unique within the resource directory.', 'type' => 'string', 'required' => true, 'example' => 'Dev', 'title' => ''],
],
[
'name' => 'ParentFolderId',
'in' => 'query',
- 'schema' => [
- 'description' => 'The ID of the parent folder.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'fd-r23M55****',
- ],
+ 'schema' => ['description' => 'The ID of the parent folder.', 'type' => 'string', 'required' => false, 'example' => 'fd-r23M55****', 'title' => ''],
],
[
'name' => 'PayerAccountId',
'in' => 'query',
- 'schema' => [
- 'description' => 'The ID of the billing account. If you leave this parameter empty, the newly created member is used as its billing account.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => '12323344****',
- ],
+ 'schema' => ['description' => 'The ID of the billing account. If you leave this parameter empty, the newly created member pays for its own resource consumption.', 'type' => 'string', 'required' => false, 'example' => '12323344****', 'title' => ''],
],
[
'name' => 'AccountNamePrefix',
'in' => 'query',
- 'schema' => [
- 'description' => 'The prefix for the Alibaba Cloud account name of the member. If you leave this parameter empty, the system randomly generates a prefix.'."\n"
- ."\n"
- .'The prefix must be 2 to 37 characters in length.'."\n"
- ."\n"
- .'The prefix can contain letters, digits, and special characters but cannot contain consecutive special characters. The prefix must start with a letter or digit and end with a letter or digit. Valid special characters include underscores (`_`), periods (.), and hyphens (`-`).'."\n"
- ."\n"
- .'The complete Alibaba Cloud account name of a member in a resource directory is in the @.aliyunid.com format, such as `alice@rd-3G****.aliyunid.com`.'."\n"
- ."\n"
- .'Each name must be unique in the resource directory.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'alice',
- ],
+ 'schema' => ['description' => 'The prefix of the account name. If you leave this parameter empty, the system randomly generates a prefix.'."\n"
+ ."\n"
+ .'<props="china">Length: 2 to 50 characters.</props>'."\n"
+ ."\n"
+ .'<props="intl">Length: 2 to 37 characters.</props>'."\n"
+ ."\n"
+ .'Format: Can contain letters, digits, and special characters `_.-`. Must start and end with a letter or digit. Consecutive special characters `_.-` are not allowed.'."\n"
+ ."\n"
+ .'The full account name is in the format of <AccountNamePrefix>@<ResourceDirectoryId>.aliyunid.com, such as `alice@rd-3G****.aliyunid.com`.'."\n"
+ ."\n"
+ .'The account name must be unique within the resource directory.', 'type' => 'string', 'required' => false, 'example' => 'alice', 'title' => ''],
],
[
'name' => 'Tag',
'in' => 'query',
'style' => 'flat',
'schema' => [
- 'description' => 'The tag of the member.'."\n",
+ 'description' => 'The tags of the member.',
'type' => 'array',
'items' => [
- 'description' => 'The tag of the member.'."\n",
+ 'description' => 'The tags of the member.',
'type' => 'object',
'properties' => [
- 'Key' => [
- 'description' => 'The key of the tag.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'k1',
- ],
- 'Value' => [
- 'description' => 'The value of the tag.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'v1',
- ],
+ 'Key' => ['description' => 'The tag key.', 'type' => 'string', 'required' => false, 'example' => 'k1', 'title' => ''],
+ 'Value' => ['description' => 'The tag value.', 'type' => 'string', 'required' => false, 'example' => 'v1', 'title' => ''],
],
'required' => false,
+ 'title' => '',
+ 'example' => '',
],
'required' => false,
+ 'title' => '',
+ 'example' => '',
],
],
[
'name' => 'ResellAccountType',
'in' => 'query',
- 'schema' => [
- 'description' => 'The identity type of the member. Valid values:'."\n"
- ."\n"
- .'* resell: The member is an account for a reseller. This is the default value. A relationship is automatically established between the member and the reseller. The management account of the resource directory must be used as the billing account of the member.'."\n"
- .'* non_resell: The member is not an account for a reseller. The member is an account that is not associated with a reseller. You can directly use the account to purchase Alibaba Cloud resources. The member is used as its own billing account.'."\n"
- ."\n"
- .'> This parameter is available only for resellers at the international site (alibabacloud.com).'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'resell',
- ],
+ 'schema' => ['description' => 'The identity type of the member. Valid values:'."\n"
+ ."\n"
+ .'- resell (default): reseller account. The created member automatically establishes a reseller relationship with your reseller. You must use the management account to pay for the new member.'."\n"
+ .'- non_resell: non-reseller account. The created member is a regular Alibaba Cloud account that is not associated with your current reseller. The account purchases resources directly from Alibaba Cloud and pays for its own resource consumption.'."\n"
+ ."\n"
+ .'> This parameter is supported only for China site (Chinese mainland) reseller customers.', 'type' => 'string', 'required' => false, 'example' => 'resell', 'title' => ''],
],
[
'name' => 'DryRun',
'in' => 'query',
- 'schema' => [
- 'description' => 'Specifies whether to perform only a dry run, without performing the actual request. Valid values:'."\n"
- ."\n"
- .'* true: performs only a dry run. The system checks whether an identity type can be specified for the member. If the request does not pass the dry run, an error code is returned.'."\n"
- .'* false (default): performs a dry run and performs the actual request.'."\n",
- 'type' => 'boolean',
- 'required' => false,
- 'example' => 'false',
- ],
+ 'schema' => ['description' => 'Specifies whether to perform only a dry run for the request. Valid values:'."\n"
+ .'- true: performs a dry run without actually creating the member. The check currently includes whether the current account is allowed to set the identity type of the member. If the check fails, the corresponding error code is returned.'."\n"
+ .'- false (default): sends the request. If the check passes, the member is created.', 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
- 'description' => 'The returned result.'."\n",
+ 'description' => 'The response parameters.',
'type' => 'object',
'properties' => [
'Account' => [
- 'description' => 'The information of the member.'."\n",
+ 'description' => 'The member information.',
'type' => 'object',
'properties' => [
- 'Status' => [
- 'description' => 'The status of the member. The value CreateSuccess indicates that the member is created.'."\n",
- 'type' => 'string',
- 'example' => 'CreateSuccess',
- ],
- 'Type' => [
- 'description' => 'The type of the member. The value ResourceAccount indicates that the member is a resource account.'."\n",
- 'type' => 'string',
- 'example' => 'ResourceAccount',
- ],
- 'DisplayName' => [
- 'description' => 'The display name of the member.'."\n",
- 'type' => 'string',
- 'example' => 'Dev',
- ],
- 'FolderId' => [
- 'description' => 'The ID of the folder.'."\n",
- 'type' => 'string',
- 'example' => 'fd-r23M55****',
- ],
- 'ResourceDirectoryId' => [
- 'description' => 'The ID of the resource directory.'."\n",
- 'type' => 'string',
- 'example' => 'rd-3G****',
- ],
- 'JoinTime' => [
- 'description' => 'The time when the member joined the resource directory. The time is displayed in UTC.'."\n",
- 'type' => 'string',
- 'example' => '2020-12-31T03:37:39.456Z',
- ],
- 'AccountId' => [
- 'description' => 'The Alibaba Cloud account ID of the member.'."\n",
- 'type' => 'string',
- 'example' => '112730938585****',
- ],
- 'JoinMethod' => [
- 'description' => 'The way in which the member joins the resource directory. Valid values:'."\n"
- ."\n"
- .'* invited: The member is invited to join the resource directory.'."\n"
- .'* created: The member is directly created in the resource directory.'."\n",
- 'type' => 'string',
- 'example' => 'created',
- ],
- 'ModifyTime' => [
- 'description' => 'The time when the member was modified. The time is displayed in UTC.'."\n",
- 'type' => 'string',
- 'example' => '2020-12-31T03:37:39.456Z',
- ],
- 'AccountName' => [
- 'description' => 'The Alibaba Cloud account name of the member.'."\n",
- 'type' => 'string',
- 'example' => 'alice@rd-3g****.aliyunid.com',
- ],
+ 'Status' => ['description' => 'The join status of the member. The value CreateSuccess indicates that the member is created.', 'type' => 'string', 'example' => 'CreateSuccess', 'title' => ''],
+ 'Type' => ['description' => 'The type of the member. The value ResourceAccount indicates a resource account.', 'type' => 'string', 'example' => 'ResourceAccount', 'title' => ''],
+ 'DisplayName' => ['description' => 'The display name of the member.', 'type' => 'string', 'example' => 'Dev', 'title' => ''],
+ 'FolderId' => ['description' => 'The ID of the folder.', 'type' => 'string', 'example' => 'fd-r23M55****', 'title' => ''],
+ 'ResourceDirectoryId' => ['description' => 'The ID of the resource directory.', 'type' => 'string', 'example' => 'rd-3G****', 'title' => ''],
+ 'JoinTime' => ['description' => 'The time when the member joined the resource directory (UTC).', 'type' => 'string', 'example' => '2020-12-31T03:37:39.456Z', 'title' => ''],
+ 'AccountId' => ['description' => 'The ID of the member.', 'type' => 'string', 'example' => '112730938585****', 'title' => ''],
+ 'JoinMethod' => ['description' => 'The way in which the member joined the resource directory. Valid values:'."\n"
+ ."\n"
+ .'- invited: invited.'."\n"
+ .'- created: created.', 'type' => 'string', 'example' => 'created', 'title' => ''],
+ 'ModifyTime' => ['description' => 'The time when the member was last modified (UTC).', 'type' => 'string', 'example' => '2020-12-31T03:37:39.456Z', 'title' => ''],
+ 'AccountName' => ['description' => 'The name of the account.', 'type' => 'string', 'example' => 'alice@rd-3g****.aliyunid.com', 'title' => ''],
],
+ 'title' => '',
+ 'example' => '',
],
- 'RequestId' => [
- 'description' => 'The ID of the request.'."\n",
- 'type' => 'string',
- 'example' => 'B356A415-D860-43E5-865A-E2193D62BBD6',
- ],
+ 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => 'B356A415-D860-43E5-865A-E2193D62BBD6', 'title' => ''],
],
+ 'title' => '',
+ 'example' => '',
],
],
],
'errorCodes' => [
400 => [
- [
- 'errorCode' => 'MissingParameter.Account.DisplayName',
- 'errorMessage' => 'You must specify DisplayName.',
- ],
- [
- 'errorCode' => 'InvalidParameter.Account.DisplayName',
- 'errorMessage' => 'The DisplayName of account is invalid.',
- ],
- [
- 'errorCode' => 'InvalidParameter.Account.DisplayName.Length',
- 'errorMessage' => 'The DisplayName of the account exceeds the length limit.',
- ],
- [
- 'errorCode' => 'InvalidParameter.ParentFolderId',
- 'errorMessage' => 'The ParentFolderId is invalid.',
- ],
- [
- 'errorCode' => 'InvalidParameter.Account.AccountNamePrefix',
- 'errorMessage' => 'The account name prefix is invalid.',
- ],
- [
- 'errorCode' => 'InvalidParameter.Account.AccountNamePrefix.Length',
- 'errorMessage' => 'The account name prefix exceeds the length limit.',
- ],
- [
- 'errorCode' => 'NotSupport.Site.Action',
- 'errorMessage' => 'Site does not allow current action.',
- ],
+ ['errorCode' => 'MissingParameter.Account.DisplayName', 'errorMessage' => 'You must specify DisplayName.', 'description' => 'The DisplayName parameter is not configured. Configure this parameter.'],
+ ['errorCode' => 'InvalidParameter.Account.DisplayName', 'errorMessage' => 'The DisplayName of account is invalid.', 'description' => 'The value of the DisplayName parameter is invalid. The value can contain only letters, digits, underscores (_), periods (.), and hyphens (-).'],
+ ['errorCode' => 'InvalidParameter.Account.DisplayName.Length', 'errorMessage' => 'The DisplayName of the account exceeds the length limit.', 'description' => 'The length of the value for the DisplayName parameter exceeds the upper limit. The value must be 2 to 50 characters in length.'],
+ ['errorCode' => 'InvalidParameter.ParentFolderId', 'errorMessage' => 'The ParentFolderId is invalid.', 'description' => 'The value of the ParentFolderId parameter is invalid. The value must start with r- followed by 6 characters or start with fd- followed by 10 characters. Valid characters include letters and digits.'],
+ ['errorCode' => 'InvalidParameter.Account.AccountNamePrefix', 'errorMessage' => 'The account name prefix is invalid.', 'description' => ''],
+ ['errorCode' => 'InvalidParameter.Account.AccountNamePrefix.Length', 'errorMessage' => 'The account name prefix exceeds the length limit.', 'description' => ''],
+ ['errorCode' => 'NotSupport.Site.Action', 'errorMessage' => 'Site does not allow current action.', 'description' => 'Site does not allow current action.'],
],
404 => [
- [
- 'errorCode' => 'EntityNotExists.ResourceDirectory',
- 'errorMessage' => 'The resource directory for the account is not enabled. We recommend that you first enable the resource directory for the account.',
- ],
- [
- 'errorCode' => 'EntityNotExists.Folder',
- 'errorMessage' => 'The resource directory folder does not exist.',
- ],
+ ['errorCode' => 'EntityNotExists.ResourceDirectory', 'errorMessage' => 'The resource directory for the account is not enabled. We recommend that you first enable the resource directory for the account.', 'description' => 'The account is not used to enable a resource directory. Use the account to enable a resource directory first.'],
+ ['errorCode' => 'EntityNotExists.Folder', 'errorMessage' => 'The resource directory folder does not exist.', 'description' => 'The specified folder does not exist. Create such a folder first.'],
],
409 => [
- [
- 'errorCode' => 'LimitExceeded.Account',
- 'errorMessage' => 'The maximum number of member accounts in a resource directory exceeds the limit.',
- ],
- [
- 'errorCode' => 'InvalidParameter.Account.DisplayName.AlreadyUsed',
- 'errorMessage' => 'The displayname of account has been used.',
- ],
- [
- 'errorCode' => 'EntityAlreadyExists.ResourceDirectory.Account',
- 'errorMessage' => 'The email address that the system generates when you create a member account already exists. Try again later.',
- ],
- [
- 'errorCode' => 'Invalid.PayRelation',
- 'errorMessage' => 'Failed to create a member. The specified billing account is unavailable. Please change to another billing account and try again.',
- ],
- [
- 'errorCode' => 'NotSupport.PayerAccountInAnotherResourceDirectory',
- 'errorMessage' => 'The specified settlement account does not exist in the resource directory. You must specify a valid settlement account.',
- ],
- [
- 'errorCode' => 'CreateAccountDisabled',
- 'errorMessage' => 'The specified resource directory cannot create a new account.',
- ],
- [
- 'errorCode' => 'PaymentAccountEnterpriseVerifyError',
- 'errorMessage' => 'The type of the payment account is not enterprise verified.',
- ],
- [
- 'errorCode' => 'PaymentAccountFinancialRelationshipVerifyError',
- 'errorMessage' => 'The payment account must not be the beneficiary account from other financial relationships.',
- ],
- [
- 'errorCode' => 'PaymentAccountEnterpriseTypeError',
- 'errorMessage' => 'The type of the payment account is not enterprise.',
- ],
- [
- 'errorCode' => 'PaymentAccountFinancialRelationshipsChangeFrequencyVerifyError',
- 'errorMessage' => 'The financial relationship of payment account changes too frequently. Please try again later.',
- ],
- [
- 'errorCode' => 'MemberAccountVirtualCloudOperatorVerifyError',
- 'errorMessage' => 'The type of the member account must not be virtual operator.',
- ],
- [
- 'errorCode' => 'MemberAccountResellerVerifyError',
- 'errorMessage' => 'The type of the member account must not be reseller.',
- ],
- [
- 'errorCode' => 'PaymentAccountVirtualCloudOperatorVerifyError',
- 'errorMessage' => 'The type of the payment account must not be virtual operator.',
- ],
- [
- 'errorCode' => 'PaymentAccountResellerVerifyError',
- 'errorMessage' => 'The type of the payment account must not be reseller.',
- ],
- [
- 'errorCode' => 'PaymentAccountCreditIdentityTypeError',
- 'errorMessage' => 'The identity of the payment account is not credit.',
- ],
- [
- 'errorCode' => 'InconsistentEnterpriseNameError',
- 'errorMessage' => 'The enterprise name of the payment account and the member account must be consistent.',
- ],
- [
- 'errorCode' => 'PaymentAccountEnterpriseInvoiceError',
- 'errorMessage' => 'No enterprise invoice header information is set for the payment account.',
- ],
- [
- 'errorCode' => 'UnknownFinancialError',
- 'errorMessage' => 'An unknown financial error occurred.',
- ],
- [
- 'errorCode' => 'BusinessRestricted',
- 'errorMessage' => 'Business is restricted. Please contact your customer service manager.',
- ],
- [
- 'errorCode' => 'FundAccountHasArrearsAmount',
- 'errorMessage' => 'There are arrears in the current payment account. You cannot change the payment account. Please settle the arrears and try again.',
- ],
- [
- 'errorCode' => 'FundAccountOwnerPayedByOthers',
- 'errorMessage' => 'If the payment has been made by another account, it is not allowed to be used as the main payment account.',
- ],
- [
- 'errorCode' => 'UserOwnFundAccountPayForOthers',
- 'errorMessage' => 'If the account has been used as the main payment account, it is not allowed to set up payment by others.',
- ],
- [
- 'errorCode' => 'EcoRelationCheckFailed',
- 'errorMessage' => 'Accounts associated with partners are not allowed to set up agency payment relationships.',
- ],
- [
- 'errorCode' => 'NotSupport.SettingResellAccountType',
- 'errorMessage' => 'The current account does not support setting the resellAccountType for members.',
- ],
- ],
- ],
- 'responseDemo' => '[{"type":"json","example":"{\\n \\"Account\\": {\\n \\"Status\\": \\"CreateSuccess\\",\\n \\"Type\\": \\"ResourceAccount\\",\\n \\"DisplayName\\": \\"Dev\\",\\n \\"FolderId\\": \\"fd-r23M55****\\",\\n \\"ResourceDirectoryId\\": \\"rd-3G****\\",\\n \\"JoinTime\\": \\"2020-12-31T03:37:39.456Z\\",\\n \\"AccountId\\": \\"112730938585****\\",\\n \\"JoinMethod\\": \\"created\\",\\n \\"ModifyTime\\": \\"2020-12-31T03:37:39.456Z\\",\\n \\"AccountName\\": \\"alice@rd-3g****.aliyunid.com\\"\\n },\\n \\"RequestId\\": \\"B356A415-D860-43E5-865A-E2193D62BBD6\\"\\n}","errorExample":""},{"type":"xml","example":"<CreateResourceAccountResponse>\\n <Account>\\n <Status>CreateSuccess</Status>\\n <Type>ResourceAccount</Type>\\n <DisplayName>Dev</DisplayName>\\n <FolderId>fd-r23M55****</FolderId>\\n <ResourceDirectoryId>rd-3G****</ResourceDirectoryId>\\n <JoinTime>2020-12-31T03:37:39.456Z</JoinTime>\\n <AccountId>112730938585****</AccountId>\\n <JoinMethod>created</JoinMethod>\\n <ModifyTime>2020-12-31T03:37:39.456Z</ModifyTime>\\n <AccountName>alice@rd-3g****.aliyunid.com</AccountName>\\n </Account>\\n <RequestId>B356A415-D860-43E5-865A-E2193D62BBD6</RequestId>\\n</CreateResourceAccountResponse>","errorExample":""}]',
- 'title' => 'CreateResourceAccount',
- 'summary' => 'Creates a member of the resource account type.',
- 'description' => 'A member serves as a container for resources and is also an organizational unit in a resource directory. A member indicates a project or application. The resources of different members are isolated.'."\n"
+ ['errorCode' => 'LimitExceeded.Account', 'errorMessage' => 'The maximum number of member accounts in a resource directory exceeds the limit.', 'description' => 'The number of members in the resource directory exceeds the upper limit.'],
+ ['errorCode' => 'InvalidParameter.Account.DisplayName.AlreadyUsed', 'errorMessage' => 'The displayname of account has been used.', 'description' => 'The displayname of account has been used.'],
+ ['errorCode' => 'EntityAlreadyExists.ResourceDirectory.Account', 'errorMessage' => 'The email address that the system generates when you create a member account already exists. Try again later.', 'description' => 'The email address that is generated by the system when the member is created already exists. Try again later.'],
+ ['errorCode' => 'Invalid.PayRelation', 'errorMessage' => 'Failed to create a member. The specified billing account is unavailable. Please change to another billing account and try again.', 'description' => 'Failed to create the member. The specified billing account is unavailable. Specify a valid billing account and try again.'],
+ ['errorCode' => 'NotSupport.PayerAccountInAnotherResourceDirectory', 'errorMessage' => 'The specified settlement account does not exist in the resource directory. You must specify a valid settlement account.', 'description' => ''],
+ ['errorCode' => 'CreateAccountDisabled', 'errorMessage' => 'The specified resource directory cannot create a new account.', 'description' => ''],
+ ['errorCode' => 'PaymentAccountEnterpriseVerifyError', 'errorMessage' => 'The type of the payment account is not enterprise verified.', 'description' => 'The billing account does not pass enterprise real-name verification.'],
+ ['errorCode' => 'PaymentAccountFinancialRelationshipVerifyError', 'errorMessage' => 'The payment account must not be the beneficiary account from other financial relationships.', 'description' => 'A billing account cannot be associated with a financial account.'],
+ ['errorCode' => 'PaymentAccountEnterpriseTypeError', 'errorMessage' => 'The type of the payment account is not enterprise.', 'description' => 'The billing account is not an enterprise account.'],
+ ['errorCode' => 'PaymentAccountFinancialRelationshipsChangeFrequencyVerifyError', 'errorMessage' => 'The financial relationship of payment account changes too frequently. Please try again later.', 'description' => 'The financial relationship of the billing account frequently changes. Try again later.'],
+ ['errorCode' => 'MemberAccountVirtualCloudOperatorVerifyError', 'errorMessage' => 'The type of the member account must not be virtual operator.', 'description' => ''],
+ ['errorCode' => 'MemberAccountResellerVerifyError', 'errorMessage' => 'The type of the member account must not be reseller.', 'description' => ''],
+ ['errorCode' => 'PaymentAccountVirtualCloudOperatorVerifyError', 'errorMessage' => 'The type of the payment account must not be virtual operator.', 'description' => 'A billing account cannot be an account for a virtual network operator (VNO).'],
+ ['errorCode' => 'PaymentAccountResellerVerifyError', 'errorMessage' => 'The type of the payment account must not be reseller.', 'description' => 'The billing account cannot be an account for a reseller.'],
+ ['errorCode' => 'PaymentAccountCreditIdentityTypeError', 'errorMessage' => 'The identity of the payment account is not credit.', 'description' => ''],
+ ['errorCode' => 'InconsistentEnterpriseNameError', 'errorMessage' => 'The enterprise name of the payment account and the member account must be consistent.', 'description' => ''],
+ ['errorCode' => 'PaymentAccountEnterpriseInvoiceError', 'errorMessage' => 'No enterprise invoice header information is set for the payment account.', 'description' => 'No invoice title information is specified for the billing account.'],
+ ['errorCode' => 'UnknownFinancialError', 'errorMessage' => 'An unknown financial error occurred.', 'description' => 'An unknown financial error occurred.'],
+ ['errorCode' => 'BusinessRestricted', 'errorMessage' => 'Business is restricted. Please contact your customer service manager.', 'description' => 'Your business is limited. Contact your customer business manager (CBM).'],
+ ['errorCode' => 'FundAccountHasArrearsAmount', 'errorMessage' => 'There are arrears in the current payment account. You cannot change the payment account. Please settle the arrears and try again.', 'description' => 'There are arrears in the current payment account. You cannot change the payment account. Please settle the arrears and try again.'],
+ ['errorCode' => 'FundAccountOwnerPayedByOthers', 'errorMessage' => 'If the payment has been made by another account, it is not allowed to be used as the main payment account.', 'description' => 'If the payment has been made by another account, it is not allowed to be used as the main payment account.'],
+ ['errorCode' => 'UserOwnFundAccountPayForOthers', 'errorMessage' => 'If the account has been used as the main payment account, it is not allowed to set up payment by others.', 'description' => 'If the account has been used as the main payment account, it is not allowed to set up payment by others.'],
+ ['errorCode' => 'EcoRelationCheckFailed', 'errorMessage' => 'Accounts associated with partners are not allowed to set up agency payment relationships.', 'description' => 'Accounts associated with partners are not allowed to set up agency payment relationships.'],
+ ['errorCode' => 'NotSupport.SettingResellAccountType', 'errorMessage' => 'The current account does not support setting the resellAccountType for members.', 'description' => 'The current account does not support setting the resellAccountType for members.'],
+ ['errorCode' => 'InvalidParameter.Email.AlreadyUsed', 'errorMessage' => 'The email has been used.', 'description' => 'The email has been used.'],
+ ],
+ ],
+ 'title' => 'Create a member',
+ 'summary' => 'Creates a member of the resource account type by calling CreateResourceAccount.',
+ 'description' => 'In a resource directory, a member serves as a resource container and is a unit for resource grouping. A member typically represents a project or application. Resources in each member are physically isolated from resources in other members.'."\n"
."\n"
- .'This topic provides an example on how to call the API operation to create a member in the `fd-r23M55****` folder. The display name of the member is `Dev`, and the prefix for the Alibaba Cloud account name of the member is `alice`.'."\n",
- 'requestParamsDescription' => 'For more information about common request parameters, see [Common parameters](~~159973~~).'."\n",
+ .'This topic provides an example of how to create a member in the folder `fd-r23M55****`. The display name of the member is `Dev`, and the account name prefix is `alice`.',
+ 'requestParamsDescription' => ' For more information about common request parameters, see [Common parameters](~~159973~~).',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
- ],
- 'GetAccount' => [
- 'summary' => 'Queries the information of a member.',
- 'methods' => [
- 'post',
- 'get',
+ 'changeSet' => [],
+ 'flowControl' => [
+ 'flowControlList' => [
+ ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateResourceAccount'],
+ ],
],
- 'schemes' => [
- 'https',
+ 'ramActions' => [
+ [
+ 'operationType' => 'create',
+ 'ramAction' => [
+ 'action' => 'resourcemanager:CreateResourceAccount',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ResourceManager', 'resourceType' => 'Folder', 'arn' => 'acs:resourcemanager:*:{#accountId}:folder/{#ResourceDirectoryPath}'],
+ ],
+ ],
+ ],
],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Account\\": {\\n \\"Status\\": \\"CreateSuccess\\",\\n \\"Type\\": \\"ResourceAccount\\",\\n \\"DisplayName\\": \\"Dev\\",\\n \\"FolderId\\": \\"fd-r23M55****\\",\\n \\"ResourceDirectoryId\\": \\"rd-3G****\\",\\n \\"JoinTime\\": \\"2020-12-31T03:37:39.456Z\\",\\n \\"AccountId\\": \\"112730938585****\\",\\n \\"JoinMethod\\": \\"created\\",\\n \\"ModifyTime\\": \\"2020-12-31T03:37:39.456Z\\",\\n \\"AccountName\\": \\"alice@rd-3g****.aliyunid.com\\"\\n },\\n \\"RequestId\\": \\"B356A415-D860-43E5-865A-E2193D62BBD6\\"\\n}","type":"json"}]',
+ ],
+ 'DeclineHandshake' => [
+ 'methods' => ['post', 'get'],
+ 'schemes' => ['https'],
'security' => [
[
'AK' => [],
],
],
- 'operationType' => 'read',
+ 'operationType' => 'readAndWrite',
'deprecated' => false,
- 'systemTags' => [
- 'operationType' => 'get',
- 'riskType' => 'none',
- 'chargeType' => 'free',
- ],
+ 'systemTags' => ['operationType' => 'update'],
'parameters' => [
[
- 'name' => 'AccountId',
- 'in' => 'query',
- 'schema' => [
- 'description' => 'The Alibaba Cloud account ID of the member.'."\n",
- 'type' => 'string',
- 'required' => true,
- 'example' => '181761095690****',
- ],
- ],
- [
- 'name' => 'IncludeTags',
+ 'name' => 'HandshakeId',
'in' => 'query',
- 'schema' => [
- 'description' => 'Specifies whether to return the information of tags. Valid values:'."\n"
- ."\n"
- .'* false (default value)'."\n"
- .'* true'."\n",
- 'type' => 'boolean',
- 'required' => false,
- 'example' => 'true',
- ],
+ 'schema' => ['description' => 'The ID of the invitation.'."\n", 'type' => 'string', 'required' => true, 'example' => 'h-ycm4rp****', 'title' => ''],
],
],
'responses' => [
@@ -1896,174 +1356,62 @@
'description' => 'The returned result.'."\n",
'type' => 'object',
'properties' => [
- 'Account' => [
- 'description' => 'The information about the member.'."\n",
+ 'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => '9B34724D-54B0-4A51-B34D-4512372FE1BE', 'title' => ''],
+ 'Handshake' => [
+ 'description' => 'The information of the invitation.'."\n",
'type' => 'object',
'properties' => [
- 'Status' => [
- 'description' => 'The status of the member. Valid values:'."\n"
- ."\n"
- .'* CreateSuccess: The member is created.'."\n"
- .'* PromoteVerifying: The upgrade of the member is being confirmed.'."\n"
- .'* PromoteFailed: The upgrade of the member fails.'."\n"
- .'* PromoteExpired: The upgrade of the member expires.'."\n"
- .'* PromoteCancelled: The upgrade of the member is canceled.'."\n"
- .'* PromoteSuccess: The member is upgraded.'."\n"
- .'* InviteSuccess: The member accepts the invitation.'."\n",
- 'type' => 'string',
- 'example' => 'CreateSuccess',
- ],
- 'Type' => [
- 'description' => 'The type of the member. Valid values:'."\n"
- ."\n"
- .'* CloudAccount: cloud account'."\n"
- .'* ResourceAccount: resource account'."\n",
- 'type' => 'string',
- 'example' => 'ResourceAccount',
- ],
- 'DisplayName' => [
- 'description' => 'The display name of the member.'."\n",
- 'type' => 'string',
- 'example' => 'admin',
- ],
- 'FolderId' => [
- 'description' => 'The ID of the folder.'."\n",
- 'type' => 'string',
- 'example' => 'fd-bVaRIG****',
- ],
- 'ResourceDirectoryId' => [
- 'description' => 'The ID of the resource directory.'."\n",
- 'type' => 'string',
- 'example' => 'rd-k3****',
- ],
- 'IdentityInformation' => [
- 'description' => 'The real-name verification information.'."\n",
- 'type' => 'string',
- 'example' => 'aliyun-admin',
- ],
- 'JoinTime' => [
- 'description' => 'The time when the member joined the resource directory.'."\n",
- 'type' => 'string',
- 'example' => '2015-01-23T12:33:18Z',
- ],
- 'AccountId' => [
- 'description' => 'The Alibaba Cloud account ID of the member.'."\n",
- 'type' => 'string',
- 'example' => '181761095690****',
- ],
- 'JoinMethod' => [
- 'description' => 'The way in which the member joins the resource directory. Valid values:'."\n"
- ."\n"
- .'* invited: The member is invited to join the resource directory.'."\n"
- .'* created: The member is directly created in the resource directory.'."\n",
- 'type' => 'string',
- 'example' => 'created',
- ],
- 'ModifyTime' => [
- 'description' => 'The time when the member was modified.'."\n",
- 'type' => 'string',
- 'example' => '2015-01-23T12:33:18Z',
- ],
- 'AccountName' => [
- 'description' => 'The Alibaba Cloud account name of the member.'."\n",
- 'type' => 'string',
- 'example' => 'someone@example.com',
- ],
- 'ResourceDirectoryPath' => [
- 'description' => 'The path of the member in the resource directory.'."\n",
- 'type' => 'string',
- 'example' => 'rd-k3****/r-Wm****/fd-bVaRIG****/181761095690****',
- ],
- 'Tags' => [
- 'description' => 'The tags of the member.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The tags.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'Key' => [
- 'description' => 'The tag key.'."\n",
- 'type' => 'string',
- 'example' => 'tag_key',
- ],
- 'Value' => [
- 'description' => 'The tag value.'."\n",
- 'type' => 'string',
- 'example' => 'tag_value',
- ],
- ],
- ],
- ],
- 'Location' => [
- 'description' => 'The location of the member in the resource directory.'."\n",
- 'type' => 'string',
- 'example' => 'root/AlRd****/Z5Aa****',
- ],
- 'EmailStatus' => [
- 'description' => 'The status of the modification for the email address bound to the member. Valid values:'."\n"
- ."\n"
- .'* If the value of this parameter is empty, no modification is performed for the email address.'."\n"
- .'* WAIT_MODIFY: The modification is being performed.'."\n"
- .'* CANCELLED: The modification is canceled.'."\n"
- .'* EXPIRED: The modification expires.'."\n",
- 'type' => 'string',
- 'example' => 'WAIT_MODIFY',
- ],
- 'HasSecureMobilePhone' => [
- 'description' => 'Indicates whether a mobile phone number is bound to the member for security purposes. Valid values:'."\n"
- ."\n"
- .'* true'."\n"
- .'* false'."\n",
- 'type' => 'boolean',
- 'example' => 'true',
- ],
- 'SecureMobilePhone' => [
- 'type' => 'string',
- ],
+ 'Status' => ['description' => 'The status of the invitation. Valid values:'."\n"
+ ."\n"
+ .'* Pending: The invitation is waiting for confirmation.'."\n"
+ .'* Accepted: The invitation is accepted.'."\n"
+ .'* Cancelled: The invitation is canceled.'."\n"
+ .'* Declined: The invitation is rejected.'."\n"
+ .'* Expired: The invitation expires.'."\n", 'type' => 'string', 'example' => 'Declined', 'title' => ''],
+ 'ExpireTime' => ['description' => 'The time when the invitation expires.'."\n", 'type' => 'string', 'example' => '2018-08-10T09:55:41Z', 'title' => ''],
+ 'ResourceDirectoryId' => ['description' => 'The ID of the resource directory.'."\n", 'type' => 'string', 'example' => 'rd-abcdef****', 'title' => ''],
+ 'CreateTime' => ['description' => 'The time when the invitation was created.'."\n", 'type' => 'string', 'example' => '2018-08-10T09:55:41Z', 'title' => ''],
+ 'Note' => ['description' => 'The description of the invitation.'."\n", 'type' => 'string', 'example' => 'Welcome'."\n", 'title' => ''],
+ 'TargetEntity' => ['description' => 'The ID or logon email address of the invited account.'."\n", 'type' => 'string', 'example' => 'someone@example.com', 'title' => ''],
+ 'MasterAccountId' => ['description' => 'The ID of the management account of the resource directory.'."\n", 'type' => 'string', 'example' => '172841235500****', 'title' => ''],
+ 'MasterAccountName' => ['description' => 'The name of the management account of the resource directory.'."\n", 'type' => 'string', 'example' => 'Alice', 'title' => ''],
+ 'ModifyTime' => ['description' => 'The time when the invitation was modified.'."\n", 'type' => 'string', 'example' => '2018-08-10T09:55:41Z', 'title' => ''],
+ 'TargetType' => ['description' => 'The type of the invited account. Valid values:'."\n"
+ ."\n"
+ .'* Account: indicates the ID of the account.'."\n"
+ .'* Email: indicates the logon email address of the account.'."\n", 'type' => 'string', 'example' => 'Email', 'title' => ''],
+ 'HandshakeId' => ['description' => 'The ID of the invitation.'."\n", 'type' => 'string', 'example' => 'h-ycm4rp****', 'title' => ''],
],
- ],
- 'RequestId' => [
- 'description' => 'The ID of the request.'."\n",
- 'type' => 'string',
- 'example' => '9B34724D-54B0-4A51-B34D-4512372FE1BE',
+ 'title' => '',
],
],
+ 'title' => '',
],
],
],
'errorCodes' => [
400 => [
- [
- 'errorCode' => 'MissingParameter.AccountId',
- 'errorMessage' => 'You must specify AccountId.',
- ],
- [
- 'errorCode' => 'InvalidParameter.AccountId',
- 'errorMessage' => 'The AccountId is invalid.',
- ],
+ ['errorCode' => 'MissingParameter.HandshakeId', 'errorMessage' => 'You must specify HandshakeId.', 'description' => ''],
+ ['errorCode' => 'InvalidParameter.HandshakeId', 'errorMessage' => 'The HandshakeId is invalid.', 'description' => ''],
],
404 => [
- [
- 'errorCode' => 'EntityNotExists.Account',
- 'errorMessage' => 'This resource directory account does not exist.',
- ],
- [
- 'errorCode' => 'EntityNotExists.ResourceDirectory',
- 'errorMessage' => 'The resource directory for the account is not enabled. We recommend that you first enable the resource directory for the account.',
- ],
+ ['errorCode' => 'EntityNotExists.Handshake', 'errorMessage' => 'The specified handshake does not exist.', 'description' => ''],
+ ],
+ 409 => [
+ ['errorCode' => 'HandshakeStatusMismatch', 'errorMessage' => 'The invitation is invalid.', 'description' => ''],
],
],
- 'responseDemo' => '[{"type":"json","example":"{\\n \\"Account\\": {\\n \\"Status\\": \\"CreateSuccess\\",\\n \\"Type\\": \\"ResourceAccount\\",\\n \\"DisplayName\\": \\"admin\\",\\n \\"FolderId\\": \\"fd-bVaRIG****\\",\\n \\"ResourceDirectoryId\\": \\"rd-k3****\\",\\n \\"IdentityInformation\\": \\"aliyun-admin\\",\\n \\"JoinTime\\": \\"2015-01-23T12:33:18Z\\",\\n \\"AccountId\\": \\"181761095690****\\",\\n \\"JoinMethod\\": \\"created\\",\\n \\"ModifyTime\\": \\"2015-01-23T12:33:18Z\\",\\n \\"AccountName\\": \\"someone@example.com\\",\\n \\"ResourceDirectoryPath\\": \\"rd-k3****/r-Wm****/fd-bVaRIG****/181761095690****\\",\\n \\"Tags\\": [\\n {\\n \\"Key\\": \\"tag_key\\",\\n \\"Value\\": \\"tag_value\\"\\n }\\n ],\\n \\"Location\\": \\"root/AlRd****/Z5Aa****\\",\\n \\"EmailStatus\\": \\"WAIT_MODIFY\\",\\n \\"HasSecureMobilePhone\\": true,\\n \\"SecureMobilePhone\\": \\"1234567****\\"\\n },\\n \\"RequestId\\": \\"9B34724D-54B0-4A51-B34D-4512372FE1BE\\"\\n}","errorExample":""},{"type":"xml","example":"<GetAccountResponse>\\n <Account>\\n <Status>CreateSuccess</Status>\\n <Type>ResourceAccount</Type>\\n <DisplayName>admin</DisplayName>\\n <FolderId>fd-bVaRIG****</FolderId>\\n <ResourceDirectoryId>rd-k3****</ResourceDirectoryId>\\n <IdentityInformation>aliyun-admin</IdentityInformation>\\n <JoinTime>2015-01-23T12:33:18Z</JoinTime>\\n <AccountId>181761095690****</AccountId>\\n <JoinMethod>created</JoinMethod>\\n <ModifyTime>2015-01-23T12:33:18Z</ModifyTime>\\n <AccountName>someone@example.com</AccountName>\\n <ResourceDirectoryPath>rd-k3****/r-Wm****/fd-bVaRIG****/181761095690****</ResourceDirectoryPath>\\n <Tags>\\n <Key>tag_key</Key>\\n <Value>tag_value</Value>\\n </Tags>\\n <Location>root/AlRd****/Z5Aa****</Location>\\n <EmailStatus>WAIT_MODIFY</EmailStatus>\\n </Account>\\n <RequestId>9B34724D-54B0-4A51-B34D-4512372FE1BE</RequestId>\\n</GetAccountResponse>","errorExample":""}]',
- 'title' => 'GetAccount',
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"9B34724D-54B0-4A51-B34D-4512372FE1BE\\",\\n \\"Handshake\\": {\\n \\"Status\\": \\"Declined\\",\\n \\"ExpireTime\\": \\"2018-08-10T09:55:41Z\\",\\n \\"ResourceDirectoryId\\": \\"rd-abcdef****\\",\\n \\"CreateTime\\": \\"2018-08-10T09:55:41Z\\",\\n \\"Note\\": \\"Welcome\\\\n\\",\\n \\"TargetEntity\\": \\"someone@example.com\\",\\n \\"MasterAccountId\\": \\"172841235500****\\",\\n \\"MasterAccountName\\": \\"Alice\\",\\n \\"ModifyTime\\": \\"2018-08-10T09:55:41Z\\",\\n \\"TargetType\\": \\"Email\\",\\n \\"HandshakeId\\": \\"h-ycm4rp****\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"","errorExample":""}]',
+ 'title' => 'DeclineHandshake',
+ 'summary' => 'Rejects an invitation.',
+ 'requestParamsDescription' => ' ',
+ 'responseParamsDescription' => ' ',
+ 'extraInfo' => ' ',
+ 'changeSet' => [],
],
- 'MoveAccount' => [
- 'methods' => [
- 'post',
- 'get',
- ],
- 'schemes' => [
- 'https',
- ],
+ 'DeleteAccount' => [
+ 'methods' => ['post', 'get'],
+ 'schemes' => ['https'],
'security' => [
[
'AK' => [],
@@ -2071,28 +1419,27 @@
],
'operationType' => 'readAndWrite',
'deprecated' => false,
- 'systemTags' => [
- 'operationType' => 'update',
- ],
+ 'systemTags' => ['operationType' => 'delete'],
'parameters' => [
[
'name' => 'AccountId',
'in' => 'query',
- 'schema' => [
- 'description' => 'The Alibaba Cloud account ID of the member that you want to move.'."\n",
- 'type' => 'string',
- 'required' => true,
- 'example' => '12323344****',
- ],
+ 'schema' => ['description' => 'The Alibaba Cloud account ID of the member that you want to delete.'."\n", 'type' => 'string', 'required' => true, 'example' => '169946124551****', 'title' => ''],
],
[
- 'name' => 'DestinationFolderId',
+ 'name' => 'AbandonableCheckId',
'in' => 'query',
+ 'style' => 'json',
'schema' => [
- 'description' => 'The ID of the destination folder.'."\n",
- 'type' => 'string',
- 'required' => true,
- 'example' => 'fd-bVaRIG****',
+ 'description' => 'The IDs of the check items that you can choose to ignore for the member deletion.'."\n"
+ ."\n"
+ .'You can obtain the IDs from the response of the [GetAccountDeletionCheckResult](~~GetAccountDeletionCheckResult~~) operation.'."\n",
+ 'type' => 'array',
+ 'items' => ['description' => 'The ID of a check item that you can choose to ignore for the member deletion.'."\n"
+ ."\n"
+ .'You can obtain the ID from the response of the [GetAccountDeletionCheckResult](~~GetAccountDeletionCheckResult~~) operation.'."\n", 'type' => 'string', 'required' => false, 'example' => 'NON_SP_cs', 'title' => ''],
+ 'required' => false,
+ 'title' => '',
],
],
],
@@ -2102,70 +1449,52 @@
'description' => 'The returned result.'."\n",
'type' => 'object',
'properties' => [
- 'RequestId' => [
- 'description' => 'The ID of the request.'."\n",
- 'type' => 'string',
- 'example' => '9B34724D-54B0-4A51-B34D-4512372FE1BE',
- ],
+ 'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => '009429F8-C1C0-5872-B674-A6C2333B9647', 'title' => ''],
+ 'DeletionType' => ['description' => 'The type of the deletion. Valid values:'."\n"
+ ."\n"
+ .'* 0: direct deletion. If the member does not have pay-as-you-go resources that are purchased within the previous 30 days, the system directly deletes the member.'."\n"
+ .'* 1: deletion with a silence period. If the member has pay-as-you-go resources that are purchased within the previous 30 days, the member enters a silence period. The system starts to delete the member until the silence period ends. For more information about the silence period, see [What is the silence period for member deletion?](~~446079~~)'."\n", 'type' => 'string', 'example' => '0', 'title' => ''],
],
+ 'title' => '',
],
],
],
'errorCodes' => [
400 => [
- [
- 'errorCode' => 'MissingParameter.AccountId',
- 'errorMessage' => 'You must specify AccountId.',
- ],
- [
- 'errorCode' => 'InvalidParameter.AccountId',
- 'errorMessage' => 'The AccountId is invalid.',
- ],
- [
- 'errorCode' => 'MissingParameter.DestinationFolderId',
- 'errorMessage' => 'You must specify DestinationFolderId.',
- ],
- [
- 'errorCode' => 'InvalidParameter.DestinationFolderId',
- 'errorMessage' => 'The DestinationFolderId is invalid.',
- ],
+ ['errorCode' => 'MissingParameter.AccountId', 'errorMessage' => 'You must specify AccountId.', 'description' => ''],
+ ['errorCode' => 'InvalidParameter.AccountId', 'errorMessage' => 'The AccountId is invalid.', 'description' => ''],
],
404 => [
- [
- 'errorCode' => 'EntityNotExists.Account',
- 'errorMessage' => 'This resource directory account does not exist.',
- ],
- [
- 'errorCode' => 'EntityNotExists.ResourceDirectory',
- 'errorMessage' => 'The resource directory for the account is not enabled. We recommend that you first enable the resource directory for the account.',
- ],
- [
- 'errorCode' => 'EntityNotExists.Folder',
- 'errorMessage' => 'The resource directory folder does not exist.',
- ],
+ ['errorCode' => 'EntityNotExists.Account', 'errorMessage' => 'This resource directory account does not exist.', 'description' => ''],
+ ['errorCode' => 'EntityNotExists.ResourceDirectory', 'errorMessage' => 'The resource directory for the account is not enabled. We recommend that you first enable the resource directory for the account.', 'description' => ''],
],
409 => [
- [
- 'errorCode' => 'AccountTypeOrStatusMismatch',
- 'errorMessage' => 'You cannot perform the action on the member account.',
- ],
+ ['errorCode' => 'AccountTypeOrStatusMismatch', 'errorMessage' => 'You cannot perform the action on the member account.', 'description' => ''],
+ ['errorCode' => 'NoLicense.ResourceDirectory', 'errorMessage' => 'The resource directory has not enabled the delete operation.', 'description' => ''],
+ ['errorCode' => 'UnknownError.Account', 'errorMessage' => 'Delete failed. An unknown error occurred. Please try again later.', 'description' => ''],
+ ['errorCode' => 'AccountNotExist.DeleteAccount', 'errorMessage' => 'The deletion failed. The account does not exist. Please confirm whether it has been deleted.', 'description' => ''],
+ ['errorCode' => 'ExistProcessingDeleteFlow.DeleteAccount', 'errorMessage' => 'The request is invalid. The account is already in the process of deletion. Please do not repeat the operation.', 'description' => ''],
+ ['errorCode' => 'CreditControlBlock.DeleteAccount', 'errorMessage' => 'The deletion failed. There are unsettled bills in the current account. Please settle them first and try again.', 'description' => ''],
+ ['errorCode' => 'SpBlock.DeleteAccount', 'errorMessage' => 'The deletion failed. There is a specific product under the current account. Please clear it and try again.', 'description' => ''],
+ ['errorCode' => 'PeripheralError.DeleteAccount', 'errorMessage' => 'The deletion failed. The deletion process is abnormal. Please try again later.', 'description' => ''],
+ ['errorCode' => 'MemberTypeError.DeleteAccount', 'errorMessage' => 'Cloud account type members do not support deletion.', 'description' => ''],
+ ['errorCode' => 'CallerIdentityError.DeleteAccount', 'errorMessage' => 'Please use the RAM user or role of the management account to delete.', 'description' => ''],
+ ['errorCode' => 'ExistPrepaidInstance.DeleteAccount', 'errorMessage' => 'The deletion failed. There are prepaid products under the current account. Please release them and try again.', 'description' => ''],
+ ['errorCode' => 'ForbidDelete.Account', 'errorMessage' => 'Delete is prohibited. The current account is abnormal. Please contact customer service.', 'description' => ''],
+ ['errorCode' => 'QuotaExceeded.DeleteAccount', 'errorMessage' => 'You have exceeded delete account quota for the past 30 days.', 'description' => ''],
],
],
- 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"9B34724D-54B0-4A51-B34D-4512372FE1BE\\"\\n}","errorExample":""},{"type":"xml","example":"<?xml version=\\"1.0\\" encoding=\\"UTF-8\\" ?>\\r\\n<MoveAccountResponse>\\r\\n <RequestId>9B34724D-54B0-4A51-B34D-4512372FE1BE</RequestId>\\r\\n</MoveAccountResponse>","errorExample":""}]',
- 'title' => 'MoveAccount',
- 'summary' => 'Moves a member from a folder to another.',
- 'requestParamsDescription' => ' ',
- 'responseParamsDescription' => ' ',
- 'extraInfo' => ' ',
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"009429F8-C1C0-5872-B674-A6C2333B9647\\",\\n \\"DeletionType\\": \\"0\\"\\n}","errorExample":""},{"type":"xml","example":"<DeleteAccountResponse>\\n <RequestId>55B22096-0D0C-542D-9A01-9B95977D3A10</RequestId>\\n <DeletionType>0</DeletionType>\\n</DeleteAccountResponse>","errorExample":""}]',
+ 'title' => 'DeleteAccount',
+ 'summary' => 'Deletes a member of the resource account type.',
+ 'description' => 'Before you delete a member, we recommend that you call the [CheckAccountDelete](~~CheckAccountDelete~~) and [GetAccountDeletionCheckResult](~~GetAccountDeletionCheckResult~~) operations to check whether the member meets deletion requirements. You can call the DeleteAccount operation to delete only members that meet the deletion requirements.'."\n"
+ ."\n"
+ .'After you submit a deletion request for a member, you can call the [GetAccountDeletionStatus](~~GetAccountDeletionStatus~~) operation to query the deletion status of the member. After a member is deleted, the resources and data within the member are deleted, and you can no longer use the member to log on to the Alibaba Cloud Management Console. In addition, the member cannot be recovered. Proceed with caution. For more information about how to delete a member, see [Delete a member of the resource account type](~~446078~~).'."\n",
+ 'changeSet' => [],
],
- 'UpdateAccount' => [
- 'methods' => [
- 'post',
- 'get',
- ],
- 'schemes' => [
- 'https',
- ],
+ 'DeleteControlPolicy' => [
+ 'methods' => ['post', 'get'],
+ 'schemes' => ['https'],
'security' => [
[
'AK' => [],
@@ -2173,319 +1502,78 @@
],
'operationType' => 'readAndWrite',
'deprecated' => false,
- 'systemTags' => [
- 'operationType' => 'update',
- ],
+ 'systemTags' => ['operationType' => 'delete', 'riskType' => 'none', 'chargeType' => 'free'],
'parameters' => [
[
- 'name' => 'NewDisplayName',
- 'in' => 'query',
- 'schema' => [
- 'description' => 'The new display name of the member.'."\n"
- ."\n"
- .'> You can specify either `NewDisplayName` or `NewAccountType`.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'admin',
- ],
- ],
- [
- 'name' => 'NewAccountType',
- 'in' => 'query',
- 'schema' => [
- 'description' => 'The new type of the member. Valid values:'."\n"
- ."\n"
- .'* ResourceAccount: resource account'."\n"
- .'* CloudAccount: cloud account'."\n"
- ."\n"
- .'> You can specify either `NewDisplayName` or `NewAccountType`.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'ResourceAccount',
- ],
- ],
- [
- 'name' => 'AccountId',
- 'in' => 'query',
- 'schema' => [
- 'description' => 'The Alibaba Cloud account ID of the member.'."\n",
- 'type' => 'string',
- 'required' => true,
- 'example' => '12323344****',
- ],
- ],
- [
- 'name' => 'DryRun',
+ 'name' => 'PolicyId',
'in' => 'query',
- 'schema' => [
- 'description' => 'Specifies whether to perform only a dry run, without performing the actual request. Valid values:'."\n"
- ."\n"
- .'* true: performs only a dry run. The system checks items such as whether the member status can be modified and whether security information is configured for the member. If the request does not pass the dry run, an error code is returned.'."\n"
- .'* false (default): performs a dry run and performs the actual request.'."\n",
- 'type' => 'boolean',
- 'required' => false,
- 'example' => 'false',
- ],
+ 'schema' => ['description' => 'The ID of the access control policy.', 'type' => 'string', 'required' => true, 'example' => 'cp-SImPt8GCEwiq****', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
- 'description' => 'The returned result.'."\n",
+ 'description' => 'The returned result.',
'type' => 'object',
'properties' => [
- 'Account' => [
- 'description' => 'The information of the member.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'Status' => [
- 'description' => 'The status of the member. Valid values:'."\n"
- ."\n"
- .'* CreateSuccess: The member is created.'."\n"
- .'* InviteSuccess: The member accepts the invitation.'."\n"
- .'* Removed: The member is removed.'."\n"
- .'* SwitchSuccess: The type of the member is switched.'."\n",
- 'type' => 'string',
- 'example' => 'CreateSuccess',
- ],
- 'Type' => [
- 'description' => 'The type of the member. Valid values:'."\n"
- ."\n"
- .'* CloudAccount: cloud account'."\n"
- .'* ResourceAccount: resource account'."\n",
- 'type' => 'string',
- 'example' => 'ResourceAccount',
- ],
- 'DisplayName' => [
- 'description' => 'The display name of the member.'."\n",
- 'type' => 'string',
- 'example' => 'admin',
- ],
- 'FolderId' => [
- 'description' => 'The ID of the folder.'."\n",
- 'type' => 'string',
- 'example' => 'fd-bVaRIG****',
- ],
- 'ResourceDirectoryId' => [
- 'description' => 'The ID of the resource directory.'."\n",
- 'type' => 'string',
- 'example' => 'rd-k3****',
- ],
- 'JoinTime' => [
- 'description' => 'The time when the member joined the resource directory. The time is displayed in UTC.'."\n",
- 'type' => 'string',
- 'example' => '2015-01-23T12:33:18Z',
- ],
- 'AccountId' => [
- 'description' => 'The Alibaba Cloud account ID of the member.'."\n",
- 'type' => 'string',
- 'example' => '12323344****',
- ],
- 'JoinMethod' => [
- 'description' => 'The way in which the member joins the resource directory. Valid values:'."\n"
- ."\n"
- .'* invited: The member is invited to join the resource directory.'."\n"
- .'* created: The member is directly created in the resource directory.'."\n",
- 'type' => 'string',
- 'example' => 'created',
- ],
- 'ModifyTime' => [
- 'description' => 'The time when the member was modified. The time is displayed in UTC.'."\n",
- 'type' => 'string',
- 'example' => '2015-01-23T12:33:18Z',
- ],
- 'AccountName' => [
- 'description' => 'The Alibaba Cloud account name of the member.'."\n",
- 'type' => 'string',
- 'example' => 'ecs-manager@aliyun.com',
- ],
- ],
- ],
- 'RequestId' => [
- 'description' => 'The ID of the request.'."\n",
- 'type' => 'string',
- 'example' => '9B34724D-54B0-4A51-B34D-4512372FE1BE',
- ],
+ 'RequestId' => ['description' => 'The ID of the request.', 'type' => 'string', 'example' => 'C8541E06-B207-46BF-92C9-DC8DE4609D75', 'title' => ''],
],
+ 'title' => '',
+ 'example' => '',
],
],
],
'errorCodes' => [
404 => [
- [
- 'errorCode' => 'EntityNotExists.ResourceDirectory',
- 'errorMessage' => 'The resource directory for the account is not enabled. We recommend that you first enable the resource directory for the account.',
- ],
- [
- 'errorCode' => 'EntityNotExists.Account',
- 'errorMessage' => 'This resource directory account does not exist.',
- ],
+ ['errorCode' => 'EntityNotExists.ResourceControlPolicy', 'errorMessage' => 'The specified resource control policy does not exist.', 'description' => ''],
],
409 => [
- [
- 'errorCode' => 'InvalidParameter.Account.DisplayName.AlreadyUsed',
- 'errorMessage' => 'The displayname of account has been used.',
- ],
- [
- 'errorCode' => 'MissingDisplayNameOrAccountType',
- 'errorMessage' => 'Either display name or account type must be specified.',
- ],
- [
- 'errorCode' => 'AccountTypeMismatch',
- 'errorMessage' => 'The type or status of the member account cannot satisfy the current operation.',
- ],
- [
- 'errorCode' => 'PrimaryAkInUse',
- 'errorMessage' => 'The account has the primary AK in use.',
- ],
- [
- 'errorCode' => 'MissingSecurityInfo',
- 'errorMessage' => 'Security information is missing.',
- ],
- [
- 'errorCode' => 'LegalEntityDifferent',
- 'errorMessage' => 'The account legal entity is different from the one of the Management Account.',
- ],
- [
- 'errorCode' => 'CallerIdentityError',
- 'errorMessage' => 'Please use the RAM user or role of the Management Account.',
- ],
+ ['errorCode' => 'InvalidResourceControlPolicyEnablementStatus', 'errorMessage' => 'The resource control policy enablement status is not valid to perform this operation.', 'description' => ''],
+ ['errorCode' => 'DeleteConflict.SystemResourceControlPolicy', 'errorMessage' => 'The system resource control policy cannot be deleted.', 'description' => ''],
],
],
- 'responseDemo' => '[{"type":"json","example":"{\\n \\"Account\\": {\\n \\"Status\\": \\"CreateSuccess\\",\\n \\"Type\\": \\"ResourceAccount\\",\\n \\"DisplayName\\": \\"admin\\",\\n \\"FolderId\\": \\"fd-bVaRIG****\\",\\n \\"ResourceDirectoryId\\": \\"rd-k3****\\",\\n \\"JoinTime\\": \\"2015-01-23T12:33:18Z\\",\\n \\"AccountId\\": \\"12323344****\\",\\n \\"JoinMethod\\": \\"created\\",\\n \\"ModifyTime\\": \\"2015-01-23T12:33:18Z\\",\\n \\"AccountName\\": \\"ecs-manager@aliyun.com\\"\\n },\\n \\"RequestId\\": \\"9B34724D-54B0-4A51-B34D-4512372FE1BE\\"\\n}","errorExample":""},{"type":"xml","example":"<?xml version=\\"1.0\\" encoding=\\"UTF-8\\" ?>\\r\\n<UpdateAccountResponse>\\r\\n <RequestId>9B34724D-54B0-4A51-B34D-4512372FE1BE</RequestId>\\r\\n <Account>\\r\\n <ResourceDirectoryId>rd-k3****</ResourceDirectoryId>\\r\\n <AccountId>12323344****</AccountId>\\r\\n <DisplayName>admin</DisplayName>\\r\\n <FolderId>fd-bVaRIG****</FolderId>\\r\\n <JoinMethod>created</JoinMethod>\\r\\n <JoinTime>2015-01-23T12:33:18Z</JoinTime>\\r\\n <Type>ResourceAccount</Type>\\r\\n <Status>CreateSuccess</Status>\\r\\n <RecordId>06950264-3f0d-4ca9-82dd-6ee7a3d33d6b</RecordId>\\r\\n <ModifyTime>2015-01-23T12:33:18Z</ModifyTime>\\r\\n </Account>\\r\\n</UpdateAccountResponse>","errorExample":""}]',
- 'title' => 'UpdateAccount',
- 'summary' => 'Changes the display name of a member, or switches the type of a member.',
- 'description' => '* To ensure that the system can record the operators of management operations, you must use a RAM user or RAM role to which the AliyunResourceDirectoryFullAccess policy is attached within the management account of your resource directory to call this operation.'."\n"
- .'* Before you switch the type of a member from resource account to cloud account, make sure that specific conditions are met. For more information about the conditions, see [Switch a resource account to a cloud account](~~111233~~).'."\n"
- .'* Before you switch the type of a member from cloud account to resource account, make sure that specific conditions are met. For more information about the conditions, see [Switch a cloud account to a resource account](~~209980~~).',
+ 'title' => 'DeleteControlPolicy',
+ 'summary' => 'Deletes a custom access control policy.',
+ 'description' => 'If you want to delete a custom access control policy that is attached to folders or members, you must call the [DetachControlPolicy](~~DetachControlPolicy~~) operation to detach the policy before you delete it.',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
- ],
- 'ListAccounts' => [
- 'summary' => 'Queries a list of members in a resource directory.',
- 'methods' => [
- 'post',
- 'get',
+ 'changeSet' => [],
+ 'flowControl' => [
+ 'flowControlList' => [
+ ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteControlPolicy'],
+ ],
],
- 'schemes' => [
- 'http',
- 'https',
+ 'ramActions' => [
+ [
+ 'operationType' => 'delete',
+ 'ramAction' => [
+ 'action' => 'resourcemanager:DeleteControlPolicy',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ResourceManager', 'resourceType' => 'ControlPolicy', 'arn' => 'acs:resourcemanager::{#accountId}:policy/controlpolicy/{#PolicyId}'],
+ ],
+ ],
+ ],
],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"C8541E06-B207-46BF-92C9-DC8DE4609D75\\"\\n}","type":"json"}]',
+ ],
+ 'DeleteFolder' => [
+ 'methods' => ['post', 'get'],
+ 'schemes' => ['https'],
'security' => [
[
'AK' => [],
],
],
- 'operationType' => 'read',
+ 'operationType' => 'readAndWrite',
'deprecated' => false,
- 'systemTags' => [
- 'operationType' => 'list',
- 'riskType' => 'none',
- 'chargeType' => 'free',
- ],
+ 'systemTags' => ['operationType' => 'delete'],
'parameters' => [
[
- 'name' => 'PageNumber',
- 'in' => 'query',
- 'schema' => [
- 'description' => 'The number of the page to return.'."\n"
- ."\n"
- .'Pages start from page 1. Default value: 1.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'required' => false,
- 'example' => '1',
- ],
- ],
- [
- 'name' => 'PageSize',
- 'in' => 'query',
- 'schema' => [
- 'description' => 'The number of entries to return on each page.'."\n"
- ."\n"
- .'Valid values: 1 to 100. Default value: 10.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'required' => false,
- 'example' => '10',
- ],
- ],
- [
- 'name' => 'QueryKeyword',
- 'in' => 'query',
- 'schema' => [
- 'description' => 'The keyword used for the query, such as the display name of a member.'."\n"
- ."\n"
- .'Fuzzy match is supported.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'Advance',
- ],
- ],
- [
- 'name' => 'Tag',
- 'in' => 'query',
- 'style' => 'flat',
- 'schema' => [
- 'description' => 'The tags. This parameter specifies a filter condition.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The information of a tag.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'Key' => [
- 'description' => 'The tag key.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'tag_key',
- ],
- 'Value' => [
- 'description' => 'The tag value.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'tag_value',
- ],
- ],
- 'required' => false,
- ],
- 'required' => false,
- ],
- ],
- [
- 'name' => 'IncludeTags',
- 'in' => 'query',
- 'schema' => [
- 'description' => 'Specifies whether to return information about tags. Valid values:'."\n"
- ."\n"
- .'* false (default value)'."\n"
- .'* true'."\n",
- 'type' => 'boolean',
- 'required' => false,
- 'example' => 'true',
- ],
- ],
- [
- 'name' => 'MaxResults',
- 'in' => 'query',
- 'schema' => [
- 'description' => 'The number of entries per page. After you configure this parameter, token-based paging is preferentially used.'."\n"
- ."\n"
- .'Valid values: 1 to 100. Default value: 10.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'required' => false,
- 'example' => '10',
- ],
- ],
- [
- 'name' => 'NextToken',
+ 'name' => 'FolderId',
'in' => 'query',
- 'schema' => [
- 'description' => 'The pagination token that is used in the next request to retrieve a new page of results. If you leave this parameter empty, the query starts from the beginning.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'TGlzdFJlc291cm****',
- ],
+ 'schema' => ['description' => 'The ID of the folder.'."\n", 'type' => 'string', 'required' => true, 'example' => 'fd-ae1in7****', 'title' => ''],
],
],
'responses' => [
@@ -2494,197 +1582,38 @@
'description' => 'The returned result.'."\n",
'type' => 'object',
'properties' => [
- 'TotalCount' => [
- 'description' => 'The total number of entries returned.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'example' => '2',
- ],
- 'RequestId' => [
- 'description' => 'The ID of the request.'."\n",
- 'type' => 'string',
- 'example' => '7B8A4E7D-6CFF-471D-84DF-195A7A241ECB',
- ],
- 'PageSize' => [
- 'description' => 'The number of entries returned per page.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'example' => '5',
- ],
- 'PageNumber' => [
- 'description' => 'The page number of the returned page.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'example' => '1',
- ],
- 'NextToken' => [
- 'description' => 'A pagination token. It can be used in the next request to retrieve a new page of results. If NextToken is empty, no next page exists.'."\n",
- 'type' => 'string',
- 'example' => 'TGlzdFJlc291cm****',
- ],
- 'Accounts' => [
- 'type' => 'object',
- 'itemNode' => true,
- 'properties' => [
- 'Account' => [
- 'description' => 'The information about the members.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The information of a member.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'Status' => [
- 'description' => 'The status of the member. Valid values:'."\n"
- ."\n"
- .'* CreateSuccess: The member is created.'."\n"
- .'* PromoteVerifying: The upgrade of the member is under confirmation.'."\n"
- .'* PromoteFailed: The upgrade of the member fails.'."\n"
- .'* PromoteExpired: The upgrade of the member expires.'."\n"
- .'* PromoteCancelled: The upgrade of the member is canceled.'."\n"
- .'* PromoteSuccess: The member is upgraded.'."\n"
- .'* InviteSuccess: The member accepts the invitation.'."\n",
- 'type' => 'string',
- 'example' => 'CreateSuccess',
- ],
- 'Type' => [
- 'description' => 'The type of the member. Valid values:'."\n"
- ."\n"
- .'* CloudAccount: cloud account'."\n"
- .'* ResourceAccount: resource account'."\n",
- 'type' => 'string',
- 'example' => 'ResourceAccount',
- ],
- 'DisplayName' => [
- 'description' => 'The display name of the member.'."\n",
- 'type' => 'string',
- 'example' => 'test',
- ],
- 'FolderId' => [
- 'description' => 'The ID of the folder.'."\n",
- 'type' => 'string',
- 'example' => 'fd-QRzuim****',
- ],
- 'ResourceDirectoryId' => [
- 'description' => 'The ID of the resource directory.'."\n",
- 'type' => 'string',
- 'example' => 'rd-3G****',
- ],
- 'JoinTime' => [
- 'description' => 'The time when the member joined the resource directory. The time is displayed in UTC.'."\n",
- 'type' => 'string',
- 'example' => '2021-01-18T08:01:50.522Z',
- ],
- 'AccountId' => [
- 'description' => 'The Alibaba Cloud account ID of the member.'."\n",
- 'type' => 'string',
- 'example' => '181761095690****',
- ],
- 'JoinMethod' => [
- 'description' => 'The way in which the member joins the resource directory. Valid values:'."\n"
- ."\n"
- .'* invited: The member is invited to join the resource directory.'."\n"
- .'* created: The member is directly created in the resource directory.'."\n",
- 'type' => 'string',
- 'example' => 'created',
- ],
- 'ModifyTime' => [
- 'description' => 'The time when the member was modified. The time is displayed in UTC.'."\n",
- 'type' => 'string',
- 'example' => '2021-01-18T08:04:37.668Z',
- ],
- 'ResourceDirectoryPath' => [
- 'description' => 'The RDPath of the member.'."\n",
- 'type' => 'string',
- 'example' => 'rd-3G****/r-Wm****/fd-QRzuim****/181761095690****',
- ],
- 'AccountName' => [
- 'description' => 'The Alibaba Cloud account name of the member.'."\n",
- 'type' => 'string',
- 'example' => 'oxy01414357@alibaba-inc.com',
- ],
- 'DeletionStatus' => [
- 'description' => 'The deletion status of the member. Valid values:'."\n"
- ."\n"
- .'* Checking: A deletion check is being performed for the member.'."\n"
- .'* Deleting: The member is being deleted.'."\n"
- .'* CheckFailed: The deletion check for the member fails.'."\n"
- .'* DeleteFailed: The member fails to be deleted.'."\n"
- ."\n"
- .'> If deletion is not performed for the member, the value of this parameter is empty.'."\n",
- 'type' => 'string',
- 'example' => 'Checking',
- ],
- 'Tags' => [
- 'type' => 'object',
- 'itemNode' => true,
- 'properties' => [
- 'Tag' => [
- 'description' => 'The tags that are added to the member.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The information of a tag.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'Key' => [
- 'description' => 'The key of the tag.'."\n",
- 'type' => 'string',
- 'example' => 'tag_key',
- ],
- 'Value' => [
- 'description' => 'The value of the tag.'."\n",
- 'type' => 'string',
- 'example' => 'tag_value',
- ],
- ],
- ],
- ],
- ],
- ],
- ],
- ],
- ],
- ],
- ],
+ 'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => '9B34724D-54B0-4A51-B34D-4512372FE1BE', 'title' => ''],
],
+ 'title' => '',
],
],
],
'errorCodes' => [
400 => [
- [
- 'errorCode' => 'InvalidParameter.MaxResults',
- 'errorMessage' => 'The MaxResults is invalid.',
- ],
- [
- 'errorCode' => 'InvalidParameter.NextToken',
- 'errorMessage' => 'The NextToken is invalid.',
- ],
- [
- 'errorCode' => 'InvalidParameter.NextToken.Length',
- 'errorMessage' => 'The maximum length of NextToken (256 characters) is exceeded.',
- ],
+ ['errorCode' => 'MissingParameter.FolderId', 'errorMessage' => 'You must specify FolderId.', 'description' => ''],
+ ['errorCode' => 'InvalidParameter.FolderId', 'errorMessage' => 'The FolderId is invalid.', 'description' => ''],
],
404 => [
- [
- 'errorCode' => 'EntityNotExists.ResourceDirectory',
- 'errorMessage' => 'The resource directory for the account is not enabled. We recommend that you first enable the resource directory for the account.',
- ],
+ ['errorCode' => 'EntityNotExists.ResourceDirectory', 'errorMessage' => 'The resource directory for the account is not enabled. We recommend that you first enable the resource directory for the account.', 'description' => ''],
+ ['errorCode' => 'EntityNotExists.Folder', 'errorMessage' => 'The resource directory folder does not exist.', 'description' => ''],
+ ],
+ 409 => [
+ ['errorCode' => 'DeleteConflict.Folder.SubFolder', 'errorMessage' => 'This folder has sub folders.', 'description' => ''],
+ ['errorCode' => 'DeleteConflict.Folder.Account', 'errorMessage' => 'This folder has accounts.', 'description' => ''],
],
],
- 'responseDemo' => '[{"type":"json","example":"{\\n \\"TotalCount\\": 2,\\n \\"RequestId\\": \\"7B8A4E7D-6CFF-471D-84DF-195A7A241ECB\\",\\n \\"PageSize\\": 5,\\n \\"PageNumber\\": 1,\\n \\"NextToken\\": \\"TGlzdFJlc291cm****\\",\\n \\"Accounts\\": {\\n \\"Account\\": [\\n {\\n \\"Status\\": \\"CreateSuccess\\",\\n \\"Type\\": \\"ResourceAccount\\",\\n \\"DisplayName\\": \\"test\\",\\n \\"FolderId\\": \\"fd-QRzuim****\\",\\n \\"ResourceDirectoryId\\": \\"rd-3G****\\",\\n \\"JoinTime\\": \\"2021-01-18T08:01:50.522Z\\",\\n \\"AccountId\\": \\"181761095690****\\",\\n \\"JoinMethod\\": \\"created\\",\\n \\"ModifyTime\\": \\"2021-01-18T08:04:37.668Z\\",\\n \\"ResourceDirectoryPath\\": \\"rd-3G****/r-Wm****/fd-QRzuim****/181761095690****\\",\\n \\"AccountName\\": \\"oxy01414357@alibaba-inc.com\\",\\n \\"DeletionStatus\\": \\"Checking\\",\\n \\"Tags\\": {\\n \\"Tag\\": [\\n {\\n \\"Key\\": \\"tag_key\\",\\n \\"Value\\": \\"tag_value\\"\\n }\\n ]\\n }\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<ListAccountsResponse>\\n <TotalCount>2</TotalCount>\\n <RequestId>7B8A4E7D-6CFF-471D-84DF-195A7A241ECB</RequestId>\\n <PageSize>1</PageSize>\\n <PageNumber>2</PageNumber>\\n <Accounts>\\n <Status>CreateSuccess</Status>\\n <Type>ResourceAccount</Type>\\n <DisplayName>test</DisplayName>\\n <FolderId>fd-QRzuim****</FolderId>\\n <ResourceDirectoryId>rd-3G****</ResourceDirectoryId>\\n <JoinTime>2021-01-18T08:01:50.522Z</JoinTime>\\n <AccountId>181761095690****</AccountId>\\n <JoinMethod>created</JoinMethod>\\n <ModifyTime>2021-01-18T08:04:37.668Z</ModifyTime>\\n <ResourceDirectoryPath>rd-3G****/r-Wm****/fd-QRzuim****/181761095690****</ResourceDirectoryPath>\\n <Tags>\\n <Key>tag_key</Key>\\n <Value>tag_value</Value>\\n </Tags>\\n </Accounts>\\n</ListAccountsResponse>","errorExample":""}]',
- 'title' => 'ListAccounts',
- 'description' => 'You can use only the management account of a resource directory or a delegated administrator account of a trusted service to call this operation.'."\n",
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"9B34724D-54B0-4A51-B34D-4512372FE1BE\\"\\n}","errorExample":""},{"type":"xml","example":"<?xml version=\\"1.0\\" encoding=\\"UTF-8\\" ?>\\r\\n<DeleteFolderResponse>\\r\\n <RequestId>9B34724D-54B0-4A51-B34D-4512372FE1BE</RequestId>\\r\\n</DeleteFolderResponse>","errorExample":""}]',
+ 'title' => 'DeleteFolder',
+ 'summary' => 'Deletes a folder.',
+ 'description' => 'Before you delete a folder, you must make sure that the folder does not contain members or subfolders.'."\n",
+ 'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
+ 'changeSet' => [],
],
- 'RemoveCloudAccount' => [
- 'methods' => [
- 'post',
- 'get',
- ],
- 'schemes' => [
- 'https',
- ],
+ 'DeleteMessageContact' => [
+ 'methods' => ['post', 'get'],
+ 'schemes' => ['https'],
'security' => [
[
'AK' => [],
@@ -2692,182 +1621,77 @@
],
'operationType' => 'readAndWrite',
'deprecated' => false,
- 'systemTags' => [
- 'operationType' => 'delete',
- ],
+ 'systemTags' => ['operationType' => 'delete'],
'parameters' => [
[
- 'name' => 'AccountId',
+ 'name' => 'ContactId',
'in' => 'query',
- 'schema' => [
- 'description' => 'The Alibaba Cloud account ID of the member.'."\n",
- 'type' => 'string',
- 'required' => true,
- 'example' => '177242285274****',
- ],
+ 'schema' => ['description' => 'The ID of the contact.'."\n", 'type' => 'string', 'required' => true, 'example' => 'c-qL4HqKONzOM7****', 'title' => ''],
+ ],
+ [
+ 'name' => 'RetainContactInMembers',
+ 'in' => 'query',
+ 'schema' => ['description' => 'Specifies whether to retain the contact for members. Valid values:'."\n"
+ ."\n"
+ .'* true (default): retains the contact for members. In this case, the contact can still receive messages for the members.'."\n"
+ .'* false: does not retain the contact for members. In this case, the contact can no longer receive messages for the members. If you set this parameter to false, the response is asynchronously returned. You can call [GetMessageContactDeletionStatus](~~GetMessageContactDeletionStatus~~) to obtain the deletion result.'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'true', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
+ 'title' => 'Schema of Response',
'description' => 'The returned result.'."\n",
'type' => 'object',
'properties' => [
- 'RequestId' => [
- 'description' => 'The ID of the request.'."\n",
- 'type' => 'string',
- 'example' => '9B34724D-54B0-4A51-B34D-4512372FE1BE',
- ],
+ 'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '9B34724D-54B0-4A51-B34D-4512372FE1BE'],
+ 'Status' => ['description' => 'The deletion status of the contact. Valid values:'."\n"
+ ."\n"
+ .'* Deleting'."\n"
+ .'* Deleted'."\n", 'type' => 'string', 'example' => 'Deleting', 'title' => ''],
],
],
],
],
'errorCodes' => [
400 => [
- [
- 'errorCode' => 'MissingParameter.AccountId',
- 'errorMessage' => 'You must specify AccountId.',
- ],
- [
- 'errorCode' => 'InvalidParameter.AccountId',
- 'errorMessage' => 'The AccountId is invalid.',
- ],
+ ['errorCode' => 'InvalidParameter.ContactId', 'errorMessage' => 'The ContactId is invalid.', 'description' => ''],
+ ['errorCode' => 'MissingParameter.ContactId', 'errorMessage' => 'You must specify ContactId.', 'description' => ''],
],
404 => [
- [
- 'errorCode' => 'EntityNotExists.Account',
- 'errorMessage' => 'This resource directory account does not exist.',
- ],
- [
- 'errorCode' => 'EntityNotExists.ResourceDirectory',
- 'errorMessage' => 'The resource directory for the account is not enabled. We recommend that you first enable the resource directory for the account.',
- ],
+ ['errorCode' => 'EntityNotExists.Contact', 'errorMessage' => 'This Contact does not exist.', 'description' => ''],
],
- 409 => [
- [
- 'errorCode' => 'AccountTypeOrStatusMismatch',
- 'errorMessage' => 'You cannot perform the action on the member account.',
- ],
- [
- 'errorCode' => 'Deny.TrustedService',
- 'errorMessage' => 'You attempted to remove an account that is used in %s. To complete this operation, you must first remove this account from the Trusted Service.',
- ],
+ 429 => [
+ ['errorCode' => 'ConcurrentCallNotSupported', 'errorMessage' => 'The operation conflicts with other operations. Please try again later.', 'description' => ''],
],
],
- 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"9B34724D-54B0-4A51-B34D-4512372FE1BE\\"\\n}","errorExample":""},{"type":"xml","example":"<?xml version=\\"1.0\\" encoding=\\"UTF-8\\" ?>\\r\\n<RemoveCloudAccountResponse>\\r\\n <RequestId>9B34724D-54B0-4A51-B34D-4512372FE1BE</RequestId>\\r\\n</RemoveCloudAccountResponse>","errorExample":""}]',
- 'title' => 'RemoveCloudAccount',
- 'summary' => 'Removes a member of the cloud account type.',
- 'responseParamsDescription' => ' ',
- 'extraInfo' => ' ',
+ 'staticInfo' => ['returnType' => 'synchronous'],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"9B34724D-54B0-4A51-B34D-4512372FE1BE\\",\\n \\"Status\\": \\"Deleting\\"\\n}","type":"json"}]',
+ 'title' => 'DeleteMessageContact',
+ 'summary' => 'Deletes a contact.',
+ 'changeSet' => [],
],
- 'ListAccountsForParent' => [
- 'methods' => [
- 'post',
- 'get',
- ],
- 'schemes' => [
- 'https',
- ],
+ 'DeregisterDelegatedAdministrator' => [
+ 'methods' => ['post', 'get'],
+ 'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
- 'operationType' => 'read',
+ 'operationType' => 'readAndWrite',
'deprecated' => false,
- 'systemTags' => [
- 'operationType' => 'list',
- ],
+ 'systemTags' => ['operationType' => 'delete'],
'parameters' => [
[
- 'name' => 'ParentFolderId',
- 'in' => 'query',
- 'schema' => [
- 'description' => 'The ID of the folder.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'fd-bVaRIG****',
- ],
- ],
- [
- 'name' => 'QueryKeyword',
- 'in' => 'query',
- 'schema' => [
- 'description' => 'The keyword used for the query, such as the display name of a member.'."\n"
- ."\n"
- .'Fuzzy match is supported.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'admin',
- ],
- ],
- [
- 'name' => 'PageNumber',
- 'in' => 'query',
- 'schema' => [
- 'description' => 'The number of the page to return.'."\n"
- ."\n"
- .'Pages start from page 1. Default value: 1.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'required' => false,
- 'example' => '1',
- ],
- ],
- [
- 'name' => 'PageSize',
- 'in' => 'query',
- 'schema' => [
- 'description' => 'The number of entries to return on each page.'."\n"
- ."\n"
- .'Valid values: 1 to 100. Default value: 10.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'required' => false,
- 'example' => '10',
- ],
- ],
- [
- 'name' => 'Tag',
+ 'name' => 'AccountId',
'in' => 'query',
- 'style' => 'flat',
- 'schema' => [
- 'description' => 'The tags. This parameter specifies a filter condition.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The information of a tag.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'Key' => [
- 'description' => 'The key of the tag.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'tag_key',
- ],
- 'Value' => [
- 'description' => 'The value of the tag.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'tag_value',
- ],
- ],
- 'required' => false,
- ],
- 'required' => false,
- ],
+ 'schema' => ['description' => 'The Alibaba Cloud account ID of the member in the resource directory.'."\n", 'type' => 'string', 'required' => true, 'example' => '181761095690****', 'title' => ''],
],
[
- 'name' => 'IncludeTags',
+ 'name' => 'ServicePrincipal',
'in' => 'query',
- 'schema' => [
- 'description' => 'Specifies whether to return information about tags. Valid values:'."\n"
- ."\n"
- .'* false (default value)'."\n"
- .'* true'."\n",
- 'type' => 'boolean',
- 'required' => false,
- 'example' => 'true',
- ],
+ 'schema' => ['description' => 'The identifier of the trusted service.'."\n", 'type' => 'string', 'required' => true, 'example' => 'cloudfw.aliyuncs.com', 'title' => ''],
],
],
'responses' => [
@@ -2876,260 +1700,73 @@
'description' => 'The returned result.'."\n",
'type' => 'object',
'properties' => [
- 'TotalCount' => [
- 'description' => 'The total number of entries returned.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'example' => '2',
- ],
- 'RequestId' => [
- 'description' => 'The ID of the request.'."\n",
- 'type' => 'string',
- 'example' => '7B8A4E7D-6CFF-471D-84DF-195A7A241ECB',
- ],
- 'PageSize' => [
- 'description' => 'The number of entries returned per page.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'example' => '5',
- ],
- 'PageNumber' => [
- 'description' => 'The page number of the returned page.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'example' => '1',
- ],
- 'Accounts' => [
- 'type' => 'object',
- 'itemNode' => true,
- 'properties' => [
- 'Account' => [
- 'description' => 'The information about the members.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The information of a member.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'Status' => [
- 'description' => 'The status of the member. Valid values:'."\n"
- ."\n"
- .'* CreateSuccess: The member is created.'."\n"
- .'* PromoteVerifying: The upgrade of the member is under confirmation.'."\n"
- .'* PromoteFailed: The upgrade of the member fails.'."\n"
- .'* PromoteExpired: The upgrade of the member expires.'."\n"
- .'* PromoteCancelled: The upgrade of the member is canceled.'."\n"
- .'* PromoteSuccess: The member is upgraded.'."\n"
- .'* InviteSuccess: The member accepts the invitation.'."\n",
- 'type' => 'string',
- 'example' => 'CreateSuccess',
- ],
- 'Type' => [
- 'description' => 'The type of the member. Valid values:'."\n"
- ."\n"
- .'* CloudAccount: cloud account'."\n"
- .'* ResourceAccount: resource account'."\n",
- 'type' => 'string',
- 'example' => 'ResourceAccount',
- ],
- 'DisplayName' => [
- 'description' => 'The display name of the member.'."\n",
- 'type' => 'string',
- 'example' => 'admin',
- ],
- 'FolderId' => [
- 'description' => 'The ID of the folder.'."\n",
- 'type' => 'string',
- 'example' => 'fd-bVaRIG****',
- ],
- 'ResourceDirectoryId' => [
- 'description' => 'The ID of the resource directory.'."\n",
- 'type' => 'string',
- 'example' => 'rd-k4****',
- ],
- 'JoinTime' => [
- 'description' => 'The time when the member joined the resource directory. The time is displayed in UTC.'."\n",
- 'type' => 'string',
- 'example' => '2015-01-23T12:33:18Z',
- ],
- 'AccountId' => [
- 'description' => 'The Alibaba Cloud account ID of the member.'."\n",
- 'type' => 'string',
- 'example' => '184311716100****',
- ],
- 'JoinMethod' => [
- 'description' => 'The way in which the member joins the resource directory.'."\n"
- ."\n"
- .'* invited: The member is invited to join the resource directory.'."\n"
- .'* created: The member is directly created in the resource directory.'."\n",
- 'type' => 'string',
- 'example' => 'created',
- ],
- 'ModifyTime' => [
- 'description' => 'The time when the member was modified. The time is displayed in UTC.'."\n",
- 'type' => 'string',
- 'example' => '2015-01-23T12:33:18Z',
- ],
- 'AccountName' => [
- 'description' => 'The Alibaba Cloud account name of the member.'."\n",
- 'type' => 'string',
- 'example' => 'hdd01429358@alibaba-inc.com',
- ],
- 'DeletionStatus' => [
- 'description' => 'The deletion status of the member. Valid values:'."\n"
- ."\n"
- .'* Checking: A deletion check is being performed for the member.'."\n"
- .'* Deleting: The member is being deleted.'."\n"
- .'* CheckFailed: The deletion check for the member fails.'."\n"
- .'* DeleteFailed: The member fails to be deleted.'."\n"
- ."\n"
- .'> If deletion is not performed for the member, the value of this parameter is empty.'."\n",
- 'type' => 'string',
- 'example' => 'Checking',
- ],
- 'Tags' => [
- 'type' => 'object',
- 'itemNode' => true,
- 'properties' => [
- 'Tag' => [
- 'description' => 'The tags that are added to the member.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The information of a tag.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'Key' => [
- 'description' => 'The key of the tag.'."\n",
- 'type' => 'string',
- 'example' => 'tag_key',
- ],
- 'Value' => [
- 'description' => 'The value of the tag.'."\n",
- 'type' => 'string',
- 'example' => 'tag_value',
- ],
- ],
- ],
- ],
- ],
- ],
- ],
- ],
- ],
- ],
- ],
+ 'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => 'DF5D5C52-7BD0-40E7-94C6-23A1505038A2', 'title' => ''],
],
+ 'title' => '',
],
],
],
'errorCodes' => [
- 400 => [
- [
- 'errorCode' => 'InvalidParameter.ParentFolderId',
- 'errorMessage' => 'The ParentFolderId is invalid.',
- ],
- ],
- 404 => [
- [
- 'errorCode' => 'EntityNotExists.ResourceDirectory',
- 'errorMessage' => 'The resource directory for the account is not enabled. We recommend that you first enable the resource directory for the account.',
- ],
- [
- 'errorCode' => 'EntityNotExists.Folder',
- 'errorMessage' => 'The resource directory folder does not exist.',
- ],
+ 409 => [
+ ['errorCode' => 'InvalidParameter.ServicePrincipal', 'errorMessage' => 'The specified ServicePrincipal is invalid.', 'description' => ''],
+ ['errorCode' => 'AccountNotRegistered', 'errorMessage' => 'The specified account is not a delegated administrator for this service.', 'description' => ''],
],
],
- 'responseDemo' => '[{"type":"json","example":"{\\n \\"TotalCount\\": 2,\\n \\"RequestId\\": \\"7B8A4E7D-6CFF-471D-84DF-195A7A241ECB\\",\\n \\"PageSize\\": 5,\\n \\"PageNumber\\": 1,\\n \\"Accounts\\": {\\n \\"Account\\": [\\n {\\n \\"Status\\": \\"CreateSuccess\\",\\n \\"Type\\": \\"ResourceAccount\\",\\n \\"DisplayName\\": \\"admin\\",\\n \\"FolderId\\": \\"fd-bVaRIG****\\",\\n \\"ResourceDirectoryId\\": \\"rd-k4****\\",\\n \\"JoinTime\\": \\"2015-01-23T12:33:18Z\\",\\n \\"AccountId\\": \\"184311716100****\\",\\n \\"JoinMethod\\": \\"created\\",\\n \\"ModifyTime\\": \\"2015-01-23T12:33:18Z\\",\\n \\"AccountName\\": \\"hdd01429358@alibaba-inc.com\\",\\n \\"DeletionStatus\\": \\"Checking\\",\\n \\"Tags\\": {\\n \\"Tag\\": [\\n {\\n \\"Key\\": \\"tag_key\\",\\n \\"Value\\": \\"tag_value\\"\\n }\\n ]\\n }\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<ListAccountsForParentResponse>\\n <TotalCount>2</TotalCount>\\n <RequestId>7B8A4E7D-6CFF-471D-84DF-195A7A241ECB</RequestId>\\n <PageSize>1</PageSize>\\n <PageNumber>2</PageNumber>\\n <Accounts>\\n <Status>CreateSuccess</Status>\\n <Type>ResourceAccount</Type>\\n <DisplayName>admin</DisplayName>\\n <FolderId>fd-bVaRIG****</FolderId>\\n <ResourceDirectoryId>rd-k4****</ResourceDirectoryId>\\n <JoinTime>2015-01-23T12:33:18Z</JoinTime>\\n <AccountId>184311716100****</AccountId>\\n <JoinMethod>created</JoinMethod>\\n <ModifyTime>2015-01-23T12:33:18Z</ModifyTime>\\n <Tags>\\n <Key>tag_key</Key>\\n <Value>tag_value</Value>\\n </Tags>\\n </Accounts>\\n</ListAccountsForParentResponse>","errorExample":""}]',
- 'title' => 'ListAccountsForParent',
- 'summary' => 'Queries the information of members in a folder.',
- 'requestParamsDescription' => 'For more information about common request parameters, see [Common parameters](~~159973~~).'."\n",
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"DF5D5C52-7BD0-40E7-94C6-23A1505038A2\\"\\n}","errorExample":""},{"type":"xml","example":"<?xml version=\\"1.0\\" encoding=\\"UTF-8\\" ?>\\r\\n<DeregisterDelegatedAdministratorResponse>\\r\\n\\t<RequestId>DF5D5C52-7BD0-40E7-94C6-23A1505038A2</RequestId>\\r\\n</DeregisterDelegatedAdministratorResponse>\\t\\r\\n","errorExample":""}]',
+ 'title' => 'DeregisterDelegatedAdministrator',
+ 'summary' => 'Removes a delegated administrator account for a trusted service.',
+ 'description' => 'If the delegated administrator account that you want to remove has historical management tasks in the related trusted service, the trusted service may be affected after the delegated administrator account is removed. Therefore, proceed with caution.'."\n",
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
+ 'changeSet' => [],
],
- 'GetPayerForAccount' => [
- 'methods' => [
- 'post',
- 'get',
- ],
- 'schemes' => [
- 'https',
- ],
+ 'DestroyResourceDirectory' => [
+ 'methods' => ['post', 'get'],
+ 'schemes' => ['https'],
'security' => [
[
'AK' => [],
],
],
- 'operationType' => 'read',
+ 'operationType' => 'readAndWrite',
'deprecated' => false,
- 'systemTags' => [
- 'operationType' => 'get',
- ],
- 'parameters' => [
- [
- 'name' => 'AccountId',
- 'in' => 'query',
- 'schema' => [
- 'description' => 'The ID of the billing account.'."\n",
- 'type' => 'string',
- 'required' => true,
- 'example' => '12323344****',
- ],
- ],
- ],
+ 'systemTags' => ['operationType' => 'delete'],
+ 'parameters' => [],
'responses' => [
200 => [
'schema' => [
'description' => 'The returned result.'."\n",
'type' => 'object',
'properties' => [
- 'PayerAccountName' => [
- 'description' => 'The name of the billing account.'."\n",
- 'type' => 'string',
- 'example' => 'Alice',
- ],
- 'RequestId' => [
- 'description' => 'The ID of the request.'."\n",
- 'type' => 'string',
- 'example' => '9B34724D-54B0-4A51-B34D-4512372FE1BE',
- ],
- 'PayerAccountId' => [
- 'description' => 'The ID of the billing account.'."\n",
- 'type' => 'string',
- 'example' => '172841235500****',
- ],
+ 'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => '9B34724D-54B0-4A51-B34D-4512372FE1BE', 'title' => ''],
],
+ 'title' => '',
],
],
],
'errorCodes' => [
404 => [
- [
- 'errorCode' => 'EntityNotExists.ResourceDirectory',
- 'errorMessage' => 'The resource directory for the account is not enabled. We recommend that you first enable the resource directory for the account.',
- ],
- [
- 'errorCode' => 'EntityNotExists.Account',
- 'errorMessage' => 'This resource directory account does not exist.',
- ],
+ ['errorCode' => 'EntityNotExists.ResourceDirectory', 'errorMessage' => 'The resource directory for the account is not enabled. We recommend that you first enable the resource directory for the account.', 'description' => ''],
+ ],
+ 409 => [
+ ['errorCode' => 'DeleteConflict.ResourceDirectory.Account', 'errorMessage' => 'Failed to delete the resource directory because one or more member accounts exist. We recommend that you first remove these member accounts.', 'description' => ''],
],
],
- 'responseDemo' => '[{"type":"json","example":"{\\n \\"PayerAccountName\\": \\"Alice\\",\\n \\"RequestId\\": \\"9B34724D-54B0-4A51-B34D-4512372FE1BE\\",\\n \\"PayerAccountId\\": \\"172841235500****\\"\\n}","errorExample":""},{"type":"xml","example":"<?xml version=\\"1.0\\" encoding=\\"UTF-8\\" ?>\\r\\n<GetPayerForAccountResponse>\\r\\n\\t<RequestId>9B34724D-54B0-4A51-B34D-4512372FE1BE</RequestId>\\r\\n\\t<PayerAccountId>172841235500****</PayerAccountId>\\r\\n\\t<PayerAccountName>Alice</PayerAccountName>\\r\\n</GetPayerForAccountResponse>\\t\\r\\n","errorExample":""}]',
- 'title' => 'GetPayerForAccount',
- 'summary' => 'Queries the information of a billing account.',
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"9B34724D-54B0-4A51-B34D-4512372FE1BE\\"\\n}","errorExample":""},{"type":"xml","example":"<?xml version=\\"1.0\\" encoding=\\"UTF-8\\" ?>\\r\\n<DestroyResourceDirectoryResponse>\\r\\n <RequestId>9B34724D-54B0-4A51-B34D-4512372FE1BE</RequestId>\\r\\n</DestroyResourceDirectoryResponse>","errorExample":""}]',
+ 'title' => 'DestroyResourceDirectory',
+ 'summary' => 'Disables a resource directory. This operation cannot be undone. Therefore, proceed with caution.',
+ 'description' => 'Before you disable a resource directory, you must make sure that the following requirements are met:'."\n"
+ ."\n"
+ .'* All members of the cloud account type in the resource directory are removed. You can call the [RemoveCloudAccount](~~RemoveCloudAccount~~) operation to remove a member of the cloud account type.'."\n"
+ .'* All folders except the Root folder are deleted from the resource directory. You can call the [DeleteFolder](~~DeleteFolder~~) operation to delete a folder.'."\n",
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
+ 'changeSet' => [],
],
- 'UpdatePayerForAccount' => [
- 'summary' => 'Updates the billing account of a member.',
- 'path' => '',
- 'methods' => [
- 'post',
- 'get',
- ],
- 'schemes' => [
- 'https',
- ],
+ 'DetachControlPolicy' => [
+ 'methods' => ['post', 'get'],
+ 'schemes' => ['https'],
'security' => [
[
'AK' => [],
@@ -3137,87 +1774,83 @@
],
'operationType' => 'readAndWrite',
'deprecated' => false,
- 'systemTags' => [
- 'operationType' => 'update',
- 'riskType' => 'none',
- 'chargeType' => 'free',
- 'autoTest' => true,
- 'tenantRelevance' => 'tenant',
- ],
+ 'systemTags' => ['operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free'],
'parameters' => [
[
- 'name' => 'AccountId',
+ 'name' => 'PolicyId',
'in' => 'query',
- 'schema' => [
- 'description' => 'The Alibaba Cloud account ID of the member.'."\n",
- 'type' => 'string',
- 'required' => true,
- 'example' => '138660628348****',
- ],
+ 'schema' => ['description' => 'The ID of the access control policy.', 'type' => 'string', 'required' => true, 'example' => 'cp-jExXAqIYkwHN****', 'title' => ''],
],
[
- 'name' => 'PayerAccountId',
+ 'name' => 'TargetId',
'in' => 'query',
- 'schema' => [
- 'description' => 'The ID of the billing account.'."\n",
- 'type' => 'string',
- 'required' => true,
- 'example' => '12323344****',
- ],
+ 'schema' => ['description' => 'The ID of the object from which you want to detach the access control policy. Access control policies can be attached to the following objects:'."\n"
+ ."\n"
+ .'- Root folder'."\n"
+ ."\n"
+ .'- Subfolders of the Root folder'."\n"
+ ."\n"
+ .'- Members', 'type' => 'string', 'required' => true, 'example' => 'fd-ZDNPiT****', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
- 'title' => 'Schema of Response',
- 'description' => 'The returned result.'."\n",
+ 'description' => 'The returned result.',
'type' => 'object',
'properties' => [
- 'RequestId' => [
- 'description' => 'The request ID.'."\n",
- 'type' => 'string',
- 'example' => '9B34724D-54B0-4A51-B34D-4512372FE1BE',
- ],
+ 'RequestId' => ['description' => 'The ID of the request.', 'type' => 'string', 'example' => '9EA4F962-1A2E-4AFE-BE0C-B14736FC46CC', 'title' => ''],
],
+ 'title' => '',
+ 'example' => '',
],
],
],
'errorCodes' => [
+ 400 => [
+ ['errorCode' => 'NotSupport.DetachLastControlPolicy', 'errorMessage' => 'It is not detach the last control policy on the target node.', 'description' => 'It is not detach the last control policy on the target node.'],
+ ['errorCode' => 'NotSupport.DetachLastResourceControlPolicy', 'errorMessage' => 'It is not supported to detach the last resource control policy.', 'description' => ''],
+ ['errorCode' => 'NotSupport.DetachSystemResourceControlPolicy', 'errorMessage' => 'It is not supported to detach system resource control policy.', 'description' => ''],
+ ],
404 => [
- [
- 'errorCode' => 'EntityNotExists.Account',
- 'errorMessage' => 'This resource directory account does not exist.',
- ],
+ ['errorCode' => 'EntityNotExists.Target', 'errorMessage' => 'The specified target does not exist in the resource directory.', 'description' => 'The specified object does not exist in the resource directory.'],
+ ['errorCode' => 'EntityNotExists.ResourceControlPolicy', 'errorMessage' => 'The specified resource control policy does not exist.', 'description' => ''],
+ ['errorCode' => 'EntityNotExists.ResourceControlPolicyAttachment', 'errorMessage' => 'The specified resource control policy attachment does not exist.', 'description' => ''],
],
- 409 => [
- [
- 'errorCode' => 'AccountTypeMismatch',
- 'errorMessage' => 'The type or status of the member account cannot satisfy the current operation.',
- ],
- [
- 'errorCode' => 'InconsistentEnterpriseNameError',
- 'errorMessage' => 'The enterprise name of the payment account and the member must be consistent.',
- ],
- [
- 'errorCode' => 'NotSupport.PayerAccountInAnotherResourceDirectory',
- 'errorMessage' => 'The specified payment account does not exist in the resource directory. You must specify a valid payment account.',
+ ],
+ 'title' => 'DetachControlPolicy',
+ 'summary' => 'Detaches an access control policy.',
+ 'description' => 'After you detach an access control policy, the operations performed on resources by using members are not limited by the policy. Make sure that the detached policy meets your expectations. Otherwise, your business may be affected.'."\n"
+ ."\n"
+ .'Both the system and custom access control policies can be detached. If an object has only one access control policy attached, the policy cannot be detached.',
+ 'responseParamsDescription' => ' ',
+ 'extraInfo' => ' ',
+ 'changeSet' => [],
+ 'flowControl' => [
+ 'flowControlList' => [
+ ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DetachControlPolicy'],
+ ],
+ ],
+ 'ramActions' => [
+ [
+ 'operationType' => 'update',
+ 'ramAction' => [
+ 'action' => 'resourcemanager:DetachControlPolicy',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ResourceManager', 'resourceType' => 'Account', 'arn' => 'acs:resourcemanager::{#accountId}:account/{#ResourceDirectoryPath}'],
+ ['validationType' => 'always', 'product' => 'ResourceManager', 'resourceType' => 'ControlPolicy', 'arn' => 'acs:resourcemanager::{#accountId}:policy/controlpolicy/{#PolicyId}'],
+ ['validationType' => 'always', 'product' => 'ResourceManager', 'resourceType' => 'Folder', 'arn' => 'acs:resourcemanager::{#accountId}:folder/{#ResourceDirectoryPath}'],
+ ],
],
],
],
- 'staticInfo' => [
- 'returnType' => 'synchronous',
- ],
- 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"9B34724D-54B0-4A51-B34D-4512372FE1BE\\"\\n}","type":"json"}]',
- 'title' => 'UpdatePayerForAccount',
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"9EA4F962-1A2E-4AFE-BE0C-B14736FC46CC\\"\\n}","type":"json"}]',
],
- 'InviteAccountToResourceDirectory' => [
- 'methods' => [
- 'post',
- 'get',
- ],
- 'schemes' => [
- 'https',
- ],
+ 'DisableControlPolicy' => [
+ 'methods' => ['post', 'get'],
+ 'schemes' => ['https'],
'security' => [
[
'AK' => [],
@@ -3225,265 +1858,74 @@
],
'operationType' => 'readAndWrite',
'deprecated' => false,
- 'systemTags' => [
- 'operationType' => 'create',
- ],
+ 'systemTags' => ['operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free'],
'parameters' => [
[
- 'name' => 'TargetEntity',
- 'in' => 'query',
- 'schema' => [
- 'description' => 'The ID or logon email address of the account that you want to invite.'."\n",
- 'type' => 'string',
- 'required' => true,
- 'example' => 'someone@example.com',
- ],
- ],
- [
- 'name' => 'TargetType',
- 'in' => 'query',
- 'schema' => [
- 'description' => 'The type of the invited account. Valid values:'."\n"
- ."\n"
- .'* Account: indicates the ID of the account.'."\n"
- .'* Email: indicates the logon email address of the account.'."\n",
- 'type' => 'string',
- 'required' => true,
- 'example' => 'Email',
- ],
- ],
- [
- 'name' => 'Note',
- 'in' => 'query',
- 'schema' => [
- 'description' => 'The description of the invitation.'."\n"
- ."\n"
- .'The description can be up to 1,024 characters in length.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'Welcome'."\n",
- ],
- ],
- [
- 'name' => 'Tag',
- 'in' => 'query',
- 'style' => 'flat',
- 'schema' => [
- 'description' => 'The tags.',
- 'type' => 'array',
- 'items' => [
- 'description' => 'The tags.',
- 'type' => 'object',
- 'properties' => [
- 'Key' => [
- 'description' => 'The tag key.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'k1',
- ],
- 'Value' => [
- 'description' => 'The tag value.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'v1',
- ],
- ],
- 'required' => false,
- ],
- 'required' => false,
- ],
- ],
- [
- 'name' => 'ParentFolderId',
+ 'name' => 'ControlPolicyType',
'in' => 'query',
'schema' => [
- 'description' => 'The ID of the parent folder.'."\n",
'type' => 'string',
- 'required' => false,
- 'example' => 'r-b1****',
+ 'example' => 'RESOURCE_CONTROL_POLICY',
+ 'enum' => [],
+ 'description' => '',
+ 'title' => '',
],
],
],
'responses' => [
200 => [
'schema' => [
- 'description' => 'The returned result.'."\n",
+ 'description' => 'The data returned.',
'type' => 'object',
'properties' => [
- 'RequestId' => [
- 'description' => 'The ID of the request.'."\n",
- 'type' => 'string',
- 'example' => '9B34724D-54B0-4A51-B34D-4512372FE1BE',
- ],
- 'Handshake' => [
- 'description' => 'The information about the invitation.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'Status' => [
- 'description' => 'The status of the invitation. Valid values:'."\n"
- ."\n"
- .'* Pending'."\n"
- .'* Accepted'."\n"
- .'* Cancelled'."\n"
- .'* Declined'."\n"
- .'* Expired'."\n",
- 'type' => 'string',
- 'example' => 'Pending',
- ],
- 'ExpireTime' => [
- 'description' => 'The time when the invitation expires. The time is displayed in UTC.'."\n",
- 'type' => 'string',
- 'example' => '2018-08-24T09:55:41Z',
- ],
- 'ResourceDirectoryId' => [
- 'description' => 'The ID of the resource directory.'."\n",
- 'type' => 'string',
- 'example' => 'rd-abcdef****',
- ],
- 'CreateTime' => [
- 'description' => 'The time when the invitation was created. The time is displayed in UTC.'."\n",
- 'type' => 'string',
- 'example' => '2018-08-10T09:55:41Z',
- ],
- 'Note' => [
- 'description' => 'The description of the invitation.'."\n",
- 'type' => 'string',
- 'example' => 'Welcome'."\n",
- ],
- 'TargetEntity' => [
- 'description' => 'The ID or logon email address of the invited account.'."\n",
- 'type' => 'string',
- 'example' => 'someone@example.com',
- ],
- 'MasterAccountId' => [
- 'description' => 'The ID of the management account of the resource directory.'."\n",
- 'type' => 'string',
- 'example' => '172841235500****',
- ],
- 'MasterAccountName' => [
- 'description' => 'The name of the management account of the resource directory.'."\n",
- 'type' => 'string',
- 'example' => 'Alice',
- ],
- 'ModifyTime' => [
- 'description' => 'The time when the invitation was modified. The time is displayed in UTC.'."\n",
- 'type' => 'string',
- 'example' => '2018-08-10T09:55:41Z',
- ],
- 'TargetType' => [
- 'description' => 'The type of the invited account. Valid values:'."\n"
- ."\n"
- .'* Account: indicates the ID of the account.'."\n"
- .'* Email: indicates the logon email address of the account.'."\n",
- 'type' => 'string',
- 'example' => 'Email',
- ],
- 'HandshakeId' => [
- 'description' => 'The ID of the invitation.'."\n",
- 'type' => 'string',
- 'example' => 'h-ycm4rp****',
- ],
- ],
- ],
+ 'EnablementStatus' => ['description' => 'The status of the control policy feature. Valid values:'."\n"
+ ."\n"
+ .'- Enabled: The feature is active.'."\n"
+ ."\n"
+ .'- PendingEnable: The feature is being enabled.'."\n"
+ ."\n"
+ .'- Disabled: The feature is inactive.'."\n"
+ ."\n"
+ .'- PendingDisable: The feature is being disabled.', 'type' => 'string', 'example' => 'PendingDisable', 'title' => ''],
+ 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '7C709979-451D-4C92-835D-7DDCCAA562E9', 'title' => ''],
+ 'ControlPolicyType' => ['type' => 'string', 'example' => 'RESOURCE_CONTROL_POLICY', 'description' => '', 'title' => ''],
],
+ 'title' => '',
+ 'example' => '',
],
],
],
- 'errorCodes' => [
- 400 => [
- [
- 'errorCode' => 'MissingParameter.TargetEntity',
- 'errorMessage' => 'You must specify TargetEntity.',
- ],
- [
- 'errorCode' => 'InvalidParameter.TargetEntity',
- 'errorMessage' => 'The TargetEntity is invalid.',
- ],
- [
- 'errorCode' => 'MissingParameter.TargetType',
- 'errorMessage' => 'You must specify TargetType.',
- ],
- [
- 'errorCode' => 'InvalidParameter.TargetType',
- 'errorMessage' => 'The TargetType is invalid.',
- ],
- [
- 'errorCode' => 'InvalidParameter.Note.Length',
- 'errorMessage' => 'The length of the invitation note exceeds the limit.',
- ],
- [
- 'errorCode' => 'InvalidParameter.Note',
- 'errorMessage' => 'The Note is invalid.',
- ],
- [
- 'errorCode' => 'InvalidParameter.ParentFolderId',
- 'errorMessage' => 'The ParentFolderId is invalid.',
- ],
- [
- 'errorCode' => 'InvalidParameter.AccountId',
- 'errorMessage' => 'The AccountId is invalid.',
- ],
- ],
- 404 => [
- [
- 'errorCode' => 'EntityNotExists.ResourceDirectory',
- 'errorMessage' => 'The resource directory for the account is not enabled. We recommend that you first enable the resource directory for the account.',
- ],
- [
- 'errorCode' => 'EntityNotExists.Folder',
- 'errorMessage' => 'The resource directory folder does not exist.',
- ],
+ 'title' => 'DisableControlPolicy',
+ 'summary' => 'Disables the control policy feature.',
+ 'description' => 'Disabling the control policy feature automatically detaches all control policies from folders and member accounts. These policies are not deleted, but you can no longer attach them to any target nodes.'."\n"
+ ."\n"
+ .'> Disabling the control policy feature affects permissions for all folders and member accounts in your Resource Directory. Use caution when you perform this operation.',
+ 'responseParamsDescription' => ' ',
+ 'extraInfo' => ' ',
+ 'changeSet' => [],
+ 'flowControl' => [
+ 'flowControlList' => [
+ ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DisableControlPolicy'],
],
- 409 => [
- [
- 'errorCode' => 'LimitExceeded.Account',
- 'errorMessage' => 'The maximum number of member accounts in a resource directory exceeds the limit.',
- ],
- [
- 'errorCode' => 'LimitExceeded.InvitationRate',
- 'errorMessage' => 'The number of invitations sent exceeds the limit.',
- ],
- [
- 'errorCode' => 'EntityAlreadyExists.Handshake',
- 'errorMessage' => 'Handshakes with the same target entity already exist.',
- ],
- [
- 'errorCode' => 'Invalid.AccountType',
- 'errorMessage' => 'The specified profile type of account is invalid.',
- ],
- [
- 'errorCode' => 'EntityAlreadyExists.ResourceDir.Account',
- 'errorMessage' => 'This resource directory account already exists.',
- ],
- [
- 'errorCode' => 'LimitExceeded.Invitation.InvalidTarget',
- 'errorMessage' => 'The maximum number of invalid targets that can be invited by a single account is exceeded.',
- ],
- [
- 'errorCode' => 'NotSupport.AccountInAnotherResourceDirectory',
- 'errorMessage' => 'The invited account already belongs to another resource directory. To continue, remove the account from the other resource directory.',
- ],
- [
- 'errorCode' => 'LegalEntityMismatch',
- 'errorMessage' => 'The account does not have the same legal entity as the management account.',
+ ],
+ 'ramActions' => [
+ [
+ 'operationType' => 'update',
+ 'ramAction' => [
+ 'action' => 'resourcemanager:DisableControlPolicy',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ResourceManager', 'resourceType' => 'ResourceDirectory', 'arn' => 'acs:resourcemanager::{#accountId}:policy/controlpolicy/*'],
+ ],
],
],
],
- 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"9B34724D-54B0-4A51-B34D-4512372FE1BE\\",\\n \\"Handshake\\": {\\n \\"Status\\": \\"Pending\\",\\n \\"ExpireTime\\": \\"2018-08-24T09:55:41Z\\",\\n \\"ResourceDirectoryId\\": \\"rd-abcdef****\\",\\n \\"CreateTime\\": \\"2018-08-10T09:55:41Z\\",\\n \\"Note\\": \\"欢迎您加入\\",\\n \\"TargetEntity\\": \\"someone@example.com\\",\\n \\"MasterAccountId\\": \\"172841235500****\\",\\n \\"MasterAccountName\\": \\"Alice\\",\\n \\"ModifyTime\\": \\"2018-08-10T09:55:41Z\\",\\n \\"TargetType\\": \\"Email\\",\\n \\"HandshakeId\\": \\"h-ycm4rp****\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"<InviteAccountToResourceDirectoryResponse>\\n <RequestId>9B34724D-54B0-4A51-B34D-4512372FE1BE</RequestId>\\n <Handshake>\\n <HandshakeId>h-ycm4rp****</HandshakeId>\\n <ResourceDirectoryId>rd-abcdef****</ResourceDirectoryId>\\n <MasterAccountId>172841235500****</MasterAccountId>\\n <MasterAccountName>Alice</MasterAccountName>\\n <TargetEntity>someone@example.com</TargetEntity>\\n <TargetType>Email</TargetType>\\n <Note>欢迎您加入</Note>\\n <Status>Pending</Status>\\n <CreateTime>2018-08-10T09:55:41Z</CreateTime>\\n <ModifyTime>2018-08-10T09:55:41Z</ModifyTime>\\n <ExpireTime>2018-08-24T09:55:41Z</ExpireTime>\\n </Handshake>\\n</InviteAccountToResourceDirectoryResponse>","errorExample":""}]',
- 'title' => 'InviteAccountToResourceDirectory',
- 'summary' => 'Invites an account to join a resource directory.',
- 'responseParamsDescription' => ' ',
- 'extraInfo' => ' ',
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"EnablementStatus\\": \\"PendingDisable\\",\\n \\"RequestId\\": \\"7C709979-451D-4C92-835D-7DDCCAA562E9\\",\\n \\"ControlPolicyType\\": \\"RESOURCE_CONTROL_POLICY\\"\\n}","type":"json"}]',
],
- 'AcceptHandshake' => [
- 'summary' => 'Accepts an invitation.',
- 'methods' => [
- 'post',
- 'get',
- ],
- 'schemes' => [
- 'https',
- ],
+ 'DisassociateMembers' => [
+ 'methods' => ['post', 'get'],
+ 'schemes' => ['https'],
'security' => [
[
'AK' => [],
@@ -3491,103 +1933,58 @@
],
'operationType' => 'readAndWrite',
'deprecated' => false,
- 'systemTags' => [
- 'operationType' => 'update',
- ],
+ 'systemTags' => ['operationType' => 'update'],
'parameters' => [
[
- 'name' => 'HandshakeId',
+ 'name' => 'ContactId',
+ 'in' => 'query',
+ 'schema' => ['description' => 'The ID of the contact.'."\n", 'type' => 'string', 'required' => true, 'example' => 'c-qL4HqKONzOM7****', 'title' => ''],
+ ],
+ [
+ 'name' => 'Members',
'in' => 'query',
+ 'style' => 'flat',
'schema' => [
- 'description' => 'The ID of the invitation.'."\n"
+ 'description' => 'The IDs of objects from which you want to unbind the contact.'."\n",
+ 'type' => 'array',
+ 'items' => ['description' => 'The ID of the object from which you want to unbind the contact. Valid values:'."\n"
."\n"
- .'You can call the [ListHandshakesForAccount](~~ListHandshakesForAccount~~) operation to obtain the ID.'."\n",
- 'type' => 'string',
+ .'* ID of a resource directory'."\n"
+ .'* ID of a folder'."\n"
+ .'* ID of a member'."\n"
+ ."\n"
+ .'Valid values of N: 1 to 5. This indicates that a maximum of five objects can be specified at a time.'."\n", 'type' => 'string', 'required' => false, 'example' => 'fd-ZDNPiT****', 'title' => ''],
'required' => true,
- 'example' => 'h-Ih8IuPfvV0t0****',
+ 'title' => '',
],
],
],
'responses' => [
200 => [
'schema' => [
+ 'title' => 'Schema of Response',
'description' => 'The returned result.'."\n",
'type' => 'object',
'properties' => [
- 'RequestId' => [
- 'description' => 'The ID of the request.'."\n",
- 'type' => 'string',
- 'example' => '5828C836-3286-49A6-9006-15231BB19342',
- ],
- 'Handshake' => [
- 'description' => 'The information of the invitation.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'Status' => [
- 'description' => 'The status of the invitation. Valid values:'."\n"
- ."\n"
- .'* Pending: The invitation is waiting for confirmation.'."\n"
- .'* Accepted: The invitation is accepted.'."\n"
- .'* Cancelled: The invitation is canceled.'."\n"
- .'* Declined: The invitation is rejected.'."\n"
- .'* Expired: The invitation expires.'."\n",
- 'type' => 'string',
- 'example' => 'Accepted',
- ],
- 'ExpireTime' => [
- 'description' => 'The time when the invitation expires. The time is displayed in UTC.'."\n",
- 'type' => 'string',
- 'example' => '2021-01-20T02:15:40Z',
- ],
- 'ResourceDirectoryId' => [
- 'description' => 'The ID of the resource directory.'."\n",
- 'type' => 'string',
- 'example' => 'rd-3G****',
- ],
- 'CreateTime' => [
- 'description' => 'The time when the invitation was created. The time is displayed in UTC.'."\n",
- 'type' => 'string',
- 'example' => '2021-01-06T02:15:40Z',
- ],
- 'Note' => [
- 'description' => 'The description of the invitation.'."\n",
- 'type' => 'string',
- 'example' => 'Welcome'."\n",
- ],
- 'TargetEntity' => [
- 'description' => 'The ID or logon email address of the invited Alibaba Cloud account.'."\n",
- 'type' => 'string',
- 'example' => '177242285274****',
- ],
- 'MasterAccountId' => [
- 'description' => 'The ID of the management account of the resource directory.'."\n",
- 'type' => 'string',
- 'example' => '151266687691****',
- ],
- 'MasterAccountName' => [
- 'description' => 'The name of the management account of the resource directory.'."\n",
- 'type' => 'string',
- 'example' => 'CompanyA',
- ],
- 'ModifyTime' => [
- 'description' => 'The time when the invitation was modified. The time is displayed in UTC.'."\n",
- 'type' => 'string',
- 'example' => '2021-01-06T02:16:40Z',
- ],
- 'TargetType' => [
- 'description' => 'The type of the invited Alibaba Cloud account. Valid values:'."\n"
+ 'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '95060F1D-6990-4645-8920-A81D1BBFE992'],
+ 'Members' => [
+ 'description' => 'The time when the contact was unbound from the object.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => '',
+ 'type' => 'object',
+ 'properties' => [
+ 'ContactId' => ['description' => 'The ID of the contact.', 'type' => 'string', 'example' => 'c-qL4HqKONzOM7****', 'title' => ''],
+ 'MemberId' => ['description' => 'The ID of the object. Valid values:'."\n"
."\n"
- .'* Account: indicates the ID of the Alibaba Cloud account.'."\n"
- .'* Email: indicates the logon email address of the Alibaba Cloud account.'."\n",
- 'type' => 'string',
- 'example' => 'Account',
- ],
- 'HandshakeId' => [
- 'description' => 'The ID of the invitation.'."\n",
- 'type' => 'string',
- 'example' => 'h-Ih8IuPfvV0t0****',
+ .'- ID of the resource directory'."\n"
+ .'- ID of the folder'."\n"
+ .'- ID of the member', 'type' => 'string', 'example' => 'fd-ZDNPiT****', 'title' => ''],
+ 'ModifyDate' => ['description' => 'The time when the contact was unbound from the object.', 'type' => 'string', 'example' => '2023-03-27 17:19:21', 'title' => ''],
],
+ 'title' => '',
],
+ 'title' => '',
],
],
],
@@ -3595,224 +1992,102 @@
],
'errorCodes' => [
400 => [
- [
- 'errorCode' => 'MissingParameter.HandshakeId',
- 'errorMessage' => 'You must specify HandshakeId.',
- ],
- [
- 'errorCode' => 'InvalidParameter.HandshakeId',
- 'errorMessage' => 'The HandshakeId is invalid.',
- ],
+ ['errorCode' => 'InvalidParameter.ContactId', 'errorMessage' => 'The ContactId is invalid.', 'description' => ''],
+ ['errorCode' => 'MissingParameter.ContactId', 'errorMessage' => 'You must specify ContactId.', 'description' => ''],
+ ['errorCode' => 'InvalidParameter.Members', 'errorMessage' => 'The Members is invalid.', 'description' => ''],
+ ['errorCode' => 'InvalidParameter.Members.Duplicate', 'errorMessage' => 'The Members contains duplicate values.', 'description' => ''],
+ ['errorCode' => 'InvalidParameter.Members.Length', 'errorMessage' => 'The maximum number of Members exceeds the limit.', 'description' => ''],
+ ['errorCode' => 'QuotaExceeded.Members', 'errorMessage' => 'The maximum number of Members exceeds the limit.', 'description' => ''],
+ ['errorCode' => 'InvalidMember', 'errorMessage' => 'The member does not exist in the resource directory.', 'description' => ''],
+ ['errorCode' => 'ContactStatusMismatchAction', 'errorMessage' => 'The status of the contact does not allow the specified operation.', 'description' => ''],
],
404 => [
- [
- 'errorCode' => 'EntityNotExists.Handshake',
- 'errorMessage' => 'The specified handshake does not exist.',
- ],
- [
- 'errorCode' => 'SpecifiedResourceDirectoryNotExists',
- 'errorMessage' => 'The specified resource directory does not exist. You must specify a valid resource directory.',
- ],
- ],
- 409 => [
- [
- 'errorCode' => 'HandshakeStatusMismatch',
- 'errorMessage' => 'The invitation is invalid.',
- ],
- [
- 'errorCode' => 'NotSupport.AccountInAnotherResourceDirectory',
- 'errorMessage' => 'Your account is a management account for another resource directory or a member of another resource directory.',
- ],
- [
- 'errorCode' => 'Invalid.AccountType',
- 'errorMessage' => 'The specified profile type of account is invalid.',
- ],
- [
- 'errorCode' => 'NotSupport.Account.RealNameType',
- 'errorMessage' => 'Your account is not a real-name of enterprise type, so you cannot accept the invitation.',
- ],
+ ['errorCode' => 'EntityNotExists.Contact', 'errorMessage' => 'This Contact does not exist.', 'description' => ''],
],
],
- 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"5828C836-3286-49A6-9006-15231BB19342\\",\\n \\"Handshake\\": {\\n \\"Status\\": \\"Accepted\\",\\n \\"ExpireTime\\": \\"2021-01-20T02:15:40Z\\",\\n \\"ResourceDirectoryId\\": \\"rd-3G****\\",\\n \\"CreateTime\\": \\"2021-01-06T02:15:40Z\\",\\n \\"Note\\": \\"欢迎您加入\\",\\n \\"TargetEntity\\": \\"177242285274****\\",\\n \\"MasterAccountId\\": \\"151266687691****\\",\\n \\"MasterAccountName\\": \\"CompanyA\\",\\n \\"ModifyTime\\": \\"2021-01-06T02:16:40Z\\",\\n \\"TargetType\\": \\"Account\\",\\n \\"HandshakeId\\": \\"h-Ih8IuPfvV0t0****\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"<AcceptHandshakeResponse>\\n <RequestId>5828C836-3286-49A6-9006-15231BB19342</RequestId>\\n <Handshake>\\n <Status>Accepted</Status>\\n <ModifyTime>2021-01-06T02:16:40Z</ModifyTime>\\n <ResourceDirectoryId>rd-3G****</ResourceDirectoryId>\\n <HandshakeId>h-Ih8IuPfvV0t0****</HandshakeId>\\n <Note>欢迎您加入</Note>\\n <CreateTime>2021-01-06T02:15:40Z</CreateTime>\\n <TargetType>Account</TargetType>\\n <MasterAccountId>151266687691****</MasterAccountId>\\n <MasterAccountName>CompanyA</MasterAccountName>\\n <ExpireTime>2021-01-20T02:15:40Z</ExpireTime>\\n <TargetEntity>177242285274****</TargetEntity>\\n </Handshake>\\n</AcceptHandshakeResponse>","errorExample":""}]',
- 'title' => 'AcceptHandshake',
- 'description' => 'After an invited Alibaba Cloud account joins a resource directory, it becomes a member of the resource directory. By default, the name of the invited Alibaba Cloud account is used as the display name of the account in the resource directory.'."\n",
- 'responseParamsDescription' => ' ',
+ 'staticInfo' => ['returnType' => 'synchronous'],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"95060F1D-6990-4645-8920-A81D1BBFE992\\",\\n \\"Members\\": [\\n {\\n \\"ContactId\\": \\"c-qL4HqKONzOM7****\\",\\n \\"MemberId\\": \\"fd-ZDNPiT****\\",\\n \\"ModifyDate\\": \\"2023-03-27 17:19:21\\"\\n }\\n ]\\n}","type":"json"}]',
+ 'title' => 'DisassociateMembers',
+ 'summary' => 'Unbinds a contact from a resource directory, folder, or member.',
+ 'changeSet' => [],
],
- 'GetHandshake' => [
- 'methods' => [
- 'post',
- 'get',
- ],
- 'schemes' => [
- 'https',
- ],
+ 'EnableControlPolicy' => [
+ 'methods' => ['post', 'get'],
+ 'schemes' => ['https'],
'security' => [
[
'AK' => [],
],
],
- 'operationType' => 'read',
+ 'operationType' => 'readAndWrite',
'deprecated' => false,
- 'systemTags' => [
- 'operationType' => 'get',
- ],
+ 'systemTags' => ['operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free'],
'parameters' => [
[
- 'name' => 'HandshakeId',
+ 'name' => 'ControlPolicyType',
'in' => 'query',
- 'schema' => [
- 'description' => 'The ID of the invitation.'."\n",
- 'type' => 'string',
- 'required' => true,
- 'example' => 'h-ycm4rp****',
- ],
+ 'schema' => ['type' => 'string', 'example' => 'RESOURCE_CONTROL_POLICY', 'description' => '', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
- 'description' => 'The returned result.'."\n",
+ 'description' => 'The response.',
'type' => 'object',
'properties' => [
- 'RequestId' => [
- 'description' => 'The ID of the request.'."\n",
- 'type' => 'string',
- 'example' => '9B34724D-54B0-4A51-B34D-4512372FE1BE',
- ],
- 'Handshake' => [
- 'description' => 'The information of the invitation.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'Status' => [
- 'description' => 'The status of the invitation. Valid values:'."\n"
- ."\n"
- .'* Pending: The invitation is waiting for confirmation.'."\n"
- .'* Accepted: The invitation is accepted.'."\n"
- .'* Cancelled: The invitation is canceled.'."\n"
- .'* Declined: The invitation is rejected.'."\n"
- .'* Expired: The invitation expires.'."\n",
- 'type' => 'string',
- 'example' => 'Pending',
- ],
- 'ExpireTime' => [
- 'description' => 'The time when the invitation expires. The time is displayed in UTC.'."\n",
- 'type' => 'string',
- 'example' => '2018-08-24T09:55:41Z',
- ],
- 'CreateTime' => [
- 'description' => 'The time when the invitation was created. The time is displayed in UTC.'."\n",
- 'type' => 'string',
- 'example' => '2018-08-10T09:55:41Z',
- ],
- 'TargetEntity' => [
- 'description' => 'The ID or logon email address of the invited account.'."\n",
- 'type' => 'string',
- 'example' => 'someone@example.com',
- ],
- 'MasterAccountId' => [
- 'description' => 'The ID of the management account of the resource directory.'."\n",
- 'type' => 'string',
- 'example' => '172841235500****',
- ],
- 'HandshakeId' => [
- 'description' => 'The ID of the invitation.'."\n",
- 'type' => 'string',
- 'example' => 'h-ycm4rp****',
- ],
- 'MasterAccountRealName' => [
- 'description' => 'The real-name verification information of the management account of the resource directory.'."\n"
- ."\n"
- .'> This parameter is available only when an invitee calls this operation.'."\n",
- 'type' => 'string',
- 'example' => 'company',
- ],
- 'ResourceDirectoryId' => [
- 'description' => 'The ID of the resource directory.'."\n",
- 'type' => 'string',
- 'example' => 'rd-abcdef****',
- ],
- 'InvitedAccountRealName' => [
- 'description' => 'The real-name verification information of the invitee.'."\n"
- ."\n"
- .'> This parameter is available only when an invitee calls this operation.'."\n",
- 'type' => 'string',
- 'example' => 'Alice',
- ],
- 'Note' => [
- 'description' => 'The description of the invitation.'."\n",
- 'type' => 'string',
- 'example' => 'Welcome'."\n",
- ],
- 'MasterAccountName' => [
- 'description' => 'The name of the management account of the resource directory.'."\n",
- 'type' => 'string',
- 'example' => 'company@example.com',
- ],
- 'TargetType' => [
- 'description' => 'The type of the invited account. Valid values:'."\n"
- ."\n"
- .'* Account: indicates the ID of the account.'."\n"
- .'* Email: indicates the logon email address of the account.'."\n",
- 'type' => 'string',
- 'example' => 'Email',
- ],
- 'ModifyTime' => [
- 'description' => 'The time when the invitation was modified. The time is displayed in UTC.'."\n",
- 'type' => 'string',
- 'example' => '2018-08-10T09:55:41Z',
- ],
- ],
- ],
+ 'EnablementStatus' => ['description' => 'The status of the control policy feature. Valid values:'."\n"
+ ."\n"
+ .'- `Enabled`: The feature is enabled.'."\n"
+ ."\n"
+ .'- `PendingEnable`: The feature is being enabled.'."\n"
+ ."\n"
+ .'- `Disabled`: The feature is disabled.'."\n"
+ ."\n"
+ .'- `PendingDisable`: The feature is being disabled.', 'type' => 'string', 'example' => 'PendingEnable', 'title' => ''],
+ 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '8CE7BD95-EFFA-4911-A1E0-BD4412697FEB', 'title' => ''],
+ 'ControlPolicyType' => ['type' => 'string', 'example' => 'RESOURCE_CONTROL_POLICY', 'description' => '', 'title' => ''],
],
+ 'title' => '',
+ 'example' => '',
],
],
],
'errorCodes' => [
- 400 => [
- [
- 'errorCode' => 'MissingParameter.HandshakeId',
- 'errorMessage' => 'You must specify HandshakeId.',
- ],
- [
- 'errorCode' => 'InvalidParameter.HandshakeId',
- 'errorMessage' => 'The HandshakeId is invalid.',
- ],
- ],
- 404 => [
- [
- 'errorCode' => 'EntityNotExists.Handshake',
- 'errorMessage' => 'The specified handshake does not exist.',
- ],
- ],
409 => [
- [
- 'errorCode' => 'HandshakeStatusMismatch',
- 'errorMessage' => 'The invitation is invalid.',
- ],
- [
- 'errorCode' => 'MissingAccountRealName',
- 'errorMessage' => 'The name of the invited account is not specified.',
- ],
- [
- 'errorCode' => 'NoRealNameAuthentication',
- 'errorMessage' => 'The account invited has not passed real-name authentication.',
- ],
+ ['errorCode' => 'Throttling.EnableControlPolicy', 'errorMessage' => 'The enable operation is too frequent. Please try again in %s minute(s).', 'description' => 'The operation is frequently performed. Wait %s minutes and try again.'],
+ ['errorCode' => 'Throttling.EnableResourceControlPolicy', 'errorMessage' => 'The enable operation is too frequent. Please try again in %s minute(s).', 'description' => ''],
],
],
- 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"9B34724D-54B0-4A51-B34D-4512372FE1BE\\",\\n \\"Handshake\\": {\\n \\"Status\\": \\"Pending\\",\\n \\"ExpireTime\\": \\"2018-08-24T09:55:41Z\\",\\n \\"CreateTime\\": \\"2018-08-10T09:55:41Z\\",\\n \\"TargetEntity\\": \\"someone@example.com\\",\\n \\"MasterAccountId\\": \\"172841235500****\\",\\n \\"HandshakeId\\": \\"h-ycm4rp****\\",\\n \\"MasterAccountRealName\\": \\"company\\",\\n \\"ResourceDirectoryId\\": \\"rd-abcdef****\\",\\n \\"InvitedAccountRealName\\": \\"Alice\\",\\n \\"Note\\": \\"欢迎您加入\\",\\n \\"MasterAccountName\\": \\"company@example.com\\",\\n \\"TargetType\\": \\"Email\\",\\n \\"ModifyTime\\": \\"2018-08-10T09:55:41Z\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"<GetHandshakeResponse>\\n <RequestId>9B34724D-54B0-4A51-B34D-4512372FE1BE</RequestId>\\n <Handshake>\\n <HandshakeId>h-ycm4rp****</HandshakeId>\\n <ResourceDirectoryId>rd-abcdef****</ResourceDirectoryId>\\n <MasterAccountId>172841235500****</MasterAccountId>\\n <MasterAccountName>company@example.com</MasterAccountName>\\n <MasterAccountRealName>company</MasterAccountRealName>\\n <InvitedAccountRealName>Alice</InvitedAccountRealName>\\n <TargetEntity>someone@example.com</TargetEntity>\\n <TargetType>Email</TargetType>\\n <Note>欢迎您加入</Note>\\n <Status>Pending</Status>\\n <CreateTime>2018-08-10T09:55:41Z</CreateTime>\\n <ModifyTime>2018-08-10T09:55:41Z</ModifyTime>\\n <ExpireTime>2018-08-24T09:55:41Z</ExpireTime>\\n </Handshake>\\n</GetHandshakeResponse>","errorExample":""}]',
- 'title' => 'GetHandshake',
- 'summary' => 'Queries the information of an invitation.',
+ 'title' => 'EnableControlPolicy',
+ 'summary' => 'Enables the control policy feature.',
+ 'description' => 'A control policy is a type of access control policy in Resource Directory based on your resource structure, such as folders and member accounts. You can use a control policy to manage the permissions boundaries for resource access across levels of your Resource Directory. This helps you establish consistent access control principles for your entire organization or for specific parts of it. A control policy only defines a permissions boundary and does not grant permissions. You must use RAM within a member account to grant permissions to an identity to access your resources. For more information, see [Overview of control policies](~~178671~~).',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
- ],
- 'DeclineHandshake' => [
- 'methods' => [
- 'post',
- 'get',
+ 'changeSet' => [],
+ 'flowControl' => [
+ 'flowControlList' => [
+ ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'EnableControlPolicy'],
+ ],
],
- 'schemes' => [
- 'https',
+ 'ramActions' => [
+ [
+ 'operationType' => 'update',
+ 'ramAction' => [
+ 'action' => 'resourcemanager:EnableControlPolicy',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ResourceManager', 'resourceType' => 'ResourceDirectory', 'arn' => 'acs:resourcemanager::{#accountId}:policy/controlpolicy/*'],
+ ],
+ ],
+ ],
],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"EnablementStatus\\": \\"PendingEnable\\",\\n \\"RequestId\\": \\"8CE7BD95-EFFA-4911-A1E0-BD4412697FEB\\",\\n \\"ControlPolicyType\\": \\"RESOURCE_CONTROL_POLICY\\"\\n}","type":"json"}]',
+ ],
+ 'EnableResourceDirectory' => [
+ 'summary' => 'Enables a resource directory.',
+ 'methods' => ['post', 'get'],
+ 'schemes' => ['https'],
'security' => [
[
'AK' => [],
@@ -3820,326 +2095,282 @@
],
'operationType' => 'readAndWrite',
'deprecated' => false,
- 'systemTags' => [
- 'operationType' => 'update',
- ],
+ 'systemTags' => ['operationType' => 'create', 'riskType' => 'none', 'chargeType' => 'free'],
'parameters' => [
[
- 'name' => 'HandshakeId',
+ 'name' => 'MAName',
'in' => 'query',
- 'schema' => [
- 'description' => 'The ID of the invitation.'."\n",
- 'type' => 'string',
- 'required' => true,
- 'example' => 'h-ycm4rp****',
- ],
+ 'schema' => ['description' => 'The name of the newly created account.'."\n"
+ ."\n"
+ .'Specify the name in the `<Prefix>@rdadmin.aliyunid.com` format. The prefix can contain letters, digits, and special characters but cannot contain consecutive special characters. The prefix must start and end with a letter or digit. Valid special characters include underscores (`_`), periods (.), and hyphens (-). The prefix must be 2 to 50 characters in length.', 'type' => 'string', 'required' => false, 'example' => 'user01@rdadmin.aliyunid.com', 'title' => ''],
+ ],
+ [
+ 'name' => 'MASecureMobilePhone',
+ 'in' => 'query',
+ 'schema' => ['description' => 'The mobile phone number that is bound to the newly created account.'."\n"
+ ."\n"
+ .'If you leave this parameter empty, the mobile phone number that is bound to the current account is used. The mobile phone number you specify must be the same as the mobile phone number that you specify when you call the [SendVerificationCodeForEnableRD](~~SendVerificationCodeForEnableRD~~) operation to obtain a verification code.'."\n"
+ ."\n"
+ .'Specify the mobile phone number in the `<Country code>-<Mobile phone number>` format.'."\n"
+ ."\n"
+ .'> Mobile phone numbers in the `86-<Mobile phone number>` format in the Chinese mainland are not supported.', 'type' => 'string', 'required' => false, 'example' => 'xx-13900001234', 'title' => ''],
+ ],
+ [
+ 'name' => 'VerificationCode',
+ 'in' => 'query',
+ 'schema' => ['description' => 'The verification code.'."\n"
+ ."\n"
+ .'You can call the [SendVerificationCodeForEnableRD](~~SendVerificationCodeForEnableRD~~) operation to obtain the verification code.', 'type' => 'string', 'required' => false, 'example' => '123456', 'title' => ''],
+ ],
+ [
+ 'name' => 'EnableMode',
+ 'in' => 'query',
+ 'schema' => ['description' => 'The mode in which you enable a resource directory. Valid values:'."\n"
+ ."\n"
+ .'- CurrentAccount: The current account is used to enable a resource directory.'."\n"
+ ."\n"
+ .'- NewManagementAccount: A newly created account is used to enable a resource directory. If you select this mode, you must configure the `MAName`, `MASecureMobilePhone`, and `VerificationCode` parameters.', 'type' => 'string', 'required' => true, 'example' => 'CurrentAccount', 'title' => ''],
+ ],
+ [
+ 'name' => 'DryRun',
+ 'in' => 'query',
+ 'schema' => ['description' => 'Specifies whether to perform only a dry run, without performing the actual request. Valid values:'."\n"
+ ."\n"
+ .'- **true**: performs only a dry run.'."\n"
+ ."\n"
+ .'- **false** (default): performs a dry run and performs the actual request.', 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
- 'description' => 'The returned result.'."\n",
+ 'description' => 'The returned result.',
'type' => 'object',
'properties' => [
- 'RequestId' => [
- 'description' => 'The ID of the request.'."\n",
- 'type' => 'string',
- 'example' => '9B34724D-54B0-4A51-B34D-4512372FE1BE',
- ],
- 'Handshake' => [
- 'description' => 'The information of the invitation.'."\n",
+ 'ResourceDirectory' => [
+ 'description' => 'The information about the resource directory.',
'type' => 'object',
'properties' => [
- 'Status' => [
- 'description' => 'The status of the invitation. Valid values:'."\n"
- ."\n"
- .'* Pending: The invitation is waiting for confirmation.'."\n"
- .'* Accepted: The invitation is accepted.'."\n"
- .'* Cancelled: The invitation is canceled.'."\n"
- .'* Declined: The invitation is rejected.'."\n"
- .'* Expired: The invitation expires.'."\n",
- 'type' => 'string',
- 'example' => 'Declined',
- ],
- 'ExpireTime' => [
- 'description' => 'The time when the invitation expires.'."\n",
- 'type' => 'string',
- 'example' => '2018-08-10T09:55:41Z',
- ],
- 'ResourceDirectoryId' => [
- 'description' => 'The ID of the resource directory.'."\n",
- 'type' => 'string',
- 'example' => 'rd-abcdef****',
- ],
- 'CreateTime' => [
- 'description' => 'The time when the invitation was created.'."\n",
- 'type' => 'string',
- 'example' => '2018-08-10T09:55:41Z',
- ],
- 'Note' => [
- 'description' => 'The description of the invitation.'."\n",
- 'type' => 'string',
- 'example' => 'Welcome'."\n",
- ],
- 'TargetEntity' => [
- 'description' => 'The ID or logon email address of the invited account.'."\n",
- 'type' => 'string',
- 'example' => 'someone@example.com',
- ],
- 'MasterAccountId' => [
- 'description' => 'The ID of the management account of the resource directory.'."\n",
- 'type' => 'string',
- 'example' => '172841235500****',
- ],
- 'MasterAccountName' => [
- 'description' => 'The name of the management account of the resource directory.'."\n",
- 'type' => 'string',
- 'example' => 'Alice',
- ],
- 'ModifyTime' => [
- 'description' => 'The time when the invitation was modified.'."\n",
- 'type' => 'string',
- 'example' => '2018-08-10T09:55:41Z',
- ],
- 'TargetType' => [
- 'description' => 'The type of the invited account. Valid values:'."\n"
- ."\n"
- .'* Account: indicates the ID of the account.'."\n"
- .'* Email: indicates the logon email address of the account.'."\n",
- 'type' => 'string',
- 'example' => 'Email',
- ],
- 'HandshakeId' => [
- 'description' => 'The ID of the invitation.'."\n",
- 'type' => 'string',
- 'example' => 'h-ycm4rp****',
- ],
+ 'ResourceDirectoryId' => ['description' => 'The ID of the resource directory.', 'type' => 'string', 'example' => 'rd-54****', 'title' => ''],
+ 'MasterAccountId' => ['description' => 'The ID of the management account.', 'type' => 'string', 'example' => '507408460615****', 'title' => ''],
+ 'MasterAccountName' => ['description' => 'The name of the management account.', 'type' => 'string', 'example' => 'alice@example.com', 'title' => ''],
+ 'RootFolderId' => ['description' => 'The ID of the Root folder.', 'type' => 'string', 'example' => 'r-G9****', 'title' => ''],
+ 'CreateTime' => ['description' => 'The time when the resource directory was enabled.', 'type' => 'string', 'example' => '2021-12-08T02:15:31.744Z', 'title' => ''],
],
+ 'title' => '',
+ 'example' => '',
],
+ 'RequestId' => ['description' => 'The ID of the request.', 'type' => 'string', 'example' => 'EC2FE94D-A4A2-51A1-A493-5C273A36C46A', 'title' => ''],
],
+ 'title' => '',
+ 'example' => '',
],
],
],
'errorCodes' => [
- 400 => [
- [
- 'errorCode' => 'MissingParameter.HandshakeId',
- 'errorMessage' => 'You must specify HandshakeId.',
- ],
- [
- 'errorCode' => 'InvalidParameter.HandshakeId',
- 'errorMessage' => 'The HandshakeId is invalid.',
- ],
- ],
- 404 => [
- [
- 'errorCode' => 'EntityNotExists.Handshake',
- 'errorMessage' => 'The specified handshake does not exist.',
- ],
- ],
409 => [
- [
- 'errorCode' => 'HandshakeStatusMismatch',
- 'errorMessage' => 'The invitation is invalid.',
+ ['errorCode' => 'NotSupport.AccountInAnotherResourceDirectory', 'errorMessage' => 'The specified account is an Alibaba Cloud account or already exists in another resource directory.', 'description' => ''],
+ ['errorCode' => 'Invalid.EnterpriseName', 'errorMessage' => 'You must specify the enterprise name.', 'description' => 'No enterprise name is specified for the account. Specify an enterprise name for the account.'],
+ ['errorCode' => 'EnterpriseRealNameVerificationError', 'errorMessage' => 'The specified account does not pass enterprise real-name verification. We recommend you first complete enterprise real-name verification for the account.', 'description' => 'The account does not pass enterprise real-name verification. Complete the verification for the account first.'],
+ ['errorCode' => 'EntityAlreadyExists.ResourceDirectory', 'errorMessage' => 'The resource directory for the account is already enabled. We recommend that you do not enable the resource directory again.', 'description' => 'The account has been used to enable a resource directory. Do not use the account to enable a resource directory again.'],
+ ['errorCode' => 'InvalidParameter.ManagementAccountName.AlreadyUsed', 'errorMessage' => 'The ManagementAccountName has been used.', 'description' => 'The name specified for the management account already exists. Specify a valid name.'],
+ ['errorCode' => 'Invalid.VerificationCode', 'errorMessage' => 'The verification code is invalid.', 'description' => 'The verification code is invalid.'],
+ ['errorCode' => 'InvalidParameter.ManagementAccountName', 'errorMessage' => 'The management account name is in the wrong format.', 'description' => 'The format of the name specified for the management account is incorrect.'],
+ ['errorCode' => 'InvalidParameter.ManagementAccountSecurityInfo', 'errorMessage' => 'The parameter management account secure mobile phone is invalid.', 'description' => 'The format of the mobile phone number specified for security purposes is incorrect.'],
+ ['errorCode' => 'MissingSecureMobilePhone', 'errorMessage' => 'Secure mobile phone is missing.', 'description' => 'No mobile phone number is specified for security purposes.'],
+ ['errorCode' => 'MissingSecurityInfo', 'errorMessage' => 'Security info is missing.', 'description' => 'No security information is specified.'],
+ ['errorCode' => 'NotSupport.Account.Site', 'errorMessage' => 'The caller is not a China site account, which is not supported.', 'description' => 'The account is not registered at the current site. Use an account registered at the current site.'],
+ ['errorCode' => 'Invalid.AccountType', 'errorMessage' => 'The specified profile type of account is invalid.', 'description' => 'The account type is invalid. Use an enterprise account.'],
+ ],
+ ],
+ 'title' => 'EnableResourceDirectory',
+ 'description' => 'You can use the current account or a newly created account to enable a resource directory. For more information, see [Enable a resource directory](~~111215~~).',
+ 'changeSet' => [],
+ 'flowControl' => [
+ 'flowControlList' => [
+ ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'EnableResourceDirectory'],
+ ],
+ ],
+ 'ramActions' => [
+ [
+ 'operationType' => 'create',
+ 'ramAction' => [
+ 'action' => 'resourcemanager:EnableResourceDirectory',
+ 'authLevel' => 'operate',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ResourceManager', 'resourceType' => 'All Resource', 'arn' => '*'],
+ ],
],
],
],
- 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"9B34724D-54B0-4A51-B34D-4512372FE1BE\\",\\n \\"Handshake\\": {\\n \\"Status\\": \\"Declined\\",\\n \\"ExpireTime\\": \\"2018-08-10T09:55:41Z\\",\\n \\"ResourceDirectoryId\\": \\"rd-abcdef****\\",\\n \\"CreateTime\\": \\"2018-08-10T09:55:41Z\\",\\n \\"Note\\": \\"欢迎您加入\\",\\n \\"TargetEntity\\": \\"someone@example.com\\",\\n \\"MasterAccountId\\": \\"172841235500****\\",\\n \\"MasterAccountName\\": \\"Alice\\",\\n \\"ModifyTime\\": \\"2018-08-10T09:55:41Z\\",\\n \\"TargetType\\": \\"Email\\",\\n \\"HandshakeId\\": \\"h-ycm4rp****\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"<?xml version=\\"1.0\\" encoding=\\"UTF-8\\" ?>\\r\\n<DeclineHandshakeResponse>\\r\\n\\t<RequestId>9B34724D-54B0-4A51-B34D-4512372FE1BE</RequestId>\\r\\n\\t<Handshake>\\r\\n\\t\\t<HandshakeId>h-ycm4rp****</HandshakeId>\\r\\n\\t\\t<ResourceDirectoryId>rd-abcdef****</ResourceDirectoryId>\\r\\n\\t\\t<MasterAccountId>172841235500****</MasterAccountId>\\r\\n\\t\\t<MasterAccountName>Alice</MasterAccountName>\\r\\n\\t\\t<TargetEntity>someone@example.com</TargetEntity>\\r\\n\\t\\t<TargetType>Email</TargetType>\\r\\n\\t\\t<Note>欢迎您加入</Note>\\r\\n\\t\\t<Status>Declined</Status>\\r\\n\\t\\t<CreateTime>2018-08-10T09:55:41Z</CreateTime>\\r\\n\\t\\t<ModifyTime>2018-08-10T09:55:41Z</ModifyTime>\\r\\n\\t\\t<ExpireTime>2018-08-17T09:55:41Z7</ExpireTime>\\r\\n\\t</Handshake>\\r\\n</DeclineHandshakeResponse>\\t\\r\\n","errorExample":""}]',
- 'title' => 'DeclineHandshake',
- 'summary' => 'Rejects an invitation.',
- 'requestParamsDescription' => ' ',
- 'responseParamsDescription' => ' ',
- 'extraInfo' => ' ',
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"ResourceDirectory\\": {\\n \\"ResourceDirectoryId\\": \\"rd-54****\\",\\n \\"MasterAccountId\\": \\"507408460615****\\",\\n \\"MasterAccountName\\": \\"alice@example.com\\",\\n \\"RootFolderId\\": \\"r-G9****\\",\\n \\"CreateTime\\": \\"2021-12-08T02:15:31.744Z\\"\\n },\\n \\"RequestId\\": \\"EC2FE94D-A4A2-51A1-A493-5C273A36C46A\\"\\n}","type":"json"}]',
],
- 'CancelHandshake' => [
- 'methods' => [
- 'post',
- 'get',
- ],
- 'schemes' => [
- 'https',
- ],
+ 'GetAccount' => [
+ 'summary' => 'Queries the information about a member.',
+ 'methods' => ['post', 'get'],
+ 'schemes' => ['https'],
'security' => [
[
'AK' => [],
],
],
- 'operationType' => 'readAndWrite',
+ 'operationType' => 'read',
'deprecated' => false,
- 'systemTags' => [
- 'operationType' => 'update',
- ],
+ 'systemTags' => ['operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free'],
'parameters' => [
[
- 'name' => 'HandshakeId',
+ 'name' => 'AccountId',
'in' => 'query',
- 'schema' => [
- 'description' => 'The ID of the invitation.'."\n",
- 'type' => 'string',
- 'required' => true,
- 'example' => 'h-ycm4rp****',
- ],
+ 'schema' => ['description' => 'The ID of the member.', 'type' => 'string', 'required' => true, 'example' => '181761095690****', 'title' => ''],
+ ],
+ [
+ 'name' => 'IncludeTags',
+ 'in' => 'query',
+ 'schema' => ['description' => 'Specifies whether to return tag information. Valid values:'."\n"
+ ."\n"
+ .'- true'."\n"
+ ."\n"
+ .'- false'."\n"
+ ."\n"
+ .'Default value: false.', 'type' => 'boolean', 'required' => false, 'example' => 'true', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
- 'description' => 'The returned result.'."\n",
+ 'description' => 'The response parameters.',
'type' => 'object',
'properties' => [
- 'RequestId' => [
- 'description' => 'The ID of the request.'."\n",
- 'type' => 'string',
- 'example' => '9B34724D-54B0-4A51-B34D-4512372FE1BE',
- ],
- 'Handshake' => [
- 'description' => 'The information of the invitation.'."\n",
+ 'Account' => [
+ 'description' => 'The information about the member.',
'type' => 'object',
'properties' => [
- 'Status' => [
- 'description' => 'The status of the invitation. Valid values:'."\n"
- ."\n"
- .'* Pending: The invitation is waiting for confirmation.'."\n"
- .'* Accepted: The invitation is accepted.'."\n"
- .'* Cancelled: The invitation is canceled.'."\n"
- .'* Declined: The invitation is rejected.'."\n"
- .'* Expired: The invitation expires.'."\n",
- 'type' => 'string',
- 'example' => 'Cancelled',
- ],
- 'ExpireTime' => [
- 'description' => 'The time when the invitation expires. The time is displayed in UTC.'."\n",
- 'type' => 'string',
- 'example' => '2018-08-24T09:55:41Z',
- ],
- 'ResourceDirectoryId' => [
- 'description' => 'The ID of the resource directory.'."\n",
- 'type' => 'string',
- 'example' => 'h-ycm4rp****',
- ],
- 'CreateTime' => [
- 'description' => 'The time when the invitation was created. The time is displayed in UTC.'."\n",
- 'type' => 'string',
- 'example' => '2018-08-10T09:55:41Z',
- ],
- 'Note' => [
- 'description' => 'The description of the invitation.'."\n",
- 'type' => 'string',
- 'example' => 'Welcome'."\n",
- ],
- 'TargetEntity' => [
- 'description' => 'The ID or logon email address of the invited account.'."\n",
- 'type' => 'string',
- 'example' => 'someone@example.com',
- ],
- 'MasterAccountId' => [
- 'description' => 'The ID of the management account of the resource directory.'."\n",
- 'type' => 'string',
- 'example' => '172841235500****',
- ],
- 'MasterAccountName' => [
- 'description' => 'The name of the management account of the resource directory.'."\n",
- 'type' => 'string',
- 'example' => 'Alice',
- ],
- 'ModifyTime' => [
- 'description' => 'The time when the invitation was modified. The time is displayed in UTC.'."\n",
- 'type' => 'string',
- 'example' => '2018-08-10T09:55:41Z',
- ],
- 'TargetType' => [
- 'description' => 'The type of the invited account. Valid values:'."\n"
- ."\n"
- .'* Account: indicates the ID of the account.'."\n"
- .'* Email: indicates the logon email address of the account.'."\n",
- 'type' => 'string',
- 'example' => 'Email',
- ],
- 'HandshakeId' => [
- 'description' => 'The ID of the invitation.'."\n",
- 'type' => 'string',
- 'example' => 'h-ycm4rp****',
+ 'Status' => ['description' => 'The status of the member. Valid values:'."\n"
+ ."\n"
+ .'- CreateSuccess: The member is created.'."\n"
+ ."\n"
+ .'- PromoteVerifying: The upgrade is being confirmed.'."\n"
+ ."\n"
+ .'- PromoteFailed: The upgrade failed.'."\n"
+ ."\n"
+ .'- PromoteExpired: The upgrade expired.'."\n"
+ ."\n"
+ .'- PromoteCancelled: The upgrade is canceled.'."\n"
+ ."\n"
+ .'- PromoteSuccess: The member is upgraded.'."\n"
+ ."\n"
+ .'- InviteSuccess: The invitation is successful.', 'type' => 'string', 'example' => 'CreateSuccess', 'title' => ''],
+ 'Type' => ['description' => 'The type of the member. Valid values:'."\n"
+ ."\n"
+ .'- CloudAccount: Alibaba Cloud account.'."\n"
+ ."\n"
+ .'- ResourceAccount: resource account.', 'type' => 'string', 'example' => 'ResourceAccount', 'title' => ''],
+ 'DisplayName' => ['description' => 'The display name of the member.', 'type' => 'string', 'example' => 'admin', 'title' => ''],
+ 'FolderId' => ['description' => 'The ID of the folder.', 'type' => 'string', 'example' => 'fd-bVaRIG****', 'title' => ''],
+ 'ResourceDirectoryId' => ['description' => 'The ID of the resource directory.', 'type' => 'string', 'example' => 'rd-k3****', 'title' => ''],
+ 'IdentityInformation' => ['description' => 'The identity verification information.', 'type' => 'string', 'example' => 'aliyun-admin', 'title' => ''],
+ 'JoinTime' => ['description' => 'The time when the member joined the resource directory.', 'type' => 'string', 'example' => '2015-01-23T12:33:18Z', 'title' => ''],
+ 'AccountId' => ['description' => 'The ID of the member.', 'type' => 'string', 'example' => '181761095690****', 'title' => ''],
+ 'JoinMethod' => ['description' => 'The method by which the member joined the resource directory. Valid values:'."\n"
+ ."\n"
+ .'- invited: The member was invited.'."\n"
+ ."\n"
+ .'- created: The member was created.', 'type' => 'string', 'example' => 'created', 'title' => ''],
+ 'ModifyTime' => ['description' => 'The time when the member was last modified.', 'type' => 'string', 'example' => '2015-01-23T12:33:18Z', 'title' => ''],
+ 'AccountName' => ['description' => 'The name of the account.', 'type' => 'string', 'example' => 'someone@example.com', 'title' => ''],
+ 'ResourceDirectoryPath' => ['description' => 'The path of the member in the resource directory (RDPath).', 'type' => 'string', 'example' => 'rd-k3****/r-Wm****/fd-bVaRIG****/181761095690****', 'title' => ''],
+ 'Tags' => [
+ 'description' => 'The tags.',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The tag.',
+ 'type' => 'object',
+ 'properties' => [
+ 'Key' => ['description' => 'The tag key.', 'type' => 'string', 'example' => 'tag_key', 'title' => ''],
+ 'Value' => ['description' => 'The tag value.', 'type' => 'string', 'example' => 'tag_value', 'title' => ''],
+ ],
+ 'title' => '',
+ 'example' => '',
+ ],
+ 'title' => '',
+ 'example' => '',
],
+ 'Location' => ['description' => 'The location of the member in the resource directory.', 'type' => 'string', 'example' => 'root/AlRd****/Z5Aa****', 'title' => ''],
+ 'EmailStatus' => ['description' => 'The status of the email address. Valid values:'."\n"
+ ."\n"
+ .'- Empty: No records of email address modifications exist.'."\n"
+ ."\n"
+ .'- WAIT\\_MODIFY: The email address is being modified.'."\n"
+ ."\n"
+ .'- CANCELLED: The modification is canceled.'."\n"
+ ."\n"
+ .'- EXPIRED: The modification expired.', 'type' => 'string', 'example' => 'WAIT_MODIFY', 'title' => ''],
+ 'HasSecureMobilePhone' => ['description' => 'Indicates whether a mobile phone number is attached to the member. Valid values:'."\n"
+ ."\n"
+ .'- true'."\n"
+ ."\n"
+ .'- false', 'type' => 'boolean', 'example' => 'true', 'title' => ''],
+ 'SecureMobilePhone' => ['description' => 'The mobile phone number.', 'type' => 'string', 'example' => '1234567****', 'title' => ''],
],
+ 'title' => '',
+ 'example' => '',
],
+ 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '9B34724D-54B0-4A51-B34D-4512372FE1BE', 'title' => ''],
],
+ 'title' => '',
+ 'example' => '',
],
],
],
'errorCodes' => [
400 => [
- [
- 'errorCode' => 'MissingParameter.HandshakeId',
- 'errorMessage' => 'You must specify HandshakeId.',
- ],
- [
- 'errorCode' => 'InvalidParameter.HandshakeId',
- 'errorMessage' => 'The HandshakeId is invalid.',
- ],
+ ['errorCode' => 'MissingParameter.AccountId', 'errorMessage' => 'You must specify AccountId.', 'description' => 'The AccountId parameter is not configured.'],
+ ['errorCode' => 'InvalidParameter.AccountId', 'errorMessage' => 'The AccountId is invalid.', 'description' => 'The value of the AccountId parameter is invalid. Specify a 16-digit ID.'],
],
404 => [
- [
- 'errorCode' => 'EntityNotExists.Handshake',
- 'errorMessage' => 'The specified handshake does not exist.',
- ],
+ ['errorCode' => 'EntityNotExists.Account', 'errorMessage' => 'This resource directory account does not exist.', 'description' => 'The member does not exist. Create such a member first.'],
+ ['errorCode' => 'EntityNotExists.ResourceDirectory', 'errorMessage' => 'The resource directory for the account is not enabled. We recommend that you first enable the resource directory for the account.', 'description' => 'The account is not used to enable a resource directory. Use the account to enable a resource directory first.'],
],
- 409 => [
- [
- 'errorCode' => 'HandshakeStatusMismatch',
- 'errorMessage' => 'The invitation is invalid.',
+ ],
+ 'title' => 'GetAccount',
+ 'changeSet' => [],
+ 'flowControl' => [
+ 'flowControlList' => [
+ ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetAccount'],
+ ],
+ ],
+ 'ramActions' => [
+ [
+ 'operationType' => 'get',
+ 'ramAction' => [
+ 'action' => 'resourcemanager:GetAccount',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ResourceManager', 'resourceType' => 'Account', 'arn' => 'acs:resourcemanager::{#accountId}:account/{#ResourceDirectoryPath}'],
+ ],
],
],
],
- 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"9B34724D-54B0-4A51-B34D-4512372FE1BE\\",\\n \\"Handshake\\": {\\n \\"Status\\": \\"Cancelled\\",\\n \\"ExpireTime\\": \\"2018-08-24T09:55:41Z\\",\\n \\"ResourceDirectoryId\\": \\"h-ycm4rp****\\",\\n \\"CreateTime\\": \\"2018-08-10T09:55:41Z\\",\\n \\"Note\\": \\"欢迎您加入\\",\\n \\"TargetEntity\\": \\"someone@example.com\\",\\n \\"MasterAccountId\\": \\"172841235500****\\",\\n \\"MasterAccountName\\": \\"Alice\\",\\n \\"ModifyTime\\": \\"2018-08-10T09:55:41Z\\",\\n \\"TargetType\\": \\"Email\\",\\n \\"HandshakeId\\": \\"h-ycm4rp****\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"<CancelHandshakeResponse>\\n <RequestId>9B34724D-54B0-4A51-B34D-4512372FE1BE</RequestId>\\n <Handshake>\\n <HandshakeId>h-ycm4rp****</HandshakeId>\\n <ResourceDirectoryId>rd-abcdef****</ResourceDirectoryId>\\n <MasterAccountId>172841235500****</MasterAccountId>\\n <MasterAccountName>Alice</MasterAccountName>\\n <TargetEntity>someone@example.com</TargetEntity>\\n <TargetType>Email</TargetType>\\n <Note>欢迎您加入</Note>\\n <Status>Cancelled</Status>\\n <CreateTime>2018-08-10T09:55:41Z</CreateTime>\\n <ModifyTime>2018-08-10T09:55:41Z</ModifyTime>\\n <ExpireTime>2018-08-24T09:55:41Z</ExpireTime>\\n </Handshake>\\n</CancelHandshakeResponse>","errorExample":""}]',
- 'title' => 'CancelHandshake',
- 'summary' => 'Cancels an invitation.',
- 'responseParamsDescription' => 'For more information about common request parameters, see [Common parameters](~~159973~~).'."\n",
- 'extraInfo' => ' ',
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Account\\": {\\n \\"Status\\": \\"CreateSuccess\\",\\n \\"Type\\": \\"ResourceAccount\\",\\n \\"DisplayName\\": \\"admin\\",\\n \\"FolderId\\": \\"fd-bVaRIG****\\",\\n \\"ResourceDirectoryId\\": \\"rd-k3****\\",\\n \\"IdentityInformation\\": \\"aliyun-admin\\",\\n \\"JoinTime\\": \\"2015-01-23T12:33:18Z\\",\\n \\"AccountId\\": \\"181761095690****\\",\\n \\"JoinMethod\\": \\"created\\",\\n \\"ModifyTime\\": \\"2015-01-23T12:33:18Z\\",\\n \\"AccountName\\": \\"someone@example.com\\",\\n \\"ResourceDirectoryPath\\": \\"rd-k3****/r-Wm****/fd-bVaRIG****/181761095690****\\",\\n \\"Tags\\": [\\n {\\n \\"Key\\": \\"tag_key\\",\\n \\"Value\\": \\"tag_value\\"\\n }\\n ],\\n \\"Location\\": \\"root/AlRd****/Z5Aa****\\",\\n \\"EmailStatus\\": \\"WAIT_MODIFY\\",\\n \\"HasSecureMobilePhone\\": true,\\n \\"SecureMobilePhone\\": \\"1234567****\\"\\n },\\n \\"RequestId\\": \\"9B34724D-54B0-4A51-B34D-4512372FE1BE\\"\\n}","type":"json"}]',
],
- 'ListHandshakesForAccount' => [
- 'methods' => [
- 'post',
- 'get',
- ],
- 'schemes' => [
- 'https',
- ],
+ 'GetAccountDeletionCheckResult' => [
+ 'methods' => ['post', 'get'],
+ 'schemes' => ['https'],
'security' => [
[
'AK' => [],
],
],
- 'operationType' => 'readAndWrite',
+ 'operationType' => 'read',
'deprecated' => false,
- 'systemTags' => [
- 'operationType' => 'list',
- ],
+ 'systemTags' => ['operationType' => 'get'],
'parameters' => [
[
- 'name' => 'PageNumber',
- 'in' => 'query',
- 'schema' => [
- 'description' => 'The number of the page to return.'."\n"
- ."\n"
- .'Pages start from page 1. Default value: 1.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'required' => false,
- 'example' => '1',
- ],
- ],
- [
- 'name' => 'PageSize',
+ 'name' => 'AccountId',
'in' => 'query',
- 'schema' => [
- 'description' => 'The number of entries to return on each page.'."\n"
- ."\n"
- .'Valid values: 1 to 100. Default value: 10.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'required' => false,
- 'example' => '10',
- ],
+ 'schema' => ['description' => 'The Alibaba Cloud account ID of the member that you want to delete.'."\n", 'type' => 'string', 'required' => true, 'example' => '179855839641****', 'title' => ''],
],
],
'responses' => [
@@ -4148,163 +2379,102 @@
'description' => 'The returned result.'."\n",
'type' => 'object',
'properties' => [
- 'TotalCount' => [
- 'description' => 'The total number of invitations.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'example' => '2',
- ],
- 'RequestId' => [
- 'description' => 'The ID of the request.'."\n",
- 'type' => 'string',
- 'example' => '9B34724D-54B0-4A51-B34D-4512372FE1BE',
- ],
- 'PageSize' => [
- 'description' => 'The number of entries returned per page.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'example' => '10',
- ],
- 'PageNumber' => [
- 'description' => 'The page number of the returned page.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'example' => '1',
- ],
- 'Handshakes' => [
+ 'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => '54AC391D-4F7F-5F08-B8D3-0AECDE6EC5BD', 'title' => ''],
+ 'AccountDeletionCheckResultInfo' => [
+ 'description' => 'The result of the deletion check for the member.'."\n",
'type' => 'object',
- 'itemNode' => true,
'properties' => [
- 'Handshake' => [
- 'description' => 'The information of the invitations.'."\n",
+ 'Status' => ['description' => 'The status of the check. Valid values:'."\n"
+ ."\n"
+ .'* PreCheckComplete: The check is complete.'."\n"
+ .'* PreChecking: The check is in progress.'."\n", 'type' => 'string', 'example' => 'PreCheckComplete', 'title' => ''],
+ 'AllowDelete' => ['description' => 'Indicates whether the member can be deleted. Valid values:'."\n"
+ ."\n"
+ .'* true: The member can be deleted.'."\n"
+ .'* false: The member cannot be deleted.'."\n", 'type' => 'string', 'example' => 'false', 'title' => ''],
+ 'NotAllowReason' => [
+ 'description' => 'The reasons why the member cannot be deleted.'."\n"
+ ."\n"
+ .'> This parameter is returned only if the value of AllowDelete is false.'."\n",
'type' => 'array',
'items' => [
- 'description' => 'The information of an invitation.'."\n",
+ 'description' => 'A reason why the member cannot be deleted.'."\n"
+ ."\n"
+ .'> This parameter is returned only if the value of AllowDelete is false.'."\n",
'type' => 'object',
'properties' => [
- 'Status' => [
- 'description' => 'The status of the invitation. Valid values:'."\n"
- ."\n"
- .'* Pending: The invitation is waiting for confirmation.'."\n"
- .'* Accepted: The invitation is accepted.'."\n"
- .'* Cancelled: The invitation is canceled.'."\n"
- .'* Declined: The invitation is rejected.'."\n"
- .'* Expired: The invitation expires.'."\n",
- 'type' => 'string',
- 'example' => 'Pending',
- ],
- 'ExpireTime' => [
- 'description' => 'The time when the invitation expires. The time is displayed in UTC.'."\n",
- 'type' => 'string',
- 'example' => '2018-08-24T09:55:41Z',
- ],
- 'ResourceDirectoryId' => [
- 'description' => 'The ID of the resource directory.'."\n",
- 'type' => 'string',
- 'example' => 'rd-abcdef****',
- ],
- 'CreateTime' => [
- 'description' => 'The time when the invitation was created. The time is displayed in UTC.'."\n",
- 'type' => 'string',
- 'example' => '2018-08-10T09:55:41Z',
- ],
- 'Note' => [
- 'description' => 'The description of the invitation.'."\n",
- 'type' => 'string',
- 'example' => 'Welcome'."\n",
- ],
- 'TargetEntity' => [
- 'description' => 'The ID or logon email address of the invited Alibaba Cloud account.'."\n",
- 'type' => 'string',
- 'example' => 'someone@example.com',
- ],
- 'MasterAccountId' => [
- 'description' => 'The ID of the management account of the resource directory.'."\n",
- 'type' => 'string',
- 'example' => '172841235500****',
- ],
- 'MasterAccountName' => [
- 'description' => 'The name of the management account of the resource directory.'."\n",
- 'type' => 'string',
- 'example' => 'CompanyA',
- ],
- 'ModifyTime' => [
- 'description' => 'The time when the invitation was modified. The time is displayed in UTC.'."\n",
- 'type' => 'string',
- 'example' => '2018-08-10T09:55:41Z',
- ],
- 'TargetType' => [
- 'description' => 'The type of the invited Alibaba Cloud account. Valid values:'."\n"
- ."\n"
- .'* Account: indicates the ID of the account.'."\n"
- .'* Email: indicates the logon email address of the account.'."\n",
- 'type' => 'string',
- 'example' => 'Email',
- ],
- 'HandshakeId' => [
- 'description' => 'The ID of the invitation.'."\n",
- 'type' => 'string',
- 'example' => 'h-4N57QZzCTtES****',
- ],
+ 'Description' => ['description' => 'The description of the check item.'."\n", 'type' => 'string', 'example' => 'This account is an Enterprise Finance associated account. Please remove the financial association of this account before deleting it.', 'title' => ''],
+ 'CheckId' => ['description' => 'The ID of the check item.'."\n", 'type' => 'string', 'example' => 'NON_SP_efc', 'title' => ''],
+ 'CheckName' => ['description' => 'The name of the cloud service to which the check item belongs.'."\n", 'type' => 'string', 'example' => 'Enterprise finance', 'title' => ''],
+ ],
+ 'title' => '',
+ ],
+ 'title' => '',
+ ],
+ 'AbandonableChecks' => [
+ 'description' => 'The check items that you can choose to ignore for the member deletion.'."\n"
+ ."\n"
+ .'> This parameter may be returned if the value of AllowDelete is true.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'A check item that you can choose to ignore for the member deletion.'."\n"
+ ."\n"
+ .'> This parameter may be returned if the value of AllowDelete is true.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'Description' => ['description' => 'The description of the check item.'."\n", 'type' => 'string', 'example' => 'An instance of a cloud service is running within the member. Submit a ticket to contact Alibaba Cloud technical support.'."\n", 'title' => ''],
+ 'CheckId' => ['description' => 'The ID of the check item.'."\n", 'type' => 'string', 'example' => 'NON_SP_cs', 'title' => ''],
+ 'CheckName' => ['description' => 'The name of the cloud service to which the check item belongs.'."\n", 'type' => 'string', 'example' => 'Container Service for Kubernetes'."\n", 'title' => ''],
],
+ 'title' => '',
],
+ 'title' => '',
],
],
+ 'title' => '',
],
],
+ 'title' => '',
],
],
],
- 'responseDemo' => '[{"type":"json","example":"{\\n \\"TotalCount\\": 2,\\n \\"RequestId\\": \\"9B34724D-54B0-4A51-B34D-4512372FE1BE\\",\\n \\"PageSize\\": 10,\\n \\"PageNumber\\": 1,\\n \\"Handshakes\\": {\\n \\"Handshake\\": [\\n {\\n \\"Status\\": \\"Pending\\",\\n \\"ExpireTime\\": \\"2018-08-24T09:55:41Z\\",\\n \\"ResourceDirectoryId\\": \\"rd-abcdef****\\",\\n \\"CreateTime\\": \\"2018-08-10T09:55:41Z\\",\\n \\"Note\\": \\"欢迎您加入\\",\\n \\"TargetEntity\\": \\"someone@example.com\\",\\n \\"MasterAccountId\\": \\"172841235500****\\",\\n \\"MasterAccountName\\": \\"CompanyA\\",\\n \\"ModifyTime\\": \\"2018-08-10T09:55:41Z\\",\\n \\"TargetType\\": \\"Email\\",\\n \\"HandshakeId\\": \\"h-4N57QZzCTtES****\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<ListHandshakesForAccountResponse>\\n <RequestId>9B34724D-54B0-4A51-B34D-4512372FE1BE</RequestId>\\n <PageNumber>1</PageNumber>\\n <PageSize>10</PageSize>\\n <TotalCount>2</TotalCount>\\n <Handshakes>\\n <Handshake>\\n <HandshakeId>h-4N57QZzCTtES****</HandshakeId>\\n <ResourceDirectoryId>rd-abcdef****</ResourceDirectoryId>\\n <MasterAccountId>172841235500****</MasterAccountId>\\n <MasterAccountName>CompanyA</MasterAccountName>\\n <TargetEntity>someone@example.com</TargetEntity>\\n <TargetType>Email</TargetType>\\n <Note>欢迎您加入</Note>\\n <Status>Pending</Status>\\n <CreateTime>2018-08-10T09:55:41Z</CreateTime>\\n <ModifyTime>2018-08-10T09:55:41Z</ModifyTime>\\n <ExpireTime>2018-08-24T09:55:41Z</ExpireTime>\\n </Handshake>\\n <Handshake>\\n <HandshakeId>h-BeJZW63fHT4l****</HandshakeId>\\n <ResourceDirectoryId>rd-abcdef****</ResourceDirectoryId>\\n <MasterAccountId>172841235500****</MasterAccountId>\\n <MasterAccountName>CompanyA</MasterAccountName>\\n <TargetEntity>172841235500****</TargetEntity>\\n <TargetType>Account</TargetType>\\n <Note>欢迎您加入</Note>\\n <Status>Pending</Status>\\n <CreateTime>2018-08-10T09:55:41Z</CreateTime>\\n <ModifyTime>2018-08-10T09:55:41Z</ModifyTime>\\n <ExpireTime>2018-08-24T09:55:41Z</ExpireTime>\\n </Handshake>\\n </Handshakes>\\n</ListHandshakesForAccountResponse>","errorExample":""}]',
- 'title' => 'ListHandshakesForAccount',
- 'summary' => 'Queries the invitations that are associated with an account.',
- 'responseParamsDescription' => ' ',
- 'extraInfo' => ' ',
- ],
- 'ListHandshakesForResourceDirectory' => [
- 'methods' => [
- 'post',
- 'get',
- ],
- 'schemes' => [
- 'https',
+ 'errorCodes' => [
+ 400 => [
+ ['errorCode' => 'MissingParameter.AccountId', 'errorMessage' => 'You must specify AccountId.', 'description' => ''],
+ ['errorCode' => 'InvalidParameter.AccountId', 'errorMessage' => 'The AccountId is invalid.', 'description' => ''],
+ ],
+ 404 => [
+ ['errorCode' => 'EntityNotExists.Account', 'errorMessage' => 'This resource directory account does not exist.', 'description' => ''],
+ ['errorCode' => 'EntityNotExists.ResourceDirectory', 'errorMessage' => 'The resource directory for the account is not enabled. We recommend that you first enable the resource directory for the account.', 'description' => ''],
+ ],
+ 409 => [
+ ['errorCode' => 'AccountTypeOrStatusMismatch', 'errorMessage' => 'You cannot perform the action on the member account.', 'description' => ''],
+ ['errorCode' => 'EntityNotExists.CheckAccount', 'errorMessage' => 'There is no check task for this account', 'description' => ''],
+ ['errorCode' => 'UnknownError.Account', 'errorMessage' => 'The deletion failed. An unknown error occurred. Please try again later.', 'description' => ''],
+ ],
],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"54AC391D-4F7F-5F08-B8D3-0AECDE6EC5BD\\",\\n \\"AccountDeletionCheckResultInfo\\": {\\n \\"Status\\": \\"PreCheckComplete\\",\\n \\"AllowDelete\\": \\"false\\",\\n \\"NotAllowReason\\": [\\n {\\n \\"Description\\": \\"This account is an Enterprise Finance associated account. Please remove the financial association of this account before deleting it.\\",\\n \\"CheckId\\": \\"NON_SP_efc\\",\\n \\"CheckName\\": \\"Enterprise finance\\"\\n }\\n ],\\n \\"AbandonableChecks\\": [\\n {\\n \\"Description\\": \\"An instance of a cloud service is running within the member. Submit a ticket to contact Alibaba Cloud technical support.\\\\n\\",\\n \\"CheckId\\": \\"NON_SP_cs\\",\\n \\"CheckName\\": \\"Container Service for Kubernetes\\\\n\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<GetAccountDeletionCheckResultResponse>\\n <AccountDeletionCheckResultInfo>\\n <Status>PreCheckComplete</Status>\\n <NotAllowReason>\\n <Description>instance number:1</Description>\\n <CheckName>eip_pre</CheckName>\\n <CheckId>SP_eip_eip_pre</CheckId>\\n </NotAllowReason>\\n <NotAllowReason>\\n <Description>This account is an Enterprise Finance associated account. Please remove the financial association of this account before deleting it.</Description>\\n <CheckName>Enterprise finance</CheckName>\\n <CheckId>NON_SP_efc</CheckId>\\n </NotAllowReason>\\n <AllowDelete>false</AllowDelete>\\n </AccountDeletionCheckResultInfo>\\n <RequestId>54AC391D-4F7F-5F08-B8D3-0AECDE6EC5BD</RequestId>\\n</GetAccountDeletionCheckResultResponse>","errorExample":""}]',
+ 'title' => 'GetAccountDeletionCheckResult',
+ 'summary' => 'Queries the result of a member deletion check.',
+ 'description' => 'After you call the [CheckAccountDelete](~~CheckAccountDelete~~) operation to perform a member deletion check, you can call the [GetAccountDeletionCheckResult](~~GetAccountDeletionCheckResult~~) operation to query the check result. If the check result shows that the member meets deletion requirements, you can delete the member. Otherwise, you need to first modify the items that do not meet requirements.'."\n",
+ 'changeSet' => [],
+ ],
+ 'GetAccountDeletionStatus' => [
+ 'methods' => ['post', 'get'],
+ 'schemes' => ['https'],
'security' => [
[
'AK' => [],
],
],
- 'operationType' => 'readAndWrite',
+ 'operationType' => 'read',
'deprecated' => false,
- 'systemTags' => [
- 'operationType' => 'list',
- ],
+ 'systemTags' => ['operationType' => 'get'],
'parameters' => [
[
- 'name' => 'PageNumber',
- 'in' => 'query',
- 'schema' => [
- 'description' => 'The number of the page to return.'."\n"
- ."\n"
- .'Pages start from page 1. Default value: 1.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'required' => false,
- 'example' => '1',
- ],
- ],
- [
- 'name' => 'PageSize',
+ 'name' => 'AccountId',
'in' => 'query',
- 'schema' => [
- 'description' => 'The number of entries to return on each page.'."\n"
- ."\n"
- .'Valid values: 1 to 100. Default value: 10.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'required' => false,
- 'example' => '10',
- ],
+ 'schema' => ['description' => 'The Alibaba Cloud account ID of the member.'."\n", 'type' => 'string', 'required' => true, 'example' => '169946124551****', 'title' => ''],
],
],
'responses' => [
@@ -4313,370 +2483,242 @@
'description' => 'The returned result.'."\n",
'type' => 'object',
'properties' => [
- 'TotalCount' => [
- 'description' => 'The total number of entries returned.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'example' => '2',
- ],
- 'RequestId' => [
- 'description' => 'The ID of the request.'."\n",
- 'type' => 'string',
- 'example' => '9B34724D-54B0-4A51-B34D-4512372FE1BE',
- ],
- 'PageSize' => [
- 'description' => 'The number of entries returned per page.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'example' => '10',
- ],
- 'PageNumber' => [
- 'description' => 'The page number of the returned page.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'example' => '1',
- ],
- 'Handshakes' => [
+ 'RdAccountDeletionStatus' => [
+ 'description' => 'The deletion status of the member.'."\n",
'type' => 'object',
- 'itemNode' => true,
'properties' => [
- 'Handshake' => [
- 'description' => 'The information of the invitations.'."\n",
+ 'Status' => ['description' => 'The status. Valid values:'."\n"
+ ."\n"
+ .'* Success: The member is deleted.'."\n"
+ .'* Checking: A deletion check is being performed for the member.'."\n"
+ .'* Deleting: The member is being deleted.'."\n"
+ .'* CheckFailed: The deletion check for the member fails.'."\n"
+ .'* DeleteFailed: The member fails to be deleted.'."\n", 'type' => 'string', 'example' => 'Success', 'title' => ''],
+ 'AccountId' => ['description' => 'The Alibaba Cloud account ID of the member.'."\n", 'type' => 'string', 'example' => '169946124551****', 'title' => ''],
+ 'CreateTime' => ['description' => 'The start time of the deletion.'."\n", 'type' => 'string', 'example' => '2022-08-23T17:05:30+08:00', 'title' => ''],
+ 'DeletionTime' => ['description' => 'The end time of the deletion.'."\n", 'type' => 'string', 'required' => true, 'example' => '2022-08-23T17:06:01+08:00', 'title' => ''],
+ 'FailReasonList' => [
+ 'description' => 'The reasons why the member fails to be deleted.'."\n",
'type' => 'array',
'items' => [
- 'description' => 'The information of an invitation.'."\n",
+ 'description' => 'A reason why the member fails to be deleted.'."\n",
'type' => 'object',
'properties' => [
- 'Status' => [
- 'description' => 'The status of the invitation. Valid values:'."\n"
- ."\n"
- .'* Pending: The invitation is waiting for confirmation.'."\n"
- .'* Accepted: The invitation is accepted.'."\n"
- .'* Cancelled: The invitation is canceled.'."\n"
- .'* Declined: The invitation is rejected.'."\n"
- .'* Expired: The invitation expires.'."\n",
- 'type' => 'string',
- 'example' => 'Pending',
- ],
- 'ExpireTime' => [
- 'description' => 'The time when the invitation expires. The time is displayed in UTC.'."\n",
- 'type' => 'string',
- 'example' => '2018-08-24T09:55:41Z',
- ],
- 'ResourceDirectoryId' => [
- 'description' => 'The ID of the resource directory.'."\n",
- 'type' => 'string',
- 'example' => 'rd-abcdef****',
- ],
- 'CreateTime' => [
- 'description' => 'The time when the invitation was created. The time is displayed in UTC.'."\n",
- 'type' => 'string',
- 'example' => '2018-08-10T09:55:41Z',
- ],
- 'Note' => [
- 'description' => 'The description of the invitation.'."\n",
- 'type' => 'string',
- 'example' => 'Welcome'."\n",
- ],
- 'TargetEntity' => [
- 'description' => 'The ID or logon email address of the invited account.'."\n",
- 'type' => 'string',
- 'example' => 'someone@example.com',
- ],
- 'MasterAccountId' => [
- 'description' => 'The ID of the management account of the resource directory.'."\n",
- 'type' => 'string',
- 'example' => '172841235500****',
- ],
- 'MasterAccountName' => [
- 'description' => 'The name of the management account of the resource directory.'."\n",
- 'type' => 'string',
- 'example' => 'Alice',
- ],
- 'ModifyTime' => [
- 'description' => 'The time when the invitation was modified. The time is displayed in UTC.'."\n",
- 'type' => 'string',
- 'example' => '2018-08-10T09:55:41Z',
- ],
- 'TargetType' => [
- 'description' => 'The type of the invited account. Valid values:'."\n"
- ."\n"
- .'* Account: indicates the ID of the account.'."\n"
- .'* Email: indicates the logon email address of the account.'."\n",
- 'type' => 'string',
- 'example' => 'Email',
- ],
- 'HandshakeId' => [
- 'description' => 'The ID of the invitation.'."\n",
- 'type' => 'string',
- 'example' => 'h-ycm4rp****',
- ],
+ 'Name' => ['description' => 'The name of the cloud service to which the check item belongs.'."\n", 'type' => 'string', 'example' => 'Others', 'title' => ''],
+ 'Description' => ['description' => 'The description of the check item.'."\n", 'type' => 'string', 'example' => 'This account has a payer account. Please release the financial relationship of this account first.', 'title' => ''],
],
+ 'title' => '',
],
+ 'title' => '',
],
+ 'DeletionType' => ['description' => 'The type of the deletion. Valid values:'."\n"
+ ."\n"
+ .'* 0: direct deletion. If the member does not have pay-as-you-go resources that are purchased within the previous 30 days, the system directly deletes the member.'."\n"
+ .'* 1: deletion with a silence period. If the member has pay-as-you-go resources that are purchased within the previous 30 days, the member enters a silence period of 45 days. The system starts to delete the member until the silence period ends. For more information about the silence period, see [What is the silence period for member deletion?](~~446079~~)'."\n", 'type' => 'string', 'example' => '0', 'title' => ''],
],
+ 'title' => '',
],
+ 'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => '8AA43293-7C8F-5730-8F2D-7F864EC092C5', 'title' => ''],
],
+ 'title' => '',
],
],
],
'errorCodes' => [
404 => [
- [
- 'errorCode' => 'EntityNotExists.ResourceDirectory',
- 'errorMessage' => 'The resource directory for the account is not enabled. We recommend that you first enable the resource directory for the account.',
- ],
+ ['errorCode' => 'EntityNotExists.Account', 'errorMessage' => 'This resource directory account does not exist.', 'description' => ''],
+ ],
+ 409 => [
+ ['errorCode' => 'EntityNotExists.CheckAccount', 'errorMessage' => 'There is no check task for this account', 'description' => ''],
],
],
- 'responseDemo' => '[{"type":"json","example":"{\\n \\"TotalCount\\": 2,\\n \\"RequestId\\": \\"9B34724D-54B0-4A51-B34D-4512372FE1BE\\",\\n \\"PageSize\\": 10,\\n \\"PageNumber\\": 1,\\n \\"Handshakes\\": {\\n \\"Handshake\\": [\\n {\\n \\"Status\\": \\"Pending\\",\\n \\"ExpireTime\\": \\"2018-08-24T09:55:41Z\\",\\n \\"ResourceDirectoryId\\": \\"rd-abcdef****\\",\\n \\"CreateTime\\": \\"2018-08-10T09:55:41Z\\",\\n \\"Note\\": \\"欢迎您加入\\",\\n \\"TargetEntity\\": \\"someone@example.com\\",\\n \\"MasterAccountId\\": \\"172841235500****\\",\\n \\"MasterAccountName\\": \\"Alice\\",\\n \\"ModifyTime\\": \\"2018-08-10T09:55:41Z\\",\\n \\"TargetType\\": \\"Email\\",\\n \\"HandshakeId\\": \\"h-ycm4rp****\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<ListHandshakesForResourceDirectoryResponse>\\n <RequestId>9B34724D-54B0-4A51-B34D-4512372FE1BE</RequestId>\\n <PageNumber>1</PageNumber>\\n <PageSize>10</PageSize>\\n <TotalCount>2</TotalCount>\\n <Handshakes>\\n <Handshake>\\n <HandshakeId>h-ycm4rp****</HandshakeId>\\n <ResourceDirectoryId>rd-abcdef****</ResourceDirectoryId>\\n <MasterAccountId>172841235500****</MasterAccountId>\\n <MasterAccountName>Alice</MasterAccountName>\\n <InviteEntity>someone@example.com</InviteEntity>\\n <InviteType>Email</InviteType>\\n <Note>欢迎您加入</Note>\\n <Status>Pending</Status>\\n <CreateTime>2018-08-10T09:55:41Z</CreateTime>\\n <ModifyTime>2018-08-10T09:55:41Z</ModifyTime>\\n <ExpireTime>2018-08-24T09:55:41Z</ExpireTime>\\n </Handshake>\\n <Handshake>\\n <HandshakeId>h-ycm4rp****</HandshakeId>\\n <ResourceDirectoryId>rd-abcdef****</ResourceDirectoryId>\\n <MasterAccountId>172841235500****</MasterAccountId>\\n <MasterAccountName>Alice</MasterAccountName>\\n <TargetEntity>172841235500****</TargetEntity>\\n <TargetType>Account</TargetType>\\n <Note>欢迎您加入</Note>\\n <Status>Pending</Status>\\n <CreateTime>2018-08-10T09:55:41Z</CreateTime>\\n <ModifyTime>2018-08-10T09:55:41Z</ModifyTime>\\n <ExpireTime>2018-08-24T09:55:41Z</ExpireTime>\\n </Handshake>\\n </Handshakes>\\n</ListHandshakesForResourceDirectoryResponse>","errorExample":""}]',
- 'title' => 'ListHandshakesForResourceDirectory',
- 'summary' => 'Queries invitations in a resource directory.',
- 'responseParamsDescription' => ' ',
- 'extraInfo' => ' ',
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RdAccountDeletionStatus\\": {\\n \\"Status\\": \\"Success\\",\\n \\"AccountId\\": \\"169946124551****\\",\\n \\"CreateTime\\": \\"2022-08-23T17:05:30+08:00\\",\\n \\"DeletionTime\\": \\"2022-08-23T17:06:01+08:00\\",\\n \\"FailReasonList\\": [\\n {\\n \\"Name\\": \\"Others\\",\\n \\"Description\\": \\"This account has a payer account. Please release the financial relationship of this account first.\\"\\n }\\n ],\\n \\"DeletionType\\": \\"0\\"\\n },\\n \\"RequestId\\": \\"8AA43293-7C8F-5730-8F2D-7F864EC092C5\\"\\n}","errorExample":""},{"type":"xml","example":"<GetAccountDeletionStatusResponse>\\n <RequestId>8AA43293-7C8F-5730-8F2D-7F864EC092C5</RequestId>\\n <RdAccountDeletionStatus>\\n <Status>Success</Status>\\n <AccountId>169946124551****</AccountId>\\n <DeletionType>0</DeletionType>\\n <CreateTime>2022-08-23T17:05:30+08:00</CreateTime>\\n <DeletionTime>2022-08-23T17:06:01+08:00</DeletionTime>\\n </RdAccountDeletionStatus>\\n</GetAccountDeletionStatusResponse>","errorExample":""}]',
+ 'title' => 'GetAccountDeletionStatus',
+ 'summary' => 'Queries the deletion status of a member.',
+ 'changeSet' => [],
],
- 'SendVerificationCodeForBindSecureMobilePhone' => [
- 'summary' => 'Sends a verification code to the mobile phone number that you want to bind to a member of the resource account type in a resource directory for security purposes.',
- 'methods' => [
- 'post',
- 'get',
- ],
- 'schemes' => [
- 'https',
- ],
+ 'GetControlPolicy' => [
+ 'methods' => ['post', 'get'],
+ 'schemes' => ['https'],
'security' => [
[
'AK' => [],
],
],
- 'operationType' => 'readAndWrite',
+ 'operationType' => 'read',
'deprecated' => false,
- 'systemTags' => [
- 'operationType' => 'none',
- ],
+ 'systemTags' => ['operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free'],
'parameters' => [
[
- 'name' => 'SecureMobilePhone',
+ 'name' => 'PolicyId',
'in' => 'query',
- 'schema' => [
- 'description' => 'The mobile phone number that you want to bind to the member for security purposes.'."\n"
- ."\n"
- .'Specify the mobile phone number in the \\<Country code>-\\<Mobile phone number> format.'."\n"
- ."\n"
- .'> Mobile phone numbers in the `86-<Mobile phone number>` format in the Chinese mainland are not supported.'."\n",
- 'type' => 'string',
- 'required' => true,
- 'example' => 'xx-13900001234',
- ],
+ 'schema' => ['description' => 'The ID of the control policy.', 'type' => 'string', 'required' => true, 'example' => 'cp-SImPt8GCEwiq****', 'title' => ''],
],
[
- 'name' => 'AccountId',
+ 'name' => 'Language',
'in' => 'query',
- 'schema' => [
- 'description' => 'The Alibaba Cloud account ID of the member.'."\n",
- 'type' => 'string',
- 'required' => true,
- 'example' => '138660628348****',
- ],
+ 'schema' => ['description' => 'The language of the returned control policy description. Valid values:'."\n"
+ ."\n"
+ .'- zh-CN (default): Chinese.'."\n"
+ ."\n"
+ .'- en: English.'."\n"
+ ."\n"
+ .'- ja: Japanese.'."\n"
+ ."\n"
+ .'> This parameter is valid only for system control policies.', 'type' => 'string', 'required' => false, 'example' => 'zh-CN', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
- 'description' => 'The returned result.'."\n",
+ 'description' => 'The returned data.',
'type' => 'object',
'properties' => [
- 'RequestId' => [
- 'description' => 'The ID of the request.'."\n",
- 'type' => 'string',
- 'example' => 'DCD43660-75DD-5D15-B342-1B83FCA5B913',
- ],
- 'ExpirationDate' => [
- 'description' => 'The time when the verification code expires.'."\n",
- 'type' => 'string',
- 'example' => '2021-12-17T07:38:41.747Z',
+ 'ControlPolicy' => [
+ 'description' => 'The details of the control policy.',
+ 'type' => 'object',
+ 'properties' => [
+ 'PolicyDocument' => ['description' => 'The content of the control policy.', 'type' => 'string', 'example' => '{\\"Version\\":\\"1\\",\\"Statement\\":[{\\"Effect\\":\\"Deny\\",\\"Action\\":[\\"ram:UpdateRole\\",\\"ram:DeleteRole\\",\\"ram:AttachPolicyToRole\\",\\"ram:DetachPolicyFromRole\\"],\\"Resource\\":\\"acs:ram:*:*:role/ResourceDirectoryAccountAccessRole\\"}]}', 'title' => ''],
+ 'UpdateDate' => ['description' => 'The time the control policy was last updated.', 'type' => 'string', 'example' => '2021-03-18T08:51:33Z', 'title' => ''],
+ 'Description' => ['description' => 'The description of the control policy.', 'type' => 'string', 'example' => 'ExampleControlPolicy', 'title' => ''],
+ 'EffectScope' => ['description' => 'The effective scope of the control policy. Valid values:'."\n"
+ ."\n"
+ .'- All: The control policy applies to Alibaba Cloud accounts, RAM users, and RAM roles.'."\n"
+ ."\n"
+ .'- RAM: The control policy applies only to RAM users and RAM roles.', 'type' => 'string', 'example' => 'RAM', 'title' => ''],
+ 'AttachmentCount' => ['description' => 'The number of attachments.', 'type' => 'string', 'example' => '0', 'title' => ''],
+ 'PolicyName' => ['description' => 'The name of the control policy.', 'type' => 'string', 'example' => 'test', 'title' => ''],
+ 'PolicyId' => ['description' => 'The ID of the control policy.', 'type' => 'string', 'example' => 'cp-SImPt8GCEwiq****', 'title' => ''],
+ 'CreateDate' => ['description' => 'The time the control policy was created.', 'type' => 'string', 'example' => '2021-03-18T08:51:33Z', 'title' => ''],
+ 'PolicyType' => ['description' => 'The type of the control policy. Valid values:'."\n"
+ ."\n"
+ .'- System: A system-provided control policy.'."\n"
+ ."\n"
+ .'- Custom: A user-created control policy.', 'type' => 'string', 'example' => 'Custom', 'title' => ''],
+ 'ControlPolicyType' => ['type' => 'string', 'example' => 'RESOURCE_CONTROL_POLICY', 'description' => '', 'title' => ''],
+ ],
+ 'title' => '',
+ 'example' => '',
],
+ 'RequestId' => ['description' => 'The ID of the request.', 'type' => 'string', 'example' => 'AB769936-CDFA-4D52-8CE2-A3581800044A', 'title' => ''],
],
+ 'title' => '',
+ 'example' => '',
],
],
],
'errorCodes' => [
- 409 => [
- [
- 'errorCode' => 'NotSupport.AccountInAnotherResourceDirectory',
- 'errorMessage' => 'The specified account is an Alibaba Cloud account or already exists in another resource directory.',
- ],
- [
- 'errorCode' => 'EntityAlreadyExists.ResourceDirectory',
- 'errorMessage' => 'The resource directory for the account is already enabled. We recommend that you do not enable the resource directory again.',
- ],
- [
- 'errorCode' => 'SendValidateCodeExceedsLimitForAccount',
- 'errorMessage' => 'For the same account, the number of verification codes sent exceeds the limit.',
- ],
- [
- 'errorCode' => 'InvalidParameter.MobileCountryCode',
- 'errorMessage' => 'The current site does not support the country code.',
- ],
+ 404 => [
+ ['errorCode' => 'EntityNotExists.ResourceControlPolicy', 'errorMessage' => 'The specified resource control policy does not exist.', 'description' => ''],
],
],
- 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"DCD43660-75DD-5D15-B342-1B83FCA5B913\\",\\n \\"ExpirationDate\\": \\"2021-12-17T07:38:41.747Z\\"\\n}","errorExample":""},{"type":"xml","example":"<SendVerificationCodeForBindSecureMobilePhoneResponse>\\n <RequestId>DCD43660-75DD-5D15-B342-1B83FCA5B913</RequestId>\\n <ExpirationDate>2021-12-17T07:38:41.747Z</ExpirationDate>\\n</SendVerificationCodeForBindSecureMobilePhoneResponse>","errorExample":""}]',
- 'title' => 'SendVerificationCodeForBindSecureMobilePhone',
- 'description' => 'To ensure that the system can record the operators of management operations, you must use a RAM user or RAM role to which the AliyunResourceDirectoryFullAccess policy is attached within the management account of your resource directory to call this API operation.'."\n",
- ],
- 'BindSecureMobilePhone' => [
- 'summary' => 'Binds a mobile phone number to a member of the resource account type in a resource directory for security purposes.',
- 'methods' => [
- 'post',
- 'get',
+ 'title' => 'GetControlPolicy',
+ 'summary' => 'Gets the details of a control policy.',
+ 'responseParamsDescription' => ' ',
+ 'extraInfo' => ' ',
+ 'changeSet' => [],
+ 'flowControl' => [
+ 'flowControlList' => [
+ ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetControlPolicy'],
+ ],
],
- 'schemes' => [
- 'https',
+ 'ramActions' => [
+ [
+ 'operationType' => 'get',
+ 'ramAction' => [
+ 'action' => 'resourcemanager:GetControlPolicy',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ResourceManager', 'resourceType' => 'ControlPolicy', 'arn' => 'acs:resourcemanager::{#accountId}:policy/controlpolicy/{#PolicyId}'],
+ ],
+ ],
+ ],
],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"ControlPolicy\\": {\\n \\"PolicyDocument\\": \\"{\\\\\\\\\\\\\\"Version\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"1\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"Statement\\\\\\\\\\\\\\":[{\\\\\\\\\\\\\\"Effect\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"Deny\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"Action\\\\\\\\\\\\\\":[\\\\\\\\\\\\\\"ram:UpdateRole\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"ram:DeleteRole\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"ram:AttachPolicyToRole\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"ram:DetachPolicyFromRole\\\\\\\\\\\\\\"],\\\\\\\\\\\\\\"Resource\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"acs:ram:*:*:role/ResourceDirectoryAccountAccessRole\\\\\\\\\\\\\\"}]}\\",\\n \\"UpdateDate\\": \\"2021-03-18T08:51:33Z\\",\\n \\"Description\\": \\"ExampleControlPolicy\\",\\n \\"EffectScope\\": \\"RAM\\",\\n \\"AttachmentCount\\": \\"0\\",\\n \\"PolicyName\\": \\"test\\",\\n \\"PolicyId\\": \\"cp-SImPt8GCEwiq****\\",\\n \\"CreateDate\\": \\"2021-03-18T08:51:33Z\\",\\n \\"PolicyType\\": \\"Custom\\",\\n \\"ControlPolicyType\\": \\"RESOURCE_CONTROL_POLICY\\"\\n },\\n \\"RequestId\\": \\"AB769936-CDFA-4D52-8CE2-A3581800044A\\"\\n}","type":"json"}]',
+ ],
+ 'GetControlPolicyEnablementStatus' => [
+ 'methods' => ['post', 'get'],
+ 'schemes' => ['https'],
'security' => [
[
'AK' => [],
],
],
- 'operationType' => 'readAndWrite',
+ 'operationType' => 'read',
'deprecated' => false,
- 'systemTags' => [
- 'operationType' => 'update',
- ],
+ 'systemTags' => ['operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free'],
'parameters' => [
[
- 'name' => 'VerificationCode',
- 'in' => 'query',
- 'schema' => [
- 'description' => 'The verification code.'."\n"
- ."\n"
- .'You can call the [SendVerificationCodeForBindSecureMobilePhone](~~SendVerificationCodeForBindSecureMobilePhone~~) operation to obtain the verification code.'."\n",
- 'type' => 'string',
- 'required' => true,
- 'example' => '123456',
- ],
- ],
- [
- 'name' => 'SecureMobilePhone',
- 'in' => 'query',
- 'schema' => [
- 'description' => 'The mobile phone number that you want to bind to the member for security purposes.'."\n"
- ."\n"
- .'The mobile phone number you specify must be the same as the mobile phone number that you specify when you call the [SendVerificationCodeForBindSecureMobilePhone](~~SendVerificationCodeForBindSecureMobilePhone~~) operation to obtain a verification code.'."\n"
- ."\n"
- .'Specify the mobile phone number in the \\<Country code>-\\<Mobile phone number> format.'."\n"
- ."\n"
- .'> Mobile phone numbers in the `86-<Mobile phone number>` format in the Chinese mainland are not supported.'."\n",
- 'type' => 'string',
- 'required' => true,
- 'example' => 'xx-13900001234',
- ],
- ],
- [
- 'name' => 'AccountId',
+ 'name' => 'ControlPolicyType',
'in' => 'query',
- 'schema' => [
- 'description' => 'The Alibaba Cloud account ID of the member.'."\n",
- 'type' => 'string',
- 'required' => true,
- 'example' => '138660628348****',
- ],
+ 'schema' => ['type' => 'string', 'example' => 'RESOURCE_CONTROL_POLICY', 'description' => '', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
- 'description' => 'The returned result.'."\n",
+ 'description' => 'The returned data.',
'type' => 'object',
'properties' => [
- 'RequestId' => [
- 'description' => 'The ID of the request.'."\n",
- 'type' => 'string',
- 'example' => '0217AFEB-5318-56D4-B167-1933D83EDF3F',
- ],
+ 'EnablementStatus' => ['description' => 'The enablement status of the control policy. Valid values:'."\n"
+ ."\n"
+ .'- Enabled: The control policy is enabled.'."\n"
+ ."\n"
+ .'- PendingEnable: The control policy is being enabled.'."\n"
+ ."\n"
+ .'- Disabled: The control policy is disabled.'."\n"
+ ."\n"
+ .'- PendingDisable: The control policy is being disabled.', 'type' => 'string', 'example' => 'Disabled', 'title' => ''],
+ 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '1DC39A4E-3B52-4EFE-9F93-4897D7FFA0C4', 'title' => ''],
+ 'ControlPolicyType' => ['type' => 'string', 'example' => 'RESOURCE_CONTROL_POLICY', 'description' => '', 'title' => ''],
],
+ 'title' => '',
+ 'example' => '',
],
],
],
- 'errorCodes' => [
- 400 => [
- [
- 'errorCode' => 'NotSupport.Site.Action',
- 'errorMessage' => 'Site does not allow current action.',
- ],
+ 'title' => 'GetControlPolicyEnablementStatus',
+ 'summary' => 'Retrieves the enablement status of the control policy.',
+ 'responseParamsDescription' => ' ',
+ 'extraInfo' => ' ',
+ 'changeSet' => [],
+ 'flowControl' => [
+ 'flowControlList' => [
+ ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetControlPolicyEnablementStatus'],
],
- 409 => [
- [
- 'errorCode' => 'NotSupport.AccountInAnotherResourceDirectory',
- 'errorMessage' => 'The specified account is an Alibaba Cloud account or already exists in another resource directory.',
- ],
- [
- 'errorCode' => 'Invalid.EnterpriseName',
- 'errorMessage' => 'You must specify the enterprise name.',
- ],
- [
- 'errorCode' => 'EnterpriseRealNameVerificationError',
- 'errorMessage' => 'The specified account does not pass enterprise real-name verification. We recommend you first complete enterprise real-name verification for the account.',
- ],
- [
- 'errorCode' => 'EntityAlreadyExists.ResourceDirectory',
- 'errorMessage' => 'The resource directory for the account is already enabled. We recommend that you do not enable the resource directory again.',
- ],
- [
- 'errorCode' => 'Invalid.VerificationCode',
- 'errorMessage' => 'The verification code is invalid.',
- ],
- [
- 'errorCode' => 'AccountTypeMismatch',
- 'errorMessage' => 'The type or status of the member account cannot satisfy the current operation.',
- ],
- [
- 'errorCode' => 'AccountSecureMobileAlreadyExists',
- 'errorMessage' => 'The secure mobile number of the member already exists.',
- ],
- [
- 'errorCode' => 'CallerIdentityError',
- 'errorMessage' => 'Please use the RAM user or role of the Management Account.',
+ ],
+ 'ramActions' => [
+ [
+ 'operationType' => 'get',
+ 'ramAction' => [
+ 'action' => 'resourcemanager:GetControlPolicyEnablementStatus',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ResourceManager', 'resourceType' => 'ResourceDirectory', 'arn' => 'acs:resourcemanager::{#accountId}:policy/controlpolicy/*'],
+ ],
],
],
],
- 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"0217AFEB-5318-56D4-B167-1933D83EDF3F\\"\\n}","errorExample":""},{"type":"xml","example":"<BindSecureMobilePhoneResponse>\\n <RequestId>0217AFEB-5318-56D4-B167-1933D83EDF3F</RequestId>\\n</BindSecureMobilePhoneResponse>","errorExample":""}]',
- 'title' => 'BindSecureMobilePhone',
- 'description' => 'You can call this API operation only to bind a mobile phone number to a member of the resource account type. You cannot call this API operation to change the mobile phone number that is bound to a member of the resource account type.'."\n"
- ."\n"
- .'To ensure that the system can record the operators of management operations, you must use a RAM user or RAM role to which the AliyunResourceDirectoryFullAccess policy is attached within the management account of your resource directory to call this API operation.'."\n",
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"EnablementStatus\\": \\"Disabled\\",\\n \\"RequestId\\": \\"1DC39A4E-3B52-4EFE-9F93-4897D7FFA0C4\\",\\n \\"ControlPolicyType\\": \\"RESOURCE_CONTROL_POLICY\\"\\n}","type":"json"}]',
],
- 'SetMemberDeletionPermission' => [
- 'summary' => 'Enables or disables the member deletion feature.',
- 'methods' => [
- 'post',
- 'get',
- ],
- 'schemes' => [
- 'https',
- ],
+ 'GetFolder' => [
+ 'methods' => ['post', 'get'],
+ 'schemes' => ['https'],
'security' => [
[
'AK' => [],
],
],
- 'operationType' => 'readAndWrite',
+ 'operationType' => 'read',
'deprecated' => false,
- 'systemTags' => [
- 'operationType' => 'update',
- ],
+ 'systemTags' => ['operationType' => 'get'],
'parameters' => [
[
- 'name' => 'Status',
+ 'name' => 'FolderId',
'in' => 'query',
- 'schema' => [
- 'description' => 'Specifies whether to enable the member deletion feature. Valid values:'."\n"
- ."\n"
- .'* Enabled: enables the member deletion feature.'."\n"
- .'* Disabled: disables the member deletion feature.'."\n",
- 'type' => 'string',
- 'required' => true,
- 'example' => 'Enabled',
- ],
+ 'schema' => ['description' => 'The ID of the folder.'."\n", 'type' => 'string', 'required' => true, 'example' => 'fd-Jyl5U7****', 'title' => ''],
],
],
'responses' => [
@@ -4685,188 +2727,180 @@
'description' => 'The returned result.'."\n",
'type' => 'object',
'properties' => [
- 'RequestId' => [
- 'description' => 'The ID of the request.'."\n",
- 'type' => 'string',
- 'example' => 'C55A4CAA-9039-1DDF-91CE-FCC134513D29',
- ],
- 'MemberDeletionStatus' => [
- 'description' => 'The status of the member deletion feature. Valid values:'."\n"
- ."\n"
- .'* Enabled: The feature is enabled.'."\n"
- .'* Disabled: The feature is disabled.'."\n",
- 'type' => 'string',
- 'example' => 'Enabled',
- ],
- 'ManagementAccountId' => [
- 'description' => 'The ID of the management account of the resource directory.'."\n",
- 'type' => 'string',
- 'example' => '151266687691****',
- ],
- 'ResourceDirectoryId' => [
- 'description' => 'The ID of the resource directory.'."\n",
- 'type' => 'string',
- 'example' => 'rd-3G****',
+ 'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => 'C2CBCA30-C8DD-423E-B4AD-4FB694C9180C', 'title' => ''],
+ 'Folder' => [
+ 'description' => 'The information about the folder.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'FolderId' => ['description' => 'The ID of the folder.'."\n", 'type' => 'string', 'example' => 'fd-Jyl5U7****', 'title' => ''],
+ 'CreateTime' => ['description' => 'The time when the folder was created.'."\n", 'type' => 'string', 'example' => '2021-06-15T06:39:08.521Z', 'title' => ''],
+ 'ParentFolderId' => ['description' => 'The ID of the parent folder.'."\n", 'type' => 'string', 'example' => 'r-Wm****', 'title' => ''],
+ 'FolderName' => ['description' => 'The name of the folder.'."\n", 'type' => 'string', 'example' => 'Applications', 'title' => ''],
+ 'ResourceDirectoryPath' => ['description' => 'The path of the folder in the resource directory.'."\n", 'type' => 'string', 'example' => 'rd-3G****/r-Wm****/fd-Jyl5U7****', 'title' => ''],
+ ],
+ 'title' => '',
],
],
+ 'title' => '',
],
],
],
'errorCodes' => [
400 => [
- [
- 'errorCode' => 'InvalidParameter.Status',
- 'errorMessage' => 'The specified Status is invalid.',
- ],
+ ['errorCode' => 'MissingParameter.FolderId', 'errorMessage' => 'You must specify FolderId.', 'description' => ''],
+ ['errorCode' => 'InvalidParameter.FolderId', 'errorMessage' => 'The FolderId is invalid.', 'description' => ''],
],
- 403 => [
- [
- 'errorCode' => 'MemberAccountAccessDenied',
- 'errorMessage' => 'The member account is not allowed to perform the operation.',
- ],
- ],
- [
- [
- 'errorCode' => 'EntityNotExists.ResourceDirectory',
- 'errorMessage' => 'The resource directory for the account is not enabled. We recommend that you first enable the resource directory for the account.',
- ],
+ 404 => [
+ ['errorCode' => 'EntityNotExists.ResourceDirectory', 'errorMessage' => 'The resource directory for the account is not enabled. We recommend that you first enable the resource directory for the account.', 'description' => ''],
+ ['errorCode' => 'EntityNotExists.Folder', 'errorMessage' => 'The resource directory folder does not exist.', 'description' => ''],
],
],
- 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"C55A4CAA-9039-1DDF-91CE-FCC134513D29\\",\\n \\"MemberDeletionStatus\\": \\"Enabled\\",\\n \\"ManagementAccountId\\": \\"151266687691****\\",\\n \\"ResourceDirectoryId\\": \\"rd-3G****\\"\\n}","errorExample":""},{"type":"xml","example":"<SetMemberDeletionPermissionResponse>\\n <ResourceDirectoryId>rd-3G****</ResourceDirectoryId>\\n <RequestId>C55A4CAA-9039-1DDF-91CE-FCC134513D29</RequestId>\\n <MemberDeletionStatus>Enabled</MemberDeletionStatus>\\n <ManagementAccountId>151266687691****</ManagementAccountId>\\n</SetMemberDeletionPermissionResponse>","errorExample":""}]',
- 'title' => 'SetMemberDeletionPermission',
- 'description' => 'Members of the resource account type can be deleted only after the member deletion feature is enabled.'."\n",
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"C2CBCA30-C8DD-423E-B4AD-4FB694C9180C\\",\\n \\"Folder\\": {\\n \\"FolderId\\": \\"fd-Jyl5U7****\\",\\n \\"CreateTime\\": \\"2021-06-15T06:39:08.521Z\\",\\n \\"ParentFolderId\\": \\"r-Wm****\\",\\n \\"FolderName\\": \\"Applications\\",\\n \\"ResourceDirectoryPath\\": \\"rd-3G****/r-Wm****/fd-Jyl5U7****\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"<?xml version=\\"1.0\\" encoding=\\"UTF-8\\" ?>\\r\\n<GetFolderResponse>\\r\\n\\t<RequestId>88EF473E-D5CD-589F-AAB3-F6E0D12AECA3</RequestId>\\r\\n\\t<Folder>\\r\\n\\t\\t<CreateTime>2021-06-15T06:39:08.521Z</CreateTime>\\r\\n\\t\\t<FolderId>fd-Jyl5U7****</FolderId>\\r\\n\\t\\t<FolderName>Applications</FolderName>\\r\\n\\t\\t<ParentFolderId>r-Wm****</ParentFolderId>\\r\\n\\t\\t<ResourceDirectoryPath>rd-3G****/r-Wm****/fd-Jyl5U7****</ResourceDirectoryPath>\\r\\n\\t</Folder>\\r\\n</GetFolderResponse>","errorExample":""}]',
+ 'title' => 'GetFolder',
+ 'summary' => 'Queries the information about a folder.',
+ 'responseParamsDescription' => ' ',
+ 'extraInfo' => ' ',
+ 'changeSet' => [],
],
- 'SetMemberDisplayNameSyncStatus' => [
- 'summary' => 'Enables or disables the Member Display Name Synchronization feature.',
- 'path' => '',
- 'methods' => [
- 'post',
- 'get',
- ],
- 'schemes' => [
- 'https',
- ],
+ 'GetHandshake' => [
+ 'methods' => ['post', 'get'],
+ 'schemes' => ['https'],
'security' => [
[
'AK' => [],
],
],
- 'operationType' => 'readAndWrite',
+ 'operationType' => 'read',
'deprecated' => false,
- 'systemTags' => [
- 'operationType' => 'update',
- 'riskType' => 'none',
- 'chargeType' => 'free',
- 'autoTest' => true,
- 'tenantRelevance' => 'publicInformation',
- ],
+ 'systemTags' => ['operationType' => 'get'],
'parameters' => [
[
- 'name' => 'Status',
+ 'name' => 'HandshakeId',
'in' => 'query',
- 'schema' => [
- 'description' => 'The status of the Member Display Name Synchronization feature. Valid values:'."\n"
- ."\n"
- .'* Enabled: The feature is enabled. This indicates that the display names specified by the management account for the members will be synchronized to the basic account information of the members. The display name information will be visible and perceptible to the members. If a notification is sent to a member, the display name of the member will be used as the appellation of the member.'."\n"
- .'* Disabled: The feature is disabled. This indicates that the display names specified by the management account for the members are valid only in the resource directory and will not be updated to the basic account information of the members.'."\n",
- 'type' => 'string',
- 'required' => true,
- 'enumValueTitles' => [],
- 'example' => 'Enabled',
- ],
+ 'schema' => ['description' => 'The ID of the invitation.'."\n", 'type' => 'string', 'required' => true, 'example' => 'h-ycm4rp****', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
- 'title' => 'Schema of Response',
- 'description' => 'The response parameters.'."\n",
+ 'description' => 'The returned result.'."\n",
'type' => 'object',
'properties' => [
- 'RequestId' => [
- 'description' => 'The request ID.'."\n",
- 'type' => 'string',
- 'example' => '9B34724D-54B0-4A51-B34D-4512372FE1BE',
- ],
- 'MemberAccountDisplayNameSyncStatus' => [
- 'description' => 'The status of the Member Display Name Synchronization feature. Valid values:'."\n"
- ."\n"
- .'* Enabled'."\n"
- .'* Disabled'."\n",
- 'type' => 'string',
- 'example' => 'Enabled',
+ 'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => '9B34724D-54B0-4A51-B34D-4512372FE1BE', 'title' => ''],
+ 'Handshake' => [
+ 'description' => 'The information of the invitation.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'Status' => ['description' => 'The status of the invitation. Valid values:'."\n"
+ ."\n"
+ .'* Pending: The invitation is waiting for confirmation.'."\n"
+ .'* Accepted: The invitation is accepted.'."\n"
+ .'* Cancelled: The invitation is canceled.'."\n"
+ .'* Declined: The invitation is rejected.'."\n"
+ .'* Expired: The invitation expires.'."\n", 'type' => 'string', 'example' => 'Pending', 'title' => ''],
+ 'ExpireTime' => ['description' => 'The time when the invitation expires. The time is displayed in UTC.'."\n", 'type' => 'string', 'example' => '2018-08-24T09:55:41Z', 'title' => ''],
+ 'CreateTime' => ['description' => 'The time when the invitation was created. The time is displayed in UTC.'."\n", 'type' => 'string', 'example' => '2018-08-10T09:55:41Z', 'title' => ''],
+ 'TargetEntity' => ['description' => 'The ID or logon email address of the invited account.'."\n", 'type' => 'string', 'example' => 'someone@example.com', 'title' => ''],
+ 'MasterAccountId' => ['description' => 'The ID of the management account of the resource directory.'."\n", 'type' => 'string', 'example' => '172841235500****', 'title' => ''],
+ 'HandshakeId' => ['description' => 'The ID of the invitation.'."\n", 'type' => 'string', 'example' => 'h-ycm4rp****', 'title' => ''],
+ 'MasterAccountRealName' => ['description' => 'The real-name verification information of the management account of the resource directory.'."\n"
+ ."\n"
+ .'> This parameter is available only when an invitee calls this operation.'."\n", 'type' => 'string', 'example' => 'company', 'title' => ''],
+ 'ResourceDirectoryId' => ['description' => 'The ID of the resource directory.'."\n", 'type' => 'string', 'example' => 'rd-abcdef****', 'title' => ''],
+ 'InvitedAccountRealName' => ['description' => 'The real-name verification information of the invitee.'."\n"
+ ."\n"
+ .'> This parameter is available only when an invitee calls this operation.'."\n", 'type' => 'string', 'example' => 'Alice', 'title' => ''],
+ 'Note' => ['description' => 'The description of the invitation.'."\n", 'type' => 'string', 'example' => 'Welcome'."\n", 'title' => ''],
+ 'MasterAccountName' => ['description' => 'The name of the management account of the resource directory.'."\n", 'type' => 'string', 'example' => 'company@example.com', 'title' => ''],
+ 'TargetType' => ['description' => 'The type of the invited account. Valid values:'."\n"
+ ."\n"
+ .'* Account: indicates the ID of the account.'."\n"
+ .'* Email: indicates the logon email address of the account.'."\n", 'type' => 'string', 'example' => 'Email', 'title' => ''],
+ 'ModifyTime' => ['description' => 'The time when the invitation was modified. The time is displayed in UTC.'."\n", 'type' => 'string', 'example' => '2018-08-10T09:55:41Z', 'title' => ''],
+ ],
+ 'title' => '',
],
],
+ 'title' => '',
],
],
],
'errorCodes' => [
400 => [
- [
- 'errorCode' => 'InvalidParameter.Status',
- 'errorMessage' => 'The specified Status is invalid.',
- ],
+ ['errorCode' => 'MissingParameter.HandshakeId', 'errorMessage' => 'You must specify HandshakeId.', 'description' => ''],
+ ['errorCode' => 'InvalidParameter.HandshakeId', 'errorMessage' => 'The HandshakeId is invalid.', 'description' => ''],
],
- 403 => [
- [
- 'errorCode' => 'MemberAccountAccessDenied',
- 'errorMessage' => 'The member account is not allowed to perform the operation.',
- ],
+ 404 => [
+ ['errorCode' => 'EntityNotExists.Handshake', 'errorMessage' => 'The specified handshake does not exist.', 'description' => ''],
],
- [
- [
- 'errorCode' => 'EntityNotExists.ResourceDirectory',
- 'errorMessage' => 'The resource directory for the account is not enabled. We recommend that you first enable the resource directory for the account.',
- ],
+ 409 => [
+ ['errorCode' => 'HandshakeStatusMismatch', 'errorMessage' => 'The invitation is invalid.', 'description' => ''],
+ ['errorCode' => 'MissingAccountRealName', 'errorMessage' => 'The name of the invited account is not specified.', 'description' => ''],
+ ['errorCode' => 'NoRealNameAuthentication', 'errorMessage' => 'The account invited has not passed real-name authentication.', 'description' => ''],
],
],
- 'staticInfo' => [
- 'returnType' => 'synchronous',
- ],
- 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"9B34724D-54B0-4A51-B34D-4512372FE1BE\\",\\n \\"MemberAccountDisplayNameSyncStatus\\": \\"Enabled\\"\\n}","type":"json"}]',
- 'title' => 'SetMemberDisplayNameSyncStatus',
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"9B34724D-54B0-4A51-B34D-4512372FE1BE\\",\\n \\"Handshake\\": {\\n \\"Status\\": \\"Pending\\",\\n \\"ExpireTime\\": \\"2018-08-24T09:55:41Z\\",\\n \\"CreateTime\\": \\"2018-08-10T09:55:41Z\\",\\n \\"TargetEntity\\": \\"someone@example.com\\",\\n \\"MasterAccountId\\": \\"172841235500****\\",\\n \\"HandshakeId\\": \\"h-ycm4rp****\\",\\n \\"MasterAccountRealName\\": \\"company\\",\\n \\"ResourceDirectoryId\\": \\"rd-abcdef****\\",\\n \\"InvitedAccountRealName\\": \\"Alice\\",\\n \\"Note\\": \\"Welcome\\\\n\\",\\n \\"MasterAccountName\\": \\"company@example.com\\",\\n \\"TargetType\\": \\"Email\\",\\n \\"ModifyTime\\": \\"2018-08-10T09:55:41Z\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"","errorExample":""}]',
+ 'title' => 'GetHandshake',
+ 'summary' => 'Queries the information of an invitation.',
+ 'responseParamsDescription' => ' ',
+ 'extraInfo' => ' ',
+ 'changeSet' => [],
],
- 'CheckAccountDelete' => [
- 'summary' => 'Performs a member deletion check.',
- 'methods' => [
- 'post',
- 'get',
- ],
- 'schemes' => [
- 'https',
- ],
+ 'GetMessageContact' => [
+ 'methods' => ['post', 'get'],
+ 'schemes' => ['https'],
'security' => [
[
'AK' => [],
],
],
- 'operationType' => 'readAndWrite',
+ 'operationType' => 'read',
'deprecated' => false,
- 'systemTags' => [
- 'operationType' => 'get',
- ],
+ 'systemTags' => ['operationType' => 'get'],
'parameters' => [
[
- 'name' => 'AccountId',
+ 'name' => 'ContactId',
'in' => 'query',
- 'schema' => [
- 'description' => 'The Alibaba Cloud account ID of the member that you want to delete.'."\n",
- 'type' => 'string',
- 'required' => true,
- 'example' => '179855839641****',
- ],
+ 'schema' => ['description' => 'The ID of the contact.'."\n", 'type' => 'string', 'required' => true, 'example' => 'c-qL4HqKONzOM7****', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
+ 'title' => 'Schema of Response',
'description' => 'The returned result.'."\n",
'type' => 'object',
'properties' => [
- 'RequestId' => [
- 'description' => 'The ID of the request.'."\n",
- 'type' => 'string',
- 'example' => '7CDDDCEF-CDFD-0825-B7D7-217BE0897B22',
+ 'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '9B34724D-54B0-4A51-B34D-4512372FE1BE'],
+ 'Contact' => [
+ 'description' => 'The information about the contact.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'ContactId' => ['description' => 'The ID of the contact.'."\n", 'type' => 'string', 'example' => 'c-qL4HqKONzOM7****', 'title' => ''],
+ 'MessageTypes' => [
+ 'description' => 'The types of messages received by the contact.'."\n",
+ 'type' => 'array',
+ 'items' => ['description' => 'The type of the message received by the contact.'."\n", 'type' => 'string', 'example' => 'AccountExpenses', 'title' => ''],
+ 'title' => '',
+ ],
+ 'CreateDate' => ['description' => 'The time when the contact was created.'."\n", 'type' => 'string', 'example' => '2023-03-27 17:19:21', 'title' => ''],
+ 'Name' => ['description' => 'The name of the contact.'."\n", 'type' => 'string', 'example' => 'tom', 'title' => ''],
+ 'EmailAddress' => ['description' => 'The email address of the contact.'."\n", 'type' => 'string', 'example' => 'someone***@example.com', 'title' => ''],
+ 'PhoneNumber' => ['description' => 'The mobile phone number of the contact.'."\n", 'type' => 'string', 'example' => '86-139****1234', 'title' => ''],
+ 'Title' => ['description' => 'The job title of the contact.'."\n", 'type' => 'string', 'example' => 'TechnicalDirector', 'title' => ''],
+ 'Members' => [
+ 'description' => 'The IDs of objects to which the contact is bound.'."\n",
+ 'type' => 'array',
+ 'items' => ['description' => 'The ID of the object to which the contact is bound.'."\n", 'type' => 'string', 'example' => 'fd-ZDNPiT****', 'title' => ''],
+ 'title' => '',
+ ],
+ 'Status' => ['description' => 'The status of the contact. Valid values:'."\n"
+ ."\n"
+ .'* Verifying'."\n"
+ .'* Active'."\n"
+ .'* Deleting'."\n", 'type' => 'string', 'example' => 'Active', 'title' => ''],
+ ],
+ 'title' => '',
],
],
],
@@ -4874,76 +2908,22 @@
],
'errorCodes' => [
400 => [
- [
- 'errorCode' => 'MissingParameter.AccountId',
- 'errorMessage' => 'You must specify AccountId.',
- ],
- [
- 'errorCode' => 'InvalidParameter.AccountId',
- 'errorMessage' => 'The AccountId is invalid.',
- ],
+ ['errorCode' => 'InvalidParameter.ContactId', 'errorMessage' => 'The ContactId is invalid.', 'description' => ''],
+ ['errorCode' => 'MissingParameter.ContactId', 'errorMessage' => 'You must specify ContactId.', 'description' => ''],
],
404 => [
- [
- 'errorCode' => 'EntityNotExists.Account',
- 'errorMessage' => 'This resource directory account does not exist.',
- ],
- [
- 'errorCode' => 'EntityNotExists.ResourceDirectory',
- 'errorMessage' => 'The resource directory for the account is not enabled. We recommend that you first enable the resource directory for the account.',
- ],
- ],
- 409 => [
- [
- 'errorCode' => 'AccountTypeOrStatusMismatch',
- 'errorMessage' => 'You cannot perform the action on the member account.',
- ],
- [
- 'errorCode' => 'InvalidControlPolicyEnablementStatus',
- 'errorMessage' => 'The control policy enablement status is not valid to perform this operation.',
- ],
- [
- 'errorCode' => 'NoLicense.ResourceDirectory',
- 'errorMessage' => 'The resource directory has not enabled the delete operation.',
- ],
- [
- 'errorCode' => 'UnknownError.Account',
- 'errorMessage' => 'The deletion failed. An unknown error occurred. Please try again later.',
- ],
- [
- 'errorCode' => 'CallerIdentityError.DeleteAccount',
- 'errorMessage' => 'Please use the RAM user or role of the management account to delete.',
- ],
- [
- 'errorCode' => 'RemoveConfilctAccountAsDelegatedAdministator',
- 'errorMessage' => 'You attempted to remove a member that is registered as a delegated administrator. To complete this operation, you must first deregister this account as a delegated administrator.',
- ],
- [
- 'errorCode' => 'LegalEntityDifferent',
- 'errorMessage' => 'The account legal entity is different from the one of the Management Account.',
- ],
- [
- 'errorCode' => 'MemberTypeError.DeleteAccount',
- 'errorMessage' => 'You can only delete accounts of the resource account type created by Resource Directory.',
- ],
+ ['errorCode' => 'EntityNotExists.Contact', 'errorMessage' => 'This Contact does not exist.', 'description' => ''],
],
],
- 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"7CDDDCEF-CDFD-0825-B7D7-217BE0897B22\\"\\n}","errorExample":""},{"type":"xml","example":"<CheckAccountDeleteResponse>\\n <RequestId>7CDDDCEF-CDFD-0825-B7D7-217BE0897B22</RequestId>\\n</CheckAccountDeleteResponse>","errorExample":""}]',
- 'title' => 'CheckAccountDelete',
- 'description' => 'Before you delete a member, you must call this API operation to check whether the member can be deleted.'."\n",
- 'extraInfo' => '### What to do next'."\n"
- ."\n"
- .'You can call the [GetAccountDeletionCheckResult](~~GetAccountDeletionCheckResult~~) operation to query the deletion check result.'."\n",
+ 'staticInfo' => ['returnType' => 'synchronous'],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"9B34724D-54B0-4A51-B34D-4512372FE1BE\\",\\n \\"Contact\\": {\\n \\"ContactId\\": \\"c-qL4HqKONzOM7****\\",\\n \\"MessageTypes\\": [\\n \\"AccountExpenses\\"\\n ],\\n \\"CreateDate\\": \\"2023-03-27 17:19:21\\",\\n \\"Name\\": \\"tom\\",\\n \\"EmailAddress\\": \\"someone***@example.com\\",\\n \\"PhoneNumber\\": \\"86-139****1234\\",\\n \\"Title\\": \\"TechnicalDirector\\",\\n \\"Members\\": [\\n \\"fd-ZDNPiT****\\"\\n ],\\n \\"Status\\": \\"Active\\"\\n }\\n}","type":"json"}]',
+ 'title' => 'GetMessageContact',
+ 'summary' => 'Queries the information about a contact.',
+ 'changeSet' => [],
],
- 'GetAccountDeletionCheckResult' => [
- 'summary' => 'Queries the result of a member deletion check.',
- 'methods' => [
- 'post',
- 'get',
- ],
- 'schemes' => [
- 'https',
- ],
+ 'GetMessageContactDeletionStatus' => [
+ 'methods' => ['post', 'get'],
+ 'schemes' => ['https'],
'security' => [
[
'AK' => [],
@@ -4951,111 +2931,52 @@
],
'operationType' => 'read',
'deprecated' => false,
- 'systemTags' => [
- 'operationType' => 'get',
- ],
+ 'systemTags' => ['operationType' => 'get'],
'parameters' => [
[
- 'name' => 'AccountId',
+ 'name' => 'ContactId',
'in' => 'query',
- 'schema' => [
- 'description' => 'The Alibaba Cloud account ID of the member that you want to delete.'."\n",
- 'type' => 'string',
- 'required' => true,
- 'example' => '179855839641****',
- ],
+ 'schema' => ['description' => 'The ID of the contact.'."\n", 'type' => 'string', 'required' => false, 'example' => 'c-qL4HqKONzOM7****', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
+ 'title' => 'Schema of Response',
'description' => 'The returned result.'."\n",
'type' => 'object',
'properties' => [
- 'RequestId' => [
- 'description' => 'The ID of the request.'."\n",
- 'type' => 'string',
- 'example' => '54AC391D-4F7F-5F08-B8D3-0AECDE6EC5BD',
- ],
- 'AccountDeletionCheckResultInfo' => [
- 'description' => 'The result of the deletion check for the member.'."\n",
+ 'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '95060F1D-6990-4645-8920-A81D1BBFE992'],
+ 'ContactDeletionStatus' => [
+ 'description' => 'The deletion information of the contact.'."\n",
'type' => 'object',
'properties' => [
- 'Status' => [
- 'description' => 'The status of the check. Valid values:'."\n"
- ."\n"
- .'* PreCheckComplete: The check is complete.'."\n"
- .'* PreChecking: The check is in progress.'."\n",
- 'type' => 'string',
- 'example' => 'PreCheckComplete',
- ],
- 'AllowDelete' => [
- 'description' => 'Indicates whether the member can be deleted. Valid values:'."\n"
- ."\n"
- .'* true: The member can be deleted.'."\n"
- .'* false: The member cannot be deleted.'."\n",
- 'type' => 'string',
- 'example' => 'false',
- ],
- 'NotAllowReason' => [
- 'description' => 'The reasons why the member cannot be deleted.'."\n"
- ."\n"
- .'> This parameter is returned only if the value of AllowDelete is false.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'A reason why the member cannot be deleted.'."\n"
- ."\n"
- .'> This parameter is returned only if the value of AllowDelete is false.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'Description' => [
- 'description' => 'The description of the check item.'."\n",
- 'type' => 'string',
- 'example' => 'This account is an Enterprise Finance associated account. Please remove the financial association of this account before deleting it.',
- ],
- 'CheckId' => [
- 'description' => 'The ID of the check item.'."\n",
- 'type' => 'string',
- 'example' => 'NON_SP_efc',
- ],
- 'CheckName' => [
- 'description' => 'The name of the cloud service to which the check item belongs.'."\n",
- 'type' => 'string',
- 'example' => 'Enterprise finance',
- ],
- ],
- ],
- ],
- 'AbandonableChecks' => [
- 'description' => 'The check items that you can choose to ignore for the member deletion.'."\n"
- ."\n"
- .'> This parameter may be returned if the value of AllowDelete is true.'."\n",
+ 'Status' => ['description' => 'The deletion status of the contact. Valid values:'."\n"
+ ."\n"
+ .'* Deleting'."\n"
+ .'* Failed'."\n", 'type' => 'string', 'example' => 'Deleting', 'title' => ''],
+ 'ContactId' => ['description' => 'The ID of the contact.'."\n", 'type' => 'string', 'example' => 'c-qL4HqKONzOM7****', 'title' => ''],
+ 'FailReasonList' => [
+ 'description' => 'The types of messages received by the contact.'."\n",
'type' => 'array',
'items' => [
- 'description' => 'A check item that you can choose to ignore for the member deletion.'."\n"
- ."\n"
- .'> This parameter may be returned if the value of AllowDelete is true.'."\n",
+ 'description' => 'The types of messages received by the contact.'."\n",
'type' => 'object',
'properties' => [
- 'Description' => [
- 'description' => 'The description of the check item.'."\n",
- 'type' => 'string',
- 'example' => 'An instance of a cloud service is running within the member. Submit a ticket to contact Alibaba Cloud technical support.'."\n",
- ],
- 'CheckId' => [
- 'description' => 'The ID of the check item.'."\n",
- 'type' => 'string',
- 'example' => 'NON_SP_cs',
- ],
- 'CheckName' => [
- 'description' => 'The name of the cloud service to which the check item belongs.'."\n",
- 'type' => 'string',
- 'example' => 'Container Service for Kubernetes'."\n",
+ 'AccountId' => ['description' => 'The Alibaba Cloud account ID of the member.', 'type' => 'string', 'example' => '199796839435****', 'title' => ''],
+ 'MessageTypes' => [
+ 'description' => 'The types of messages received by the contact.',
+ 'type' => 'array',
+ 'items' => ['description' => 'The types of messages received by the contact.', 'type' => 'string', 'example' => 'AccountExpenses', 'title' => ''],
+ 'title' => '',
],
],
+ 'title' => '',
],
+ 'title' => '',
],
],
+ 'title' => '',
],
],
],
@@ -5063,93 +2984,35 @@
],
'errorCodes' => [
400 => [
- [
- 'errorCode' => 'MissingParameter.AccountId',
- 'errorMessage' => 'You must specify AccountId.',
- ],
- [
- 'errorCode' => 'InvalidParameter.AccountId',
- 'errorMessage' => 'The AccountId is invalid.',
- ],
+ ['errorCode' => 'InvalidParameter.ContactId', 'errorMessage' => 'The ContactId is invalid.', 'description' => ''],
+ ['errorCode' => 'MissingParameter.ContactId', 'errorMessage' => 'You must specify ContactId.', 'description' => ''],
],
404 => [
- [
- 'errorCode' => 'EntityNotExists.Account',
- 'errorMessage' => 'This resource directory account does not exist.',
- ],
- [
- 'errorCode' => 'EntityNotExists.ResourceDirectory',
- 'errorMessage' => 'The resource directory for the account is not enabled. We recommend that you first enable the resource directory for the account.',
- ],
- ],
- 409 => [
- [
- 'errorCode' => 'AccountTypeOrStatusMismatch',
- 'errorMessage' => 'You cannot perform the action on the member account.',
- ],
- [
- 'errorCode' => 'EntityNotExists.CheckAccount',
- 'errorMessage' => 'There is no check task for this account',
- ],
- [
- 'errorCode' => 'UnknownError.Account',
- 'errorMessage' => 'The deletion failed. An unknown error occurred. Please try again later.',
- ],
+ ['errorCode' => 'EntityNotExists.Contact', 'errorMessage' => 'This Contact does not exist.', 'description' => ''],
],
],
- 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"54AC391D-4F7F-5F08-B8D3-0AECDE6EC5BD\\",\\n \\"AccountDeletionCheckResultInfo\\": {\\n \\"Status\\": \\"PreCheckComplete\\",\\n \\"AllowDelete\\": \\"false\\",\\n \\"NotAllowReason\\": [\\n {\\n \\"Description\\": \\"This account is an Enterprise Finance associated account. Please remove the financial association of this account before deleting it.\\",\\n \\"CheckId\\": \\"NON_SP_efc\\",\\n \\"CheckName\\": \\"Enterprise finance\\"\\n }\\n ],\\n \\"AbandonableChecks\\": [\\n {\\n \\"Description\\": \\"存在云产品实例运行,请联系客服人员提工单处理。\\",\\n \\"CheckId\\": \\"NON_SP_cs\\",\\n \\"CheckName\\": \\"容器服务\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<GetAccountDeletionCheckResultResponse>\\n <AccountDeletionCheckResultInfo>\\n <Status>PreCheckComplete</Status>\\n <NotAllowReason>\\n <Description>instance number:1</Description>\\n <CheckName>eip_pre</CheckName>\\n <CheckId>SP_eip_eip_pre</CheckId>\\n </NotAllowReason>\\n <NotAllowReason>\\n <Description>This account is an Enterprise Finance associated account. Please remove the financial association of this account before deleting it.</Description>\\n <CheckName>Enterprise finance</CheckName>\\n <CheckId>NON_SP_efc</CheckId>\\n </NotAllowReason>\\n <AllowDelete>false</AllowDelete>\\n </AccountDeletionCheckResultInfo>\\n <RequestId>54AC391D-4F7F-5F08-B8D3-0AECDE6EC5BD</RequestId>\\n</GetAccountDeletionCheckResultResponse>","errorExample":""}]',
- 'title' => 'GetAccountDeletionCheckResult',
- 'description' => 'After you call the [CheckAccountDelete](~~CheckAccountDelete~~) operation to perform a member deletion check, you can call the [GetAccountDeletionCheckResult](~~GetAccountDeletionCheckResult~~) operation to query the check result. If the check result shows that the member meets deletion requirements, you can delete the member. Otherwise, you need to first modify the items that do not meet requirements.'."\n",
+ 'staticInfo' => ['returnType' => 'synchronous'],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"95060F1D-6990-4645-8920-A81D1BBFE992\\",\\n \\"ContactDeletionStatus\\": {\\n \\"Status\\": \\"Deleting\\",\\n \\"ContactId\\": \\"c-qL4HqKONzOM7****\\",\\n \\"FailReasonList\\": [\\n {\\n \\"AccountId\\": \\"199796839435****\\",\\n \\"MessageTypes\\": [\\n \\"AccountExpenses\\"\\n ]\\n }\\n ]\\n }\\n}","type":"json"}]',
+ 'title' => 'GetMessageContactDeletionStatus',
+ 'summary' => 'Queries the deletion status of a contact.',
+ 'changeSet' => [],
],
- 'DeleteAccount' => [
- 'summary' => 'Deletes a member of the resource account type.',
- 'methods' => [
- 'post',
- 'get',
- ],
- 'schemes' => [
- 'https',
- ],
+ 'GetPayerForAccount' => [
+ 'methods' => ['post', 'get'],
+ 'schemes' => ['https'],
'security' => [
[
'AK' => [],
],
],
- 'operationType' => 'readAndWrite',
+ 'operationType' => 'read',
'deprecated' => false,
- 'systemTags' => [
- 'operationType' => 'delete',
- ],
+ 'systemTags' => ['operationType' => 'get'],
'parameters' => [
[
'name' => 'AccountId',
'in' => 'query',
- 'schema' => [
- 'description' => 'The Alibaba Cloud account ID of the member that you want to delete.'."\n",
- 'type' => 'string',
- 'required' => true,
- 'example' => '169946124551****',
- ],
- ],
- [
- 'name' => 'AbandonableCheckId',
- 'in' => 'query',
- 'style' => 'json',
- 'schema' => [
- 'description' => 'The IDs of the check items that you can choose to ignore for the member deletion.'."\n"
- ."\n"
- .'You can obtain the IDs from the response of the [GetAccountDeletionCheckResult](~~GetAccountDeletionCheckResult~~) operation.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The ID of a check item that you can choose to ignore for the member deletion.'."\n"
- ."\n"
- .'You can obtain the ID from the response of the [GetAccountDeletionCheckResult](~~GetAccountDeletionCheckResult~~) operation.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'NON_SP_cs',
- ],
- 'required' => false,
- ],
+ 'schema' => ['description' => 'The ID of the billing account.'."\n", 'type' => 'string', 'required' => true, 'example' => '12323344****', 'title' => ''],
],
],
'responses' => [
@@ -5158,114 +3021,31 @@
'description' => 'The returned result.'."\n",
'type' => 'object',
'properties' => [
- 'RequestId' => [
- 'description' => 'The ID of the request.'."\n",
- 'type' => 'string',
- 'example' => '009429F8-C1C0-5872-B674-A6C2333B9647',
- ],
- 'DeletionType' => [
- 'description' => 'The type of the deletion. Valid values:'."\n"
- ."\n"
- .'* 0: direct deletion. If the member does not have pay-as-you-go resources that are purchased within the previous 30 days, the system directly deletes the member.'."\n"
- .'* 1: deletion with a silence period. If the member has pay-as-you-go resources that are purchased within the previous 30 days, the member enters a silence period. The system starts to delete the member until the silence period ends. For more information about the silence period, see [What is the silence period for member deletion?](~~446079~~)'."\n",
- 'type' => 'string',
- 'example' => '0',
- ],
+ 'PayerAccountName' => ['description' => 'The name of the billing account.'."\n", 'type' => 'string', 'example' => 'Alice', 'title' => ''],
+ 'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => '9B34724D-54B0-4A51-B34D-4512372FE1BE', 'title' => ''],
+ 'PayerAccountId' => ['description' => 'The ID of the billing account.'."\n", 'type' => 'string', 'example' => '172841235500****', 'title' => ''],
],
+ 'title' => '',
],
],
],
'errorCodes' => [
- 400 => [
- [
- 'errorCode' => 'MissingParameter.AccountId',
- 'errorMessage' => 'You must specify AccountId.',
- ],
- [
- 'errorCode' => 'InvalidParameter.AccountId',
- 'errorMessage' => 'The AccountId is invalid.',
- ],
- ],
404 => [
- [
- 'errorCode' => 'EntityNotExists.Account',
- 'errorMessage' => 'This resource directory account does not exist.',
- ],
- [
- 'errorCode' => 'EntityNotExists.ResourceDirectory',
- 'errorMessage' => 'The resource directory for the account is not enabled. We recommend that you first enable the resource directory for the account.',
- ],
- ],
- 409 => [
- [
- 'errorCode' => 'AccountTypeOrStatusMismatch',
- 'errorMessage' => 'You cannot perform the action on the member account.',
- ],
- [
- 'errorCode' => 'NoLicense.ResourceDirectory',
- 'errorMessage' => 'The resource directory has not enabled the delete operation.',
- ],
- [
- 'errorCode' => 'UnknownError.Account',
- 'errorMessage' => 'Delete failed. An unknown error occurred. Please try again later.',
- ],
- [
- 'errorCode' => 'AccountNotExist.DeleteAccount',
- 'errorMessage' => 'The deletion failed. The account does not exist. Please confirm whether it has been deleted.',
- ],
- [
- 'errorCode' => 'ExistProcessingDeleteFlow.DeleteAccount',
- 'errorMessage' => 'The request is invalid. The account is already in the process of deletion. Please do not repeat the operation.',
- ],
- [
- 'errorCode' => 'CreditControlBlock.DeleteAccount',
- 'errorMessage' => 'The deletion failed. There are unsettled bills in the current account. Please settle them first and try again.',
- ],
- [
- 'errorCode' => 'SpBlock.DeleteAccount',
- 'errorMessage' => 'The deletion failed. There is a specific product under the current account. Please clear it and try again.',
- ],
- [
- 'errorCode' => 'PeripheralError.DeleteAccount',
- 'errorMessage' => 'The deletion failed. The deletion process is abnormal. Please try again later.',
- ],
- [
- 'errorCode' => 'MemberTypeError.DeleteAccount',
- 'errorMessage' => 'Cloud account type members do not support deletion.',
- ],
- [
- 'errorCode' => 'CallerIdentityError.DeleteAccount',
- 'errorMessage' => 'Please use the RAM user or role of the management account to delete.',
- ],
- [
- 'errorCode' => 'ExistPrepaidInstance.DeleteAccount',
- 'errorMessage' => 'The deletion failed. There are prepaid products under the current account. Please release them and try again.',
- ],
- [
- 'errorCode' => 'ForbidDelete.Account',
- 'errorMessage' => 'Delete is prohibited. The current account is abnormal. Please contact customer service.',
- ],
- [
- 'errorCode' => 'QuotaExceeded.DeleteAccount',
- 'errorMessage' => 'You have exceeded delete account quota for the past 30 days.',
- ],
+ ['errorCode' => 'EntityNotExists.ResourceDirectory', 'errorMessage' => 'The resource directory for the account is not enabled. We recommend that you first enable the resource directory for the account.', 'description' => ''],
+ ['errorCode' => 'EntityNotExists.Account', 'errorMessage' => 'This resource directory account does not exist.', 'description' => ''],
],
],
- 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"009429F8-C1C0-5872-B674-A6C2333B9647\\",\\n \\"DeletionType\\": \\"0\\"\\n}","errorExample":""},{"type":"xml","example":"<DeleteAccountResponse>\\n <RequestId>55B22096-0D0C-542D-9A01-9B95977D3A10</RequestId>\\n <DeletionType>0</DeletionType>\\n</DeleteAccountResponse>","errorExample":""}]',
- 'title' => 'DeleteAccount',
- 'description' => 'Before you delete a member, we recommend that you call the [CheckAccountDelete](~~CheckAccountDelete~~) and [GetAccountDeletionCheckResult](~~GetAccountDeletionCheckResult~~) operations to check whether the member meets deletion requirements. You can call the DeleteAccount operation to delete only members that meet the deletion requirements.'."\n"
- ."\n"
- .'After you submit a deletion request for a member, you can call the [GetAccountDeletionStatus](~~GetAccountDeletionStatus~~) operation to query the deletion status of the member. After a member is deleted, the resources and data within the member are deleted, and you can no longer use the member to log on to the Alibaba Cloud Management Console. In addition, the member cannot be recovered. Proceed with caution. For more information about how to delete a member, see [Delete a member of the resource account type](~~446078~~).'."\n",
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"PayerAccountName\\": \\"Alice\\",\\n \\"RequestId\\": \\"9B34724D-54B0-4A51-B34D-4512372FE1BE\\",\\n \\"PayerAccountId\\": \\"172841235500****\\"\\n}","errorExample":""},{"type":"xml","example":"<?xml version=\\"1.0\\" encoding=\\"UTF-8\\" ?>\\r\\n<GetPayerForAccountResponse>\\r\\n\\t<RequestId>9B34724D-54B0-4A51-B34D-4512372FE1BE</RequestId>\\r\\n\\t<PayerAccountId>172841235500****</PayerAccountId>\\r\\n\\t<PayerAccountName>Alice</PayerAccountName>\\r\\n</GetPayerForAccountResponse>\\t\\r\\n","errorExample":""}]',
+ 'title' => 'GetPayerForAccount',
+ 'summary' => 'Queries the information of a billing account.',
+ 'requestParamsDescription' => ' ',
+ 'responseParamsDescription' => ' ',
+ 'extraInfo' => ' ',
+ 'changeSet' => [],
],
- 'GetAccountDeletionStatus' => [
- 'summary' => 'Queries the deletion status of a member.',
- 'methods' => [
- 'post',
- 'get',
- ],
- 'schemes' => [
- 'https',
- ],
+ 'GetResourceDirectory' => [
+ 'methods' => ['post', 'get'],
+ 'schemes' => ['https'],
'security' => [
[
'AK' => [],
@@ -5273,123 +3053,62 @@
],
'operationType' => 'read',
'deprecated' => false,
- 'systemTags' => [
- 'operationType' => 'get',
- ],
- 'parameters' => [
- [
- 'name' => 'AccountId',
- 'in' => 'query',
- 'schema' => [
- 'description' => 'The Alibaba Cloud account ID of the member.'."\n",
- 'type' => 'string',
- 'required' => true,
- 'example' => '169946124551****',
- ],
- ],
- ],
+ 'systemTags' => ['operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free'],
+ 'parameters' => [],
'responses' => [
200 => [
'schema' => [
- 'description' => 'The returned result.'."\n",
+ 'description' => 'The response parameters.'."\n",
'type' => 'object',
'properties' => [
- 'RdAccountDeletionStatus' => [
- 'description' => 'The deletion status of the member.'."\n",
+ 'RequestId' => ['description' => 'The ID of the request.', 'type' => 'string', 'example' => 'CD76D376-2517-4924-92C5-DBC52262F93A', 'title' => ''],
+ 'ResourceDirectory' => [
+ 'description' => 'The information about the resource directory.'."\n",
'type' => 'object',
'properties' => [
- 'Status' => [
- 'description' => 'The status. Valid values:'."\n"
- ."\n"
- .'* Success: The member is deleted.'."\n"
- .'* Checking: A deletion check is being performed for the member.'."\n"
- .'* Deleting: The member is being deleted.'."\n"
- .'* CheckFailed: The deletion check for the member fails.'."\n"
- .'* DeleteFailed: The member fails to be deleted.'."\n",
- 'type' => 'string',
- 'example' => 'Success',
- ],
- 'AccountId' => [
- 'description' => 'The Alibaba Cloud account ID of the member.'."\n",
- 'type' => 'string',
- 'example' => '169946124551****',
- ],
- 'CreateTime' => [
- 'description' => 'The start time of the deletion.'."\n",
- 'type' => 'string',
- 'example' => '2022-08-23T17:05:30+08:00',
- ],
- 'DeletionTime' => [
- 'description' => 'The end time of the deletion.'."\n",
- 'type' => 'string',
- 'required' => true,
- 'example' => '2022-08-23T17:06:01+08:00',
- ],
- 'FailReasonList' => [
- 'description' => 'The reasons why the member fails to be deleted.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'A reason why the member fails to be deleted.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'Name' => [
- 'description' => 'The name of the cloud service to which the check item belongs.'."\n",
- 'type' => 'string',
- 'example' => 'Others',
- ],
- 'Description' => [
- 'description' => 'The description of the check item.'."\n",
- 'type' => 'string',
- 'example' => 'This account has a payer account. Please release the financial relationship of this account first.',
- ],
- ],
- ],
- ],
- 'DeletionType' => [
- 'description' => 'The type of the deletion. Valid values:'."\n"
- ."\n"
- .'* 0: direct deletion. If the member does not have pay-as-you-go resources that are purchased within the previous 30 days, the system directly deletes the member.'."\n"
- .'* 1: deletion with a silence period. If the member has pay-as-you-go resources that are purchased within the previous 30 days, the member enters a silence period of 45 days. The system starts to delete the member until the silence period ends. For more information about the silence period, see [What is the silence period for member deletion?](~~446079~~)'."\n",
- 'type' => 'string',
- 'example' => '0',
- ],
+ 'RootFolderId' => ['description' => 'The ID of the Root folder.', 'type' => 'string', 'example' => 'r-Zo****', 'title' => ''],
+ 'ResourceDirectoryId' => ['description' => 'The ID of the resource directory.', 'type' => 'string', 'example' => 'rd-St****', 'title' => ''],
+ 'CreateTime' => ['description' => 'The time when the resource directory was enabled.', 'type' => 'string', 'example' => '2019-02-18T15:32:10.473Z', 'title' => ''],
+ 'MasterAccountId' => ['description' => 'The ID of the management account.', 'type' => 'string', 'example' => '172845045600****', 'title' => ''],
+ 'MasterAccountName' => ['description' => 'The name of the management account.', 'type' => 'string', 'example' => 'aliyun-admin', 'title' => ''],
+ 'ControlPolicyStatus' => ['description' => 'The status of the Control Policy feature. Valid values:'."\n"
+ ."\n"
+ .'- Enabled: The feature is enabled.'."\n"
+ .'- PendingEnable: The feature is being enabled.'."\n"
+ .'- Disabled: The feature is disabled.'."\n"
+ .'- PendingDisable: The feature is being disabled.', 'type' => 'string', 'example' => 'Enabled', 'title' => ''],
+ 'MemberDeletionStatus' => ['description' => 'The status of the member deletion feature. Valid values:'."\n"
+ ."\n"
+ .'- Enabled: The feature is enabled. You can call the [DeleteAccount](~~DeleteAccount~~) operation to delete members of the resource account type.'."\n"
+ .'- Disabled: The feature is disabled. You cannot delete members of the resource account type.', 'type' => 'string', 'example' => 'Enabled', 'title' => ''],
+ 'IdentityInformation' => ['description' => 'The real-name verification information.', 'type' => 'string', 'example' => '*** Co., Ltd.', 'title' => ''],
+ 'MemberAccountDisplayNameSyncStatus' => ['description' => 'The status of the Member Display Name Synchronization feature. Valid values:'."\n"
+ ."\n"
+ .'* Enabled'."\n"
+ .'* Disabled'."\n", 'type' => 'string', 'example' => 'Enabled', 'title' => ''],
],
- ],
- 'RequestId' => [
- 'description' => 'The ID of the request.'."\n",
- 'type' => 'string',
- 'example' => '8AA43293-7C8F-5730-8F2D-7F864EC092C5',
+ 'title' => '',
],
],
+ 'title' => '',
],
],
],
'errorCodes' => [
404 => [
- [
- 'errorCode' => 'EntityNotExists.Account',
- 'errorMessage' => 'This resource directory account does not exist.',
- ],
- ],
- 409 => [
- [
- 'errorCode' => 'EntityNotExists.CheckAccount',
- 'errorMessage' => 'There is no check task for this account',
- ],
+ ['errorCode' => 'ResourceDirectoryNotInUse', 'errorMessage' => 'The specified account is not an Alibaba Cloud account or a member account of the resource directory.', 'description' => ''],
],
],
- 'responseDemo' => '[{"type":"json","example":"{\\n \\"RdAccountDeletionStatus\\": {\\n \\"Status\\": \\"Success\\",\\n \\"AccountId\\": \\"169946124551****\\",\\n \\"CreateTime\\": \\"2022-08-23T17:05:30+08:00\\",\\n \\"DeletionTime\\": \\"2022-08-23T17:06:01+08:00\\",\\n \\"FailReasonList\\": [\\n {\\n \\"Name\\": \\"Others\\",\\n \\"Description\\": \\"This account has a payer account. Please release the financial relationship of this account first.\\"\\n }\\n ],\\n \\"DeletionType\\": \\"0\\"\\n },\\n \\"RequestId\\": \\"8AA43293-7C8F-5730-8F2D-7F864EC092C5\\"\\n}","errorExample":""},{"type":"xml","example":"<GetAccountDeletionStatusResponse>\\n <RequestId>8AA43293-7C8F-5730-8F2D-7F864EC092C5</RequestId>\\n <RdAccountDeletionStatus>\\n <Status>Success</Status>\\n <AccountId>169946124551****</AccountId>\\n <DeletionType>0</DeletionType>\\n <CreateTime>2022-08-23T17:05:30+08:00</CreateTime>\\n <DeletionTime>2022-08-23T17:06:01+08:00</DeletionTime>\\n </RdAccountDeletionStatus>\\n</GetAccountDeletionStatusResponse>","errorExample":""}]',
- 'title' => 'GetAccountDeletionStatus',
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CD76D376-2517-4924-92C5-DBC52262F93A\\",\\n \\"ResourceDirectory\\": {\\n \\"RootFolderId\\": \\"r-Zo****\\",\\n \\"ResourceDirectoryId\\": \\"rd-St****\\",\\n \\"CreateTime\\": \\"2019-02-18T15:32:10.473Z\\",\\n \\"MasterAccountId\\": \\"172845045600****\\",\\n \\"MasterAccountName\\": \\"aliyun-admin\\",\\n \\"ControlPolicyStatus\\": \\"Enabled\\",\\n \\"MemberDeletionStatus\\": \\"Enabled\\",\\n \\"IdentityInformation\\": \\"*** Co., Ltd.\\",\\n \\"MemberAccountDisplayNameSyncStatus\\": \\"Enabled\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"","errorExample":""}]',
+ 'title' => 'GetResourceDirectory',
+ 'summary' => 'Queries the information of a resource directory. If you use a management account to call this API operation, the system returns the information of the resource directory that is enabled by using the management account. If you use a member to call this operation, the system returns the information of',
+ 'responseParamsDescription' => ' ',
+ 'extraInfo' => ' ',
+ 'changeSet' => [],
],
- 'TagResources' => [
- 'summary' => 'Adds tags to the members in a resource directory.',
- 'methods' => [
- 'post',
- 'get',
- ],
- 'schemes' => [
- 'https',
- ],
+ 'InviteAccountToResourceDirectory' => [
+ 'methods' => ['post', 'get'],
+ 'schemes' => ['https'],
'security' => [
[
'AK' => [],
@@ -5397,80 +3116,53 @@
],
'operationType' => 'readAndWrite',
'deprecated' => false,
- 'systemTags' => [
- 'operationType' => 'update',
- 'riskType' => 'none',
- 'chargeType' => 'free',
- ],
+ 'systemTags' => ['operationType' => 'create'],
'parameters' => [
[
- 'name' => 'ResourceId',
+ 'name' => 'TargetEntity',
'in' => 'query',
- 'style' => 'flat',
- 'schema' => [
- 'description' => 'The Alibaba Cloud account IDs of the members.'."\n"
- ."\n"
- .'You can specify a maximum of 50 IDs.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The Alibaba Cloud account ID of a member.'."\n"
- ."\n"
- .'You can specify a maximum of 50 IDs.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => '1524***',
- ],
- 'required' => true,
- ],
+ 'schema' => ['description' => 'The ID or logon email address of the account that you want to invite.'."\n", 'type' => 'string', 'required' => true, 'example' => 'someone@example.com', 'title' => ''],
+ ],
+ [
+ 'name' => 'TargetType',
+ 'in' => 'query',
+ 'schema' => ['description' => 'The type of the invited account. Valid values:'."\n"
+ ."\n"
+ .'* Account: indicates the ID of the account.'."\n"
+ .'* Email: indicates the logon email address of the account.'."\n", 'type' => 'string', 'required' => true, 'example' => 'Email', 'title' => ''],
+ ],
+ [
+ 'name' => 'Note',
+ 'in' => 'query',
+ 'schema' => ['description' => 'The description of the invitation.'."\n"
+ ."\n"
+ .'The description can be up to 1,024 characters in length.'."\n", 'type' => 'string', 'required' => false, 'example' => 'Welcome'."\n", 'title' => ''],
],
[
'name' => 'Tag',
'in' => 'query',
'style' => 'flat',
'schema' => [
- 'description' => 'The tags.'."\n"
- ."\n"
- .'You can specify a maximum of 20 tags.'."\n",
+ 'description' => 'The tags.',
'type' => 'array',
'items' => [
- 'description' => 'A tag.'."\n"
- ."\n"
- .'You can specify a maximum of 20 tags.'."\n",
+ 'description' => 'The tags.',
'type' => 'object',
'properties' => [
- 'Key' => [
- 'description' => 'The key of the tag.'."\n"
- ."\n"
- .'A tag key can be a maximum of 128 characters in length. It cannot contain `http://` or `https://` and cannot start with `acs:` or `aliyun`.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'k1',
- ],
- 'Value' => [
- 'description' => 'The value of the tag.'."\n"
- ."\n"
- .'A tag value can be a maximum of 128 characters in length. It cannot contain `http://` or `https://` and cannot start with `acs:`.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'v1',
- ],
+ 'Key' => ['description' => 'The tag key.'."\n", 'type' => 'string', 'required' => false, 'example' => 'k1', 'title' => ''],
+ 'Value' => ['description' => 'The tag value.'."\n", 'type' => 'string', 'required' => false, 'example' => 'v1', 'title' => ''],
],
'required' => false,
+ 'title' => '',
],
- 'required' => true,
+ 'required' => false,
+ 'title' => '',
],
],
[
- 'name' => 'ResourceType',
+ 'name' => 'ParentFolderId',
'in' => 'query',
- 'schema' => [
- 'description' => 'The type of the objects to which you want to add tags. Valid values:'."\n"
- ."\n"
- .'* Account: member'."\n",
- 'type' => 'string',
- 'required' => true,
- 'example' => 'Account',
- ],
+ 'schema' => ['description' => 'The ID of the parent folder.'."\n", 'type' => 'string', 'required' => false, 'example' => 'r-b1****', 'title' => ''],
],
],
'responses' => [
@@ -5479,106 +3171,145 @@
'description' => 'The returned result.'."\n",
'type' => 'object',
'properties' => [
- 'RequestId' => [
- 'description' => 'The ID of the request.'."\n",
- 'type' => 'string',
- 'example' => 'E7747EDF-EDDC-5B38-9B6A-6392B9C92B1C',
+ 'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => '9B34724D-54B0-4A51-B34D-4512372FE1BE', 'title' => ''],
+ 'Handshake' => [
+ 'description' => 'The information about the invitation.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'Status' => ['description' => 'The status of the invitation. Valid values:'."\n"
+ ."\n"
+ .'* Pending'."\n"
+ .'* Accepted'."\n"
+ .'* Cancelled'."\n"
+ .'* Declined'."\n"
+ .'* Expired'."\n", 'type' => 'string', 'example' => 'Pending', 'title' => ''],
+ 'ExpireTime' => ['description' => 'The time when the invitation expires. The time is displayed in UTC.'."\n", 'type' => 'string', 'example' => '2018-08-24T09:55:41Z', 'title' => ''],
+ 'ResourceDirectoryId' => ['description' => 'The ID of the resource directory.'."\n", 'type' => 'string', 'example' => 'rd-abcdef****', 'title' => ''],
+ 'CreateTime' => ['description' => 'The time when the invitation was created. The time is displayed in UTC.'."\n", 'type' => 'string', 'example' => '2018-08-10T09:55:41Z', 'title' => ''],
+ 'Note' => ['description' => 'The description of the invitation.'."\n", 'type' => 'string', 'example' => 'Welcome'."\n", 'title' => ''],
+ 'TargetEntity' => ['description' => 'The ID or logon email address of the invited account.'."\n", 'type' => 'string', 'example' => 'someone@example.com', 'title' => ''],
+ 'MasterAccountId' => ['description' => 'The ID of the management account of the resource directory.'."\n", 'type' => 'string', 'example' => '172841235500****', 'title' => ''],
+ 'MasterAccountName' => ['description' => 'The name of the management account of the resource directory.'."\n", 'type' => 'string', 'example' => 'Alice', 'title' => ''],
+ 'ModifyTime' => ['description' => 'The time when the invitation was modified. The time is displayed in UTC.'."\n", 'type' => 'string', 'example' => '2018-08-10T09:55:41Z', 'title' => ''],
+ 'TargetType' => ['description' => 'The type of the invited account. Valid values:'."\n"
+ ."\n"
+ .'* Account: indicates the ID of the account.'."\n"
+ .'* Email: indicates the logon email address of the account.'."\n", 'type' => 'string', 'example' => 'Email', 'title' => ''],
+ 'HandshakeId' => ['description' => 'The ID of the invitation.'."\n", 'type' => 'string', 'example' => 'h-ycm4rp****', 'title' => ''],
+ ],
+ 'title' => '',
],
],
+ 'title' => '',
],
],
],
- 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"E7747EDF-EDDC-5B38-9B6A-6392B9C92B1C\\"\\n}","errorExample":""},{"type":"xml","example":"<TagResourcesResponse>\\n <RequestId>E7747EDF-EDDC-5B38-9B6A-6392B9C92B1C</RequestId>\\n</TagResourcesResponse>","errorExample":""}]',
- 'title' => 'TagResources',
- ],
- 'UntagResources' => [
- 'summary' => 'Removes tags from the members in a resource directory.',
- 'methods' => [
- 'post',
- 'get',
- ],
- 'schemes' => [
- 'https',
+ 'errorCodes' => [
+ 400 => [
+ ['errorCode' => 'MissingParameter.TargetEntity', 'errorMessage' => 'You must specify TargetEntity.', 'description' => ''],
+ ['errorCode' => 'InvalidParameter.TargetEntity', 'errorMessage' => 'The TargetEntity is invalid.', 'description' => ''],
+ ['errorCode' => 'MissingParameter.TargetType', 'errorMessage' => 'You must specify TargetType.', 'description' => ''],
+ ['errorCode' => 'InvalidParameter.TargetType', 'errorMessage' => 'The TargetType is invalid.', 'description' => ''],
+ ['errorCode' => 'InvalidParameter.Note.Length', 'errorMessage' => 'The length of the invitation note exceeds the limit.', 'description' => ''],
+ ['errorCode' => 'InvalidParameter.Note', 'errorMessage' => 'The Note is invalid.', 'description' => ''],
+ ['errorCode' => 'InvalidParameter.ParentFolderId', 'errorMessage' => 'The ParentFolderId is invalid.', 'description' => ''],
+ ['errorCode' => 'InvalidParameter.AccountId', 'errorMessage' => 'The AccountId is invalid.', 'description' => ''],
+ ],
+ 404 => [
+ ['errorCode' => 'EntityNotExists.ResourceDirectory', 'errorMessage' => 'The resource directory for the account is not enabled. We recommend that you first enable the resource directory for the account.', 'description' => ''],
+ ['errorCode' => 'EntityNotExists.Folder', 'errorMessage' => 'The resource directory folder does not exist.', 'description' => ''],
+ ],
+ 409 => [
+ ['errorCode' => 'LimitExceeded.Account', 'errorMessage' => 'The maximum number of member accounts in a resource directory exceeds the limit.', 'description' => ''],
+ ['errorCode' => 'LimitExceeded.InvitationRate', 'errorMessage' => 'The number of invitations sent exceeds the limit.', 'description' => ''],
+ ['errorCode' => 'EntityAlreadyExists.Handshake', 'errorMessage' => 'Handshakes with the same target entity already exist.', 'description' => ''],
+ ['errorCode' => 'Invalid.AccountType', 'errorMessage' => 'The specified profile type of account is invalid.', 'description' => ''],
+ ['errorCode' => 'EntityAlreadyExists.ResourceDir.Account', 'errorMessage' => 'This resource directory account already exists.', 'description' => ''],
+ ['errorCode' => 'LimitExceeded.Invitation.InvalidTarget', 'errorMessage' => 'The maximum number of invalid targets that can be invited by a single account is exceeded.', 'description' => ''],
+ ['errorCode' => 'NotSupport.AccountInAnotherResourceDirectory', 'errorMessage' => 'The invited account already belongs to another resource directory. To continue, remove the account from the other resource directory.', 'description' => ''],
+ ['errorCode' => 'LegalEntityMismatch', 'errorMessage' => 'The account does not have the same legal entity as the management account.', 'description' => ''],
+ ],
],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"9B34724D-54B0-4A51-B34D-4512372FE1BE\\",\\n \\"Handshake\\": {\\n \\"Status\\": \\"Pending\\",\\n \\"ExpireTime\\": \\"2018-08-24T09:55:41Z\\",\\n \\"ResourceDirectoryId\\": \\"rd-abcdef****\\",\\n \\"CreateTime\\": \\"2018-08-10T09:55:41Z\\",\\n \\"Note\\": \\"Welcome\\\\n\\",\\n \\"TargetEntity\\": \\"someone@example.com\\",\\n \\"MasterAccountId\\": \\"172841235500****\\",\\n \\"MasterAccountName\\": \\"Alice\\",\\n \\"ModifyTime\\": \\"2018-08-10T09:55:41Z\\",\\n \\"TargetType\\": \\"Email\\",\\n \\"HandshakeId\\": \\"h-ycm4rp****\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"","errorExample":""}]',
+ 'title' => 'InviteAccountToResourceDirectory',
+ 'summary' => 'Invites an account to join a resource directory.',
+ 'responseParamsDescription' => ' ',
+ 'extraInfo' => ' ',
+ 'changeSet' => [],
+ ],
+ 'ListAccounts' => [
+ 'methods' => ['post', 'get'],
+ 'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
- 'operationType' => 'readAndWrite',
+ 'operationType' => 'read',
'deprecated' => false,
- 'systemTags' => [
- 'operationType' => 'update',
- ],
+ 'systemTags' => ['operationType' => 'list', 'riskType' => 'none', 'chargeType' => 'free'],
'parameters' => [
[
- 'name' => 'All',
+ 'name' => 'PageNumber',
'in' => 'query',
- 'schema' => [
- 'description' => 'Specifies whether to remove all tags from the specified members. Valid values:'."\n"
- ."\n"
- .'* false (default value)'."\n"
- .'* true'."\n",
- 'type' => 'boolean',
- 'required' => false,
- 'example' => 'false',
- ],
+ 'schema' => ['description' => 'The number of the page to return.'."\n"
+ ."\n"
+ .'Pages start from page 1. Default value: 1.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1', 'title' => ''],
],
[
- 'name' => 'ResourceId',
+ 'name' => 'PageSize',
'in' => 'query',
- 'style' => 'flat',
- 'schema' => [
- 'description' => 'The Alibaba Cloud account IDs of the members.'."\n"
- ."\n"
- .'You can specify a maximum of 50 IDs.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The Alibaba Cloud account ID of a member.'."\n"
- ."\n"
- .'You can specify a maximum of 50 IDs.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => '1524****',
- ],
- 'required' => true,
- ],
+ 'schema' => ['description' => 'The number of entries to return on each page.'."\n"
+ ."\n"
+ .'Valid values: 1 to 100. Default value: 10.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '10', 'title' => ''],
],
[
- 'name' => 'TagKey',
+ 'name' => 'QueryKeyword',
+ 'in' => 'query',
+ 'schema' => ['description' => 'The keyword used for the query, such as the display name of a member.'."\n"
+ ."\n"
+ .'Fuzzy match is supported.'."\n", 'type' => 'string', 'required' => false, 'example' => 'Advance', 'title' => ''],
+ ],
+ [
+ 'name' => 'Tag',
'in' => 'query',
'style' => 'flat',
'schema' => [
- 'description' => 'The tag keys.'."\n"
- ."\n"
- .'You can specify a maximum of 20 tag keys.'."\n"
- ."\n"
- .'> If you set the `All` parameter to `true`, you do not need to specify tag keys.'."\n",
+ 'description' => 'The tags. This parameter specifies a filter condition.'."\n",
'type' => 'array',
'items' => [
- 'description' => 'A tag key.'."\n"
- ."\n"
- .'You can specify a maximum of 20 tag keys.'."\n"
- ."\n"
- .'> If you set the `All` parameter to `true`, you do not need to specify tag keys.'."\n",
- 'type' => 'string',
+ 'description' => 'The information of a tag.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'Key' => ['description' => 'The tag key.'."\n", 'type' => 'string', 'required' => false, 'example' => 'tag_key', 'title' => ''],
+ 'Value' => ['description' => 'The tag value.'."\n", 'type' => 'string', 'required' => false, 'example' => 'tag_value', 'title' => ''],
+ ],
'required' => false,
- 'example' => 'k1',
+ 'title' => '',
],
'required' => false,
+ 'title' => '',
],
],
[
- 'name' => 'ResourceType',
+ 'name' => 'IncludeTags',
'in' => 'query',
- 'schema' => [
- 'description' => 'The type of the objects from which you want to remove tags. Valid values:'."\n"
- ."\n"
- .'* Account: member'."\n",
- 'type' => 'string',
- 'required' => true,
- 'example' => 'Account',
- ],
+ 'schema' => ['description' => 'Specifies whether to return information about tags. Valid values:'."\n"
+ ."\n"
+ .'* false (default value)'."\n"
+ .'* true'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'true', 'title' => ''],
+ ],
+ [
+ 'name' => 'MaxResults',
+ 'in' => 'query',
+ 'schema' => ['description' => 'The number of entries per page. After you configure this parameter, token-based paging is preferentially used.'."\n"
+ ."\n"
+ .'Valid values: 1 to 100. Default value: 10.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '10', 'title' => ''],
+ ],
+ [
+ 'name' => 'NextToken',
+ 'in' => 'query',
+ 'schema' => ['description' => 'The pagination token that is used in the next request to retrieve a new page of results. If you leave this parameter empty, the query starts from the beginning.'."\n", 'type' => 'string', 'required' => false, 'example' => 'TGlzdFJlc291cm****', 'title' => ''],
],
],
'responses' => [
@@ -5587,27 +3318,108 @@
'description' => 'The returned result.'."\n",
'type' => 'object',
'properties' => [
- 'RequestId' => [
- 'description' => 'The ID of the request.'."\n",
- 'type' => 'string',
- 'example' => 'E7747EDF-EDDC-5B38-9B6A-6392B9C92B1C',
+ 'TotalCount' => ['description' => 'The total number of entries returned.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '2', 'title' => ''],
+ 'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => '7B8A4E7D-6CFF-471D-84DF-195A7A241ECB', 'title' => ''],
+ 'PageSize' => ['description' => 'The number of entries returned per page.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '5', 'title' => ''],
+ 'PageNumber' => ['description' => 'The page number of the returned page.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''],
+ 'NextToken' => ['description' => 'A pagination token. It can be used in the next request to retrieve a new page of results. If NextToken is empty, no next page exists.'."\n", 'type' => 'string', 'example' => 'TGlzdFJlc291cm****', 'title' => ''],
+ 'Accounts' => [
+ 'type' => 'object',
+ 'itemNode' => true,
+ 'properties' => [
+ 'Account' => [
+ 'description' => 'The information about the members.'."\n",
+ 'title' => '',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The information of a member.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'Status' => ['description' => 'The status of the member. Valid values:'."\n"
+ ."\n"
+ .'* CreateSuccess: The member is created.'."\n"
+ .'* PromoteVerifying: The upgrade of the member is under confirmation.'."\n"
+ .'* PromoteFailed: The upgrade of the member fails.'."\n"
+ .'* PromoteExpired: The upgrade of the member expires.'."\n"
+ .'* PromoteCancelled: The upgrade of the member is canceled.'."\n"
+ .'* PromoteSuccess: The member is upgraded.'."\n"
+ .'* InviteSuccess: The member accepts the invitation.'."\n", 'type' => 'string', 'example' => 'CreateSuccess', 'title' => ''],
+ 'Type' => ['description' => 'The type of the member. Valid values:'."\n"
+ ."\n"
+ .'* CloudAccount: cloud account'."\n"
+ .'* ResourceAccount: resource account'."\n", 'type' => 'string', 'example' => 'ResourceAccount', 'title' => ''],
+ 'DisplayName' => ['description' => 'The display name of the member.'."\n", 'type' => 'string', 'example' => 'test', 'title' => ''],
+ 'FolderId' => ['description' => 'The ID of the folder.'."\n", 'type' => 'string', 'example' => 'fd-QRzuim****', 'title' => ''],
+ 'ResourceDirectoryId' => ['description' => 'The ID of the resource directory.'."\n", 'type' => 'string', 'example' => 'rd-3G****', 'title' => ''],
+ 'JoinTime' => ['description' => 'The time when the member joined the resource directory. The time is displayed in UTC.'."\n", 'type' => 'string', 'example' => '2021-01-18T08:01:50.522Z', 'title' => ''],
+ 'AccountId' => ['description' => 'The Alibaba Cloud account ID of the member.'."\n", 'type' => 'string', 'example' => '181761095690****', 'title' => ''],
+ 'JoinMethod' => ['description' => 'The way in which the member joins the resource directory. Valid values:'."\n"
+ ."\n"
+ .'* invited: The member is invited to join the resource directory.'."\n"
+ .'* created: The member is directly created in the resource directory.'."\n", 'type' => 'string', 'example' => 'created', 'title' => ''],
+ 'ModifyTime' => ['description' => 'The time when the member was modified. The time is displayed in UTC.'."\n", 'type' => 'string', 'example' => '2021-01-18T08:04:37.668Z', 'title' => ''],
+ 'ResourceDirectoryPath' => ['description' => 'The RDPath of the member.'."\n", 'type' => 'string', 'example' => 'rd-3G****/r-Wm****/fd-QRzuim****/181761095690****', 'title' => ''],
+ 'AccountName' => ['description' => 'The Alibaba Cloud account name of the member.'."\n", 'type' => 'string', 'example' => 'oxy01414357@alibaba-inc.com', 'title' => ''],
+ 'DeletionStatus' => ['description' => 'The deletion status of the member. Valid values:'."\n"
+ ."\n"
+ .'* Checking: A deletion check is being performed for the member.'."\n"
+ .'* Deleting: The member is being deleted.'."\n"
+ .'* CheckFailed: The deletion check for the member fails.'."\n"
+ .'* DeleteFailed: The member fails to be deleted.'."\n"
+ ."\n"
+ .'> If deletion is not performed for the member, the value of this parameter is empty.'."\n", 'type' => 'string', 'example' => 'Checking', 'title' => ''],
+ 'Tags' => [
+ 'type' => 'object',
+ 'itemNode' => true,
+ 'properties' => [
+ 'Tag' => [
+ 'description' => 'The tags that are added to the member.'."\n",
+ 'title' => '',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The information of a tag.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'Key' => ['description' => 'The key of the tag.'."\n", 'type' => 'string', 'example' => 'tag_key', 'title' => ''],
+ 'Value' => ['description' => 'The value of the tag.'."\n", 'type' => 'string', 'example' => 'tag_value', 'title' => ''],
+ ],
+ 'title' => '',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'title' => '',
+ ],
+ ],
+ ],
],
],
+ 'title' => '',
],
],
],
- 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"E7747EDF-EDDC-5B38-9B6A-6392B9C92B1C\\"\\n}","errorExample":""},{"type":"xml","example":"<UntagResourcesResponse>\\n <RequestId>E7747EDF-EDDC-5B38-9B6A-6392B9C92B1C</RequestId>\\n</UntagResourcesResponse>","errorExample":""}]',
- 'title' => 'UntagResources',
- ],
- 'ListTagResources' => [
- 'summary' => 'Queries the tags that are added to the members in a resource directory.',
- 'methods' => [
- 'post',
- 'get',
- ],
- 'schemes' => [
- 'https',
+ 'errorCodes' => [
+ 400 => [
+ ['errorCode' => 'InvalidParameter.MaxResults', 'errorMessage' => 'The MaxResults is invalid.', 'description' => ''],
+ ['errorCode' => 'InvalidParameter.NextToken', 'errorMessage' => 'The NextToken is invalid.', 'description' => ''],
+ ['errorCode' => 'InvalidParameter.NextToken.Length', 'errorMessage' => 'The maximum length of NextToken (256 characters) is exceeded.', 'description' => ''],
+ ],
+ 404 => [
+ ['errorCode' => 'EntityNotExists.ResourceDirectory', 'errorMessage' => 'The resource directory for the account is not enabled. We recommend that you first enable the resource directory for the account.', 'description' => ''],
+ ],
],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"TotalCount\\": 2,\\n \\"RequestId\\": \\"7B8A4E7D-6CFF-471D-84DF-195A7A241ECB\\",\\n \\"PageSize\\": 5,\\n \\"PageNumber\\": 1,\\n \\"NextToken\\": \\"TGlzdFJlc291cm****\\",\\n \\"Accounts\\": {\\n \\"Account\\": [\\n {\\n \\"Status\\": \\"CreateSuccess\\",\\n \\"Type\\": \\"ResourceAccount\\",\\n \\"DisplayName\\": \\"test\\",\\n \\"FolderId\\": \\"fd-QRzuim****\\",\\n \\"ResourceDirectoryId\\": \\"rd-3G****\\",\\n \\"JoinTime\\": \\"2021-01-18T08:01:50.522Z\\",\\n \\"AccountId\\": \\"181761095690****\\",\\n \\"JoinMethod\\": \\"created\\",\\n \\"ModifyTime\\": \\"2021-01-18T08:04:37.668Z\\",\\n \\"ResourceDirectoryPath\\": \\"rd-3G****/r-Wm****/fd-QRzuim****/181761095690****\\",\\n \\"AccountName\\": \\"oxy01414357@alibaba-inc.com\\",\\n \\"DeletionStatus\\": \\"Checking\\",\\n \\"Tags\\": {\\n \\"Tag\\": [\\n {\\n \\"Key\\": \\"tag_key\\",\\n \\"Value\\": \\"tag_value\\"\\n }\\n ]\\n }\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<ListAccountsResponse>\\n <TotalCount>2</TotalCount>\\n <RequestId>7B8A4E7D-6CFF-471D-84DF-195A7A241ECB</RequestId>\\n <PageSize>1</PageSize>\\n <PageNumber>2</PageNumber>\\n <Accounts>\\n <Status>CreateSuccess</Status>\\n <Type>ResourceAccount</Type>\\n <DisplayName>test</DisplayName>\\n <FolderId>fd-QRzuim****</FolderId>\\n <ResourceDirectoryId>rd-3G****</ResourceDirectoryId>\\n <JoinTime>2021-01-18T08:01:50.522Z</JoinTime>\\n <AccountId>181761095690****</AccountId>\\n <JoinMethod>created</JoinMethod>\\n <ModifyTime>2021-01-18T08:04:37.668Z</ModifyTime>\\n <ResourceDirectoryPath>rd-3G****/r-Wm****/fd-QRzuim****/181761095690****</ResourceDirectoryPath>\\n <Tags>\\n <Key>tag_key</Key>\\n <Value>tag_value</Value>\\n </Tags>\\n </Accounts>\\n</ListAccountsResponse>","errorExample":""}]',
+ 'title' => 'ListAccounts',
+ 'summary' => 'Queries a list of members in a resource directory.',
+ 'description' => 'You can use only the management account of a resource directory or a delegated administrator account of a trusted service to call this operation.'."\n",
+ 'responseParamsDescription' => ' ',
+ 'extraInfo' => ' ',
+ 'changeSet' => [],
+ ],
+ 'ListAccountsForParent' => [
+ 'methods' => ['post', 'get'],
+ 'schemes' => ['https'],
'security' => [
[
'AK' => [],
@@ -5615,99 +3427,182 @@
],
'operationType' => 'read',
'deprecated' => false,
- 'systemTags' => [
- 'operationType' => 'list',
- ],
+ 'systemTags' => ['operationType' => 'list'],
'parameters' => [
[
- 'name' => 'NextToken',
+ 'name' => 'ParentFolderId',
'in' => 'query',
- 'schema' => [
- 'description' => 'The token that is used to start the next query.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'caeba0bbb2be03f84eb48b699f0a****',
- ],
+ 'schema' => ['description' => 'The ID of the folder.'."\n", 'type' => 'string', 'required' => false, 'example' => 'fd-bVaRIG****', 'title' => ''],
],
[
- 'name' => 'MaxResults',
+ 'name' => 'QueryKeyword',
'in' => 'query',
- 'schema' => [
- 'description' => 'The number of entries to return on each page.'."\n"
- ."\n"
- .'Valid values: 1 to 100. Default value: 10.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'required' => false,
- 'example' => '10',
- ],
+ 'schema' => ['description' => 'The keyword used for the query, such as the display name of a member.'."\n"
+ ."\n"
+ .'Fuzzy match is supported.'."\n", 'type' => 'string', 'required' => false, 'example' => 'admin', 'title' => ''],
+ ],
+ [
+ 'name' => 'PageNumber',
+ 'in' => 'query',
+ 'schema' => ['description' => 'The number of the page to return.'."\n"
+ ."\n"
+ .'Pages start from page 1. Default value: 1.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1', 'title' => ''],
+ ],
+ [
+ 'name' => 'PageSize',
+ 'in' => 'query',
+ 'schema' => ['description' => 'The number of entries to return on each page.'."\n"
+ ."\n"
+ .'Valid values: 1 to 100. Default value: 10.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '10', 'title' => ''],
],
[
'name' => 'Tag',
'in' => 'query',
'style' => 'flat',
'schema' => [
- 'description' => 'The tags. This parameter specifies a filter condition for the query.'."\n"
- ."\n"
- .'You can specify a maximum of 20 tags.'."\n",
+ 'description' => 'The tags. This parameter specifies a filter condition.'."\n",
'type' => 'array',
'items' => [
- 'description' => 'A tag. This parameter specifies a filter condition for the query.'."\n"
- ."\n"
- .'You can specify a maximum of 20 tags.'."\n",
+ 'description' => 'The information of a tag.'."\n",
'type' => 'object',
'properties' => [
- 'Key' => [
- 'description' => 'The key of the tag.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'k1',
- ],
- 'Value' => [
- 'description' => 'The value of the tag.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'v1',
- ],
+ 'Key' => ['description' => 'The key of the tag.'."\n", 'type' => 'string', 'required' => false, 'example' => 'tag_key', 'title' => ''],
+ 'Value' => ['description' => 'The value of the tag.'."\n", 'type' => 'string', 'required' => false, 'example' => 'tag_value', 'title' => ''],
],
'required' => false,
+ 'title' => '',
],
'required' => false,
- 'maxItems' => 20,
+ 'title' => '',
],
],
[
- 'name' => 'ResourceId',
+ 'name' => 'IncludeTags',
'in' => 'query',
- 'style' => 'flat',
+ 'schema' => ['description' => 'Specifies whether to return information about tags. Valid values:'."\n"
+ ."\n"
+ .'* false (default value)'."\n"
+ .'* true'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'true', 'title' => ''],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
'schema' => [
- 'description' => 'The Alibaba Cloud account IDs of the members. This parameter specifies a filter condition for the query.'."\n"
- ."\n"
- .'> If you want to query the tags that are added to the members in a resource directory, you must configure both the `ResourceId` and `ResourceType` parameters and set the `ResourceType` parameter to `Account` in your request.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The Alibaba Cloud account ID of a member. This parameter specifies a filter condition for the query.'."\n"
- ."\n"
- .'> If you want to query the tags that are added to the members in a resource directory, you must configure both the `ResourceId` and `ResourceType` parameters and set the `ResourceType` parameter to `Account` in your request.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => '1098***',
+ 'description' => 'The returned result.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'TotalCount' => ['description' => 'The total number of entries returned.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '2', 'title' => ''],
+ 'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => '7B8A4E7D-6CFF-471D-84DF-195A7A241ECB', 'title' => ''],
+ 'PageSize' => ['description' => 'The number of entries returned per page.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '5', 'title' => ''],
+ 'PageNumber' => ['description' => 'The page number of the returned page.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''],
+ 'Accounts' => [
+ 'type' => 'object',
+ 'itemNode' => true,
+ 'properties' => [
+ 'Account' => [
+ 'description' => 'The information about the members.'."\n",
+ 'title' => '',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The information of a member.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'Status' => ['description' => 'The status of the member. Valid values:'."\n"
+ ."\n"
+ .'* CreateSuccess: The member is created.'."\n"
+ .'* PromoteVerifying: The upgrade of the member is under confirmation.'."\n"
+ .'* PromoteFailed: The upgrade of the member fails.'."\n"
+ .'* PromoteExpired: The upgrade of the member expires.'."\n"
+ .'* PromoteCancelled: The upgrade of the member is canceled.'."\n"
+ .'* PromoteSuccess: The member is upgraded.'."\n"
+ .'* InviteSuccess: The member accepts the invitation.'."\n", 'type' => 'string', 'example' => 'CreateSuccess', 'title' => ''],
+ 'Type' => ['description' => 'The type of the member. Valid values:'."\n"
+ ."\n"
+ .'* CloudAccount: cloud account'."\n"
+ .'* ResourceAccount: resource account'."\n", 'type' => 'string', 'example' => 'ResourceAccount', 'title' => ''],
+ 'DisplayName' => ['description' => 'The display name of the member.'."\n", 'type' => 'string', 'example' => 'admin', 'title' => ''],
+ 'FolderId' => ['description' => 'The ID of the folder.'."\n", 'type' => 'string', 'example' => 'fd-bVaRIG****', 'title' => ''],
+ 'ResourceDirectoryId' => ['description' => 'The ID of the resource directory.'."\n", 'type' => 'string', 'example' => 'rd-k4****', 'title' => ''],
+ 'JoinTime' => ['description' => 'The time when the member joined the resource directory. The time is displayed in UTC.'."\n", 'type' => 'string', 'example' => '2015-01-23T12:33:18Z', 'title' => ''],
+ 'AccountId' => ['description' => 'The Alibaba Cloud account ID of the member.'."\n", 'type' => 'string', 'example' => '184311716100****', 'title' => ''],
+ 'JoinMethod' => ['description' => 'The way in which the member joins the resource directory.'."\n"
+ ."\n"
+ .'* invited: The member is invited to join the resource directory.'."\n"
+ .'* created: The member is directly created in the resource directory.'."\n", 'type' => 'string', 'example' => 'created', 'title' => ''],
+ 'ModifyTime' => ['description' => 'The time when the member was modified. The time is displayed in UTC.'."\n", 'type' => 'string', 'example' => '2015-01-23T12:33:18Z', 'title' => ''],
+ 'AccountName' => ['description' => 'The Alibaba Cloud account name of the member.'."\n", 'type' => 'string', 'example' => 'hdd01429358@alibaba-inc.com', 'title' => ''],
+ 'DeletionStatus' => ['description' => 'The deletion status of the member. Valid values:'."\n"
+ ."\n"
+ .'* Checking: A deletion check is being performed for the member.'."\n"
+ .'* Deleting: The member is being deleted.'."\n"
+ .'* CheckFailed: The deletion check for the member fails.'."\n"
+ .'* DeleteFailed: The member fails to be deleted.'."\n"
+ ."\n"
+ .'> If deletion is not performed for the member, the value of this parameter is empty.'."\n", 'type' => 'string', 'example' => 'Checking', 'title' => ''],
+ 'Tags' => [
+ 'type' => 'object',
+ 'itemNode' => true,
+ 'properties' => [
+ 'Tag' => [
+ 'description' => 'The tags that are added to the member.'."\n",
+ 'title' => '',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The information of a tag.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'Key' => ['description' => 'The key of the tag.'."\n", 'type' => 'string', 'example' => 'tag_key', 'title' => ''],
+ 'Value' => ['description' => 'The value of the tag.'."\n", 'type' => 'string', 'example' => 'tag_value', 'title' => ''],
+ ],
+ 'title' => '',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'title' => '',
+ ],
+ ],
+ ],
+ ],
],
- 'required' => false,
- 'maxItems' => 50,
+ 'title' => '',
],
],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ ['errorCode' => 'InvalidParameter.ParentFolderId', 'errorMessage' => 'The ParentFolderId is invalid.', 'description' => ''],
+ ],
+ 404 => [
+ ['errorCode' => 'EntityNotExists.ResourceDirectory', 'errorMessage' => 'The resource directory for the account is not enabled. We recommend that you first enable the resource directory for the account.', 'description' => ''],
+ ['errorCode' => 'EntityNotExists.Folder', 'errorMessage' => 'The resource directory folder does not exist.', 'description' => ''],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"TotalCount\\": 2,\\n \\"RequestId\\": \\"7B8A4E7D-6CFF-471D-84DF-195A7A241ECB\\",\\n \\"PageSize\\": 5,\\n \\"PageNumber\\": 1,\\n \\"Accounts\\": {\\n \\"Account\\": [\\n {\\n \\"Status\\": \\"CreateSuccess\\",\\n \\"Type\\": \\"ResourceAccount\\",\\n \\"DisplayName\\": \\"admin\\",\\n \\"FolderId\\": \\"fd-bVaRIG****\\",\\n \\"ResourceDirectoryId\\": \\"rd-k4****\\",\\n \\"JoinTime\\": \\"2015-01-23T12:33:18Z\\",\\n \\"AccountId\\": \\"184311716100****\\",\\n \\"JoinMethod\\": \\"created\\",\\n \\"ModifyTime\\": \\"2015-01-23T12:33:18Z\\",\\n \\"AccountName\\": \\"hdd01429358@alibaba-inc.com\\",\\n \\"DeletionStatus\\": \\"Checking\\",\\n \\"Tags\\": {\\n \\"Tag\\": [\\n {\\n \\"Key\\": \\"tag_key\\",\\n \\"Value\\": \\"tag_value\\"\\n }\\n ]\\n }\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<ListAccountsForParentResponse>\\n <TotalCount>2</TotalCount>\\n <RequestId>7B8A4E7D-6CFF-471D-84DF-195A7A241ECB</RequestId>\\n <PageSize>1</PageSize>\\n <PageNumber>2</PageNumber>\\n <Accounts>\\n <Status>CreateSuccess</Status>\\n <Type>ResourceAccount</Type>\\n <DisplayName>admin</DisplayName>\\n <FolderId>fd-bVaRIG****</FolderId>\\n <ResourceDirectoryId>rd-k4****</ResourceDirectoryId>\\n <JoinTime>2015-01-23T12:33:18Z</JoinTime>\\n <AccountId>184311716100****</AccountId>\\n <JoinMethod>created</JoinMethod>\\n <ModifyTime>2015-01-23T12:33:18Z</ModifyTime>\\n <Tags>\\n <Key>tag_key</Key>\\n <Value>tag_value</Value>\\n </Tags>\\n </Accounts>\\n</ListAccountsForParentResponse>","errorExample":""}]',
+ 'title' => 'ListAccountsForParent',
+ 'summary' => 'Queries the information of members in a folder.',
+ 'requestParamsDescription' => 'For more information about common request parameters, see [Common parameters](~~159973~~).'."\n",
+ 'responseParamsDescription' => ' ',
+ 'extraInfo' => ' ',
+ 'changeSet' => [],
+ ],
+ 'ListAncestors' => [
+ 'methods' => ['post', 'get'],
+ 'schemes' => ['https'],
+ 'security' => [
[
- 'name' => 'ResourceType',
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'deprecated' => false,
+ 'systemTags' => ['operationType' => 'list'],
+ 'parameters' => [
+ [
+ 'name' => 'ChildId',
'in' => 'query',
- 'schema' => [
- 'description' => 'The type of the objects whose tags you want to query. This parameter specifies a filter condition for the query. Valid values:'."\n"
- ."\n"
- .'* Account: member'."\n",
- 'type' => 'string',
- 'required' => true,
- 'example' => 'Account',
- ],
+ 'schema' => ['description' => 'The ID of the subfolder.'."\n", 'type' => 'string', 'required' => true, 'example' => 'fd-i1c9nr****', 'title' => ''],
],
],
'responses' => [
@@ -5716,67 +3611,55 @@
'description' => 'The returned result.'."\n",
'type' => 'object',
'properties' => [
- 'NextToken' => [
- 'description' => 'Indicates whether the next query is required.```` Valid values:'."\n"
- ."\n"
- .'* If the value of this parameter is empty (`"NextToken": ""`), all results are returned, and the `next query` is not required.'."\n"
- .'* If the value of this parameter is not empty, the next query is required, and the value is the token used to start the next query.````'."\n",
- 'type' => 'string',
- 'example' => 'caeba0bbb2be03f84eb48b699f0a****',
- ],
- 'RequestId' => [
- 'description' => 'The ID of the request.'."\n",
- 'type' => 'string',
- 'example' => '8054B059-6B36-53BF-AA45-B8C9A0ED05AB',
- ],
- 'TagResources' => [
- 'description' => 'The tags.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'A tag.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'TagValue' => [
- 'description' => 'The value of the tag.'."\n",
- 'type' => 'string',
- 'example' => 'k1',
- ],
- 'ResourceId' => [
- 'description' => 'The Alibaba Cloud account ID of the member.'."\n",
- 'type' => 'string',
- 'example' => '1098***',
- ],
- 'TagKey' => [
- 'description' => 'The key of the tag.'."\n",
- 'type' => 'string',
- 'example' => 'k1',
- ],
- 'ResourceType' => [
- 'description' => 'The type of the object whose tags are queried. Valid values:'."\n"
- ."\n"
- .'* Account: member'."\n",
- 'type' => 'string',
- 'example' => 'Account',
+ 'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => '83AFBEB6-DC03-406E-9686-867461FF6698', 'title' => ''],
+ 'Folders' => [
+ 'type' => 'object',
+ 'itemNode' => true,
+ 'properties' => [
+ 'Folder' => [
+ 'description' => 'The information of the folders.'."\n",
+ 'title' => '',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The information of a folder.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'FolderId' => ['description' => 'The ID of the folder.'."\n", 'type' => 'string', 'example' => 'r-b1****', 'title' => ''],
+ 'CreateTime' => ['description' => 'The time when the folder was created.'."\n", 'type' => 'string', 'example' => '2019-01-18T10:03:35.217Z', 'title' => ''],
+ 'FolderName' => ['description' => 'The name of the folder.'."\n", 'type' => 'string', 'example' => 'root', 'title' => ''],
+ ],
+ 'title' => '',
],
],
],
],
],
+ 'title' => '',
],
],
],
- 'responseDemo' => '[{"type":"json","example":"{\\n \\"NextToken\\": \\"caeba0bbb2be03f84eb48b699f0a****\\",\\n \\"RequestId\\": \\"8054B059-6B36-53BF-AA45-B8C9A0ED05AB\\",\\n \\"TagResources\\": [\\n {\\n \\"TagValue\\": \\"k1\\",\\n \\"ResourceId\\": \\"1098***\\",\\n \\"TagKey\\": \\"k1\\",\\n \\"ResourceType\\": \\"Account\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"<ListTagResourcesResponse>\\n <RequestId>8054B059-6B36-53BF-AA45-B8C9A0ED05AB</RequestId>\\n <TagResources>\\n <ResourceId>rg-aekz6bre2uq****</ResourceId>\\n <TagKey>k1</TagKey>\\n <ResourceType>resourcegroup</ResourceType>\\n <TagValue>v1</TagValue>\\n </TagResources>\\n</ListTagResourcesResponse>","errorExample":""}]',
- 'title' => 'ListTagResources',
- ],
- 'ListTagKeys' => [
- 'summary' => 'Queries tag keys.',
- 'methods' => [
- 'post',
- 'get',
- ],
- 'schemes' => [
- 'https',
+ 'errorCodes' => [
+ 400 => [
+ ['errorCode' => 'MissingParameter.ChildId', 'errorMessage' => 'You must specify ChildId.', 'description' => ''],
+ ['errorCode' => 'InvalidParameter.ChildId', 'errorMessage' => 'The ChildId is invalid.', 'description' => ''],
+ ],
+ 404 => [
+ ['errorCode' => 'EntityNotExists.ResourceDirectory', 'errorMessage' => 'The resource directory for the account is not enabled. We recommend that you first enable the resource directory for the account.', 'description' => ''],
+ ['errorCode' => 'EntityNotExists.Folder', 'errorMessage' => 'The resource directory folder does not exist.', 'description' => ''],
+ ],
],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"83AFBEB6-DC03-406E-9686-867461FF6698\\",\\n \\"Folders\\": {\\n \\"Folder\\": [\\n {\\n \\"FolderId\\": \\"r-b1****\\",\\n \\"CreateTime\\": \\"2019-01-18T10:03:35.217Z\\",\\n \\"FolderName\\": \\"root\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<?xml version=\\"1.0\\" encoding=\\"UTF-8\\" ?>\\r\\n<ListAncestorsResponse>\\r\\n <Folders>\\r\\n <Folder>\\r\\n <FolderName>root</FolderName>\\r\\n <FolderId>r-b1****</FolderId>\\r\\n <CreateTime>2019-01-18T10:03:35.217Z</CreateTime>\\r\\n </Folder>\\r\\n <Folder>\\r\\n <FolderName>myFirstFd</FolderName>\\r\\n <FolderId>fd-0adR35****</FolderId>\\r\\n <CreateTime>2019-01-23T08:48:37.530Z</CreateTime>\\r\\n </Folder>\\r\\n </Folders>\\r\\n <RequestId>83AFBEB6-DC03-406E-9686-867461FF6698</RequestId>\\r\\n</ListAncestorsResponse>","errorExample":""}]',
+ 'title' => 'ListAncestors',
+ 'summary' => 'Queries the information of all the parent folders of a specified folder.',
+ 'requestParamsDescription' => ' ',
+ 'responseParamsDescription' => ' ',
+ 'extraInfo' => ' ',
+ 'changeSet' => [],
+ ],
+ 'ListAuthorizedAccounts' => [
+ 'summary' => 'Queries the members that have query permissions.',
+ 'methods' => ['post', 'get'],
+ 'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
@@ -5784,107 +3667,224 @@
],
'operationType' => 'read',
'deprecated' => false,
- 'systemTags' => [
- 'operationType' => 'list',
- ],
+ 'systemTags' => ['operationType' => 'list', 'riskType' => 'none', 'chargeType' => 'free'],
'parameters' => [
[
- 'name' => 'NextToken',
+ 'name' => 'PageNumber',
'in' => 'query',
- 'schema' => [
- 'description' => 'The pagination token that is used in the next request to retrieve a new page of results. You do not need to specify this parameter for the first request.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'TGlzdFJlc291cm****',
- ],
+ 'schema' => ['description' => 'The page number.'."\n"
+ ."\n"
+ .'Pages start from page 1.'."\n"
+ ."\n"
+ .'Default value: 1.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1', 'title' => ''],
],
[
- 'name' => 'MaxResults',
+ 'name' => 'PageSize',
'in' => 'query',
+ 'schema' => ['description' => 'The number of entries per page.'."\n"
+ ."\n"
+ .'Valid values: 1 to 100.'."\n"
+ ."\n"
+ .'Default value: 10.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '5', 'title' => ''],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
'schema' => [
- 'description' => 'The maximum number of entries to return for a single request.'."\n"
- ."\n"
- .'Valid values: 1 to 100. Default value: 10.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'required' => false,
- 'example' => '10',
+ 'description' => 'The response parameters.',
+ 'type' => 'object',
+ 'properties' => [
+ 'TotalCount' => ['description' => 'The total number of entries returned.', 'type' => 'integer', 'format' => 'int32', 'example' => '2', 'title' => ''],
+ 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '7B8A4E7D-6CFF-471D-84DF-195A7A241ECB', 'title' => ''],
+ 'PageSize' => ['description' => 'The number of entries per page.', 'type' => 'integer', 'format' => 'int32', 'example' => '5', 'title' => ''],
+ 'PageNumber' => ['description' => 'The page number.', 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''],
+ 'Accounts' => [
+ 'type' => 'object',
+ 'itemNode' => true,
+ 'properties' => [
+ 'Account' => [
+ 'description' => 'The information about the members.',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The information about the member.',
+ 'type' => 'object',
+ 'properties' => [
+ 'Status' => ['description' => 'The status of the member. Valid values:'."\n"
+ ."\n"
+ .'- CreateSuccess: The member is created.'."\n"
+ ."\n"
+ .'- PromoteVerifying: The upgrade is being confirmed.'."\n"
+ ."\n"
+ .'- PromoteFailed: The upgrade failed.'."\n"
+ ."\n"
+ .'- PromoteExpired: The upgrade expired.'."\n"
+ ."\n"
+ .'- PromoteCancelled: The upgrade is canceled.'."\n"
+ ."\n"
+ .'- PromoteSuccess: The member is upgraded.'."\n"
+ ."\n"
+ .'- InviteSuccess: The invitation is successful.', 'type' => 'string', 'example' => 'CreateSuccess', 'title' => ''],
+ 'Type' => ['description' => 'The type of the member. Valid values:'."\n"
+ ."\n"
+ .'- CloudAccount: Alibaba Cloud account.'."\n"
+ ."\n"
+ .'- ResourceAccount: resource account.', 'type' => 'string', 'example' => 'ResourceAccount', 'title' => ''],
+ 'DisplayName' => ['description' => 'The display name of the member.', 'type' => 'string', 'example' => 'admin', 'title' => ''],
+ 'FolderId' => ['description' => 'The ID of the folder.', 'type' => 'string', 'example' => 'fd-bVaRIG****', 'title' => ''],
+ 'ResourceDirectoryId' => ['description' => 'The ID of the resource directory.', 'type' => 'string', 'example' => 'rd-k4****', 'title' => ''],
+ 'JoinTime' => ['description' => 'The time when the member joined the resource directory. The time is displayed in UTC.', 'type' => 'string', 'example' => '2015-01-23T12:33:18Z', 'title' => ''],
+ 'AccountId' => ['description' => 'The ID of the member account.', 'type' => 'string', 'example' => '184311716100****', 'title' => ''],
+ 'JoinMethod' => ['description' => 'The method by which the member joined the resource directory. Valid values:'."\n"
+ ."\n"
+ .'- invited: The member was invited to join the resource directory.'."\n"
+ ."\n"
+ .'- created: The member was created in the resource directory.', 'type' => 'string', 'example' => 'created', 'title' => ''],
+ 'ModifyTime' => ['description' => 'The time when the member was last modified. The time is displayed in UTC.', 'type' => 'string', 'example' => '2015-01-23T12:33:18Z', 'title' => ''],
+ 'ResourceDirectoryPath' => ['description' => 'The path ID of the member in the resource directory (RDPath).', 'type' => 'string', 'example' => 'rd-k4****/r-Wm****/fd-bVaRIG****/184311716100****', 'title' => ''],
+ 'AccountName' => ['description' => 'The name of the member.', 'type' => 'string', 'example' => 'someone@example.com', 'title' => ''],
+ ],
+ 'title' => '',
+ 'example' => '',
+ ],
+ 'title' => '',
+ 'example' => '',
+ ],
+ ],
+ 'description' => '',
+ 'title' => '',
+ 'example' => '',
+ ],
+ ],
+ 'title' => '',
+ 'example' => '',
],
],
+ ],
+ 'errorCodes' => [
+ 404 => [
+ ['errorCode' => 'EntityNotExists.ResourceDirectory', 'errorMessage' => 'The resource directory for the account is not enabled. We recommend that you first enable the resource directory for the account.', 'description' => 'The account is not used to enable a resource directory. Use the account to enable a resource directory first.'],
+ ],
+ ],
+ 'staticInfo' => ['returnType' => 'synchronous'],
+ 'title' => 'ListAuthorizedAccounts',
+ 'changeSet' => [],
+ 'flowControl' => [
+ 'flowControlList' => [],
+ ],
+ 'ramActions' => [
+ [
+ 'operationType' => 'list',
+ 'ramAction' => [
+ 'action' => 'resourcemanager:ListAuthorizedAccounts',
+ 'authLevel' => 'operate',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ResourceManager', 'resourceType' => 'All Resource', 'arn' => '*'],
+ ],
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"TotalCount\\": 2,\\n \\"RequestId\\": \\"7B8A4E7D-6CFF-471D-84DF-195A7A241ECB\\",\\n \\"PageSize\\": 5,\\n \\"PageNumber\\": 1,\\n \\"Accounts\\": {\\n \\"Account\\": [\\n {\\n \\"Status\\": \\"CreateSuccess\\",\\n \\"Type\\": \\"ResourceAccount\\",\\n \\"DisplayName\\": \\"admin\\",\\n \\"FolderId\\": \\"fd-bVaRIG****\\",\\n \\"ResourceDirectoryId\\": \\"rd-k4****\\",\\n \\"JoinTime\\": \\"2015-01-23T12:33:18Z\\",\\n \\"AccountId\\": \\"184311716100****\\",\\n \\"JoinMethod\\": \\"created\\",\\n \\"ModifyTime\\": \\"2015-01-23T12:33:18Z\\",\\n \\"ResourceDirectoryPath\\": \\"rd-k4****/r-Wm****/fd-bVaRIG****/184311716100****\\",\\n \\"AccountName\\": \\"someone@example.com\\"\\n }\\n ]\\n }\\n}","type":"json"}]',
+ ],
+ 'ListAuthorizedFolders' => [
+ 'methods' => ['post', 'get'],
+ 'schemes' => ['https'],
+ 'security' => [
[
- 'name' => 'ResourceType',
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'deprecated' => false,
+ 'systemTags' => ['operationType' => 'list'],
+ 'parameters' => [
+ [
+ 'name' => 'PageNumber',
'in' => 'query',
- 'allowEmptyValue' => false,
- 'schema' => [
- 'description' => 'The resource type.'."\n"
- ."\n"
- .'The value Account indicates the members of the resource directory.'."\n",
- 'type' => 'string',
- 'required' => true,
- 'example' => 'Account',
- ],
+ 'schema' => ['description' => 'The page number.'."\n"
+ ."\n"
+ .'Pages start from page 1.'."\n"
+ ."\n"
+ .'Default value: 1.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1', 'title' => ''],
],
[
- 'name' => 'KeyFilter',
+ 'name' => 'PageSize',
'in' => 'query',
- 'schema' => [
- 'description' => 'The tag key for a fuzzy query.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'team',
- ],
+ 'schema' => ['description' => 'The number of entries per page.'."\n"
+ ."\n"
+ .'Valid values: 1 to 100.'."\n"
+ ."\n"
+ .'Default value: 10.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '10', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
- 'description' => 'The returned result.'."\n",
+ 'description' => 'The response parameters.',
'type' => 'object',
'properties' => [
- 'NextToken' => [
- 'description' => 'Indicates whether the next query is required.'."\n"
- ."\n"
- .'* If the value of this parameter is empty (`"NextToken": ""`), all results are returned, and the next query is not required.'."\n"
- .'* If the value of this parameter is not empty, the next query is required, and the value is the token used to start the next query.'."\n",
- 'type' => 'string',
- 'example' => 'TGlzdFJlc291cm****',
- ],
- 'RequestId' => [
- 'description' => 'The request ID.'."\n",
- 'type' => 'string',
- 'example' => 'DC09A6AA-2713-4E10-A2E9-E6C5C43A8842',
- ],
- 'Tags' => [
- 'description' => 'The information about the tag keys.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => '',
- 'type' => 'object',
- 'properties' => [
- 'Key' => [
- 'description' => 'The tag key.'."\n",
- 'type' => 'string',
- 'example' => 'team',
+ 'TotalCount' => ['description' => 'The total number of entries returned.', 'type' => 'integer', 'format' => 'int32', 'example' => '2', 'title' => ''],
+ 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '7B8A4E7D-6CFF-471D-84DF-195A7A241ECB', 'title' => ''],
+ 'PageSize' => ['description' => 'The number of entries per page.', 'type' => 'integer', 'format' => 'int32', 'example' => '10', 'title' => ''],
+ 'PageNumber' => ['description' => 'The page number.', 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''],
+ 'Folders' => [
+ 'type' => 'object',
+ 'itemNode' => true,
+ 'properties' => [
+ 'Folder' => [
+ 'description' => 'The folders.',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The folder.',
+ 'type' => 'object',
+ 'properties' => [
+ 'FolderId' => ['description' => 'The folder ID.', 'type' => 'string', 'example' => 'fd-bVaRIG****', 'title' => ''],
+ 'ResourceDirectoryPath' => ['description' => 'The path of the folder in the resource directory (RDPath).', 'type' => 'string', 'example' => 'rd-k3****/r-Wm****/fd-bVaRIG****', 'title' => ''],
+ 'FolderName' => ['description' => 'The folder name.', 'type' => 'string', 'example' => 'project-1', 'title' => ''],
+ ],
+ 'title' => '',
+ 'example' => '',
],
+ 'title' => '',
+ 'example' => '',
],
],
+ 'description' => '',
+ 'title' => '',
+ 'example' => '',
],
],
+ 'title' => '',
+ 'example' => '',
],
],
],
- 'responseDemo' => '[{"type":"json","example":"{\\n \\"NextToken\\": \\"TGlzdFJlc291cm****\\",\\n \\"RequestId\\": \\"DC09A6AA-2713-4E10-A2E9-E6C5C43A8842\\",\\n \\"Tags\\": [\\n {\\n \\"Key\\": \\"team\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"<ListTagKeysResponse>\\n <NextToken>caeba0bbb2be03f84eb48b699f0a****</NextToken>\\n <RequestId>DC09A6AA-2713-4E10-A2E9-E6C5C43A8842</RequestId>\\n <Tags>\\n <Key>team</Key>\\n </Tags>\\n</ListTagKeysResponse>","errorExample":""}]',
- 'title' => 'ListTagKeys',
- ],
- 'ListTagValues' => [
- 'summary' => 'Queries the tag values of a tag key.',
- 'methods' => [
- 'post',
- 'get',
+ 'staticInfo' => ['returnType' => 'synchronous'],
+ 'title' => 'ListAuthorizedFolders',
+ 'summary' => 'Queries the folders that you have query permissions for.',
+ 'changeSet' => [],
+ 'flowControl' => [
+ 'flowControlList' => [],
],
- 'schemes' => [
- 'https',
+ 'ramActions' => [
+ [
+ 'operationType' => 'list',
+ 'ramAction' => [
+ 'action' => 'resourcemanager:ListAuthorizedFolders',
+ 'authLevel' => 'operate',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ResourceManager', 'resourceType' => 'All Resource', 'arn' => '*'],
+ ],
+ ],
+ ],
],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"TotalCount\\": 2,\\n \\"RequestId\\": \\"7B8A4E7D-6CFF-471D-84DF-195A7A241ECB\\",\\n \\"PageSize\\": 10,\\n \\"PageNumber\\": 1,\\n \\"Folders\\": {\\n \\"Folder\\": [\\n {\\n \\"FolderId\\": \\"fd-bVaRIG****\\",\\n \\"ResourceDirectoryPath\\": \\"rd-k3****/r-Wm****/fd-bVaRIG****\\",\\n \\"FolderName\\": \\"project-1\\"\\n }\\n ]\\n }\\n}","type":"json"}]',
+ ],
+ 'ListControlPolicies' => [
+ 'summary' => 'Call `ListControlPolicies` to retrieve a list of control policies.',
+ 'methods' => ['post', 'get'],
+ 'schemes' => ['https'],
'security' => [
[
'AK' => [],
@@ -5892,220 +3892,334 @@
],
'operationType' => 'read',
'deprecated' => false,
- 'systemTags' => [
- 'operationType' => 'list',
- ],
+ 'systemTags' => ['operationType' => 'list', 'riskType' => 'none', 'chargeType' => 'free'],
'parameters' => [
[
- 'name' => 'NextToken',
+ 'name' => 'PolicyType',
'in' => 'query',
- 'schema' => [
- 'description' => 'The pagination token that is used in the next request to retrieve a new page of results. You do not need to specify this parameter for the first request.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'TGlzdFJlc291cm****',
- ],
+ 'schema' => ['description' => 'The type of control policy. Valid values:'."\n"
+ ."\n"
+ .'- System: A system control policy.'."\n"
+ ."\n"
+ .'- Custom: A custom control policy.', 'type' => 'string', 'required' => false, 'example' => 'System', 'title' => ''],
],
[
- 'name' => 'MaxResults',
+ 'name' => 'PageNumber',
'in' => 'query',
- 'schema' => [
- 'description' => 'The maximum number of entries to return for a single request.'."\n"
- ."\n"
- .'Valid values: 1 to 100. Default value: 10.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'required' => false,
- 'example' => '10',
- ],
+ 'schema' => ['description' => 'The page number.'."\n"
+ ."\n"
+ .'Starting value: 1. Default value: 1.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '200000', 'minimum' => '1', 'default' => '1', 'example' => '1', 'title' => ''],
],
[
- 'name' => 'ResourceType',
+ 'name' => 'PageSize',
'in' => 'query',
- 'allowEmptyValue' => false,
- 'schema' => [
- 'description' => 'The resource type.'."\n"
- ."\n"
- .'The value Account indicates the members of the resource directory.'."\n",
- 'type' => 'string',
- 'required' => true,
- 'example' => 'Account',
- ],
+ 'schema' => ['description' => 'The number of entries to return on each page.'."\n"
+ ."\n"
+ .'Valid range: 1 to 100. Default value: 10.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '100', 'minimum' => '1', 'default' => '10', 'example' => '10', 'title' => ''],
],
[
- 'name' => 'TagKey',
+ 'name' => 'Language',
'in' => 'query',
- 'schema' => [
- 'description' => 'The tag key. This parameter specifies a filter condition for the query.'."\n",
- 'type' => 'string',
- 'required' => true,
- 'example' => 'k1',
- ],
+ 'schema' => ['description' => 'The language of the returned descriptions for control policies. Valid values:'."\n"
+ ."\n"
+ .'- `zh-CN` (default): Chinese.'."\n"
+ ."\n"
+ .'- `en`: English.'."\n"
+ ."\n"
+ .'- `ja`: Japanese.'."\n"
+ ."\n"
+ .'> This parameter takes effect only for system control policies.', 'type' => 'string', 'required' => false, 'example' => 'zh-CN', 'title' => ''],
],
[
- 'name' => 'ValueFilter',
+ 'name' => 'Tag',
'in' => 'query',
+ 'style' => 'flat',
'schema' => [
- 'description' => 'The tag value for a fuzzy query.'."\n",
- 'type' => 'string',
+ 'description' => 'The tags of the policy.',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'A tag.',
+ 'type' => 'object',
+ 'properties' => [
+ 'Key' => ['description' => 'The key of the tag.', 'type' => 'string', 'required' => false, 'example' => 'tag_key', 'title' => ''],
+ 'Value' => ['description' => 'The value of the tag.', 'type' => 'string', 'required' => false, 'example' => 'tag_value', 'title' => ''],
+ ],
+ 'required' => false,
+ 'title' => '',
+ 'example' => '',
+ ],
'required' => false,
- 'example' => 'v1',
+ 'title' => '',
+ 'example' => '',
],
],
+ [
+ 'name' => 'ControlPolicyType',
+ 'in' => 'query',
+ 'schema' => ['type' => 'string', 'example' => 'RESOURCE_CONTROL_POLICY', 'title' => '', 'description' => ''],
+ ],
],
'responses' => [
200 => [
'schema' => [
- 'description' => 'The returned result.'."\n",
+ 'description' => 'The data returned.',
'type' => 'object',
'properties' => [
- 'NextToken' => [
- 'description' => 'Indicates whether the next query is required.'."\n"
- ."\n"
- .'* If the value of this parameter is empty (`"NextToken": ""`), all results are returned, and the next query is not required.'."\n"
- .'* If the value of this parameter is not empty, the next query is required, and the value is the token used to start the next query.'."\n",
- 'type' => 'string',
- 'example' => 'TGlzdFJlc291cm****',
- ],
- 'RequestId' => [
- 'description' => 'The request ID.'."\n",
- 'type' => 'string',
- 'example' => 'DC09A6AA-2713-4E10-A2E9-E6C5C43A8842',
- ],
- 'Tags' => [
- 'description' => 'The information about the tag values.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => '',
- 'type' => 'object',
- 'properties' => [
- 'Value' => [
- 'description' => 'The tag value.'."\n",
- 'type' => 'string',
- 'example' => 'v1',
+ 'TotalCount' => ['description' => 'The total number of control policies.', 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''],
+ 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '9424A34C-3471-45AD-B6AB-924BBDFE42F9', 'title' => ''],
+ 'PageSize' => ['description' => 'The number of entries per page.', 'type' => 'integer', 'format' => 'int32', 'example' => '10', 'title' => ''],
+ 'PageNumber' => ['description' => 'The page number.', 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''],
+ 'ControlPolicies' => [
+ 'type' => 'object',
+ 'itemNode' => true,
+ 'properties' => [
+ 'ControlPolicy' => [
+ 'description' => 'The list of control policies.',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'A control policy.',
+ 'type' => 'object',
+ 'properties' => [
+ 'UpdateDate' => ['description' => 'The time the control policy was last updated.', 'type' => 'string', 'example' => '2020-08-05T06:32:24Z', 'title' => ''],
+ 'Description' => ['description' => 'The description of the control policy.', 'type' => 'string', 'example' => '支持阿里云所有操作的系统管控策略', 'title' => ''],
+ 'EffectScope' => ['description' => 'The effective scope of the control policy. Valid values:'."\n"
+ ."\n"
+ .'- `All`: The control policy applies to Alibaba Cloud accounts, RAM users, and RAM roles.'."\n"
+ ."\n"
+ .'- `RAM`: The control policy applies only to RAM users and RAM roles.', 'type' => 'string', 'example' => 'All', 'title' => ''],
+ 'AttachmentCount' => ['description' => 'The number of times the control policy is attached.', 'type' => 'string', 'example' => '44', 'title' => ''],
+ 'PolicyName' => ['description' => 'The name of the control policy.', 'type' => 'string', 'example' => 'FullAliyunAccess', 'title' => ''],
+ 'PolicyId' => ['description' => 'The ID of the control policy.', 'type' => 'string', 'example' => 'cp-FullAliyunAccess', 'title' => ''],
+ 'CreateDate' => ['description' => 'The time the control policy was created.', 'type' => 'string', 'example' => '2020-08-05T06:32:24Z', 'title' => ''],
+ 'PolicyType' => ['description' => 'The type of the control policy. Valid values:'."\n"
+ ."\n"
+ .'- `System`: system control policy.'."\n"
+ ."\n"
+ .'- `Custom`: custom control policy.', 'type' => 'string', 'example' => 'System', 'title' => ''],
+ 'Tags' => [
+ 'type' => 'object',
+ 'itemNode' => true,
+ 'properties' => [
+ 'Tag' => [
+ 'description' => 'The list of tags.',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'A tag.',
+ 'type' => 'object',
+ 'properties' => [
+ 'Key' => ['description' => 'The tag key.', 'type' => 'string', 'example' => 'tag_key', 'title' => ''],
+ 'Value' => ['description' => 'The tag value.', 'type' => 'string', 'example' => 'tag_value', 'title' => ''],
+ ],
+ 'title' => '',
+ 'example' => '',
+ ],
+ 'title' => '',
+ 'example' => '',
+ ],
+ ],
+ 'description' => 'The tags attached to the control policy.',
+ 'title' => '',
+ 'example' => '',
+ ],
+ 'ControlPolicyType' => ['description' => 'The type of the control policy. This parameter is available only in the China (Shenzhen) Finance and China (Shanghai) Finance regions.', 'type' => 'string', 'example' => 'RESOURCE_CONTROL_POLICY', 'title' => ''],
+ ],
+ 'title' => '',
+ 'example' => '',
],
+ 'title' => '',
+ 'example' => '',
],
],
+ 'description' => 'The control policies.',
+ 'title' => '',
+ 'example' => '',
],
],
+ 'title' => '',
+ 'example' => '',
],
],
],
- 'responseDemo' => '[{"type":"json","example":"{\\n \\"NextToken\\": \\"TGlzdFJlc291cm****\\",\\n \\"RequestId\\": \\"DC09A6AA-2713-4E10-A2E9-E6C5C43A8842\\",\\n \\"Tags\\": [\\n {\\n \\"Value\\": \\"v1\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"<ListTagValuesResponse>\\n <NextToken>TGlzdFJlc291cm****</NextToken>\\n <RequestId>DC09A6AA-2713-4E10-A2E9-E6C5C43A8842</RequestId>\\n <Tags>\\n <Value>v1</Value>\\n </Tags>\\n</ListTagValuesResponse>","errorExample":""}]',
- 'title' => 'ListTagValues',
- ],
- 'ChangeAccountEmail' => [
- 'summary' => 'Changes the email address that is bound to a member.',
- 'methods' => [
- 'post',
- 'get',
+ 'staticInfo' => ['returnType' => 'synchronous'],
+ 'title' => 'ListControlPolicies',
+ 'responseParamsDescription' => ' ',
+ 'extraInfo' => ' ',
+ 'changeSet' => [],
+ 'flowControl' => [
+ 'flowControlList' => [
+ ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListControlPolicies'],
+ ],
],
- 'schemes' => [
- 'https',
+ 'ramActions' => [
+ [
+ 'operationType' => 'list',
+ 'ramAction' => [
+ 'action' => 'resourcemanager:ListControlPolicies',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ResourceManager', 'resourceType' => 'All Resource', 'arn' => '*'],
+ ],
+ ],
+ ],
],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"TotalCount\\": 1,\\n \\"RequestId\\": \\"9424A34C-3471-45AD-B6AB-924BBDFE42F9\\",\\n \\"PageSize\\": 10,\\n \\"PageNumber\\": 1,\\n \\"ControlPolicies\\": {\\n \\"ControlPolicy\\": [\\n {\\n \\"UpdateDate\\": \\"2020-08-05T06:32:24Z\\",\\n \\"Description\\": \\"支持阿里云所有操作的系统管控策略\\",\\n \\"EffectScope\\": \\"All\\",\\n \\"AttachmentCount\\": \\"44\\",\\n \\"PolicyName\\": \\"FullAliyunAccess\\",\\n \\"PolicyId\\": \\"cp-FullAliyunAccess\\",\\n \\"CreateDate\\": \\"2020-08-05T06:32:24Z\\",\\n \\"PolicyType\\": \\"System\\",\\n \\"Tags\\": {\\n \\"Tag\\": [\\n {\\n \\"Key\\": \\"tag_key\\",\\n \\"Value\\": \\"tag_value\\"\\n }\\n ]\\n },\\n \\"ControlPolicyType\\": \\"RESOURCE_CONTROL_POLICY\\"\\n }\\n ]\\n }\\n}","type":"json"}]',
+ ],
+ 'ListControlPolicyAttachmentsForTarget' => [
+ 'methods' => ['post', 'get'],
+ 'schemes' => ['https'],
'security' => [
[
'AK' => [],
],
],
- 'operationType' => 'readAndWrite',
+ 'operationType' => 'read',
'deprecated' => false,
- 'systemTags' => [
- 'operationType' => 'update',
- ],
+ 'systemTags' => ['operationType' => 'list', 'riskType' => 'none', 'chargeType' => 'free'],
'parameters' => [
[
- 'name' => 'AccountId',
+ 'name' => 'TargetId',
'in' => 'query',
- 'schema' => [
- 'description' => 'The Alibaba Cloud account ID of the member.'."\n",
- 'type' => 'string',
- 'required' => true,
- 'example' => '181761095690****',
- ],
+ 'schema' => ['description' => 'The ID of the target. Valid values:'."\n"
+ ."\n"
+ .'- The ID of the Root.'."\n"
+ ."\n"
+ .'- The ID of a folder.'."\n"
+ ."\n"
+ .'- The ID of a member.', 'type' => 'string', 'required' => true, 'example' => 'fd-ZDNPiT****', 'title' => ''],
],
[
- 'name' => 'Email',
+ 'name' => 'Language',
'in' => 'query',
- 'schema' => [
- 'description' => 'The email address to be bound to the member.'."\n"
- ."\n"
- .'> The system automatically sends a verification email to the email address. After the verification is passed, the email address takes effect, and the system changes both the logon email address and secure email address of the member.'."\n",
- 'type' => 'string',
- 'required' => true,
- 'example' => 'someone@example.com',
- ],
+ 'schema' => ['description' => 'The language for the descriptions of system control policies. Valid values:'."\n"
+ ."\n"
+ .'- zh-CN (default): Chinese.'."\n"
+ ."\n"
+ .'- en: English.'."\n"
+ ."\n"
+ .'- ja: Japanese.'."\n"
+ ."\n"
+ .'> This parameter applies only to system control policies.', 'type' => 'string', 'required' => false, 'example' => 'zh-CN', 'title' => ''],
+ ],
+ [
+ 'name' => 'ControlPolicyType',
+ 'in' => 'query',
+ 'schema' => ['type' => 'string', 'example' => 'RESOURCE_CONTROL_POLICY', 'description' => '', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
- 'description' => 'The returned result.'."\n",
+ 'description' => 'The data returned.',
'type' => 'object',
'properties' => [
- 'RequestId' => [
- 'description' => 'The ID of the request.'."\n",
- 'type' => 'string',
- 'example' => '9B34724D-54B0-4A51-B34D-4512372FE1BE',
+ 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => 'C276B600-7B7A-49E8-938C-E16CFA955A82', 'title' => ''],
+ 'ControlPolicyAttachments' => [
+ 'type' => 'object',
+ 'itemNode' => true,
+ 'properties' => [
+ 'ControlPolicyAttachment' => [
+ 'description' => 'The list of attached control policies.',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The information about an attached control policy.',
+ 'type' => 'object',
+ 'properties' => [
+ 'Description' => ['description' => 'The description of the control policy.', 'type' => 'string', 'example' => 'ExampleControlPolicy', 'title' => ''],
+ 'EffectScope' => ['description' => 'The effective scope of the control policy. Valid values:'."\n"
+ ."\n"
+ .'- All: The control policy applies to Alibaba Cloud accounts, RAM users, and RAM roles.'."\n"
+ ."\n"
+ .'- RAM: The control policy applies only to RAM users and RAM roles.', 'type' => 'string', 'example' => 'RAM', 'title' => ''],
+ 'PolicyName' => ['description' => 'The name of the control policy.', 'type' => 'string', 'example' => 'ExampleControlPolicy', 'title' => ''],
+ 'PolicyId' => ['description' => 'The ID of the control policy.', 'type' => 'string', 'example' => 'cp-jExXAqIYkwHN****', 'title' => ''],
+ 'AttachDate' => ['description' => 'The time when the control policy was attached.', 'type' => 'string', 'example' => '2021-03-19T02:56:24Z', 'title' => ''],
+ 'PolicyType' => ['description' => 'The type of the control policy. Valid values:'."\n"
+ ."\n"
+ .'- System: system control policy.'."\n"
+ ."\n"
+ .'- Custom: custom control policy.', 'type' => 'string', 'example' => 'Custom', 'title' => ''],
+ 'ControlPolicyType' => ['type' => 'string', 'example' => 'RESOURCE_CONTROL_POLICY', 'description' => '', 'title' => ''],
+ ],
+ 'title' => '',
+ 'example' => '',
+ ],
+ 'title' => '',
+ 'example' => '',
+ ],
+ ],
+ 'description' => 'The attached control policies.',
+ 'title' => '',
+ 'example' => '',
],
],
+ 'title' => '',
+ 'example' => '',
],
],
],
'errorCodes' => [
- 400 => [
- [
- 'errorCode' => 'NotSupportedOperation.Account.EmailModify',
- 'errorMessage' => 'The operation is not supported because the account email is being modifying.',
- ],
- [
- 'errorCode' => 'NotSupport.InvitedAccount',
- 'errorMessage' => 'The current operation is not supported for accounts invited to join the resource directory.',
- ],
- ],
404 => [
- [
- 'errorCode' => 'EntityNotExists.ResourceDirectory',
- 'errorMessage' => 'The resource directory for the account is not enabled. We recommend that you first enable the resource directory for the account.',
- ],
- [
- 'errorCode' => 'EntityNotExists.Account',
- 'errorMessage' => 'This resource directory account does not exist.',
- ],
+ ['errorCode' => 'EntityNotExists.Target', 'errorMessage' => 'The specified target does not exist in the resource directory.', 'description' => 'The specified object does not exist in the resource directory.'],
],
],
- 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"9B34724D-54B0-4A51-B34D-4512372FE1BE\\"\\n}","errorExample":""},{"type":"xml","example":"<ChangeAccountEmailResponse>\\n <RequestId>9B34724D-54B0-4A51-B34D-4512372FE1BE</RequestId>\\n</ChangeAccountEmailResponse>","errorExample":""}]',
- 'title' => 'ChangeAccountEmail',
- ],
- 'RetryChangeAccountEmail' => [
- 'summary' => 'Resends a verification email for the email address change of a member.',
- 'methods' => [
- 'post',
- 'get',
+ 'title' => 'ListControlPolicyAttachmentsForTarget',
+ 'summary' => 'Lists the control policies attached to the Root, a folder, or a member.',
+ 'responseParamsDescription' => ' ',
+ 'extraInfo' => ' ',
+ 'changeSet' => [],
+ 'flowControl' => [
+ 'flowControlList' => [
+ ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListControlPolicyAttachmentsForTarget'],
+ ],
],
- 'schemes' => [
- 'https',
+ 'ramActions' => [
+ [
+ 'operationType' => 'list',
+ 'ramAction' => [
+ 'action' => 'resourcemanager:ListControlPolicyAttachmentsForTarget',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ResourceManager', 'resourceType' => 'All Resource', 'arn' => '*'],
+ ],
+ ],
+ ],
],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"C276B600-7B7A-49E8-938C-E16CFA955A82\\",\\n \\"ControlPolicyAttachments\\": {\\n \\"ControlPolicyAttachment\\": [\\n {\\n \\"Description\\": \\"ExampleControlPolicy\\",\\n \\"EffectScope\\": \\"RAM\\",\\n \\"PolicyName\\": \\"ExampleControlPolicy\\",\\n \\"PolicyId\\": \\"cp-jExXAqIYkwHN****\\",\\n \\"AttachDate\\": \\"2021-03-19T02:56:24Z\\",\\n \\"PolicyType\\": \\"Custom\\",\\n \\"ControlPolicyType\\": \\"RESOURCE_CONTROL_POLICY\\"\\n }\\n ]\\n }\\n}","type":"json"}]',
+ ],
+ 'ListDelegatedAdministrators' => [
+ 'methods' => ['post', 'get'],
+ 'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
- 'operationType' => 'readAndWrite',
+ 'operationType' => 'read',
'deprecated' => false,
- 'systemTags' => [
- 'operationType' => 'update',
- ],
+ 'systemTags' => ['operationType' => 'list'],
'parameters' => [
[
- 'name' => 'AccountId',
+ 'name' => 'ServicePrincipal',
'in' => 'query',
- 'schema' => [
- 'description' => 'The Alibaba Cloud account ID of the member.'."\n",
- 'type' => 'string',
- 'required' => true,
- 'example' => '181761095690****',
- ],
+ 'schema' => ['description' => 'The identifier of the trusted service.'."\n"
+ ."\n"
+ .'For more information, see the `Trusted service identifier` column in [Supported trusted services](~~208133~~).'."\n", 'type' => 'string', 'required' => false, 'example' => 'cloudfw.aliyuncs.com', 'title' => ''],
+ ],
+ [
+ 'name' => 'PageNumber',
+ 'in' => 'query',
+ 'schema' => ['description' => 'The number of the page to return.'."\n"
+ ."\n"
+ .'Pages start from page 1. Default value: 1.'."\n", 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '1', 'title' => ''],
+ ],
+ [
+ 'name' => 'PageSize',
+ 'in' => 'query',
+ 'schema' => ['description' => 'The number of entries to return on each page.'."\n"
+ ."\n"
+ .'Valid values: 1 to 100. Default value: 10.'."\n", 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '10', 'title' => ''],
],
],
'responses' => [
@@ -6114,422 +4228,288 @@
'description' => 'The returned result.'."\n",
'type' => 'object',
'properties' => [
- 'RequestId' => [
- 'description' => 'The ID of the request.'."\n",
- 'type' => 'string',
- 'example' => '9B34724D-54B0-4A51-B34D-4512372FE1BE',
+ 'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => '009C3A02-7D4B-416C-9CE7-548C91508F1E', 'title' => ''],
+ 'TotalCount' => ['description' => 'The total number of entries returned.'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '2', 'title' => ''],
+ 'PageSize' => ['description' => 'The number of entries returned per page.'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '10', 'title' => ''],
+ 'PageNumber' => ['description' => 'The page number of the returned page.'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '1', 'title' => ''],
+ 'Accounts' => [
+ 'type' => 'object',
+ 'itemNode' => true,
+ 'properties' => [
+ 'Account' => [
+ 'description' => 'The information about the delegated administrator accounts.'."\n",
+ 'title' => '',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The information about a delegated administrator account.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'AccountId' => ['description' => 'The Alibaba Cloud account ID of the member.'."\n", 'type' => 'string', 'example' => '138660628348****', 'title' => ''],
+ 'DisplayName' => ['description' => 'The display name of the member.'."\n", 'type' => 'string', 'example' => 'abc', 'title' => ''],
+ 'JoinMethod' => ['description' => 'The way in which the member joins the resource directory. Valid values:'."\n"
+ ."\n"
+ .'* invited: The member is invited to join the resource directory.'."\n"
+ .'* created: The member is directly created in the resource directory.'."\n", 'type' => 'string', 'example' => 'created', 'title' => ''],
+ 'ServicePrincipal' => ['description' => 'The identifier of the trusted service.'."\n", 'type' => 'string', 'example' => 'cloudfw.aliyuncs.com', 'title' => ''],
+ 'DelegationEnabledTime' => ['description' => 'The time when the member was specified as a delegated administrator account.'."\n", 'type' => 'string', 'example' => '1616652684164', 'title' => ''],
+ ],
+ 'title' => '',
+ ],
+ ],
+ ],
],
],
+ 'title' => '',
],
],
],
- 'errorCodes' => [
- 404 => [
- [
- 'errorCode' => 'EntityNotExists.EmailModifyRecord',
- 'errorMessage' => 'This email modification record of the account does not exist.',
- ],
- [
- 'errorCode' => 'EntityNotExists.ResourceDirectory',
- 'errorMessage' => 'The resource directory for the account is not enabled. We recommend that you first enable the resource directory for the account.',
- ],
- [
- 'errorCode' => 'EntityNotExists.Account',
- 'errorMessage' => 'This resource directory account does not exist.',
- ],
- ],
- ],
- 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"9B34724D-54B0-4A51-B34D-4512372FE1BE\\"\\n}","errorExample":""},{"type":"xml","example":"<RetryChangeAccountEmailResponse>\\n <RequestId>9B34724D-54B0-4A51-B34D-4512372FE1BE</RequestId>\\n</RetryChangeAccountEmailResponse>","errorExample":""}]',
- 'title' => 'RetryChangeAccountEmail',
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"009C3A02-7D4B-416C-9CE7-548C91508F1E\\",\\n \\"TotalCount\\": 2,\\n \\"PageSize\\": 10,\\n \\"PageNumber\\": 1,\\n \\"Accounts\\": {\\n \\"Account\\": [\\n {\\n \\"AccountId\\": \\"138660628348****\\",\\n \\"DisplayName\\": \\"abc\\",\\n \\"JoinMethod\\": \\"created\\",\\n \\"ServicePrincipal\\": \\"cloudfw.aliyuncs.com\\",\\n \\"DelegationEnabledTime\\": \\"1616652684164\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<?xml version=\\"1.0\\" encoding=\\"UTF-8\\" ?>\\r\\n<ListDelegatedAdministratorsResponse>\\r\\n\\t<RequestId>009C3A02-7D4B-416C-9CE7-548C91508F1E</RequestId>\\r\\n\\t<TotalCount>2</TotalCount>\\r\\n\\t<PageSize>10</PageSize>\\r\\n\\t<PageNumber>1</PageNumber>\\r\\n\\t<Accounts>\\r\\n\\t\\t<Account>\\r\\n\\t\\t\\t<DelegationEnabledTime>1616652684164</DelegationEnabledTime>\\r\\n\\t\\t\\t<JoinMethod>created</JoinMethod>\\r\\n\\t\\t\\t<AccountId>138660628348****</AccountId>\\r\\n\\t\\t\\t<ServicePrincipal>cloudfw.aliyuncs.com</ServicePrincipal>\\r\\n\\t\\t\\t<DisplayName>abc</DisplayName>\\r\\n\\t\\t</Account>\\r\\n\\t\\t<Account>\\r\\n\\t\\t\\t<DelegationEnabledTime>1616489836069</DelegationEnabledTime>\\r\\n\\t\\t\\t<JoinMethod>invited</JoinMethod>\\r\\n\\t\\t\\t<AccountId>177242285274****</AccountId>\\r\\n\\t\\t\\t<ServicePrincipal>cloudfw.aliyuncs.com</ServicePrincipal>\\r\\n\\t\\t\\t<DisplayName>test</DisplayName>\\r\\n\\t\\t</Account>\\r\\n\\t</Accounts>\\r\\n</ListDelegatedAdministratorsResponse>\\t\\r\\n","errorExample":""}]',
+ 'title' => 'ListDelegatedAdministrators',
+ 'summary' => 'Queries delegated administrator accounts.',
+ 'responseParamsDescription' => ' ',
+ 'extraInfo' => ' ',
+ 'changeSet' => [],
],
- 'CancelChangeAccountEmail' => [
- 'summary' => 'Cancels the email address change of a member.',
- 'methods' => [
- 'post',
- 'get',
- ],
- 'schemes' => [
- 'https',
- ],
+ 'ListDelegatedServicesForAccount' => [
+ 'summary' => 'Lists the trusted services for which the specified member account is a delegated administrator.',
+ 'methods' => ['post', 'get'],
+ 'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
- 'operationType' => 'readAndWrite',
+ 'operationType' => 'read',
'deprecated' => false,
- 'systemTags' => [
- 'operationType' => 'update',
- ],
+ 'systemTags' => ['operationType' => 'list', 'riskType' => 'none', 'chargeType' => 'free'],
'parameters' => [
[
'name' => 'AccountId',
'in' => 'query',
- 'schema' => [
- 'description' => 'The Alibaba Cloud account ID of the member.'."\n",
- 'type' => 'string',
- 'required' => true,
- 'example' => '181761095690****',
- ],
+ 'schema' => ['description' => 'The ID of the member account.', 'type' => 'string', 'required' => true, 'example' => '138660628348****', 'title' => ''],
+ ],
+ [
+ 'name' => 'NextToken',
+ 'in' => 'query',
+ 'schema' => ['description' => 'The pagination token for retrieving the next page of results. Omit this parameter for the first request. If a previous response was truncated, pass the `NextToken` value from that response.', 'type' => 'string', 'required' => false, 'example' => 'TGlzdFJlc291cm****', 'title' => ''],
+ ],
+ [
+ 'name' => 'MaxResults',
+ 'in' => 'query',
+ 'schema' => ['description' => 'The maximum number of entries to return on a single page. Valid values: 1 to 100. Default value: 10.', 'type' => 'integer', 'format' => 'int32', 'example' => '20', 'title' => '', 'required' => false],
],
],
'responses' => [
200 => [
'schema' => [
- 'description' => 'The returned result.'."\n",
+ 'description' => 'The response.',
'type' => 'object',
'properties' => [
- 'RequestId' => [
- 'description' => 'The ID of the request.'."\n",
- 'type' => 'string',
- 'example' => '9B34724D-54B0-4A51-B34D-4512372FE1BE',
+ 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => 'D9C03B94-9396-4794-A74B-13DC437556A6', 'title' => ''],
+ 'DelegatedServices' => [
+ 'type' => 'object',
+ 'itemNode' => true,
+ 'properties' => [
+ 'DelegatedService' => [
+ 'description' => 'The list of trusted services.'."\n"
+ ."\n"
+ .'> If the returned list is empty, the specified member account is not a delegated administrator account.',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'Details of a delegated trusted service.',
+ 'type' => 'object',
+ 'properties' => [
+ 'DelegationEnabledTime' => ['description' => 'The timestamp when the member account was designated as a delegated administrator account.', 'type' => 'string', 'example' => '1616652684164', 'title' => ''],
+ 'ServicePrincipal' => ['description' => 'The identifier of the trusted service.', 'type' => 'string', 'example' => 'cloudfw.aliyuncs.com', 'title' => ''],
+ 'Status' => ['description' => 'The status of the trusted service. Valid values:'."\n"
+ ."\n"
+ .'- ENABLED: The integration with the trusted service is enabled.'."\n"
+ ."\n"
+ .'- DISABLED: The integration with the trusted service is disabled.', 'type' => 'string', 'example' => 'ENABLED', 'title' => ''],
+ ],
+ 'title' => '',
+ 'example' => '',
+ ],
+ 'title' => '',
+ 'example' => '',
+ ],
+ ],
+ 'description' => 'Details of the delegated services.',
+ 'title' => '',
+ 'example' => '',
],
+ 'NextToken' => ['description' => 'The token for retrieving the next page of results. This parameter is returned only when the response is truncated, indicating that more results are available.', 'type' => 'string', 'example' => 'TGlzdFJlc291cm****', 'title' => ''],
+ 'MaxResults' => ['description' => 'The maximum number of entries returned on a single page.', 'type' => 'integer', 'format' => 'int32', 'example' => '20', 'title' => ''],
],
+ 'title' => '',
+ 'example' => '',
],
],
],
- 'errorCodes' => [
- 404 => [
- [
- 'errorCode' => 'EntityNotExists.EmailModifyRecord',
- 'errorMessage' => 'This email modification record of the account does not exist.',
- ],
- [
- 'errorCode' => 'EntityNotExists.ResourceDirectory',
- 'errorMessage' => 'The resource directory for the account is not enabled. We recommend that you first enable the resource directory for the account.',
- ],
- [
- 'errorCode' => 'EntityNotExists.Account',
- 'errorMessage' => 'This resource directory account does not exist.',
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"D9C03B94-9396-4794-A74B-13DC437556A6\\",\\n \\"DelegatedServices\\": {\\n \\"DelegatedService\\": [\\n {\\n \\"DelegationEnabledTime\\": \\"1616652684164\\",\\n \\"ServicePrincipal\\": \\"cloudfw.aliyuncs.com\\",\\n \\"Status\\": \\"ENABLED\\"\\n }\\n ]\\n },\\n \\"NextToken\\": \\"TGlzdFJlc291cm****\\",\\n \\"MaxResults\\": 20\\n}","type":"json"}]',
+ 'title' => 'ListDelegatedServicesForAccount',
+ 'responseParamsDescription' => ' ',
+ 'extraInfo' => ' ',
+ 'changeSet' => [],
+ 'flowControl' => [
+ 'flowControlList' => [
+ ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListDelegatedServicesForAccount'],
+ ],
+ ],
+ 'ramActions' => [
+ [
+ 'operationType' => 'list',
+ 'ramAction' => [
+ 'action' => 'resourcemanager:ListDelegatedServicesForAccount',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ResourceManager', 'resourceType' => 'Account', 'arn' => 'acs:resourcemanager::{#accountId}:account/{#ResourceDirectoryPath}'],
+ ],
],
],
],
- 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"9B34724D-54B0-4A51-B34D-4512372FE1BE\\"\\n}","errorExample":""},{"type":"xml","example":"<CancelChangeAccountEmailResponse>\\n <RequestId>9B34724D-54B0-4A51-B34D-4512372FE1BE</RequestId>\\n</CancelChangeAccountEmailResponse>","errorExample":""}]',
- 'title' => 'CancelChangeAccountEmail',
],
- 'AddMessageContact' => [
- 'summary' => 'Adds a contact.',
- 'methods' => [
- 'post',
- 'get',
- ],
- 'schemes' => [
- 'https',
- ],
+ 'ListFoldersForParent' => [
+ 'methods' => ['post', 'get'],
+ 'schemes' => ['https'],
'security' => [
[
'AK' => [],
],
],
- 'operationType' => 'readAndWrite',
+ 'operationType' => 'read',
'deprecated' => false,
- 'systemTags' => [
- 'operationType' => 'create',
- ],
+ 'systemTags' => ['operationType' => 'list', 'riskType' => 'none', 'chargeType' => 'free'],
'parameters' => [
[
- 'name' => 'Name',
+ 'name' => 'ParentFolderId',
'in' => 'query',
- 'schema' => [
- 'description' => 'The name of the contact.'."\n"
- ."\n"
- .'The name must be unique in your resource directory.'."\n"
- ."\n"
- .'The name must be 2 to 12 characters in length and can contain only letters.'."\n",
- 'type' => 'string',
- 'required' => true,
- 'example' => 'tom',
- ],
+ 'schema' => ['description' => 'The ID of the parent folder.'."\n"
+ ."\n"
+ .'If you leave this parameter empty, the information of the first-level subfolders of the Root folder is queried.'."\n", 'type' => 'string', 'required' => false, 'example' => 'r-b1****', 'title' => ''],
],
[
- 'name' => 'EmailAddress',
+ 'name' => 'QueryKeyword',
'in' => 'query',
- 'schema' => [
- 'description' => 'The email address of the contact.'."\n"
- ."\n"
- .'After you specify an email address, you need to call [SendEmailVerificationForMessageContact](~~SendEmailVerificationForMessageContact~~) to send verification information to the email address. After the verification is passed, the email address takes effect.'."\n",
- 'type' => 'string',
- 'required' => true,
- 'example' => 'someone***@example.com',
- ],
+ 'schema' => ['description' => 'The keyword used for the query, such as a folder name.'."\n"
+ ."\n"
+ .'Fuzzy match is supported.'."\n", 'type' => 'string', 'required' => false, 'example' => 'rdFolder', 'title' => ''],
],
[
- 'name' => 'PhoneNumber',
+ 'name' => 'PageNumber',
'in' => 'query',
- 'schema' => [
- 'description' => 'The mobile phone number of the contact.'."\n"
- ."\n"
- .'Specify the mobile phone number in the `<Country code>-<Mobile phone number>` format.'."\n"
- ."\n"
- .'> Only mobile phone numbers in the `86-<Mobile phone number>` format in the Chinese mainland are supported.'."\n"
- ."\n"
- .'After you specify a mobile phone number, you need to call [SendPhoneVerificationForMessageContact](~~SendPhoneVerificationForMessageContact~~) to send verification information to the mobile phone number. After the verification is passed, the mobile phone number takes effect.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => '86-139****1234',
- ],
+ 'schema' => ['description' => 'The number of the page to return.'."\n"
+ ."\n"
+ .'Pages start from page 1. Default value: 1.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1', 'title' => ''],
],
[
- 'name' => 'Title',
+ 'name' => 'PageSize',
'in' => 'query',
- 'schema' => [
- 'description' => 'The job title of the contact.'."\n"
- ."\n"
- .'Valid values:'."\n"
- ."\n"
- .'* FinanceDirector'."\n"
- ."\n"
- .' <!-- -->'."\n"
- ."\n"
- .' <!-- -->'."\n"
- ."\n"
- .' <!-- -->'."\n"
- ."\n"
- .'* TechnicalDirector'."\n"
- ."\n"
- .' <!-- -->'."\n"
- ."\n"
- .' <!-- -->'."\n"
- ."\n"
- .' <!-- -->'."\n"
- ."\n"
- .'* MaintenanceDirector'."\n"
- ."\n"
- .' <!-- -->'."\n"
- ."\n"
- .' <!-- -->'."\n"
- ."\n"
- .' <!-- -->'."\n"
- ."\n"
- .'* CEO'."\n"
- ."\n"
- .' <!-- -->'."\n"
- ."\n"
- .' <!-- -->'."\n"
- ."\n"
- .' <!-- -->'."\n"
- ."\n"
- .'* ProjectDirector'."\n"
- ."\n"
- .' <!-- -->'."\n"
- ."\n"
- .' <!-- -->'."\n"
- ."\n"
- .' <!-- -->'."\n"
- ."\n"
- .'* Other'."\n"
- ."\n"
- .' <!-- -->'."\n"
- ."\n"
- .' <!-- -->'."\n"
- ."\n"
- .' <!-- -->'."\n",
- 'type' => 'string',
- 'required' => true,
- 'enumValueTitles' => [
- 'FinanceDirector' => '',
- 'TechnicalDirector' => '',
- 'MaintenanceDirector' => '',
- 'CEO' => 'CEO',
- 'ProjectDirector' => '',
- 'Other' => '',
- ],
- 'example' => 'TechnicalDirector',
- ],
+ 'schema' => ['description' => 'The number of entries to return on each page.'."\n"
+ ."\n"
+ .'Valid values: 1 to 100. Default value: 10.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '10', 'title' => ''],
],
[
- 'name' => 'MessageTypes',
+ 'name' => 'Tag',
'in' => 'query',
'style' => 'flat',
'schema' => [
- 'description' => 'The types of messages received by the contact.'."\n",
+ 'description' => 'The tags. This parameter specifies a filter condition.'."\n",
'type' => 'array',
'items' => [
- 'description' => 'The type of the message received by the contact.'."\n"
- ."\n"
- .'Valid values:'."\n"
- ."\n"
- .'* ServiceMessage'."\n"
- ."\n"
- .' <!-- -->'."\n"
- ."\n"
- .' <!-- -->'."\n"
- ."\n"
- .' <!-- -->'."\n"
- ."\n"
- .'* FaultMessage'."\n"
- ."\n"
- .' <!-- -->'."\n"
- ."\n"
- .' <!-- -->'."\n"
- ."\n"
- .' <!-- -->'."\n"
- ."\n"
- .'* AccountExpenses'."\n"
- ."\n"
- .' <!-- -->'."\n"
- ."\n"
- .' <!-- -->'."\n"
- ."\n"
- .' <!-- -->'."\n"
- ."\n"
- .'* SecurityMessage'."\n"
- ."\n"
- .' <!-- -->'."\n"
- ."\n"
- .' <!-- -->'."\n"
- ."\n"
- .' <!-- -->'."\n"
- ."\n"
- .'* ActivityMessage'."\n"
- ."\n"
- .' <!-- -->'."\n"
- ."\n"
- .' <!-- -->'."\n"
- ."\n"
- .' <!-- -->'."\n"
- ."\n"
- .'* ProductMessage'."\n"
- ."\n"
- .' <!-- -->'."\n"
- ."\n"
- .' <!-- -->'."\n"
- ."\n"
- .' <!-- -->'."\n",
- 'type' => 'string',
- 'required' => false,
- 'enumValueTitles' => [
- 'ServiceMessage' => '',
- 'FaultMessage' => '',
- 'AccountExpenses' => '',
- 'SecurityMessage' => '',
- 'ActivityMessage' => '',
- 'ProductMessage' => '',
+ 'description' => 'A tag.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'Key' => ['description' => 'The key of the tag.'."\n", 'type' => 'string', 'required' => false, 'example' => 'k1', 'title' => ''],
+ 'Value' => ['description' => 'The value of the tag.'."\n", 'type' => 'string', 'required' => false, 'example' => 'v1', 'title' => ''],
],
- 'example' => 'AccountExpenses',
+ 'required' => false,
+ 'title' => '',
],
- 'required' => true,
+ 'required' => false,
+ 'title' => '',
],
],
],
'responses' => [
200 => [
'schema' => [
- 'title' => 'Schema of Response',
'description' => 'The returned result.'."\n",
'type' => 'object',
'properties' => [
- 'RequestId' => [
- 'title' => 'Id of the request',
- 'description' => 'The request ID.'."\n",
- 'type' => 'string',
- 'example' => '2DFCE4C9-04A9-4C83-BB14-FE791275EC53',
- ],
- 'Contact' => [
- 'description' => 'The information about the contact.'."\n",
+ 'Folders' => [
'type' => 'object',
+ 'itemNode' => true,
'properties' => [
- 'ContactId' => [
- 'description' => 'The ID of the contact.'."\n",
- 'type' => 'string',
- 'example' => 'c-qL4HqKONzOM7****',
- ],
- 'CreateDate' => [
- 'description' => 'The time when the contact was created.'."\n",
- 'type' => 'string',
- 'example' => '2023-03-27 17:19:21',
+ 'Folder' => [
+ 'description' => 'The folders.'."\n",
+ 'title' => '',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The information about a folder.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'CreateTime' => ['description' => 'The time when the folder was created.'."\n", 'type' => 'string', 'example' => '2015-01-23T12:33:18Z', 'title' => ''],
+ 'FolderId' => ['description' => 'The ID of the folder.'."\n", 'type' => 'string', 'example' => 'rd-evic31****', 'title' => ''],
+ 'FolderName' => ['description' => 'The name of the folder.'."\n", 'type' => 'string', 'example' => 'project-1', 'title' => ''],
+ 'Tags' => [
+ 'type' => 'object',
+ 'itemNode' => true,
+ 'properties' => [
+ 'Tag' => [
+ 'description' => 'The tags added to the folder.'."\n",
+ 'title' => '',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The tag added to the folder.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'Key' => ['description' => 'The key of the tag.'."\n", 'type' => 'string', 'example' => 'k1', 'title' => ''],
+ 'Value' => ['description' => 'The value of the tag.'."\n", 'type' => 'string', 'example' => 'v1', 'title' => ''],
+ ],
+ 'title' => '',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'title' => '',
+ ],
],
],
],
+ 'PageNumber' => ['description' => 'The page number of the returned page.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''],
+ 'PageSize' => ['description' => 'The number of entries returned per page.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '5', 'title' => ''],
+ 'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => '7B8A4E7D-6CFF-471D-84DF-195A7A241ECB', 'title' => ''],
+ 'TotalCount' => ['description' => 'The total number of entries returned.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '2', 'title' => ''],
],
+ 'title' => '',
],
],
],
'errorCodes' => [
400 => [
- [
- 'errorCode' => 'MissingParameter.Name',
- 'errorMessage' => 'You must specify Name.',
- ],
- [
- 'errorCode' => 'InvalidParameter.Name',
- 'errorMessage' => 'The Name is invalid.',
- ],
- [
- 'errorCode' => 'InvalidParameter.Name.Length',
- 'errorMessage' => 'The Name exceeds the length limit.',
- ],
- [
- 'errorCode' => 'InvalidParameter.Name.AlreadyUsed',
- 'errorMessage' => 'The Name already exists. Please change to another name.',
- ],
- [
- 'errorCode' => 'MissingParameter.EmailAddress',
- 'errorMessage' => 'You must specify EmailAddress.',
- ],
- [
- 'errorCode' => 'InvalidParameter.EmailAddress',
- 'errorMessage' => 'The EmailAddress is invalid.',
- ],
- [
- 'errorCode' => 'MissingParameter.PhoneNumber',
- 'errorMessage' => 'You must specify PhoneNumber.',
- ],
- [
- 'errorCode' => 'InvalidParameter.PhoneNumber',
- 'errorMessage' => 'The PhoneNumber is invalid.',
- ],
- [
- 'errorCode' => 'MissingParameter.Title',
- 'errorMessage' => 'You must specify Title.',
- ],
- [
- 'errorCode' => 'InvalidParameter.Title',
- 'errorMessage' => 'The Title is invalid.',
- ],
- [
- 'errorCode' => 'MissingParameter.MessageTypes',
- 'errorMessage' => 'You must specify MessageTypes.',
- ],
- [
- 'errorCode' => 'InvalidParameter.MessageTypes',
- 'errorMessage' => 'The MessageTypes is invalid.',
- ],
- [
- 'errorCode' => 'LimitExceeded.Contacts',
- 'errorMessage' => 'The maximum number of contacts in a resource directory exceeds the limit.',
- ],
- [
- 'errorCode' => 'InvalidParameter.MobileCountryCode',
- 'errorMessage' => 'The current site does not support the country code.',
- ],
- [
- 'errorCode' => 'InvalidParameter.EmailAddress.Length',
- 'errorMessage' => 'The EmailAddress exceeds the length limit.',
- ],
+ ['errorCode' => 'InvalidParameter.ParentFolderId', 'errorMessage' => 'The ParentFolderId is invalid.', 'description' => ''],
],
- 429 => [
- [
- 'errorCode' => 'ConcurrentCallNotSupported',
- 'errorMessage' => 'The operation conflicts with other operations. Please try again later.',
- ],
+ 404 => [
+ ['errorCode' => 'EntityNotExists.ResourceDirectory', 'errorMessage' => 'The resource directory for the account is not enabled. We recommend that you first enable the resource directory for the account.', 'description' => ''],
+ ['errorCode' => 'EntityNotExists.Folder', 'errorMessage' => 'The resource directory folder does not exist.', 'description' => ''],
],
],
- 'staticInfo' => [
- 'returnType' => 'synchronous',
- ],
- 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"2DFCE4C9-04A9-4C83-BB14-FE791275EC53\\",\\n \\"Contact\\": {\\n \\"ContactId\\": \\"c-qL4HqKONzOM7****\\",\\n \\"CreateDate\\": \\"2023-03-27 17:19:21\\"\\n }\\n}","type":"json"}]',
- 'title' => 'AddMessageContact',
+ 'staticInfo' => ['returnType' => 'synchronous'],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"Folders\\": {\\n \\"Folder\\": [\\n {\\n \\"CreateTime\\": \\"2015-01-23T12:33:18Z\\",\\n \\"FolderId\\": \\"rd-evic31****\\",\\n \\"FolderName\\": \\"project-1\\",\\n \\"Tags\\": {\\n \\"Tag\\": [\\n {\\n \\"Key\\": \\"k1\\",\\n \\"Value\\": \\"v1\\"\\n }\\n ]\\n }\\n }\\n ]\\n },\\n \\"PageNumber\\": 1,\\n \\"PageSize\\": 5,\\n \\"RequestId\\": \\"7B8A4E7D-6CFF-471D-84DF-195A7A241ECB\\",\\n \\"TotalCount\\": 2\\n}","errorExample":""},{"type":"xml","example":"<?xml version=\\"1.0\\" encoding=\\"UTF-8\\" ?>\\r\\n<ListFoldersForParentResponse>\\r\\n <RequestId>7B8A4E7D-6CFF-471D-84DF-195A7A241ECB</RequestId>\\r\\n <PageNumber>1</PageNumber>\\r\\n <PageSize>5</PageSize>\\r\\n <TotalCount>2</TotalCount>\\r\\n <Folders>\\r\\n <Folder>\\r\\n <FolderId>rd-evic31****</FolderId>\\r\\n <FolderName>project-1</FolderName>\\r\\n <CreateTime>2015-01-23T12:33:18Z</CreateTime>\\r\\n </Folder>\\r\\n <Folder>\\r\\n <FolderId>fd-evic31****</FolderId>\\r\\n <FolderName>project-2</FolderName>\\r\\n <CreateTime>2015-01-23T12:33:18Z</CreateTime>\\r\\n </Folder>\\r\\n </Folders>\\r\\n</ListFoldersForParentResponse>","errorExample":""}]',
+ 'title' => 'ListFoldersForParent',
+ 'summary' => 'Queries the information of all subfolders of a folder.',
+ 'description' => 'You can call this API operation to view the information of only the first-level subfolders of a folder.'."\n",
+ 'requestParamsDescription' => ' ',
+ 'responseParamsDescription' => ' ',
+ 'extraInfo' => ' ',
+ 'changeSet' => [],
],
- 'SendEmailVerificationForMessageContact' => [
- 'summary' => 'Sends verification information to the email address of a contact.',
- 'methods' => [
- 'post',
- 'get',
- ],
- 'schemes' => [
- 'https',
- ],
+ 'ListHandshakesForAccount' => [
+ 'methods' => ['post', 'get'],
+ 'schemes' => ['https'],
'security' => [
[
'AK' => [],
@@ -6537,101 +4517,86 @@
],
'operationType' => 'readAndWrite',
'deprecated' => false,
- 'systemTags' => [
- 'operationType' => 'none',
- ],
+ 'systemTags' => ['operationType' => 'list'],
'parameters' => [
[
- 'name' => 'ContactId',
+ 'name' => 'PageNumber',
'in' => 'query',
- 'schema' => [
- 'description' => 'The ID of the contact.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'c-5gsZAGt***PGduDF',
- ],
+ 'schema' => ['description' => 'The number of the page to return.'."\n"
+ ."\n"
+ .'Pages start from page 1. Default value: 1.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1', 'title' => ''],
],
[
- 'name' => 'EmailAddress',
+ 'name' => 'PageSize',
'in' => 'query',
- 'schema' => [
- 'description' => 'The email address of the contact.'."\n"
- ."\n"
- .'The specified email address must be the one you specify when you call [AddMessageContact](~~AddMessageContact~~).'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'someone***@example.com',
- ],
+ 'schema' => ['description' => 'The number of entries to return on each page.'."\n"
+ ."\n"
+ .'Valid values: 1 to 100. Default value: 10.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '10', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
- 'title' => 'Schema of Response',
'description' => 'The returned result.'."\n",
'type' => 'object',
'properties' => [
- 'RequestId' => [
- 'title' => 'Id of the request',
- 'description' => 'The request ID.'."\n",
- 'type' => 'string',
- 'example' => '7B8A4E7D-6CFF-471D-84DF-195A7A241ECB',
+ 'TotalCount' => ['description' => 'The total number of invitations.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '2', 'title' => ''],
+ 'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => '9B34724D-54B0-4A51-B34D-4512372FE1BE', 'title' => ''],
+ 'PageSize' => ['description' => 'The number of entries returned per page.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '10', 'title' => ''],
+ 'PageNumber' => ['description' => 'The page number of the returned page.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''],
+ 'Handshakes' => [
+ 'type' => 'object',
+ 'itemNode' => true,
+ 'properties' => [
+ 'Handshake' => [
+ 'description' => 'The information of the invitations.'."\n",
+ 'title' => '',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The information of an invitation.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'Status' => ['description' => 'The status of the invitation. Valid values:'."\n"
+ ."\n"
+ .'* Pending: The invitation is waiting for confirmation.'."\n"
+ .'* Accepted: The invitation is accepted.'."\n"
+ .'* Cancelled: The invitation is canceled.'."\n"
+ .'* Declined: The invitation is rejected.'."\n"
+ .'* Expired: The invitation expires.'."\n", 'type' => 'string', 'example' => 'Pending', 'title' => ''],
+ 'ExpireTime' => ['description' => 'The time when the invitation expires. The time is displayed in UTC.'."\n", 'type' => 'string', 'example' => '2018-08-24T09:55:41Z', 'title' => ''],
+ 'ResourceDirectoryId' => ['description' => 'The ID of the resource directory.'."\n", 'type' => 'string', 'example' => 'rd-abcdef****', 'title' => ''],
+ 'CreateTime' => ['description' => 'The time when the invitation was created. The time is displayed in UTC.'."\n", 'type' => 'string', 'example' => '2018-08-10T09:55:41Z', 'title' => ''],
+ 'Note' => ['description' => 'The description of the invitation.'."\n", 'type' => 'string', 'example' => 'Welcome'."\n", 'title' => ''],
+ 'TargetEntity' => ['description' => 'The ID or logon email address of the invited Alibaba Cloud account.'."\n", 'type' => 'string', 'example' => 'someone@example.com', 'title' => ''],
+ 'MasterAccountId' => ['description' => 'The ID of the management account of the resource directory.'."\n", 'type' => 'string', 'example' => '172841235500****', 'title' => ''],
+ 'MasterAccountName' => ['description' => 'The name of the management account of the resource directory.'."\n", 'type' => 'string', 'example' => 'CompanyA', 'title' => ''],
+ 'ModifyTime' => ['description' => 'The time when the invitation was modified. The time is displayed in UTC.'."\n", 'type' => 'string', 'example' => '2018-08-10T09:55:41Z', 'title' => ''],
+ 'TargetType' => ['description' => 'The type of the invited Alibaba Cloud account. Valid values:'."\n"
+ ."\n"
+ .'* Account: indicates the ID of the account.'."\n"
+ .'* Email: indicates the logon email address of the account.'."\n", 'type' => 'string', 'example' => 'Email', 'title' => ''],
+ 'HandshakeId' => ['description' => 'The ID of the invitation.'."\n", 'type' => 'string', 'example' => 'h-4N57QZzCTtES****', 'title' => ''],
+ ],
+ 'title' => '',
+ ],
+ ],
+ ],
],
],
+ 'title' => '',
],
],
],
- 'errorCodes' => [
- 400 => [
- [
- 'errorCode' => 'MissingParameter.ContactId',
- 'errorMessage' => 'You must specify ContactId.',
- ],
- [
- 'errorCode' => 'InvalidParameter.ContactId',
- 'errorMessage' => 'The ContactId is invalid.',
- ],
- [
- 'errorCode' => 'MissingParameter.EmailAddress',
- 'errorMessage' => 'You must specify EmailAddress.',
- ],
- [
- 'errorCode' => 'InvalidParameter.EmailAddress',
- 'errorMessage' => 'The EmailAddress is invalid.',
- ],
- ],
- 404 => [
- [
- 'errorCode' => 'EntityNotExists.Contact',
- 'errorMessage' => 'This Contact does not exist.',
- ],
- [
- 'errorCode' => 'EntityNotExists.Contact.Verification',
- 'errorMessage' => 'This contact verification does not exist.',
- ],
- ],
- 409 => [
- [
- 'errorCode' => 'SendValidateCodeExceedsLimitForAccount',
- 'errorMessage' => 'For the same account, the number of verification codes sent exceeds the limit.',
- ],
- ],
- ],
- 'staticInfo' => [
- 'returnType' => 'synchronous',
- ],
- 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"7B8A4E7D-6CFF-471D-84DF-195A7A241ECB\\"\\n}","type":"json"}]',
- 'title' => 'SendEmailVerificationForMessageContact',
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"TotalCount\\": 2,\\n \\"RequestId\\": \\"9B34724D-54B0-4A51-B34D-4512372FE1BE\\",\\n \\"PageSize\\": 10,\\n \\"PageNumber\\": 1,\\n \\"Handshakes\\": {\\n \\"Handshake\\": [\\n {\\n \\"Status\\": \\"Pending\\",\\n \\"ExpireTime\\": \\"2018-08-24T09:55:41Z\\",\\n \\"ResourceDirectoryId\\": \\"rd-abcdef****\\",\\n \\"CreateTime\\": \\"2018-08-10T09:55:41Z\\",\\n \\"Note\\": \\"Welcome\\\\n\\",\\n \\"TargetEntity\\": \\"someone@example.com\\",\\n \\"MasterAccountId\\": \\"172841235500****\\",\\n \\"MasterAccountName\\": \\"CompanyA\\",\\n \\"ModifyTime\\": \\"2018-08-10T09:55:41Z\\",\\n \\"TargetType\\": \\"Email\\",\\n \\"HandshakeId\\": \\"h-4N57QZzCTtES****\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"","errorExample":""}]',
+ 'title' => 'ListHandshakesForAccount',
+ 'summary' => 'Queries the invitations that are associated with an account.',
+ 'responseParamsDescription' => ' ',
+ 'extraInfo' => ' ',
+ 'changeSet' => [],
],
- 'SendPhoneVerificationForMessageContact' => [
- 'summary' => 'Sends verification information to the mobile phone number of a contact.',
- 'methods' => [
- 'post',
- 'get',
- ],
- 'schemes' => [
- 'https',
- ],
+ 'ListHandshakesForResourceDirectory' => [
+ 'methods' => ['post', 'get'],
+ 'schemes' => ['https'],
'security' => [
[
'AK' => [],
@@ -6639,107 +4604,91 @@
],
'operationType' => 'readAndWrite',
'deprecated' => false,
- 'systemTags' => [
- 'operationType' => 'none',
- ],
+ 'systemTags' => ['operationType' => 'list'],
'parameters' => [
[
- 'name' => 'ContactId',
+ 'name' => 'PageNumber',
'in' => 'query',
- 'schema' => [
- 'description' => 'The ID of the contact.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'c-qL4HqKONzOM7****',
- ],
+ 'schema' => ['description' => 'The number of the page to return.'."\n"
+ ."\n"
+ .'Pages start from page 1. Default value: 1.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1', 'title' => ''],
],
[
- 'name' => 'PhoneNumber',
+ 'name' => 'PageSize',
'in' => 'query',
- 'schema' => [
- 'description' => 'The mobile phone number of the contact.'."\n"
- ."\n"
- .'The value must be in the `<Country code>-<Mobile phone number>` format.'."\n"
- ."\n"
- .'The specified mobile phone number must be the one you specify when you call the [AddMessageContact](~~AddMessageContact~~) operation.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => '86-139****1234',
- ],
+ 'schema' => ['description' => 'The number of entries to return on each page.'."\n"
+ ."\n"
+ .'Valid values: 1 to 100. Default value: 10.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '10', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
- 'title' => 'Schema of Response',
'description' => 'The returned result.'."\n",
'type' => 'object',
'properties' => [
- 'RequestId' => [
- 'title' => 'Id of the request',
- 'description' => 'The request ID.'."\n",
- 'type' => 'string',
- 'example' => 'CD76D376-2517-4924-92C5-DBC52262F93A',
+ 'TotalCount' => ['description' => 'The total number of entries returned.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '2', 'title' => ''],
+ 'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => '9B34724D-54B0-4A51-B34D-4512372FE1BE', 'title' => ''],
+ 'PageSize' => ['description' => 'The number of entries returned per page.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '10', 'title' => ''],
+ 'PageNumber' => ['description' => 'The page number of the returned page.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''],
+ 'Handshakes' => [
+ 'type' => 'object',
+ 'itemNode' => true,
+ 'properties' => [
+ 'Handshake' => [
+ 'description' => 'The information of the invitations.'."\n",
+ 'title' => '',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The information of an invitation.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'Status' => ['description' => 'The status of the invitation. Valid values:'."\n"
+ ."\n"
+ .'* Pending: The invitation is waiting for confirmation.'."\n"
+ .'* Accepted: The invitation is accepted.'."\n"
+ .'* Cancelled: The invitation is canceled.'."\n"
+ .'* Declined: The invitation is rejected.'."\n"
+ .'* Expired: The invitation expires.'."\n", 'type' => 'string', 'example' => 'Pending', 'title' => ''],
+ 'ExpireTime' => ['description' => 'The time when the invitation expires. The time is displayed in UTC.'."\n", 'type' => 'string', 'example' => '2018-08-24T09:55:41Z', 'title' => ''],
+ 'ResourceDirectoryId' => ['description' => 'The ID of the resource directory.'."\n", 'type' => 'string', 'example' => 'rd-abcdef****', 'title' => ''],
+ 'CreateTime' => ['description' => 'The time when the invitation was created. The time is displayed in UTC.'."\n", 'type' => 'string', 'example' => '2018-08-10T09:55:41Z', 'title' => ''],
+ 'Note' => ['description' => 'The description of the invitation.'."\n", 'type' => 'string', 'example' => 'Welcome'."\n", 'title' => ''],
+ 'TargetEntity' => ['description' => 'The ID or logon email address of the invited account.'."\n", 'type' => 'string', 'example' => 'someone@example.com', 'title' => ''],
+ 'MasterAccountId' => ['description' => 'The ID of the management account of the resource directory.'."\n", 'type' => 'string', 'example' => '172841235500****', 'title' => ''],
+ 'MasterAccountName' => ['description' => 'The name of the management account of the resource directory.'."\n", 'type' => 'string', 'example' => 'Alice', 'title' => ''],
+ 'ModifyTime' => ['description' => 'The time when the invitation was modified. The time is displayed in UTC.'."\n", 'type' => 'string', 'example' => '2018-08-10T09:55:41Z', 'title' => ''],
+ 'TargetType' => ['description' => 'The type of the invited account. Valid values:'."\n"
+ ."\n"
+ .'* Account: indicates the ID of the account.'."\n"
+ .'* Email: indicates the logon email address of the account.'."\n", 'type' => 'string', 'example' => 'Email', 'title' => ''],
+ 'HandshakeId' => ['description' => 'The ID of the invitation.'."\n", 'type' => 'string', 'example' => 'h-ycm4rp****', 'title' => ''],
+ ],
+ 'title' => '',
+ ],
+ ],
+ ],
],
],
+ 'title' => '',
],
],
],
'errorCodes' => [
- 400 => [
- [
- 'errorCode' => 'MissingParameter.ContactId',
- 'errorMessage' => 'You must specify ContactId.',
- ],
- [
- 'errorCode' => 'InvalidParameter.ContactId',
- 'errorMessage' => 'The ContactId is invalid.',
- ],
- [
- 'errorCode' => 'MissingParameter.PhoneNumber',
- 'errorMessage' => 'You must specify PhoneNumber.',
- ],
- [
- 'errorCode' => 'InvalidParameter.PhoneNumber',
- 'errorMessage' => 'The PhoneNumber is invalid.',
- ],
- [
- 'errorCode' => 'InvalidParameter.MobileCountryCode',
- 'errorMessage' => 'The current site does not support the country code.',
- ],
- ],
404 => [
- [
- 'errorCode' => 'EntityNotExists.Contact',
- 'errorMessage' => 'This Contact does not exist.',
- ],
- [
- 'errorCode' => 'EntityNotExists.Contact.Verification',
- 'errorMessage' => 'This contact verification does not exist.',
- ],
- ],
- 409 => [
- [
- 'errorCode' => 'SendValidateCodeExceedsLimitForAccount',
- 'errorMessage' => 'For the same account, the number of verification codes sent exceeds the limit.',
- ],
+ ['errorCode' => 'EntityNotExists.ResourceDirectory', 'errorMessage' => 'The resource directory for the account is not enabled. We recommend that you first enable the resource directory for the account.', 'description' => ''],
],
],
- 'staticInfo' => [
- 'returnType' => 'synchronous',
- ],
- 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"CD76D376-2517-4924-92C5-DBC52262F93A\\"\\n}","type":"json"}]',
- 'title' => 'SendPhoneVerificationForMessageContact',
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"TotalCount\\": 2,\\n \\"RequestId\\": \\"9B34724D-54B0-4A51-B34D-4512372FE1BE\\",\\n \\"PageSize\\": 10,\\n \\"PageNumber\\": 1,\\n \\"Handshakes\\": {\\n \\"Handshake\\": [\\n {\\n \\"Status\\": \\"Pending\\",\\n \\"ExpireTime\\": \\"2018-08-24T09:55:41Z\\",\\n \\"ResourceDirectoryId\\": \\"rd-abcdef****\\",\\n \\"CreateTime\\": \\"2018-08-10T09:55:41Z\\",\\n \\"Note\\": \\"Welcome\\\\n\\",\\n \\"TargetEntity\\": \\"someone@example.com\\",\\n \\"MasterAccountId\\": \\"172841235500****\\",\\n \\"MasterAccountName\\": \\"Alice\\",\\n \\"ModifyTime\\": \\"2018-08-10T09:55:41Z\\",\\n \\"TargetType\\": \\"Email\\",\\n \\"HandshakeId\\": \\"h-ycm4rp****\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"","errorExample":""}]',
+ 'title' => 'ListHandshakesForResourceDirectory',
+ 'summary' => 'Queries invitations in a resource directory.',
+ 'responseParamsDescription' => ' ',
+ 'extraInfo' => ' ',
+ 'changeSet' => [],
],
'ListMessageContactVerifications' => [
- 'summary' => 'Queries the mobile phone number or email address to be verified for a contact.',
- 'methods' => [
- 'post',
- 'get',
- ],
- 'schemes' => [
- 'https',
- ],
+ 'methods' => ['post', 'get'],
+ 'schemes' => ['https'],
'security' => [
[
'AK' => [],
@@ -6747,41 +4696,22 @@
],
'operationType' => 'readAndWrite',
'deprecated' => false,
- 'systemTags' => [
- 'operationType' => 'list',
- ],
+ 'systemTags' => ['operationType' => 'list'],
'parameters' => [
[
'name' => 'ContactId',
'in' => 'query',
- 'schema' => [
- 'description' => 'The ID of the contact.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'c-qL4HqKONzOM7****',
- ],
+ 'schema' => ['description' => 'The ID of the contact.'."\n", 'type' => 'string', 'required' => false, 'example' => 'c-qL4HqKONzOM7****', 'title' => ''],
],
[
'name' => 'PageNumber',
'in' => 'query',
- 'schema' => [
- 'description' => 'The page number.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'required' => false,
- 'example' => '1',
- ],
+ 'schema' => ['description' => 'The page number.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1', 'title' => ''],
],
[
'name' => 'PageSize',
'in' => 'query',
- 'schema' => [
- 'description' => 'The number of entries per page.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'required' => false,
- 'example' => '10',
- ],
+ 'schema' => ['description' => 'The number of entries per page.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '10', 'title' => ''],
],
],
'responses' => [
@@ -6791,30 +4721,10 @@
'description' => 'The returned result.'."\n",
'type' => 'object',
'properties' => [
- 'RequestId' => [
- 'title' => 'Id of the request',
- 'description' => 'The request ID.'."\n",
- 'type' => 'string',
- 'example' => 'CD76D376-2517-4924-92C5-DBC52262F93A',
- ],
- 'TotalCount' => [
- 'description' => 'The total number of entries returned.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'example' => '48',
- ],
- 'PageSize' => [
- 'description' => 'The number of entries per page.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'example' => '10',
- ],
- 'PageNumber' => [
- 'description' => 'The page number.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'example' => '1',
- ],
+ 'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.'."\n", 'type' => 'string', 'example' => 'CD76D376-2517-4924-92C5-DBC52262F93A'],
+ 'TotalCount' => ['description' => 'The total number of entries returned.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '48', 'title' => ''],
+ 'PageSize' => ['description' => 'The number of entries per page.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '10', 'title' => ''],
+ 'PageNumber' => ['description' => 'The page number.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''],
'ContactVerifications' => [
'description' => 'The record for the contact to be verified.',
'type' => 'array',
@@ -6822,21 +4732,15 @@
'description' => '',
'type' => 'object',
'properties' => [
- 'ContactId' => [
- 'description' => 'The ID of the contact.',
- 'type' => 'string',
- 'example' => 'c-qL4HqKONzOM7****',
- ],
- 'Target' => [
- 'description' => 'The object that is used for verification. Valid values:'."\n"
- ."\n"
- .'- Mobile phone number'."\n"
- .'- Email address',
- 'type' => 'string',
- 'example' => 'someone***@example.com',
- ],
+ 'ContactId' => ['description' => 'The ID of the contact.', 'type' => 'string', 'example' => 'c-qL4HqKONzOM7****', 'title' => ''],
+ 'Target' => ['description' => 'The object that is used for verification. Valid values:'."\n"
+ ."\n"
+ .'- Mobile phone number'."\n"
+ .'- Email address', 'type' => 'string', 'example' => 'someone***@example.com', 'title' => ''],
],
+ 'title' => '',
],
+ 'title' => '',
],
],
],
@@ -6844,37 +4748,22 @@
],
'errorCodes' => [
400 => [
- [
- 'errorCode' => 'InvalidParameter.ContactId',
- 'errorMessage' => 'The ContactId is invalid.',
- ],
- [
- 'errorCode' => 'MissingParameter.ContactId',
- 'errorMessage' => 'You must specify ContactId.',
- ],
+ ['errorCode' => 'InvalidParameter.ContactId', 'errorMessage' => 'The ContactId is invalid.', 'description' => ''],
+ ['errorCode' => 'MissingParameter.ContactId', 'errorMessage' => 'You must specify ContactId.', 'description' => ''],
],
404 => [
- [
- 'errorCode' => 'EntityNotExists.Contact',
- 'errorMessage' => 'This Contact does not exist.',
- ],
+ ['errorCode' => 'EntityNotExists.Contact', 'errorMessage' => 'This Contact does not exist.', 'description' => ''],
],
],
- 'staticInfo' => [
- 'returnType' => 'synchronous',
- ],
+ 'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"CD76D376-2517-4924-92C5-DBC52262F93A\\",\\n \\"TotalCount\\": 48,\\n \\"PageSize\\": 10,\\n \\"PageNumber\\": 1,\\n \\"ContactVerifications\\": [\\n {\\n \\"ContactId\\": \\"c-qL4HqKONzOM7****\\",\\n \\"Target\\": \\"someone***@example.com\\"\\n }\\n ]\\n}","type":"json"}]',
'title' => 'ListMessageContactVerifications',
+ 'summary' => 'Queries the mobile phone number or email address to be verified for a contact.',
+ 'changeSet' => [],
],
- 'AssociateMembers' => [
- 'summary' => 'Binds a contact to a resource directory, folder, or member.',
- 'methods' => [
- 'post',
- 'get',
- ],
- 'schemes' => [
- 'https',
- ],
+ 'ListMessageContacts' => [
+ 'methods' => ['post', 'get'],
+ 'schemes' => ['https'],
'security' => [
[
'AK' => [],
@@ -6882,41 +4771,31 @@
],
'operationType' => 'readAndWrite',
'deprecated' => false,
- 'systemTags' => [
- 'operationType' => 'update',
- ],
+ 'systemTags' => ['operationType' => 'list'],
'parameters' => [
[
'name' => 'ContactId',
'in' => 'query',
- 'schema' => [
- 'description' => 'The ID of the contact.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'c-qL4HqKONzOM7****',
- ],
+ 'schema' => ['description' => 'The ID of the contact.'."\n", 'type' => 'string', 'required' => false, 'example' => 'c-qL4HqKONzOM7****', 'title' => ''],
],
[
- 'name' => 'Members',
+ 'name' => 'Member',
'in' => 'query',
- 'style' => 'flat',
- 'schema' => [
- 'description' => 'The IDs of objects to which you want to bind the contact.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The ID of the object to which you want to bind the contact. Valid values:'."\n"
- ."\n"
- .'* ID of a resource directory'."\n"
- .'* ID of a folder'."\n"
- .'* ID of a member'."\n"
- ."\n"
- .'Valid values of N: 1 to 5. This indicates that a maximum of five objects can be specified at a time.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'fd-ZDNPiT****',
- ],
- 'required' => false,
- ],
+ 'schema' => ['description' => 'The ID of the object to which the contact is bound. Valid values:'."\n"
+ ."\n"
+ .'* ID of the resource directory'."\n"
+ .'* ID of the folder'."\n"
+ .'* ID of the member'."\n", 'type' => 'string', 'required' => false, 'example' => 'fd-ZDNPiT****', 'title' => ''],
+ ],
+ [
+ 'name' => 'PageNumber',
+ 'in' => 'query',
+ 'schema' => ['description' => 'The page number.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1', 'title' => ''],
+ ],
+ [
+ 'name' => 'PageSize',
+ 'in' => 'query',
+ 'schema' => ['description' => 'The number of entries per page.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '10', 'title' => ''],
],
],
'responses' => [
@@ -6926,40 +4805,45 @@
'description' => 'The returned result.'."\n",
'type' => 'object',
'properties' => [
- 'RequestId' => [
- 'title' => 'Id of the request',
- 'description' => 'The request ID.'."\n",
- 'type' => 'string',
- 'example' => '95060F1D-6990-4645-8920-A81D1BBFE992',
- ],
- 'Members' => [
- 'description' => 'The time when the contact was bound to the object.'."\n",
+ 'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '95060F1D-6990-4645-8920-A81D1BBFE992'],
+ 'TotalCount' => ['description' => 'The total number of entries returned.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '20', 'title' => ''],
+ 'PageSize' => ['description' => 'The number of entries per page.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '10', 'title' => ''],
+ 'PageNumber' => ['description' => 'The page number.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''],
+ 'Contacts' => [
+ 'description' => 'The time when the contact was bound to the objects.'."\n",
'type' => 'array',
'items' => [
- 'description' => '',
+ 'description' => 'The ID of the object to which the contact is bound.'."\n",
'type' => 'object',
'properties' => [
- 'ContactId' => [
- 'description' => 'The ID of the contact.',
- 'type' => 'string',
- 'example' => 'c-qL4HqKONzOM7****',
- ],
- 'MemberId' => [
- 'description' => 'The ID of the object. Valid values:'."\n"
- ."\n"
- .'- ID of the resource directory'."\n"
- .'- ID of the folder'."\n"
- .'- ID of the member',
- 'type' => 'string',
- 'example' => 'fd-ZDNPiT****',
+ 'ContactId' => ['description' => 'The ID of the contact.', 'type' => 'string', 'example' => 'c-qL4HqKONzOM7****', 'title' => ''],
+ 'Name' => ['description' => 'The name of the contact.', 'type' => 'string', 'example' => 'tom', 'title' => ''],
+ 'EmailAddress' => ['description' => 'The email address of the contact.', 'type' => 'string', 'example' => 'someone***@example.com', 'title' => ''],
+ 'PhoneNumber' => ['description' => 'The mobile phone number of the contact.', 'type' => 'string', 'example' => '86-139****1234', 'title' => ''],
+ 'Title' => ['description' => 'The job title of the contact.', 'type' => 'string', 'example' => 'TechnicalDirector', 'title' => ''],
+ 'MessageTypes' => [
+ 'description' => 'The types of messages received by the contact.',
+ 'type' => 'array',
+ 'items' => ['description' => 'The type of the message received by the contact.', 'type' => 'string', 'example' => 'AccountExpenses', 'title' => ''],
+ 'title' => '',
],
- 'ModifyDate' => [
- 'description' => 'The time when the contact was bound to the object.',
- 'type' => 'string',
- 'example' => '2023-03-27 17:19:21',
+ 'Members' => [
+ 'description' => 'The IDs of objects to which the contact is bound.',
+ 'type' => 'array',
+ 'items' => ['description' => 'The ID of the object to which the contact is bound.', 'type' => 'string', 'example' => 'fd-ZDNPiT****', 'title' => ''],
+ 'title' => '',
],
+ 'Status' => ['description' => 'The status of the contact. Valid values:'."\n"
+ ."\n"
+ .'- Verifying'."\n"
+ .'- Active'."\n"
+ .'- Deleting', 'type' => 'string', 'example' => 'Active', 'title' => ''],
+ 'CreateDate' => ['description' => 'The time when the contact was added.', 'type' => 'string', 'example' => '2023-03-27 17:19:21', 'title' => ''],
+ 'AssociatedDate' => ['description' => 'The time when the contact was bound to the objects.', 'type' => 'string', 'example' => '2023-03-27 17:19:21', 'title' => ''],
],
+ 'title' => '',
],
+ 'title' => '',
],
],
],
@@ -6967,210 +4851,286 @@
],
'errorCodes' => [
400 => [
- [
- 'errorCode' => 'InvalidParameter.ContactId',
- 'errorMessage' => 'The ContactId is invalid.',
- ],
- [
- 'errorCode' => 'MissingParameter.ContactId',
- 'errorMessage' => 'You must specify ContactId.',
- ],
- [
- 'errorCode' => 'InvalidParameter.Members',
- 'errorMessage' => 'The Members is invalid.',
- ],
- [
- 'errorCode' => 'InvalidParameter.Members.Duplicate',
- 'errorMessage' => 'The Members contains duplicate values.',
- ],
- [
- 'errorCode' => 'LimitExceeded.ContactMembers',
- 'errorMessage' => 'The maximum number of contact members exceeds the limit.',
- ],
- [
- 'errorCode' => 'InvalidMember',
- 'errorMessage' => 'The member does not exist in the resource directory.',
- ],
- [
- 'errorCode' => 'ContactStatusMismatchAction',
- 'errorMessage' => 'The status of the contact does not allow the specified operation.',
- ],
+ ['errorCode' => 'InvalidParameter.ContactId', 'errorMessage' => 'The ContactId is invalid.', 'description' => ''],
+ ['errorCode' => 'InvalidParameter.Member', 'errorMessage' => 'The Member is invalid.', 'description' => ''],
],
404 => [
- [
- 'errorCode' => 'EntityNotExists.Contact',
- 'errorMessage' => 'This Contact does not exist.',
- ],
+ ['errorCode' => 'EntityNotExists.Contact', 'errorMessage' => 'This Contact does not exist.', 'description' => ''],
+ ['errorCode' => 'EntityNotExists.Member', 'errorMessage' => 'This Member does not exist.', 'description' => ''],
],
- 429 => [
- [
- 'errorCode' => 'ConcurrentCallNotSupported',
- 'errorMessage' => 'The operation conflicts with other operations. Please try again later.',
- ],
- ],
- ],
- 'staticInfo' => [
- 'returnType' => 'synchronous',
],
- 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"95060F1D-6990-4645-8920-A81D1BBFE992\\",\\n \\"Members\\": [\\n {\\n \\"ContactId\\": \\"c-qL4HqKONzOM7****\\",\\n \\"MemberId\\": \\"fd-ZDNPiT****\\",\\n \\"ModifyDate\\": \\"2023-03-27 17:19:21\\"\\n }\\n ]\\n}","type":"json"}]',
- 'title' => 'AssociateMembers',
+ 'staticInfo' => ['returnType' => 'synchronous'],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"95060F1D-6990-4645-8920-A81D1BBFE992\\",\\n \\"TotalCount\\": 20,\\n \\"PageSize\\": 10,\\n \\"PageNumber\\": 1,\\n \\"Contacts\\": [\\n {\\n \\"ContactId\\": \\"c-qL4HqKONzOM7****\\",\\n \\"Name\\": \\"tom\\",\\n \\"EmailAddress\\": \\"someone***@example.com\\",\\n \\"PhoneNumber\\": \\"86-139****1234\\",\\n \\"Title\\": \\"TechnicalDirector\\",\\n \\"MessageTypes\\": [\\n \\"AccountExpenses\\"\\n ],\\n \\"Members\\": [\\n \\"fd-ZDNPiT****\\"\\n ],\\n \\"Status\\": \\"Active\\",\\n \\"CreateDate\\": \\"2023-03-27 17:19:21\\",\\n \\"AssociatedDate\\": \\"2023-03-27 17:19:21\\"\\n }\\n ]\\n}","type":"json"}]',
+ 'title' => 'ListMessageContacts',
+ 'summary' => 'Queries contacts.',
+ 'changeSet' => [],
],
- 'DisassociateMembers' => [
- 'summary' => 'Unbinds a contact from a resource directory, folder, or member.',
- 'methods' => [
- 'post',
- 'get',
- ],
- 'schemes' => [
- 'https',
- ],
+ 'ListTagKeys' => [
+ 'methods' => ['post', 'get'],
+ 'schemes' => ['https'],
'security' => [
[
'AK' => [],
],
],
- 'operationType' => 'readAndWrite',
+ 'operationType' => 'read',
'deprecated' => false,
- 'systemTags' => [
- 'operationType' => 'update',
- ],
+ 'systemTags' => ['operationType' => 'list'],
'parameters' => [
[
- 'name' => 'ContactId',
+ 'name' => 'NextToken',
'in' => 'query',
+ 'schema' => ['description' => 'The pagination token that is used in the next request to retrieve a new page of results. You do not need to specify this parameter for the first request.'."\n", 'type' => 'string', 'required' => false, 'example' => 'TGlzdFJlc291cm****', 'title' => ''],
+ ],
+ [
+ 'name' => 'MaxResults',
+ 'in' => 'query',
+ 'schema' => ['description' => 'The maximum number of entries to return for a single request.'."\n"
+ ."\n"
+ .'Valid values: 1 to 100. Default value: 10.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '10', 'title' => ''],
+ ],
+ [
+ 'name' => 'ResourceType',
+ 'in' => 'query',
+ 'allowEmptyValue' => false,
+ 'schema' => ['description' => 'The resource type.'."\n"
+ ."\n"
+ .'The value Account indicates the members of the resource directory.'."\n", 'type' => 'string', 'required' => true, 'example' => 'Account', 'title' => ''],
+ ],
+ [
+ 'name' => 'KeyFilter',
+ 'in' => 'query',
+ 'schema' => ['description' => 'The tag key for a fuzzy query.'."\n", 'type' => 'string', 'required' => false, 'example' => 'team', 'title' => ''],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
'schema' => [
- 'description' => 'The ID of the contact.'."\n",
- 'type' => 'string',
- 'required' => true,
- 'example' => 'c-qL4HqKONzOM7****',
+ 'description' => 'The returned result.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'NextToken' => ['description' => 'Indicates whether the next query is required.'."\n"
+ ."\n"
+ .'* If the value of this parameter is empty (`"NextToken": ""`), all results are returned, and the next query is not required.'."\n"
+ .'* If the value of this parameter is not empty, the next query is required, and the value is the token used to start the next query.'."\n", 'type' => 'string', 'example' => 'TGlzdFJlc291cm****', 'title' => ''],
+ 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => 'DC09A6AA-2713-4E10-A2E9-E6C5C43A8842', 'title' => ''],
+ 'Tags' => [
+ 'description' => 'The information about the tag keys.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => '',
+ 'type' => 'object',
+ 'properties' => [
+ 'Key' => ['description' => 'The tag key.'."\n", 'type' => 'string', 'example' => 'team', 'title' => ''],
+ ],
+ 'title' => '',
+ ],
+ 'title' => '',
+ ],
+ ],
+ 'title' => '',
],
],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"NextToken\\": \\"TGlzdFJlc291cm****\\",\\n \\"RequestId\\": \\"DC09A6AA-2713-4E10-A2E9-E6C5C43A8842\\",\\n \\"Tags\\": [\\n {\\n \\"Key\\": \\"team\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"<ListTagKeysResponse>\\n <NextToken>caeba0bbb2be03f84eb48b699f0a****</NextToken>\\n <RequestId>DC09A6AA-2713-4E10-A2E9-E6C5C43A8842</RequestId>\\n <Tags>\\n <Key>team</Key>\\n </Tags>\\n</ListTagKeysResponse>","errorExample":""}]',
+ 'title' => 'ListTagKeys',
+ 'summary' => 'Queries tag keys.',
+ 'changeSet' => [],
+ ],
+ 'ListTagResources' => [
+ 'methods' => ['post', 'get'],
+ 'schemes' => ['https'],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'deprecated' => false,
+ 'systemTags' => ['operationType' => 'list'],
+ 'parameters' => [
[
- 'name' => 'Members',
+ 'name' => 'NextToken',
+ 'in' => 'query',
+ 'schema' => ['description' => 'The token that is used to start the next query.'."\n", 'type' => 'string', 'required' => false, 'example' => 'caeba0bbb2be03f84eb48b699f0a****', 'title' => ''],
+ ],
+ [
+ 'name' => 'MaxResults',
+ 'in' => 'query',
+ 'schema' => ['description' => 'The number of entries to return on each page.'."\n"
+ ."\n"
+ .'Valid values: 1 to 100. Default value: 10.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '10', 'title' => ''],
+ ],
+ [
+ 'name' => 'Tag',
'in' => 'query',
'style' => 'flat',
'schema' => [
- 'description' => 'The IDs of objects from which you want to unbind the contact.'."\n",
+ 'description' => 'The tags. This parameter specifies a filter condition for the query.'."\n"
+ ."\n"
+ .'You can specify a maximum of 20 tags.'."\n",
'type' => 'array',
'items' => [
- 'description' => 'The ID of the object from which you want to unbind the contact. Valid values:'."\n"
- ."\n"
- .'* ID of a resource directory'."\n"
- .'* ID of a folder'."\n"
- .'* ID of a member'."\n"
+ 'description' => 'A tag. This parameter specifies a filter condition for the query.'."\n"
."\n"
- .'Valid values of N: 1 to 5. This indicates that a maximum of five objects can be specified at a time.'."\n",
- 'type' => 'string',
+ .'You can specify a maximum of 20 tags.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'Key' => ['description' => 'The key of the tag.'."\n", 'type' => 'string', 'required' => false, 'example' => 'k1', 'title' => ''],
+ 'Value' => ['description' => 'The value of the tag.'."\n", 'type' => 'string', 'required' => false, 'example' => 'v1', 'title' => ''],
+ ],
'required' => false,
- 'example' => 'fd-ZDNPiT****',
+ 'title' => '',
],
- 'required' => true,
+ 'required' => false,
+ 'maxItems' => 20,
+ 'title' => '',
+ ],
+ ],
+ [
+ 'name' => 'ResourceId',
+ 'in' => 'query',
+ 'style' => 'flat',
+ 'schema' => [
+ 'description' => 'The Alibaba Cloud account IDs of the members. This parameter specifies a filter condition for the query.'."\n"
+ ."\n"
+ .'> If you want to query the tags that are added to the members in a resource directory, you must configure both the `ResourceId` and `ResourceType` parameters and set the `ResourceType` parameter to `Account` in your request.'."\n",
+ 'type' => 'array',
+ 'items' => ['description' => 'The Alibaba Cloud account ID of a member. This parameter specifies a filter condition for the query.'."\n"
+ ."\n"
+ .'> If you want to query the tags that are added to the members in a resource directory, you must configure both the `ResourceId` and `ResourceType` parameters and set the `ResourceType` parameter to `Account` in your request.'."\n", 'type' => 'string', 'required' => false, 'example' => '1098***', 'title' => ''],
+ 'required' => false,
+ 'maxItems' => 50,
+ 'title' => '',
],
],
+ [
+ 'name' => 'ResourceType',
+ 'in' => 'query',
+ 'schema' => ['description' => 'The type of the objects whose tags you want to query. This parameter specifies a filter condition for the query. Valid values:'."\n"
+ ."\n"
+ .'* Account: member'."\n", 'type' => 'string', 'required' => true, 'example' => 'Account', 'title' => ''],
+ ],
],
'responses' => [
200 => [
'schema' => [
- 'title' => 'Schema of Response',
'description' => 'The returned result.'."\n",
'type' => 'object',
'properties' => [
- 'RequestId' => [
- 'title' => 'Id of the request',
- 'description' => 'The request ID.'."\n",
- 'type' => 'string',
- 'example' => '95060F1D-6990-4645-8920-A81D1BBFE992',
- ],
- 'Members' => [
- 'description' => 'The time when the contact was unbound from the object.'."\n",
+ 'NextToken' => ['description' => 'Indicates whether the next query is required.```` Valid values:'."\n"
+ ."\n"
+ .'* If the value of this parameter is empty (`"NextToken": ""`), all results are returned, and the `next query` is not required.'."\n"
+ .'* If the value of this parameter is not empty, the next query is required, and the value is the token used to start the next query.````'."\n", 'type' => 'string', 'example' => 'caeba0bbb2be03f84eb48b699f0a****', 'title' => ''],
+ 'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => '8054B059-6B36-53BF-AA45-B8C9A0ED05AB', 'title' => ''],
+ 'TagResources' => [
+ 'description' => 'The tags.'."\n",
'type' => 'array',
'items' => [
- 'description' => '',
+ 'description' => 'A tag.'."\n",
'type' => 'object',
'properties' => [
- 'ContactId' => [
- 'description' => 'The ID of the contact.',
- 'type' => 'string',
- 'example' => 'c-qL4HqKONzOM7****',
- ],
- 'MemberId' => [
- 'description' => 'The ID of the object. Valid values:'."\n"
- ."\n"
- .'- ID of the resource directory'."\n"
- .'- ID of the folder'."\n"
- .'- ID of the member',
- 'type' => 'string',
- 'example' => 'fd-ZDNPiT****',
- ],
- 'ModifyDate' => [
- 'description' => 'The time when the contact was unbound from the object.',
- 'type' => 'string',
- 'example' => '2023-03-27 17:19:21',
- ],
+ 'TagValue' => ['description' => 'The value of the tag.'."\n", 'type' => 'string', 'example' => 'k1', 'title' => ''],
+ 'ResourceId' => ['description' => 'The Alibaba Cloud account ID of the member.'."\n", 'type' => 'string', 'example' => '1098***', 'title' => ''],
+ 'TagKey' => ['description' => 'The key of the tag.'."\n", 'type' => 'string', 'example' => 'k1', 'title' => ''],
+ 'ResourceType' => ['description' => 'The type of the object whose tags are queried. Valid values:'."\n"
+ ."\n"
+ .'* Account: member'."\n", 'type' => 'string', 'example' => 'Account', 'title' => ''],
],
+ 'title' => '',
],
+ 'title' => '',
],
],
+ 'title' => '',
],
],
],
- 'errorCodes' => [
- 400 => [
- [
- 'errorCode' => 'InvalidParameter.ContactId',
- 'errorMessage' => 'The ContactId is invalid.',
- ],
- [
- 'errorCode' => 'MissingParameter.ContactId',
- 'errorMessage' => 'You must specify ContactId.',
- ],
- [
- 'errorCode' => 'InvalidParameter.Members',
- 'errorMessage' => 'The Members is invalid.',
- ],
- [
- 'errorCode' => 'InvalidParameter.Members.Duplicate',
- 'errorMessage' => 'The Members contains duplicate values.',
- ],
- [
- 'errorCode' => 'InvalidParameter.Members.Length',
- 'errorMessage' => 'The maximum number of Members exceeds the limit.',
- ],
- [
- 'errorCode' => 'QuotaExceeded.Members',
- 'errorMessage' => 'The maximum number of Members exceeds the limit.',
- ],
- [
- 'errorCode' => 'InvalidMember',
- 'errorMessage' => 'The member does not exist in the resource directory.',
- ],
- [
- 'errorCode' => 'ContactStatusMismatchAction',
- 'errorMessage' => 'The status of the contact does not allow the specified operation.',
- ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"NextToken\\": \\"caeba0bbb2be03f84eb48b699f0a****\\",\\n \\"RequestId\\": \\"8054B059-6B36-53BF-AA45-B8C9A0ED05AB\\",\\n \\"TagResources\\": [\\n {\\n \\"TagValue\\": \\"k1\\",\\n \\"ResourceId\\": \\"1098***\\",\\n \\"TagKey\\": \\"k1\\",\\n \\"ResourceType\\": \\"Account\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"<ListTagResourcesResponse>\\n <RequestId>8054B059-6B36-53BF-AA45-B8C9A0ED05AB</RequestId>\\n <TagResources>\\n <ResourceId>rg-aekz6bre2uq****</ResourceId>\\n <TagKey>k1</TagKey>\\n <ResourceType>resourcegroup</ResourceType>\\n <TagValue>v1</TagValue>\\n </TagResources>\\n</ListTagResourcesResponse>","errorExample":""}]',
+ 'title' => 'ListTagResources',
+ 'summary' => 'Queries the tags that are added to the members in a resource directory.',
+ 'changeSet' => [],
+ ],
+ 'ListTagValues' => [
+ 'methods' => ['post', 'get'],
+ 'schemes' => ['https'],
+ 'security' => [
+ [
+ 'AK' => [],
],
- 404 => [
- [
- 'errorCode' => 'EntityNotExists.Contact',
- 'errorMessage' => 'This Contact does not exist.',
- ],
+ ],
+ 'operationType' => 'read',
+ 'deprecated' => false,
+ 'systemTags' => ['operationType' => 'list'],
+ 'parameters' => [
+ [
+ 'name' => 'NextToken',
+ 'in' => 'query',
+ 'schema' => ['description' => 'The pagination token that is used in the next request to retrieve a new page of results. You do not need to specify this parameter for the first request.'."\n", 'type' => 'string', 'required' => false, 'example' => 'TGlzdFJlc291cm****', 'title' => ''],
+ ],
+ [
+ 'name' => 'MaxResults',
+ 'in' => 'query',
+ 'schema' => ['description' => 'The maximum number of entries to return for a single request.'."\n"
+ ."\n"
+ .'Valid values: 1 to 100. Default value: 10.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '10', 'title' => ''],
+ ],
+ [
+ 'name' => 'ResourceType',
+ 'in' => 'query',
+ 'allowEmptyValue' => false,
+ 'schema' => ['description' => 'The resource type.'."\n"
+ ."\n"
+ .'The value Account indicates the members of the resource directory.'."\n", 'type' => 'string', 'required' => true, 'example' => 'Account', 'title' => ''],
+ ],
+ [
+ 'name' => 'TagKey',
+ 'in' => 'query',
+ 'schema' => ['description' => 'The tag key. This parameter specifies a filter condition for the query.'."\n", 'type' => 'string', 'required' => true, 'example' => 'k1', 'title' => ''],
+ ],
+ [
+ 'name' => 'ValueFilter',
+ 'in' => 'query',
+ 'schema' => ['description' => 'The tag value for a fuzzy query.'."\n", 'type' => 'string', 'required' => false, 'example' => 'v1', 'title' => ''],
],
],
- 'staticInfo' => [
- 'returnType' => 'synchronous',
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'description' => 'The returned result.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'NextToken' => ['description' => 'Indicates whether the next query is required.'."\n"
+ ."\n"
+ .'* If the value of this parameter is empty (`"NextToken": ""`), all results are returned, and the next query is not required.'."\n"
+ .'* If the value of this parameter is not empty, the next query is required, and the value is the token used to start the next query.'."\n", 'type' => 'string', 'example' => 'TGlzdFJlc291cm****', 'title' => ''],
+ 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => 'DC09A6AA-2713-4E10-A2E9-E6C5C43A8842', 'title' => ''],
+ 'Tags' => [
+ 'description' => 'The information about the tag values.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => '',
+ 'type' => 'object',
+ 'properties' => [
+ 'Value' => ['description' => 'The tag value.'."\n", 'type' => 'string', 'example' => 'v1', 'title' => ''],
+ ],
+ 'title' => '',
+ ],
+ 'title' => '',
+ ],
+ ],
+ 'title' => '',
+ ],
+ ],
],
- 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"95060F1D-6990-4645-8920-A81D1BBFE992\\",\\n \\"Members\\": [\\n {\\n \\"ContactId\\": \\"c-qL4HqKONzOM7****\\",\\n \\"MemberId\\": \\"fd-ZDNPiT****\\",\\n \\"ModifyDate\\": \\"2023-03-27 17:19:21\\"\\n }\\n ]\\n}","type":"json"}]',
- 'title' => 'DisassociateMembers',
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"NextToken\\": \\"TGlzdFJlc291cm****\\",\\n \\"RequestId\\": \\"DC09A6AA-2713-4E10-A2E9-E6C5C43A8842\\",\\n \\"Tags\\": [\\n {\\n \\"Value\\": \\"v1\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"<ListTagValuesResponse>\\n <NextToken>TGlzdFJlc291cm****</NextToken>\\n <RequestId>DC09A6AA-2713-4E10-A2E9-E6C5C43A8842</RequestId>\\n <Tags>\\n <Value>v1</Value>\\n </Tags>\\n</ListTagValuesResponse>","errorExample":""}]',
+ 'title' => 'ListTagValues',
+ 'summary' => 'Queries the tag values of a tag key.',
+ 'changeSet' => [],
],
- 'GetMessageContact' => [
- 'summary' => 'Queries the information about a contact.',
- 'methods' => [
- 'post',
- 'get',
- ],
- 'schemes' => [
- 'https',
- ],
+ 'ListTargetAttachmentsForControlPolicy' => [
+ 'methods' => ['post', 'get'],
+ 'schemes' => ['https'],
'security' => [
[
'AK' => [],
@@ -7178,336 +5138,164 @@
],
'operationType' => 'read',
'deprecated' => false,
- 'systemTags' => [
- 'operationType' => 'get',
- ],
+ 'systemTags' => ['operationType' => 'list'],
'parameters' => [
[
- 'name' => 'ContactId',
+ 'name' => 'PolicyId',
'in' => 'query',
- 'schema' => [
- 'description' => 'The ID of the contact.'."\n",
- 'type' => 'string',
- 'required' => true,
- 'example' => 'c-qL4HqKONzOM7****',
- ],
+ 'schema' => ['description' => 'The ID of the access control policy.'."\n", 'type' => 'string', 'required' => true, 'example' => 'cp-jExXAqIYkwHN****', 'title' => ''],
+ ],
+ [
+ 'name' => 'PageNumber',
+ 'in' => 'query',
+ 'schema' => ['description' => 'The number of the page to return.'."\n"
+ ."\n"
+ .'Pages start from page 1. Default value: 1.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '200000', 'minimum' => '1', 'example' => '1', 'default' => '1', 'title' => ''],
+ ],
+ [
+ 'name' => 'PageSize',
+ 'in' => 'query',
+ 'schema' => ['description' => 'The number of entries to return on each page.'."\n"
+ ."\n"
+ .'Valid values: 1 to 100. Default value: 10.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '100', 'minimum' => '1', 'example' => '10', 'default' => '10', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
- 'title' => 'Schema of Response',
'description' => 'The returned result.'."\n",
'type' => 'object',
'properties' => [
- 'RequestId' => [
- 'title' => 'Id of the request',
- 'description' => 'The request ID.'."\n",
- 'type' => 'string',
- 'example' => '9B34724D-54B0-4A51-B34D-4512372FE1BE',
- ],
- 'Contact' => [
- 'description' => 'The information about the contact.'."\n",
+ 'TotalCount' => ['description' => 'The total number of objects to which the access control policy is attached.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''],
+ 'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => 'B32BD3D6-1089-41F3-8E70-E0079BC7D760', 'title' => ''],
+ 'PageSize' => ['description' => 'The number of entries returned per page.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '10', 'title' => ''],
+ 'PageNumber' => ['description' => 'The page number of the returned page.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''],
+ 'TargetAttachments' => [
'type' => 'object',
+ 'itemNode' => true,
'properties' => [
- 'ContactId' => [
- 'description' => 'The ID of the contact.'."\n",
- 'type' => 'string',
- 'example' => 'c-qL4HqKONzOM7****',
- ],
- 'MessageTypes' => [
- 'description' => 'The types of messages received by the contact.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The type of the message received by the contact.'."\n",
- 'type' => 'string',
- 'example' => 'AccountExpenses',
- ],
- ],
- 'CreateDate' => [
- 'description' => 'The time when the contact was created.'."\n",
- 'type' => 'string',
- 'example' => '2023-03-27 17:19:21',
- ],
- 'Name' => [
- 'description' => 'The name of the contact.'."\n",
- 'type' => 'string',
- 'example' => 'tom',
- ],
- 'EmailAddress' => [
- 'description' => 'The email address of the contact.'."\n",
- 'type' => 'string',
- 'example' => 'someone***@example.com',
- ],
- 'PhoneNumber' => [
- 'description' => 'The mobile phone number of the contact.'."\n",
- 'type' => 'string',
- 'example' => '86-139****1234',
- ],
- 'Title' => [
- 'description' => 'The job title of the contact.'."\n",
- 'type' => 'string',
- 'example' => 'TechnicalDirector',
- ],
- 'Members' => [
- 'description' => 'The IDs of objects to which the contact is bound.'."\n",
+ 'TargetAttachment' => [
+ 'description' => 'The information about the objects to which the access control policy is attached.'."\n",
+ 'title' => '',
'type' => 'array',
'items' => [
- 'description' => 'The ID of the object to which the contact is bound.'."\n",
- 'type' => 'string',
- 'example' => 'fd-ZDNPiT****',
+ 'description' => 'The information about an object to which the access control policy is attached.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'TargetId' => ['description' => 'The ID of the object.'."\n", 'type' => 'string', 'example' => 'fd-ZDNPiT****', 'title' => ''],
+ 'TargetName' => ['description' => 'The name of the object.'."\n", 'type' => 'string', 'example' => 'Dev_Department', 'title' => ''],
+ 'AttachDate' => ['description' => 'The time when the access control policy was attached to the object.'."\n", 'type' => 'string', 'example' => '2021-03-19T02:56:24Z', 'title' => ''],
+ 'TargetType' => ['description' => 'The type of the object. Valid values:'."\n"
+ ."\n"
+ .'* Root: Root folder'."\n"
+ .'* Folder: subfolder of the Root folder'."\n"
+ .'* Account: member'."\n", 'type' => 'string', 'example' => 'Folder', 'title' => ''],
+ ],
+ 'title' => '',
],
],
- 'Status' => [
- 'description' => 'The status of the contact. Valid values:'."\n"
- ."\n"
- .'* Verifying'."\n"
- .'* Active'."\n"
- .'* Deleting'."\n",
- 'type' => 'string',
- 'example' => 'Active',
- ],
],
],
],
+ 'title' => '',
],
],
],
- 'errorCodes' => [
- 400 => [
- [
- 'errorCode' => 'InvalidParameter.ContactId',
- 'errorMessage' => 'The ContactId is invalid.',
- ],
- [
- 'errorCode' => 'MissingParameter.ContactId',
- 'errorMessage' => 'You must specify ContactId.',
- ],
- ],
- 404 => [
- [
- 'errorCode' => 'EntityNotExists.Contact',
- 'errorMessage' => 'This Contact does not exist.',
- ],
- ],
- ],
- 'staticInfo' => [
- 'returnType' => 'synchronous',
- ],
- 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"9B34724D-54B0-4A51-B34D-4512372FE1BE\\",\\n \\"Contact\\": {\\n \\"ContactId\\": \\"c-qL4HqKONzOM7****\\",\\n \\"MessageTypes\\": [\\n \\"AccountExpenses\\"\\n ],\\n \\"CreateDate\\": \\"2023-03-27 17:19:21\\",\\n \\"Name\\": \\"tom\\",\\n \\"EmailAddress\\": \\"someone***@example.com\\",\\n \\"PhoneNumber\\": \\"86-139****1234\\",\\n \\"Title\\": \\"TechnicalDirector\\",\\n \\"Members\\": [\\n \\"fd-ZDNPiT****\\"\\n ],\\n \\"Status\\": \\"Active\\"\\n }\\n}","type":"json"}]',
- 'title' => 'GetMessageContact',
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"TotalCount\\": 1,\\n \\"RequestId\\": \\"B32BD3D6-1089-41F3-8E70-E0079BC7D760\\",\\n \\"PageSize\\": 10,\\n \\"PageNumber\\": 1,\\n \\"TargetAttachments\\": {\\n \\"TargetAttachment\\": [\\n {\\n \\"TargetId\\": \\"fd-ZDNPiT****\\",\\n \\"TargetName\\": \\"Dev_Department\\",\\n \\"AttachDate\\": \\"2021-03-19T02:56:24Z\\",\\n \\"TargetType\\": \\"Folder\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<?xml version=\\"1.0\\" encoding=\\"UTF-8\\" ?>\\r\\n<ListTargetAttachmentsForControlPolicyResponse>\\r\\n\\t<TotalCount>1</TotalCount>\\r\\n\\t<RequestId>B32BD3D6-1089-41F3-8E70-E0079BC7D760</RequestId>\\r\\n\\t<PageSize>10</PageSize>\\r\\n\\t<PageNumber>1</PageNumber>\\r\\n\\t<TargetAttachments>\\r\\n\\t\\t<TargetAttachment>\\r\\n\\t\\t\\t<AttachDate>2021-03-19T02:56:24Z</AttachDate>\\r\\n\\t\\t\\t<TargetType>Folder</TargetType>\\r\\n\\t\\t\\t<TargetName>Dev_Department</TargetName>\\r\\n\\t\\t\\t<TargetId>fd-ZDNPiT****</TargetId>\\r\\n\\t\\t</TargetAttachment>\\r\\n\\t</TargetAttachments>\\r\\n</ListTargetAttachmentsForControlPolicyResponse>\\t\\r\\n\\r\\n\\t\\r\\n","errorExample":""}]',
+ 'title' => 'ListTargetAttachmentsForControlPolicy',
+ 'summary' => 'Queries the objects to which an access control policy is attached.',
+ 'responseParamsDescription' => ' ',
+ 'extraInfo' => ' ',
+ 'changeSet' => [],
],
- 'ListMessageContacts' => [
- 'summary' => 'Queries contacts.',
- 'methods' => [
- 'post',
- 'get',
- ],
- 'schemes' => [
- 'https',
- ],
+ 'ListTrustedServiceStatus' => [
+ 'methods' => ['post', 'get'],
+ 'schemes' => ['https'],
'security' => [
[
'AK' => [],
],
],
- 'operationType' => 'readAndWrite',
+ 'operationType' => 'read',
'deprecated' => false,
- 'systemTags' => [
- 'operationType' => 'list',
- ],
+ 'systemTags' => ['operationType' => 'list'],
'parameters' => [
[
- 'name' => 'ContactId',
+ 'name' => 'PageNumber',
'in' => 'query',
- 'schema' => [
- 'description' => 'The ID of the contact.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'c-qL4HqKONzOM7****',
- ],
+ 'schema' => ['description' => 'The number of the page to return.'."\n"
+ ."\n"
+ .'Pages start from page 1. Default value: 1.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1', 'title' => ''],
],
[
- 'name' => 'Member',
- 'in' => 'query',
- 'schema' => [
- 'description' => 'The ID of the object to which the contact is bound. Valid values:'."\n"
- ."\n"
- .'* ID of the resource directory'."\n"
- .'* ID of the folder'."\n"
- .'* ID of the member'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'fd-ZDNPiT****',
- ],
- ],
- [
- 'name' => 'PageNumber',
+ 'name' => 'PageSize',
'in' => 'query',
- 'schema' => [
- 'description' => 'The page number.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'required' => false,
- 'example' => '1',
- ],
+ 'schema' => ['description' => 'The number of entries to return on each page.'."\n"
+ ."\n"
+ .'Valid values: 1 to 100. Default value: 10.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '10', 'title' => ''],
],
[
- 'name' => 'PageSize',
+ 'name' => 'AdminAccountId',
'in' => 'query',
- 'schema' => [
- 'description' => 'The number of entries per page.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'required' => false,
- 'example' => '10',
- ],
+ 'schema' => ['description' => 'The ID of the management account or delegated administrator account.'."\n"
+ ."\n"
+ .'* If you set this parameter to the ID of a management account, the trusted services that are enabled within the management account are queried. The default value of this parameter is the ID of an management account.'."\n"
+ .'* If you set this parameter to the ID of a delegated administrator account, the trusted services that are enabled within the delegated administrator account are queried.'."\n"
+ ."\n"
+ .'For more information about trusted services and delegated administrator accounts, see [Overview of trusted services](~~208133~~) and [Delegated administrator accounts](~~208117~~).'."\n", 'type' => 'string', 'required' => false, 'example' => '177242285274****', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
- 'title' => 'Schema of Response',
'description' => 'The returned result.'."\n",
'type' => 'object',
'properties' => [
- 'RequestId' => [
- 'title' => 'Id of the request',
- 'description' => 'The request ID.'."\n",
- 'type' => 'string',
- 'example' => '95060F1D-6990-4645-8920-A81D1BBFE992',
- ],
- 'TotalCount' => [
- 'description' => 'The total number of entries returned.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'example' => '20',
- ],
- 'PageSize' => [
- 'description' => 'The number of entries per page.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'example' => '10',
- ],
- 'PageNumber' => [
- 'description' => 'The page number.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'example' => '1',
- ],
- 'Contacts' => [
- 'description' => 'The time when the contact was bound to the objects.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The ID of the object to which the contact is bound.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'ContactId' => [
- 'description' => 'The ID of the contact.',
- 'type' => 'string',
- 'example' => 'c-qL4HqKONzOM7****',
- ],
- 'Name' => [
- 'description' => 'The name of the contact.',
- 'type' => 'string',
- 'example' => 'tom',
- ],
- 'EmailAddress' => [
- 'description' => 'The email address of the contact.',
- 'type' => 'string',
- 'example' => 'someone***@example.com',
- ],
- 'PhoneNumber' => [
- 'description' => 'The mobile phone number of the contact.',
- 'type' => 'string',
- 'example' => '86-139****1234',
- ],
- 'Title' => [
- 'description' => 'The job title of the contact.',
- 'type' => 'string',
- 'example' => 'TechnicalDirector',
- ],
- 'MessageTypes' => [
- 'description' => 'The types of messages received by the contact.',
- 'type' => 'array',
- 'items' => [
- 'description' => 'The type of the message received by the contact.',
- 'type' => 'string',
- 'example' => 'AccountExpenses',
- ],
- ],
- 'Members' => [
- 'description' => 'The IDs of objects to which the contact is bound.',
- 'type' => 'array',
- 'items' => [
- 'description' => 'The ID of the object to which the contact is bound.',
- 'type' => 'string',
- 'example' => 'fd-ZDNPiT****',
+ 'TotalCount' => ['description' => 'The total number of entries returned.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '2', 'title' => ''],
+ 'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => 'CD76D376-2517-4924-92C5-DBC52262F93A', 'title' => ''],
+ 'PageSize' => ['description' => 'The number of entries returned per page.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '10', 'title' => ''],
+ 'PageNumber' => ['description' => 'The page number of the returned page.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''],
+ 'EnabledServicePrincipals' => [
+ 'type' => 'object',
+ 'itemNode' => true,
+ 'properties' => [
+ 'EnabledServicePrincipal' => [
+ 'description' => 'The information about the trusted services that are enabled.'."\n",
+ 'title' => '',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The information about a trusted service that is enabled.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'ServicePrincipal' => ['description' => 'The identifier of the trusted service.'."\n", 'type' => 'string', 'example' => 'config.aliyuncs.com', 'title' => ''],
+ 'EnableTime' => ['description' => 'The time when the trusted service was enabled.'."\n", 'type' => 'string', 'example' => '2019-02-18T15:32:10.473Z', 'title' => ''],
],
- ],
- 'Status' => [
- 'description' => 'The status of the contact. Valid values:'."\n"
- ."\n"
- .'- Verifying'."\n"
- .'- Active'."\n"
- .'- Deleting',
- 'type' => 'string',
- 'example' => 'Active',
- ],
- 'CreateDate' => [
- 'description' => 'The time when the contact was added.',
- 'type' => 'string',
- 'example' => '2023-03-27 17:19:21',
- ],
- 'AssociatedDate' => [
- 'description' => 'The time when the contact was bound to the objects.',
- 'type' => 'string',
- 'example' => '2023-03-27 17:19:21',
+ 'title' => '',
],
],
],
],
],
+ 'title' => '',
],
],
],
'errorCodes' => [
- 400 => [
- [
- 'errorCode' => 'InvalidParameter.ContactId',
- 'errorMessage' => 'The ContactId is invalid.',
- ],
- [
- 'errorCode' => 'InvalidParameter.Member',
- 'errorMessage' => 'The Member is invalid.',
- ],
- ],
404 => [
- [
- 'errorCode' => 'EntityNotExists.Contact',
- 'errorMessage' => 'This Contact does not exist.',
- ],
- [
- 'errorCode' => 'EntityNotExists.Member',
- 'errorMessage' => 'This Member does not exist.',
- ],
+ ['errorCode' => 'EntityNotExists.ResourceDirectory', 'errorMessage' => 'The resource directory for the account is not enabled. We recommend that you first enable the resource directory for the account.', 'description' => ''],
],
],
- 'staticInfo' => [
- 'returnType' => 'synchronous',
- ],
- 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"95060F1D-6990-4645-8920-A81D1BBFE992\\",\\n \\"TotalCount\\": 20,\\n \\"PageSize\\": 10,\\n \\"PageNumber\\": 1,\\n \\"Contacts\\": [\\n {\\n \\"ContactId\\": \\"c-qL4HqKONzOM7****\\",\\n \\"Name\\": \\"tom\\",\\n \\"EmailAddress\\": \\"someone***@example.com\\",\\n \\"PhoneNumber\\": \\"86-139****1234\\",\\n \\"Title\\": \\"TechnicalDirector\\",\\n \\"MessageTypes\\": [\\n \\"AccountExpenses\\"\\n ],\\n \\"Members\\": [\\n \\"fd-ZDNPiT****\\"\\n ],\\n \\"Status\\": \\"Active\\",\\n \\"CreateDate\\": \\"2023-03-27 17:19:21\\",\\n \\"AssociatedDate\\": \\"2023-03-27 17:19:21\\"\\n }\\n ]\\n}","type":"json"}]',
- 'title' => 'ListMessageContacts',
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"TotalCount\\": 2,\\n \\"RequestId\\": \\"CD76D376-2517-4924-92C5-DBC52262F93A\\",\\n \\"PageSize\\": 10,\\n \\"PageNumber\\": 1,\\n \\"EnabledServicePrincipals\\": {\\n \\"EnabledServicePrincipal\\": [\\n {\\n \\"ServicePrincipal\\": \\"config.aliyuncs.com\\",\\n \\"EnableTime\\": \\"2019-02-18T15:32:10.473Z\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<?xml version=\\"1.0\\" encoding=\\"UTF-8\\" ?>\\r\\n<ListTrustedServiceStatusResponse>\\r\\n <EnabledServicePrincipal>\\r\\n <ServicePrincipal>config.aliyuncs.com</ServicePrincipal>\\r\\n <EnableTime>2019-02-18T15:32:10.473Z</EnableTime>\\r\\n </EnabledServicePrincipal>\\r\\n <EnabledServicePrincipal>\\r\\n <ServicePrincipal>actiontrail.aliyuncs.com</ServicePrincipal>\\r\\n <EnableTime>2019-02-16T15:32:10.473Z</EnableTime>\\r\\n </EnabledServicePrincipal>\\r\\n <RequestId>CD76D376-2517-4924-92C5-DBC52262F93A</RequestId>\\r\\n</ListTrustedServiceStatusResponse>","errorExample":""}]',
+ 'title' => 'ListTrustedServiceStatus',
+ 'summary' => 'Queries the trusted services that are enabled within a management account or delegated administrator account.',
+ 'description' => 'Only a management account or delegated administrator account can be used to call this operation.'."\n",
+ 'responseParamsDescription' => ' ',
+ 'extraInfo' => ' ',
+ 'changeSet' => [],
],
- 'DeleteMessageContact' => [
- 'summary' => 'Deletes a contact.',
- 'methods' => [
- 'post',
- 'get',
- ],
- 'schemes' => [
- 'https',
- ],
+ 'MoveAccount' => [
+ 'methods' => ['post', 'get'],
+ 'schemes' => ['https'],
'security' => [
[
'AK' => [],
@@ -7515,98 +5303,58 @@
],
'operationType' => 'readAndWrite',
'deprecated' => false,
- 'systemTags' => [
- 'operationType' => 'delete',
- ],
+ 'systemTags' => ['operationType' => 'update'],
'parameters' => [
[
- 'name' => 'ContactId',
+ 'name' => 'AccountId',
'in' => 'query',
- 'schema' => [
- 'description' => 'The ID of the contact.'."\n",
- 'type' => 'string',
- 'required' => true,
- 'example' => 'c-qL4HqKONzOM7****',
- ],
+ 'schema' => ['description' => 'The Alibaba Cloud account ID of the member that you want to move.'."\n", 'type' => 'string', 'required' => true, 'example' => '12323344****', 'title' => ''],
],
[
- 'name' => 'RetainContactInMembers',
+ 'name' => 'DestinationFolderId',
'in' => 'query',
- 'schema' => [
- 'description' => 'Specifies whether to retain the contact for members. Valid values:'."\n"
- ."\n"
- .'* true (default): retains the contact for members. In this case, the contact can still receive messages for the members.'."\n"
- .'* false: does not retain the contact for members. In this case, the contact can no longer receive messages for the members. If you set this parameter to false, the response is asynchronously returned. You can call [GetMessageContactDeletionStatus](~~GetMessageContactDeletionStatus~~) to obtain the deletion result.'."\n",
- 'type' => 'boolean',
- 'required' => false,
- 'example' => 'true',
- ],
+ 'schema' => ['description' => 'The ID of the destination folder.'."\n", 'type' => 'string', 'required' => true, 'example' => 'fd-bVaRIG****', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
- 'title' => 'Schema of Response',
'description' => 'The returned result.'."\n",
'type' => 'object',
'properties' => [
- 'RequestId' => [
- 'title' => 'Id of the request',
- 'description' => 'The request ID.'."\n",
- 'type' => 'string',
- 'example' => '9B34724D-54B0-4A51-B34D-4512372FE1BE',
- ],
- 'Status' => [
- 'description' => 'The deletion status of the contact. Valid values:'."\n"
- ."\n"
- .'* Deleting'."\n"
- .'* Deleted'."\n",
- 'type' => 'string',
- 'example' => 'Deleting',
- ],
+ 'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => '9B34724D-54B0-4A51-B34D-4512372FE1BE', 'title' => ''],
],
+ 'title' => '',
],
],
],
'errorCodes' => [
400 => [
- [
- 'errorCode' => 'InvalidParameter.ContactId',
- 'errorMessage' => 'The ContactId is invalid.',
- ],
- [
- 'errorCode' => 'MissingParameter.ContactId',
- 'errorMessage' => 'You must specify ContactId.',
- ],
+ ['errorCode' => 'MissingParameter.AccountId', 'errorMessage' => 'You must specify AccountId.', 'description' => ''],
+ ['errorCode' => 'InvalidParameter.AccountId', 'errorMessage' => 'The AccountId is invalid.', 'description' => ''],
+ ['errorCode' => 'MissingParameter.DestinationFolderId', 'errorMessage' => 'You must specify DestinationFolderId.', 'description' => ''],
+ ['errorCode' => 'InvalidParameter.DestinationFolderId', 'errorMessage' => 'The DestinationFolderId is invalid.', 'description' => ''],
],
404 => [
- [
- 'errorCode' => 'EntityNotExists.Contact',
- 'errorMessage' => 'This Contact does not exist.',
- ],
+ ['errorCode' => 'EntityNotExists.Account', 'errorMessage' => 'This resource directory account does not exist.', 'description' => ''],
+ ['errorCode' => 'EntityNotExists.ResourceDirectory', 'errorMessage' => 'The resource directory for the account is not enabled. We recommend that you first enable the resource directory for the account.', 'description' => ''],
+ ['errorCode' => 'EntityNotExists.Folder', 'errorMessage' => 'The resource directory folder does not exist.', 'description' => ''],
],
- 429 => [
- [
- 'errorCode' => 'ConcurrentCallNotSupported',
- 'errorMessage' => 'The operation conflicts with other operations. Please try again later.',
- ],
+ 409 => [
+ ['errorCode' => 'AccountTypeOrStatusMismatch', 'errorMessage' => 'You cannot perform the action on the member account.', 'description' => ''],
],
],
- 'staticInfo' => [
- 'returnType' => 'synchronous',
- ],
- 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"9B34724D-54B0-4A51-B34D-4512372FE1BE\\",\\n \\"Status\\": \\"Deleting\\"\\n}","type":"json"}]',
- 'title' => 'DeleteMessageContact',
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"9B34724D-54B0-4A51-B34D-4512372FE1BE\\"\\n}","errorExample":""},{"type":"xml","example":"<?xml version=\\"1.0\\" encoding=\\"UTF-8\\" ?>\\r\\n<MoveAccountResponse>\\r\\n <RequestId>9B34724D-54B0-4A51-B34D-4512372FE1BE</RequestId>\\r\\n</MoveAccountResponse>","errorExample":""}]',
+ 'title' => 'MoveAccount',
+ 'summary' => 'Moves a member from a folder to another.',
+ 'requestParamsDescription' => ' ',
+ 'responseParamsDescription' => ' ',
+ 'extraInfo' => ' ',
+ 'changeSet' => [],
],
- 'GetMessageContactDeletionStatus' => [
- 'summary' => 'Queries the deletion status of a contact.',
- 'methods' => [
- 'post',
- 'get',
- ],
- 'schemes' => [
- 'https',
- ],
+ 'PrecheckForConsolidatedBillingAccount' => [
+ 'methods' => ['post', 'get'],
+ 'schemes' => ['https'],
'security' => [
[
'AK' => [],
@@ -7614,114 +5362,61 @@
],
'operationType' => 'read',
'deprecated' => false,
- 'systemTags' => [
- 'operationType' => 'get',
- ],
+ 'systemTags' => ['operationType' => 'get'],
'parameters' => [
[
- 'name' => 'ContactId',
+ 'name' => 'BillingAccountId',
'in' => 'query',
- 'schema' => [
- 'description' => 'The ID of the contact.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'c-qL4HqKONzOM7****',
- ],
+ 'schema' => ['description' => 'The ID of the management account or member to be used as a main financial account.'."\n", 'type' => 'string', 'required' => true, 'example' => '111***089', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
- 'title' => 'Schema of Response',
'description' => 'The returned result.'."\n",
'type' => 'object',
'properties' => [
- 'RequestId' => [
- 'title' => 'Id of the request',
- 'description' => 'The request ID.'."\n",
- 'type' => 'string',
- 'example' => '95060F1D-6990-4645-8920-A81D1BBFE992',
- ],
- 'ContactDeletionStatus' => [
- 'description' => 'The deletion information of the contact.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'Status' => [
- 'description' => 'The deletion status of the contact. Valid values:'."\n"
- ."\n"
- .'* Deleting'."\n"
- .'* Failed'."\n",
- 'type' => 'string',
- 'example' => 'Deleting',
- ],
- 'ContactId' => [
- 'description' => 'The ID of the contact.'."\n",
- 'type' => 'string',
- 'example' => 'c-qL4HqKONzOM7****',
- ],
- 'FailReasonList' => [
- 'description' => 'The types of messages received by the contact.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The types of messages received by the contact.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'AccountId' => [
- 'description' => 'The Alibaba Cloud account ID of the member.',
- 'type' => 'string',
- 'example' => '199796839435****',
- ],
- 'MessageTypes' => [
- 'description' => 'The types of messages received by the contact.',
- 'type' => 'array',
- 'items' => [
- 'description' => 'The types of messages received by the contact.',
- 'type' => 'string',
- 'example' => 'AccountExpenses',
- ],
- ],
- ],
- ],
+ 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '9E6B6CA8-9E7A-521F-A743-AA582714727E', 'title' => ''],
+ 'Reasons' => [
+ 'description' => 'The cause of the check failure.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => '',
+ 'type' => 'object',
+ 'properties' => [
+ 'Code' => ['description' => 'The error code.'."\n", 'type' => 'string', 'example' => 'PaymentAccountEnterpriseInvoiceError', 'title' => ''],
+ 'Message' => ['description' => 'The error message.'."\n", 'type' => 'string', 'example' => 'No enterprise invoice header information is set for the payment account.', 'title' => ''],
],
+ 'title' => '',
],
+ 'title' => '',
],
+ 'Result' => ['description' => 'Indicates whether the check was successful. Valid values:'."\n"
+ ."\n"
+ .'* true'."\n"
+ .'* false'."\n", 'type' => 'boolean', 'example' => 'false', 'title' => ''],
],
+ 'title' => '',
],
],
],
'errorCodes' => [
- 400 => [
- [
- 'errorCode' => 'InvalidParameter.ContactId',
- 'errorMessage' => 'The ContactId is invalid.',
- ],
- [
- 'errorCode' => 'MissingParameter.ContactId',
- 'errorMessage' => 'You must specify ContactId.',
- ],
+ 403 => [
+ ['errorCode' => 'MemberAccountOperationNotAllowed', 'errorMessage' => 'The member account is not allowed to perform the operation.', 'description' => ''],
],
- 404 => [
- [
- 'errorCode' => 'EntityNotExists.Contact',
- 'errorMessage' => 'This Contact does not exist.',
- ],
+ [
+ ['errorCode' => 'EntityNotExists.ResourceDirectory', 'errorMessage' => 'The resource directory for the account is not enabled. We recommend that you first enable the resource directory for the account.', 'description' => ''],
+ ['errorCode' => 'EntityNotExists.Account', 'errorMessage' => 'This resource directory account does not exist.', 'description' => ''],
],
],
- 'staticInfo' => [
- 'returnType' => 'synchronous',
- ],
- 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"95060F1D-6990-4645-8920-A81D1BBFE992\\",\\n \\"ContactDeletionStatus\\": {\\n \\"Status\\": \\"Deleting\\",\\n \\"ContactId\\": \\"c-qL4HqKONzOM7****\\",\\n \\"FailReasonList\\": [\\n {\\n \\"AccountId\\": \\"199796839435****\\",\\n \\"MessageTypes\\": [\\n \\"AccountExpenses\\"\\n ]\\n }\\n ]\\n }\\n}","type":"json"}]',
- 'title' => 'GetMessageContactDeletionStatus',
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"9E6B6CA8-9E7A-521F-A743-AA582714727E\\",\\n \\"Reasons\\": [\\n {\\n \\"Code\\": \\"PaymentAccountEnterpriseInvoiceError\\",\\n \\"Message\\": \\"No enterprise invoice header information is set for the payment account.\\"\\n }\\n ],\\n \\"Result\\": false\\n}","type":"json"}]',
+ 'title' => 'PrecheckForConsolidatedBillingAccount',
+ 'summary' => 'Checks whether a management account or member can be used as a main financial account.',
+ 'changeSet' => [],
],
- 'UpdateMessageContact' => [
- 'summary' => 'Updates a contact.',
- 'methods' => [
- 'post',
- 'get',
- ],
- 'schemes' => [
- 'https',
- ],
+ 'RegisterDelegatedAdministrator' => [
+ 'methods' => ['post', 'get'],
+ 'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
@@ -7729,295 +5424,107 @@
],
'operationType' => 'readAndWrite',
'deprecated' => false,
- 'systemTags' => [
- 'operationType' => 'update',
- ],
+ 'systemTags' => ['operationType' => 'create'],
'parameters' => [
[
- 'name' => 'ContactId',
+ 'name' => 'AccountId',
'in' => 'query',
- 'schema' => [
- 'description' => 'The ID of the contact.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'c-qL4HqKONzOM7****',
- ],
+ 'schema' => ['description' => 'The Alibaba Cloud account ID of the member in the resource directory.'."\n", 'type' => 'string', 'required' => true, 'example' => '181761095690****', 'title' => ''],
],
[
- 'name' => 'Name',
+ 'name' => 'ServicePrincipal',
'in' => 'query',
- 'schema' => [
- 'description' => 'The name of the contact.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'tom',
- ],
+ 'schema' => ['description' => 'The identifier of the trusted service.'."\n"
+ ."\n"
+ .'For more information, see the `Trusted service identifier` column in [Supported trusted services](~~208133~~).'."\n", 'type' => 'string', 'required' => true, 'example' => 'cloudfw.aliyuncs.com', 'title' => ''],
],
- [
- 'name' => 'EmailAddress',
- 'in' => 'query',
+ ],
+ 'responses' => [
+ 200 => [
'schema' => [
- 'description' => 'The email address of the contact.'."\n"
- ."\n"
- .'After you specify an email address, you need to call [SendEmailVerificationForMessageContact](~~SendEmailVerificationForMessageContact~~) to send verification information to the email address. After the verification is passed, the email address takes effect.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'someone***@example.com',
+ 'description' => 'The returned result.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => '0A45FC8F-54D2-4A65-8338-25E5DEBDA304', 'title' => ''],
+ ],
+ 'title' => '',
],
],
- [
- 'name' => 'PhoneNumber',
- 'in' => 'query',
- 'schema' => [
- 'description' => 'The mobile phone number of the contact.'."\n"
- ."\n"
- .'Specify the mobile phone number in the `<Country code>-<Mobile phone number>` format.'."\n"
- ."\n"
- .'After you specify a mobile phone number, you need to call [SendPhoneVerificationForMessageContact](~~SendPhoneVerificationForMessageContact~~) to send verification information to the mobile phone number. After the verification is passed, the mobile phone number takes effect.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => '86-139****1234',
- ],
+ ],
+ 'errorCodes' => [
+ 409 => [
+ ['errorCode' => 'InvalidParameter.ServicePrincipal', 'errorMessage' => 'The specified ServicePrincipal is invalid.', 'description' => ''],
+ ['errorCode' => 'AccountAlreadyRegistered', 'errorMessage' => 'The specified account is already a delegated administrator for this service.', 'description' => ''],
+ ['errorCode' => 'DelegatedAccountNumberExceeded', 'errorMessage' => 'The maximum number of delegated administrators for the service principal is exceeded.', 'description' => ''],
+ ['errorCode' => 'CannotRegisterMasterAsDelegatedAdministrator', 'errorMessage' => 'You attempted to register the enterprise management account as a delegated administrator for the service. You can designate only a member account as a delegated administrator.', 'description' => ''],
],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"0A45FC8F-54D2-4A65-8338-25E5DEBDA304\\"\\n}","errorExample":""},{"type":"xml","example":"<?xml version=\\"1.0\\" encoding=\\"UTF-8\\" ?>\\r\\n<RegisterDelegatedAdministratorResponse>\\r\\n\\t<RequestId>0A45FC8F-54D2-4A65-8338-25E5DEBDA304</RequestId>\\r\\n</RegisterDelegatedAdministratorResponse>\\t\\r\\n","errorExample":""}]',
+ 'title' => 'RegisterDelegatedAdministrator',
+ 'summary' => 'Specifies a member in a resource directory as a delegated administrator account of a trusted service.',
+ 'description' => 'The delegated administrator account can be used to access the information of the resource directory and view the structure and members of the resource directory. The delegated administrator account can also be used to perform service-related management operations in the trusted service on behalf of the management account of the resource directory. When you call this operation, you must take note of the following limits:'."\n"
+ ."\n"
+ .'* Only some trusted services support delegated administrator accounts. For more information, see [Supported trusted services](~~208133~~).'."\n"
+ .'* Only the management account of a resource directory or an authorized RAM user or RAM role of the management account can be used to call this operation.'."\n"
+ .'* The number of delegated administrator accounts that are allowed for a trusted service is defined by the trusted service.'."\n",
+ 'responseParamsDescription' => ' ',
+ 'extraInfo' => ' ',
+ 'changeSet' => [],
+ ],
+ 'RemoveCloudAccount' => [
+ 'methods' => ['post', 'get'],
+ 'schemes' => ['https'],
+ 'security' => [
[
- 'name' => 'Title',
- 'in' => 'query',
- 'schema' => [
- 'description' => 'The job title of the contact.'."\n"
- ."\n"
- .'Valid values:'."\n"
- ."\n"
- .'* FinanceDirector'."\n"
- ."\n"
- .' <!-- -->'."\n"
- ."\n"
- .' <!-- -->'."\n"
- ."\n"
- .' <!-- -->'."\n"
- ."\n"
- .'* TechnicalDirector'."\n"
- ."\n"
- .' <!-- -->'."\n"
- ."\n"
- .' <!-- -->'."\n"
- ."\n"
- .' <!-- -->'."\n"
- ."\n"
- .'* MaintenanceDirector'."\n"
- ."\n"
- .' <!-- -->'."\n"
- ."\n"
- .' <!-- -->'."\n"
- ."\n"
- .' <!-- -->'."\n"
- ."\n"
- .'* CEO'."\n"
- ."\n"
- .' <!-- -->'."\n"
- ."\n"
- .' <!-- -->'."\n"
- ."\n"
- .' <!-- -->'."\n"
- ."\n"
- .'* ProjectDirector'."\n"
- ."\n"
- .' <!-- -->'."\n"
- ."\n"
- .' <!-- -->'."\n"
- ."\n"
- .' <!-- -->'."\n"
- ."\n"
- .'* Other'."\n"
- ."\n"
- .' <!-- -->'."\n"
- ."\n"
- .' <!-- -->'."\n"
- ."\n"
- .' <!-- -->'."\n",
- 'type' => 'string',
- 'required' => false,
- 'enumValueTitles' => [
- 'FinanceDirector' => '',
- 'TechnicalDirector' => '',
- 'MaintenanceDirector' => '',
- 'CEO' => 'CEO',
- 'ProjectDirector' => '',
- 'Other' => '',
- ],
- 'example' => 'TechnicalDirector',
- ],
+ 'AK' => [],
],
+ ],
+ 'operationType' => 'readAndWrite',
+ 'deprecated' => false,
+ 'systemTags' => ['operationType' => 'delete'],
+ 'parameters' => [
[
- 'name' => 'MessageTypes',
+ 'name' => 'AccountId',
'in' => 'query',
- 'style' => 'flat',
- 'schema' => [
- 'description' => 'The types of messages received by the contact.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The type of the message received by the contact.'."\n"
- ."\n"
- .'Valid values:'."\n"
- ."\n"
- .'* ServiceMessage'."\n"
- ."\n"
- .' <!-- -->'."\n"
- ."\n"
- .' <!-- -->'."\n"
- ."\n"
- .' <!-- -->'."\n"
- ."\n"
- .'* FaultMessage'."\n"
- ."\n"
- .' <!-- -->'."\n"
- ."\n"
- .' <!-- -->'."\n"
- ."\n"
- .' <!-- -->'."\n"
- ."\n"
- .'* AccountExpenses'."\n"
- ."\n"
- .' <!-- -->'."\n"
- ."\n"
- .' <!-- -->'."\n"
- ."\n"
- .' <!-- -->'."\n"
- ."\n"
- .'* SecurityMessage'."\n"
- ."\n"
- .' <!-- -->'."\n"
- ."\n"
- .' <!-- -->'."\n"
- ."\n"
- .' <!-- -->'."\n"
- ."\n"
- .'* ActivityMessage'."\n"
- ."\n"
- .' <!-- -->'."\n"
- ."\n"
- .' <!-- -->'."\n"
- ."\n"
- .' <!-- -->'."\n"
- ."\n"
- .'* ProductMessage'."\n"
- ."\n"
- .' <!-- -->'."\n"
- ."\n"
- .' <!-- -->'."\n"
- ."\n"
- .' <!-- -->'."\n",
- 'type' => 'string',
- 'required' => false,
- 'enumValueTitles' => [
- 'ServiceMessage' => '',
- 'FaultMessage' => '',
- 'AccountExpenses' => '',
- 'SecurityMessage' => '',
- 'ActivityMessage' => '',
- 'ProductMessage' => '',
- ],
- 'example' => 'AccountExpenses',
- ],
- 'required' => false,
- ],
+ 'schema' => ['description' => 'The Alibaba Cloud account ID of the member.'."\n", 'type' => 'string', 'required' => true, 'example' => '177242285274****', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
- 'title' => 'Schema of Response',
'description' => 'The returned result.'."\n",
'type' => 'object',
'properties' => [
- 'RequestId' => [
- 'title' => 'Id of the request',
- 'description' => 'The request ID.'."\n",
- 'type' => 'string',
- 'example' => '9B34724D-54B0-4A51-B34D-4512372FE1BE',
- ],
+ 'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => '9B34724D-54B0-4A51-B34D-4512372FE1BE', 'title' => ''],
],
+ 'title' => '',
],
],
],
'errorCodes' => [
400 => [
- [
- 'errorCode' => 'InvalidParameter.Name',
- 'errorMessage' => 'The Name is invalid.',
- ],
- [
- 'errorCode' => 'InvalidParameter.Name.Length',
- 'errorMessage' => 'The Name exceeds the length limit.',
- ],
- [
- 'errorCode' => 'InvalidParameter.Name.AlreadyUsed',
- 'errorMessage' => 'The Name already exists. Please change to another name.',
- ],
- [
- 'errorCode' => 'InvalidParameter.EmailAddress',
- 'errorMessage' => 'The EmailAddress is invalid.',
- ],
- [
- 'errorCode' => 'InvalidParameter.PhoneNumber',
- 'errorMessage' => 'The PhoneNumber is invalid.',
- ],
- [
- 'errorCode' => 'InvalidParameter.Title',
- 'errorMessage' => 'The Title is invalid.',
- ],
- [
- 'errorCode' => 'InvalidParameter.MessageTypes',
- 'errorMessage' => 'The MessageTypes is invalid.',
- ],
- [
- 'errorCode' => 'InvalidParameter.MobileCountryCode',
- 'errorMessage' => 'The current site does not support the country code.',
- ],
- [
- 'errorCode' => 'InvalidParameter.ContactId',
- 'errorMessage' => 'The ContactId is invalid.',
- ],
- [
- 'errorCode' => 'MissingParameter.ContactId',
- 'errorMessage' => 'You must specify ContactId.',
- ],
- [
- 'errorCode' => 'InvalidParameter.EmailAddress.Length',
- 'errorMessage' => 'The EmailAddress exceeds the length limit.',
- ],
- [
- 'errorCode' => 'ContactStatusMismatchAction',
- 'errorMessage' => 'The status of the contact does not allow the specified operation.',
- ],
+ ['errorCode' => 'MissingParameter.AccountId', 'errorMessage' => 'You must specify AccountId.', 'description' => ''],
+ ['errorCode' => 'InvalidParameter.AccountId', 'errorMessage' => 'The AccountId is invalid.', 'description' => ''],
],
404 => [
- [
- 'errorCode' => 'EntityNotExists.Contact',
- 'errorMessage' => 'This Contact does not exist.',
- ],
+ ['errorCode' => 'EntityNotExists.Account', 'errorMessage' => 'This resource directory account does not exist.', 'description' => ''],
+ ['errorCode' => 'EntityNotExists.ResourceDirectory', 'errorMessage' => 'The resource directory for the account is not enabled. We recommend that you first enable the resource directory for the account.', 'description' => ''],
],
- 429 => [
- [
- 'errorCode' => 'ConcurrentCallNotSupported',
- 'errorMessage' => 'The operation conflicts with other operations. Please try again later.',
- ],
+ 409 => [
+ ['errorCode' => 'AccountTypeOrStatusMismatch', 'errorMessage' => 'You cannot perform the action on the member account.', 'description' => ''],
+ ['errorCode' => 'Deny.TrustedService', 'errorMessage' => 'You attempted to remove an account that is used in %s. To complete this operation, you must first remove this account from the Trusted Service.', 'description' => ''],
],
],
- 'staticInfo' => [
- 'returnType' => 'synchronous',
- ],
- 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"9B34724D-54B0-4A51-B34D-4512372FE1BE\\"\\n}","type":"json"}]',
- 'title' => 'UpdateMessageContact',
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"9B34724D-54B0-4A51-B34D-4512372FE1BE\\"\\n}","errorExample":""},{"type":"xml","example":"<?xml version=\\"1.0\\" encoding=\\"UTF-8\\" ?>\\r\\n<RemoveCloudAccountResponse>\\r\\n <RequestId>9B34724D-54B0-4A51-B34D-4512372FE1BE</RequestId>\\r\\n</RemoveCloudAccountResponse>","errorExample":""}]',
+ 'title' => 'RemoveCloudAccount',
+ 'summary' => 'Removes a member of the cloud account type.',
+ 'responseParamsDescription' => ' ',
+ 'extraInfo' => ' ',
+ 'changeSet' => [],
],
- 'CancelMessageContactUpdate' => [
- 'summary' => 'Cancels the update of the mobile phone number or email address of a contact.',
- 'methods' => [
- 'post',
- 'get',
- ],
- 'schemes' => [
- 'https',
- ],
+ 'RetryChangeAccountEmail' => [
+ 'methods' => ['post', 'get'],
+ 'schemes' => ['https'],
'security' => [
[
'AK' => [],
@@ -8025,386 +5532,160 @@
],
'operationType' => 'readAndWrite',
'deprecated' => false,
- 'systemTags' => [
- 'operationType' => 'update',
- ],
+ 'systemTags' => ['operationType' => 'update'],
'parameters' => [
[
- 'name' => 'ContactId',
- 'in' => 'query',
- 'schema' => [
- 'description' => 'The ID of the contact.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'c-qL4HqKONzOM7****',
- ],
- ],
- [
- 'name' => 'PhoneNumber',
- 'in' => 'query',
- 'schema' => [
- 'description' => 'The mobile phone number of the contact.'."\n"
- ."\n"
- .'Specify the mobile phone number in the `<Country code>-<Mobile phone number>` format.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => '86-139****1234',
- ],
- ],
- [
- 'name' => 'EmailAddress',
+ 'name' => 'AccountId',
'in' => 'query',
- 'schema' => [
- 'description' => 'The email address of the contact.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'someone***@example.com',
- ],
+ 'schema' => ['description' => 'The Alibaba Cloud account ID of the member.'."\n", 'type' => 'string', 'required' => true, 'example' => '181761095690****', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
- 'title' => 'Schema of Response',
'description' => 'The returned result.'."\n",
'type' => 'object',
'properties' => [
- 'RequestId' => [
- 'title' => 'Id of the request',
- 'description' => 'The request ID.'."\n",
- 'type' => 'string',
- 'example' => '9B34724D-54B0-4A51-B34D-4512372FE1BE',
- ],
+ 'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => '9B34724D-54B0-4A51-B34D-4512372FE1BE', 'title' => ''],
],
+ 'title' => '',
],
],
],
'errorCodes' => [
- 400 => [
- [
- 'errorCode' => 'MissingParameter.ContactId',
- 'errorMessage' => 'You must specify ContactId.',
- ],
- [
- 'errorCode' => 'InvalidParameter.ContactId',
- 'errorMessage' => 'The ContactId is invalid.',
- ],
- [
- 'errorCode' => 'InvalidParameter.PhoneNumber',
- 'errorMessage' => 'The PhoneNumber is invalid.',
- ],
- [
- 'errorCode' => 'InvalidParameter.MobileCountryCode',
- 'errorMessage' => 'The current site does not support the country code.',
- ],
- [
- 'errorCode' => 'InvalidParameter.EmailAddress',
- 'errorMessage' => 'The EmailAddress is invalid.',
- ],
- [
- 'errorCode' => 'ContactStatusMismatchAction',
- 'errorMessage' => 'The status of the contact does not allow the specified operation.',
- ],
- ],
404 => [
- [
- 'errorCode' => 'EntityNotExists.Contact',
- 'errorMessage' => 'This Contact does not exist.',
- ],
+ ['errorCode' => 'EntityNotExists.EmailModifyRecord', 'errorMessage' => 'This email modification record of the account does not exist.', 'description' => ''],
+ ['errorCode' => 'EntityNotExists.ResourceDirectory', 'errorMessage' => 'The resource directory for the account is not enabled. We recommend that you first enable the resource directory for the account.', 'description' => ''],
+ ['errorCode' => 'EntityNotExists.Account', 'errorMessage' => 'This resource directory account does not exist.', 'description' => ''],
],
],
- 'staticInfo' => [
- 'returnType' => 'synchronous',
- ],
- 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"9B34724D-54B0-4A51-B34D-4512372FE1BE\\"\\n}","type":"json"}]',
- 'title' => 'CancelMessageContactUpdate',
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"9B34724D-54B0-4A51-B34D-4512372FE1BE\\"\\n}","errorExample":""},{"type":"xml","example":"<RetryChangeAccountEmailResponse>\\n <RequestId>9B34724D-54B0-4A51-B34D-4512372FE1BE</RequestId>\\n</RetryChangeAccountEmailResponse>","errorExample":""}]',
+ 'title' => 'RetryChangeAccountEmail',
+ 'summary' => 'Resends a verification email for the email address change of a member.',
+ 'changeSet' => [],
],
- 'PrecheckForConsolidatedBillingAccount' => [
- 'methods' => [
- 'post',
- 'get',
- ],
- 'schemes' => [
- 'https',
- ],
+ 'SendEmailVerificationForMessageContact' => [
+ 'methods' => ['post', 'get'],
+ 'schemes' => ['https'],
'security' => [
[
'AK' => [],
],
],
- 'operationType' => 'read',
+ 'operationType' => 'readAndWrite',
'deprecated' => false,
- 'systemTags' => [
- 'operationType' => 'get',
- ],
+ 'systemTags' => ['operationType' => 'none'],
'parameters' => [
[
- 'name' => 'BillingAccountId',
+ 'name' => 'ContactId',
'in' => 'query',
- 'schema' => [
- 'description' => 'The ID of the management account or member to be used as a main financial account.'."\n",
- 'type' => 'string',
- 'required' => true,
- 'example' => '111***089',
- ],
+ 'schema' => ['description' => 'The ID of the contact.'."\n", 'type' => 'string', 'required' => false, 'example' => 'c-5gsZAGt***PGduDF', 'title' => ''],
+ ],
+ [
+ 'name' => 'EmailAddress',
+ 'in' => 'query',
+ 'schema' => ['description' => 'The email address of the contact.'."\n"
+ ."\n"
+ .'The specified email address must be the one you specify when you call [AddMessageContact](~~AddMessageContact~~).'."\n", 'type' => 'string', 'required' => false, 'example' => 'someone***@example.com', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
+ 'title' => 'Schema of Response',
'description' => 'The returned result.'."\n",
'type' => 'object',
'properties' => [
- 'RequestId' => [
- 'description' => 'The request ID.'."\n",
- 'type' => 'string',
- 'example' => '9E6B6CA8-9E7A-521F-A743-AA582714727E',
- ],
- 'Reasons' => [
- 'description' => 'The cause of the check failure.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => '',
- 'type' => 'object',
- 'properties' => [
- 'Code' => [
- 'description' => 'The error code.'."\n",
- 'type' => 'string',
- 'example' => 'PaymentAccountEnterpriseInvoiceError',
- ],
- 'Message' => [
- 'description' => 'The error message.'."\n",
- 'type' => 'string',
- 'example' => 'No enterprise invoice header information is set for the payment account.',
- ],
- ],
- ],
- ],
- 'Result' => [
- 'description' => 'Indicates whether the check was successful. Valid values:'."\n"
- ."\n"
- .'* true'."\n"
- .'* false'."\n",
- 'type' => 'boolean',
- 'example' => 'false',
- ],
+ 'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '7B8A4E7D-6CFF-471D-84DF-195A7A241ECB'],
],
],
],
],
'errorCodes' => [
- 403 => [
- [
- 'errorCode' => 'MemberAccountOperationNotAllowed',
- 'errorMessage' => 'The member account is not allowed to perform the operation.',
- ],
+ 400 => [
+ ['errorCode' => 'MissingParameter.ContactId', 'errorMessage' => 'You must specify ContactId.', 'description' => ''],
+ ['errorCode' => 'InvalidParameter.ContactId', 'errorMessage' => 'The ContactId is invalid.', 'description' => ''],
+ ['errorCode' => 'MissingParameter.EmailAddress', 'errorMessage' => 'You must specify EmailAddress.', 'description' => ''],
+ ['errorCode' => 'InvalidParameter.EmailAddress', 'errorMessage' => 'The EmailAddress is invalid.', 'description' => ''],
],
- [
- [
- 'errorCode' => 'EntityNotExists.ResourceDirectory',
- 'errorMessage' => 'The resource directory for the account is not enabled. We recommend that you first enable the resource directory for the account.',
- ],
- [
- 'errorCode' => 'EntityNotExists.Account',
- 'errorMessage' => 'This resource directory account does not exist.',
- ],
+ 404 => [
+ ['errorCode' => 'EntityNotExists.Contact', 'errorMessage' => 'This Contact does not exist.', 'description' => ''],
+ ['errorCode' => 'EntityNotExists.Contact.Verification', 'errorMessage' => 'This contact verification does not exist.', 'description' => ''],
+ ],
+ 409 => [
+ ['errorCode' => 'SendValidateCodeExceedsLimitForAccount', 'errorMessage' => 'For the same account, the number of verification codes sent exceeds the limit.', 'description' => ''],
],
],
- 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"9E6B6CA8-9E7A-521F-A743-AA582714727E\\",\\n \\"Reasons\\": [\\n {\\n \\"Code\\": \\"PaymentAccountEnterpriseInvoiceError\\",\\n \\"Message\\": \\"No enterprise invoice header information is set for the payment account.\\"\\n }\\n ],\\n \\"Result\\": false\\n}","type":"json"}]',
- 'title' => 'PrecheckForConsolidatedBillingAccount',
- 'summary' => 'Checks whether a management account or member can be used as a main financial account.',
+ 'staticInfo' => ['returnType' => 'synchronous'],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"7B8A4E7D-6CFF-471D-84DF-195A7A241ECB\\"\\n}","type":"json"}]',
+ 'title' => 'SendEmailVerificationForMessageContact',
+ 'summary' => 'Sends verification information to the email address of a contact.',
+ 'changeSet' => [],
],
- 'ListAuthorizedAccounts' => [
- 'summary' => 'Queries a list of members who have the permission to query member information in a resource directory.',
- 'methods' => [
- 'post',
- 'get',
- ],
- 'schemes' => [
- 'http',
- 'https',
- ],
+ 'SendPhoneVerificationForMessageContact' => [
+ 'methods' => ['post', 'get'],
+ 'schemes' => ['https'],
'security' => [
[
'AK' => [],
],
],
- 'operationType' => 'read',
+ 'operationType' => 'readAndWrite',
'deprecated' => false,
- 'systemTags' => [
- 'operationType' => 'list',
- 'riskType' => 'none',
- 'chargeType' => 'free',
- ],
+ 'systemTags' => ['operationType' => 'none'],
'parameters' => [
[
- 'name' => 'PageNumber',
+ 'name' => 'ContactId',
'in' => 'query',
- 'schema' => [
- 'description' => 'The page number.'."\n"
- ."\n"
- .'Page starts from page 1. Default value: 1.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'required' => false,
- 'example' => '1',
- ],
+ 'schema' => ['description' => 'The ID of the contact.'."\n", 'type' => 'string', 'required' => false, 'example' => 'c-qL4HqKONzOM7****', 'title' => ''],
],
[
- 'name' => 'PageSize',
+ 'name' => 'PhoneNumber',
'in' => 'query',
- 'schema' => [
- 'description' => 'The number of entries per page.'."\n"
- ."\n"
- .'Valid values: 1 to 100. Default value: 10.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'required' => false,
- 'example' => '5',
- ],
+ 'schema' => ['description' => 'The mobile phone number of the contact.'."\n"
+ ."\n"
+ .'The value must be in the `<Country code>-<Mobile phone number>` format.'."\n"
+ ."\n"
+ .'The specified mobile phone number must be the one you specify when you call the [AddMessageContact](~~AddMessageContact~~) operation.'."\n", 'type' => 'string', 'required' => false, 'example' => '86-139****1234', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
- 'description' => 'The response parameters.'."\n",
+ 'title' => 'Schema of Response',
+ 'description' => 'The returned result.'."\n",
'type' => 'object',
'properties' => [
- 'TotalCount' => [
- 'description' => 'The total number of entries returned.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'example' => '2',
- ],
- 'RequestId' => [
- 'description' => 'The request ID.'."\n",
- 'type' => 'string',
- 'example' => '7B8A4E7D-6CFF-471D-84DF-195A7A241ECB',
- ],
- 'PageSize' => [
- 'description' => 'The number of entries per page.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'example' => '5',
- ],
- 'PageNumber' => [
- 'description' => 'The page number.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'example' => '1',
- ],
- 'Accounts' => [
- 'type' => 'object',
- 'itemNode' => true,
- 'properties' => [
- 'Account' => [
- 'description' => 'The information about the member.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The information about the member.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'Status' => [
- 'description' => 'The status of the member. Valid values:'."\n"
- ."\n"
- .'* CreateSuccess: The member is created.'."\n"
- .'* PromoteVerifying: The upgrade of the member is under confirmation.'."\n"
- .'* PromoteFailed: The upgrade of the member fails.'."\n"
- .'* PromoteExpired: The upgrade of the member expires.'."\n"
- .'* PromoteCancelled: The upgrade of the member is canceled.'."\n"
- .'* PromoteSuccess: The member is upgraded.'."\n"
- .'* InviteSuccess: The member accepts the invitation.'."\n",
- 'type' => 'string',
- 'example' => 'CreateSuccess',
- ],
- 'Type' => [
- 'description' => 'The type of the member. Valid values:'."\n"
- ."\n"
- .'* CloudAccount: cloud account'."\n"
- .'* ResourceAccount: resource account'."\n",
- 'type' => 'string',
- 'example' => 'ResourceAccount',
- ],
- 'DisplayName' => [
- 'description' => 'The display name of the member.'."\n",
- 'type' => 'string',
- 'example' => 'admin',
- ],
- 'FolderId' => [
- 'description' => 'The ID of the folder.'."\n",
- 'type' => 'string',
- 'example' => 'fd-bVaRIG****',
- ],
- 'ResourceDirectoryId' => [
- 'description' => 'The ID of the resource directory.'."\n",
- 'type' => 'string',
- 'example' => 'rd-k4****',
- ],
- 'JoinTime' => [
- 'description' => 'The time when the member joined the resource directory. The time is displayed in UTC.'."\n",
- 'type' => 'string',
- 'example' => '2015-01-23T12:33:18Z',
- ],
- 'AccountId' => [
- 'description' => 'The Alibaba Cloud account ID of the member.'."\n",
- 'type' => 'string',
- 'example' => '184311716100****',
- ],
- 'JoinMethod' => [
- 'description' => 'The way in which the member joins the resource directory. Valid values:'."\n"
- ."\n"
- .'* invited: The member is invited to join the resource directory.'."\n"
- .'* created: The member is directly created in the resource directory.'."\n",
- 'type' => 'string',
- 'example' => 'created',
- ],
- 'ModifyTime' => [
- 'description' => 'The time when the member was modified. The time is displayed in UTC.'."\n",
- 'type' => 'string',
- 'example' => '2015-01-23T12:33:18Z',
- ],
- 'ResourceDirectoryPath' => [
- 'description' => 'The RDPath of the member.'."\n",
- 'type' => 'string',
- 'example' => 'rd-k4****/r-Wm****/fd-bVaRIG****/184311716100****',
- ],
- 'AccountName' => [
- 'description' => 'The name of the member.'."\n",
- 'type' => 'string',
- 'example' => 'someone@example.com',
- ],
- ],
- ],
- ],
- ],
- ],
+ 'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.'."\n", 'type' => 'string', 'example' => 'CD76D376-2517-4924-92C5-DBC52262F93A'],
],
],
],
],
'errorCodes' => [
+ 400 => [
+ ['errorCode' => 'MissingParameter.ContactId', 'errorMessage' => 'You must specify ContactId.', 'description' => ''],
+ ['errorCode' => 'InvalidParameter.ContactId', 'errorMessage' => 'The ContactId is invalid.', 'description' => ''],
+ ['errorCode' => 'MissingParameter.PhoneNumber', 'errorMessage' => 'You must specify PhoneNumber.', 'description' => ''],
+ ['errorCode' => 'InvalidParameter.PhoneNumber', 'errorMessage' => 'The PhoneNumber is invalid.', 'description' => ''],
+ ['errorCode' => 'InvalidParameter.MobileCountryCode', 'errorMessage' => 'The current site does not support the country code.', 'description' => ''],
+ ],
404 => [
- [
- 'errorCode' => 'EntityNotExists.ResourceDirectory',
- 'errorMessage' => 'The resource directory for the account is not enabled. We recommend that you first enable the resource directory for the account.',
- ],
+ ['errorCode' => 'EntityNotExists.Contact', 'errorMessage' => 'This Contact does not exist.', 'description' => ''],
+ ['errorCode' => 'EntityNotExists.Contact.Verification', 'errorMessage' => 'This contact verification does not exist.', 'description' => ''],
+ ],
+ 409 => [
+ ['errorCode' => 'SendValidateCodeExceedsLimitForAccount', 'errorMessage' => 'For the same account, the number of verification codes sent exceeds the limit.', 'description' => ''],
],
],
- 'staticInfo' => [
- 'returnType' => 'synchronous',
- ],
- 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"TotalCount\\": 2,\\n \\"RequestId\\": \\"7B8A4E7D-6CFF-471D-84DF-195A7A241ECB\\",\\n \\"PageSize\\": 5,\\n \\"PageNumber\\": 1,\\n \\"Accounts\\": {\\n \\"Account\\": [\\n {\\n \\"Status\\": \\"CreateSuccess\\",\\n \\"Type\\": \\"ResourceAccount\\",\\n \\"DisplayName\\": \\"admin\\",\\n \\"FolderId\\": \\"fd-bVaRIG****\\",\\n \\"ResourceDirectoryId\\": \\"rd-k4****\\",\\n \\"JoinTime\\": \\"2015-01-23T12:33:18Z\\",\\n \\"AccountId\\": \\"184311716100****\\",\\n \\"JoinMethod\\": \\"created\\",\\n \\"ModifyTime\\": \\"2015-01-23T12:33:18Z\\",\\n \\"ResourceDirectoryPath\\": \\"rd-k4****/r-Wm****/fd-bVaRIG****/184311716100****\\",\\n \\"AccountName\\": \\"someone@example.com\\"\\n }\\n ]\\n }\\n}","type":"json"}]',
- 'title' => 'ListAuthorizedAccounts',
- 'description' => 'The permission to query member information refers to the permission to call the [GetAccount](~~GetAccount~~) API operation.'."\n",
+ 'staticInfo' => ['returnType' => 'synchronous'],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"CD76D376-2517-4924-92C5-DBC52262F93A\\"\\n}","type":"json"}]',
+ 'title' => 'SendPhoneVerificationForMessageContact',
+ 'summary' => 'Sends verification information to the mobile phone number of a contact.',
+ 'changeSet' => [],
],
- 'EnableControlPolicy' => [
- 'methods' => [
- 'post',
- 'get',
- ],
- 'schemes' => [
- 'https',
- ],
+ 'SendVerificationCodeForBindSecureMobilePhone' => [
+ 'methods' => ['post', 'get'],
+ 'schemes' => ['https'],
'security' => [
[
'AK' => [],
@@ -8412,58 +5693,53 @@
],
'operationType' => 'readAndWrite',
'deprecated' => false,
- 'systemTags' => [
- 'operationType' => 'update',
+ 'systemTags' => ['operationType' => 'none'],
+ 'parameters' => [
+ [
+ 'name' => 'SecureMobilePhone',
+ 'in' => 'query',
+ 'schema' => ['description' => 'The mobile phone number that you want to bind to the member for security purposes.'."\n"
+ ."\n"
+ .'Specify the mobile phone number in the \\<Country code>-\\<Mobile phone number> format.'."\n"
+ ."\n"
+ .'> Mobile phone numbers in the `86-<Mobile phone number>` format in the Chinese mainland are not supported.'."\n", 'type' => 'string', 'required' => true, 'example' => 'xx-13900001234', 'title' => ''],
+ ],
+ [
+ 'name' => 'AccountId',
+ 'in' => 'query',
+ 'schema' => ['description' => 'The Alibaba Cloud account ID of the member.'."\n", 'type' => 'string', 'required' => true, 'example' => '138660628348****', 'title' => ''],
+ ],
],
- 'parameters' => [],
'responses' => [
200 => [
'schema' => [
'description' => 'The returned result.'."\n",
'type' => 'object',
'properties' => [
- 'EnablementStatus' => [
- 'description' => 'The status of the Control Policy feature. Valid values:'."\n"
- ."\n"
- .'* Enabled: The feature is enabled.'."\n"
- .'* PendingEnable: The feature is being enabled.'."\n"
- .'* Disabled: The feature is disabled.'."\n"
- .'* PendingDisable: The feature is being disabled.'."\n",
- 'type' => 'string',
- 'example' => 'PendingEnable',
- ],
- 'RequestId' => [
- 'description' => 'The ID of the request.'."\n",
- 'type' => 'string',
- 'example' => '8CE7BD95-EFFA-4911-A1E0-BD4412697FEB',
- ],
+ 'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => 'DCD43660-75DD-5D15-B342-1B83FCA5B913', 'title' => ''],
+ 'ExpirationDate' => ['description' => 'The time when the verification code expires.'."\n", 'type' => 'string', 'example' => '2021-12-17T07:38:41.747Z', 'title' => ''],
],
+ 'title' => '',
],
],
],
'errorCodes' => [
409 => [
- [
- 'errorCode' => 'Throttling.EnableControlPolicy',
- 'errorMessage' => 'The enable operation is too frequent. Please try again in %s minute(s).',
- ],
+ ['errorCode' => 'NotSupport.AccountInAnotherResourceDirectory', 'errorMessage' => 'The specified account is an Alibaba Cloud account or already exists in another resource directory.', 'description' => ''],
+ ['errorCode' => 'EntityAlreadyExists.ResourceDirectory', 'errorMessage' => 'The resource directory for the account is already enabled. We recommend that you do not enable the resource directory again.', 'description' => ''],
+ ['errorCode' => 'SendValidateCodeExceedsLimitForAccount', 'errorMessage' => 'For the same account, the number of verification codes sent exceeds the limit.', 'description' => ''],
+ ['errorCode' => 'InvalidParameter.MobileCountryCode', 'errorMessage' => 'The current site does not support the country code.', 'description' => ''],
],
],
- 'responseDemo' => '[{"type":"json","example":"{\\n \\"EnablementStatus\\": \\"PendingEnable\\",\\n \\"RequestId\\": \\"8CE7BD95-EFFA-4911-A1E0-BD4412697FEB\\"\\n}","errorExample":""},{"type":"xml","example":"<?xml version=\\"1.0\\" encoding=\\"UTF-8\\" ?>\\r\\n<EnableControlPolicyResponse>\\r\\n\\t<EnablementStatus>PendingEnable</EnablementStatus>\\r\\n\\t<RequestId>8CE7BD95-EFFA-4911-A1E0-BD4412697FEB</RequestId>\\r\\n</EnableControlPolicyResponse>","errorExample":""}]',
- 'title' => 'EnableControlPolicy',
- 'summary' => 'Enables the Control Policy feature.',
- 'description' => 'The Control Policy feature provided by the Resource Directory service allows you to manage the permission boundaries of the folders or members in your resource directory in a centralized manner. This feature is implemented based on the resource directory. You can use this feature to develop common or dedicated rules for access control. The Control Policy feature does not grant permissions but only defines permission boundaries. A member in a resource directory can be used to access resources only after it is granted the required permissions by using the Resource Access Management (RAM) service. For more information, see [Overview of the Control Policy feature](~~178671~~).'."\n",
- 'responseParamsDescription' => ' ',
- 'extraInfo' => ' ',
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"DCD43660-75DD-5D15-B342-1B83FCA5B913\\",\\n \\"ExpirationDate\\": \\"2021-12-17T07:38:41.747Z\\"\\n}","errorExample":""},{"type":"xml","example":"<SendVerificationCodeForBindSecureMobilePhoneResponse>\\n <RequestId>DCD43660-75DD-5D15-B342-1B83FCA5B913</RequestId>\\n <ExpirationDate>2021-12-17T07:38:41.747Z</ExpirationDate>\\n</SendVerificationCodeForBindSecureMobilePhoneResponse>","errorExample":""}]',
+ 'title' => 'SendVerificationCodeForBindSecureMobilePhone',
+ 'summary' => 'Sends a verification code to the mobile phone number that you want to bind to a member of the resource account type in a resource directory for security purposes.',
+ 'description' => 'To ensure that the system can record the operators of management operations, you must use a RAM user or RAM role to which the AliyunResourceDirectoryFullAccess policy is attached within the management account of your resource directory to call this API operation.'."\n",
+ 'changeSet' => [],
],
- 'DisableControlPolicy' => [
- 'methods' => [
- 'post',
- 'get',
- ],
- 'schemes' => [
- 'https',
- ],
+ 'SendVerificationCodeForEnableRD' => [
+ 'methods' => ['post', 'get'],
+ 'schemes' => ['https'],
'security' => [
[
'AK' => [],
@@ -8471,102 +5747,123 @@
],
'operationType' => 'readAndWrite',
'deprecated' => false,
- 'systemTags' => [
- 'operationType' => 'update',
+ 'systemTags' => ['operationType' => 'none', 'riskType' => 'none', 'chargeType' => 'free', 'tenantRelevance' => 'publicInformation'],
+ 'parameters' => [
+ [
+ 'name' => 'SecureMobilePhone',
+ 'in' => 'query',
+ 'schema' => ['description' => 'The mobile phone number that is bound to the newly created account. If you leave this parameter empty, the mobile phone number that is bound to the current account is used.'."\n"
+ ."\n"
+ .'Specify the mobile phone number in the `<Country code>-<Mobile phone number>` format.'."\n"
+ ."\n"
+ .'> Mobile phone numbers in the `86-<Mobile phone number>` format in the Chinese mainland are not supported.', 'type' => 'string', 'required' => false, 'example' => 'xx-13900001234', 'title' => ''],
+ ],
],
- 'parameters' => [],
'responses' => [
200 => [
'schema' => [
- 'description' => 'The returned result.'."\n",
+ 'description' => 'The returned result.',
'type' => 'object',
'properties' => [
- 'EnablementStatus' => [
- 'description' => 'The status of the Control Policy feature. Valid values:'."\n"
- ."\n"
- .'* Enabled: The feature is enabled.'."\n"
- .'* PendingEnable: The feature is being enabled.'."\n"
- .'* Disabled: The feature is disabled.'."\n"
- .'* PendingDisable: The feature is being disabled.'."\n",
- 'type' => 'string',
- 'example' => 'PendingDisable',
- ],
- 'RequestId' => [
- 'description' => 'The ID of the request.'."\n",
- 'type' => 'string',
- 'example' => '7C709979-451D-4C92-835D-7DDCCAA562E9',
- ],
+ 'RequestId' => ['description' => 'The ID of the request.', 'type' => 'string', 'example' => 'EC2FE94D-A4A2-51A1-A493-5C273A36C46A', 'title' => ''],
],
+ 'title' => '',
+ 'example' => '',
],
],
],
- 'responseDemo' => '[{"type":"json","example":"{\\n \\"EnablementStatus\\": \\"PendingDisable\\",\\n \\"RequestId\\": \\"7C709979-451D-4C92-835D-7DDCCAA562E9\\"\\n}","errorExample":""},{"type":"xml","example":"<?xml version=\\"1.0\\" encoding=\\"UTF-8\\" ?>\\r\\n<DisableControlPolicyResponse>\\r\\n\\t<EnablementStatus>PendingDisable</EnablementStatus>\\r\\n\\t<RequestId>7C709979-451D-4C92-835D-7DDCCAA562E9</RequestId>\\r\\n</DisableControlPolicyResponse>\\t\\r\\n","errorExample":""}]',
- 'title' => 'DisableControlPolicy',
- 'summary' => 'Disables the Control Policy feature.',
- 'description' => 'After you disable the Control Policy feature, the system automatically detaches all access control policies that are attached to folders and members. The system does not delete these access control policies, but you cannot attach them to folders or members again.'."\n"
- ."\n"
- .'> If you disable the Control Policy feature, the permissions of all folders and members in your resource directory are affected. Therefore, proceed with caution.'."\n",
- 'responseParamsDescription' => ' ',
- 'extraInfo' => ' ',
- ],
- 'GetControlPolicyEnablementStatus' => [
- 'methods' => [
- 'post',
- 'get',
+ 'errorCodes' => [
+ 409 => [
+ ['errorCode' => 'NotSupport.AccountInAnotherResourceDirectory', 'errorMessage' => 'The specified account is an Alibaba Cloud account or already exists in another resource directory.', 'description' => ''],
+ ['errorCode' => 'EntityAlreadyExists.ResourceDirectory', 'errorMessage' => 'The resource directory for the account is already enabled. We recommend that you do not enable the resource directory again.', 'description' => 'The account has been used to enable a resource directory. Do not use the account to enable a resource directory again.'],
+ ['errorCode' => 'SendValidateCodeExceedsLimitForAccount', 'errorMessage' => 'For the same account, the number of verification codes sent exceeds the limit.', 'description' => 'The number of verification codes that are sent per day by using the account exceeds the upper limit.'],
+ ['errorCode' => 'InvalidParameter.MobileCountryCode', 'errorMessage' => 'The current site does not support the country code.', 'description' => 'The specified country code is not supported at the current site.'],
+ ],
],
- 'schemes' => [
- 'https',
+ 'title' => 'SendVerificationCodeForEnableRD',
+ 'summary' => 'Sends a verification code to the mobile phone number bound to a newly created account when you use the account to enable a resource directory.',
+ 'description' => 'Each Alibaba Cloud account can be used to send a maximum of 100 verification codes per day.',
+ 'changeSet' => [],
+ 'flowControl' => [
+ 'flowControlList' => [
+ ['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'SendVerificationCodeForEnableRD'],
+ ],
+ ],
+ 'ramActions' => [
+ [
+ 'operationType' => 'none',
+ 'ramAction' => [
+ 'action' => 'resourcemanager:SendVerificationCodeForEnableRD',
+ 'authLevel' => 'operate',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ResourceManager', 'resourceType' => 'All Resource', 'arn' => '*'],
+ ],
+ ],
+ ],
],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"EC2FE94D-A4A2-51A1-A493-5C273A36C46A\\"\\n}","type":"json"}]',
+ ],
+ 'SetMemberDeletionPermission' => [
+ 'methods' => ['post', 'get'],
+ 'schemes' => ['https'],
'security' => [
[
'AK' => [],
],
],
- 'operationType' => 'read',
+ 'operationType' => 'readAndWrite',
'deprecated' => false,
- 'systemTags' => [
- 'operationType' => 'get',
+ 'systemTags' => ['operationType' => 'update'],
+ 'parameters' => [
+ [
+ 'name' => 'Status',
+ 'in' => 'query',
+ 'schema' => ['description' => 'Specifies whether to enable the member deletion feature. Valid values:'."\n"
+ ."\n"
+ .'* Enabled: enables the member deletion feature.'."\n"
+ .'* Disabled: disables the member deletion feature.'."\n", 'type' => 'string', 'required' => true, 'example' => 'Enabled', 'title' => ''],
+ ],
],
- 'parameters' => [],
'responses' => [
200 => [
'schema' => [
'description' => 'The returned result.'."\n",
'type' => 'object',
'properties' => [
- 'EnablementStatus' => [
- 'description' => 'The status of the Control Policy feature. Valid values:'."\n"
- ."\n"
- .'* Enabled: The feature is enabled.'."\n"
- .'* PendingEnable: The feature is being enabled.'."\n"
- .'* Disabled: The feature is disabled.'."\n"
- .'* PendingDisable: The feature is being disabled.'."\n",
- 'type' => 'string',
- 'example' => 'Disabled',
- ],
- 'RequestId' => [
- 'description' => 'The ID of the request.'."\n",
- 'type' => 'string',
- 'example' => '1DC39A4E-3B52-4EFE-9F93-4897D7FFA0C4',
- ],
+ 'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => 'C55A4CAA-9039-1DDF-91CE-FCC134513D29', 'title' => ''],
+ 'MemberDeletionStatus' => ['description' => 'The status of the member deletion feature. Valid values:'."\n"
+ ."\n"
+ .'* Enabled: The feature is enabled.'."\n"
+ .'* Disabled: The feature is disabled.'."\n", 'type' => 'string', 'example' => 'Enabled', 'title' => ''],
+ 'ManagementAccountId' => ['description' => 'The ID of the management account of the resource directory.'."\n", 'type' => 'string', 'example' => '151266687691****', 'title' => ''],
+ 'ResourceDirectoryId' => ['description' => 'The ID of the resource directory.'."\n", 'type' => 'string', 'example' => 'rd-3G****', 'title' => ''],
],
+ 'title' => '',
],
],
],
- 'responseDemo' => '[{"type":"json","example":"{\\n \\"EnablementStatus\\": \\"Disabled\\",\\n \\"RequestId\\": \\"1DC39A4E-3B52-4EFE-9F93-4897D7FFA0C4\\"\\n}","errorExample":""},{"type":"xml","example":"<?xml version=\\"1.0\\" encoding=\\"UTF-8\\" ?>\\r\\n<GetControlPolicyEnablementStatusResponse>\\r\\n\\t<EnablementStatus>Disabled</EnablementStatus>\\r\\n\\t<RequestId>1DC39A4E-3B52-4EFE-9F93-4897D7FFA0C4</RequestId>\\r\\n</GetControlPolicyEnablementStatusResponse>","errorExample":""}]',
- 'title' => 'GetControlPolicyEnablementStatus',
- 'summary' => 'Queries the status of the Control Policy feature.',
- 'responseParamsDescription' => ' ',
- 'extraInfo' => ' ',
- ],
- 'CreateControlPolicy' => [
- 'methods' => [
- 'post',
- 'get',
- ],
- 'schemes' => [
- 'https',
+ 'errorCodes' => [
+ 400 => [
+ ['errorCode' => 'InvalidParameter.Status', 'errorMessage' => 'The specified Status is invalid.', 'description' => ''],
+ ],
+ 403 => [
+ ['errorCode' => 'MemberAccountAccessDenied', 'errorMessage' => 'The member account is not allowed to perform the operation.', 'description' => ''],
+ ],
+ [
+ ['errorCode' => 'EntityNotExists.ResourceDirectory', 'errorMessage' => 'The resource directory for the account is not enabled. We recommend that you first enable the resource directory for the account.', 'description' => ''],
+ ],
],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"C55A4CAA-9039-1DDF-91CE-FCC134513D29\\",\\n \\"MemberDeletionStatus\\": \\"Enabled\\",\\n \\"ManagementAccountId\\": \\"151266687691****\\",\\n \\"ResourceDirectoryId\\": \\"rd-3G****\\"\\n}","errorExample":""},{"type":"xml","example":"<SetMemberDeletionPermissionResponse>\\n <ResourceDirectoryId>rd-3G****</ResourceDirectoryId>\\n <RequestId>C55A4CAA-9039-1DDF-91CE-FCC134513D29</RequestId>\\n <MemberDeletionStatus>Enabled</MemberDeletionStatus>\\n <ManagementAccountId>151266687691****</ManagementAccountId>\\n</SetMemberDeletionPermissionResponse>","errorExample":""}]',
+ 'title' => 'SetMemberDeletionPermission',
+ 'summary' => 'Enables or disables the member deletion feature.',
+ 'description' => 'Members of the resource account type can be deleted only after the member deletion feature is enabled.'."\n",
+ 'changeSet' => [],
+ ],
+ 'SetMemberDisplayNameSyncStatus' => [
+ 'path' => '',
+ 'methods' => ['post', 'get'],
+ 'schemes' => ['https'],
'security' => [
[
'AK' => [],
@@ -8574,62 +5871,84 @@
],
'operationType' => 'readAndWrite',
'deprecated' => false,
- 'systemTags' => [
- 'operationType' => 'create',
- 'riskType' => 'none',
- 'chargeType' => 'free',
- ],
+ 'systemTags' => ['operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', 'autoTest' => true, 'tenantRelevance' => 'publicInformation'],
'parameters' => [
[
- 'name' => 'PolicyName',
+ 'name' => 'Status',
'in' => 'query',
'schema' => [
- 'description' => 'The name of the access control policy.'."\n"
+ 'description' => 'The status of the Member Display Name Synchronization feature. Valid values:'."\n"
."\n"
- .'The name must be 1 to 128 characters in length. The name can contain letters, digits, and hyphens (-) and must start with a letter.'."\n",
+ .'* Enabled: The feature is enabled. This indicates that the display names specified by the management account for the members will be synchronized to the basic account information of the members. The display name information will be visible and perceptible to the members. If a notification is sent to a member, the display name of the member will be used as the appellation of the member.'."\n"
+ .'* Disabled: The feature is disabled. This indicates that the display names specified by the management account for the members are valid only in the resource directory and will not be updated to the basic account information of the members.'."\n",
'type' => 'string',
'required' => true,
- 'example' => 'ExampleControlPolicy',
+ 'enumValueTitles' => [],
+ 'example' => 'Enabled',
+ 'title' => '',
],
],
- [
- 'name' => 'Description',
- 'in' => 'query',
+ ],
+ 'responses' => [
+ 200 => [
'schema' => [
- 'description' => 'The description of the access control policy.'."\n"
- ."\n"
- .'The description must be 1 to 1,024 characters in length. The description can contain letters, digits, underscores (\\_), and hyphens (-) and must start with a letter.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'ExampleControlPolicy',
+ 'title' => 'Schema of Response',
+ 'description' => 'The response parameters.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '9B34724D-54B0-4A51-B34D-4512372FE1BE', 'title' => ''],
+ 'MemberAccountDisplayNameSyncStatus' => ['description' => 'The status of the Member Display Name Synchronization feature. Valid values:'."\n"
+ ."\n"
+ .'* Enabled'."\n"
+ .'* Disabled'."\n", 'type' => 'string', 'example' => 'Enabled', 'title' => ''],
+ ],
],
],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ ['errorCode' => 'InvalidParameter.Status', 'errorMessage' => 'The specified Status is invalid.', 'description' => ''],
+ ],
+ 403 => [
+ ['errorCode' => 'MemberAccountAccessDenied', 'errorMessage' => 'The member account is not allowed to perform the operation.', 'description' => ''],
+ ],
[
- 'name' => 'EffectScope',
- 'in' => 'query',
- 'schema' => [
- 'description' => 'The effective scope of the access control policy.'."\n"
- ."\n"
- .'The value RAM indicates that the access control policy takes effect only for RAM users and RAM roles.'."\n",
- 'type' => 'string',
- 'required' => true,
- 'example' => 'RAM',
- ],
+ ['errorCode' => 'EntityNotExists.ResourceDirectory', 'errorMessage' => 'The resource directory for the account is not enabled. We recommend that you first enable the resource directory for the account.', 'description' => ''],
+ ],
+ ],
+ 'staticInfo' => ['returnType' => 'synchronous'],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"9B34724D-54B0-4A51-B34D-4512372FE1BE\\",\\n \\"MemberAccountDisplayNameSyncStatus\\": \\"Enabled\\"\\n}","type":"json"}]',
+ 'title' => 'SetMemberDisplayNameSyncStatus',
+ 'summary' => 'Enables or disables the Member Display Name Synchronization feature.',
+ 'changeSet' => [],
+ ],
+ 'TagResources' => [
+ 'methods' => ['post', 'get'],
+ 'schemes' => ['https'],
+ 'security' => [
+ [
+ 'AK' => [],
],
+ ],
+ 'operationType' => 'readAndWrite',
+ 'deprecated' => false,
+ 'systemTags' => ['operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free'],
+ 'parameters' => [
[
- 'name' => 'PolicyDocument',
+ 'name' => 'ResourceId',
'in' => 'query',
+ 'style' => 'flat',
'schema' => [
- 'description' => 'The document of the access control policy.'."\n"
- ."\n"
- .'The document can be a maximum of 4,096 characters in length.'."\n"
+ 'description' => 'The IDs of the members.'."\n"
."\n"
- .'For more information about the languages of access control policies, see [Languages of access control policies](~~179096~~).'."\n"
+ .'You can specify up to 50 member IDs.',
+ 'type' => 'array',
+ 'items' => ['description' => 'The ID of the member in the resource directory.'."\n"
."\n"
- .'For more information about the examples of access control policies, see [Examples of custom access control policies](~~181474~~).'."\n",
- 'type' => 'string',
+ .'You can specify up to 50 member IDs.', 'type' => 'string', 'required' => false, 'example' => '1524***', 'title' => ''],
'required' => true,
- 'example' => '{"Version":"1","Statement":[{"Effect":"Deny","Action":["ram:UpdateRole","ram:DeleteRole","ram:AttachPolicyToRole","ram:DetachPolicyFromRole"],"Resource":"acs:ram:*:*:role/ResourceDirectoryAccountAccessRole"}]}',
+ 'title' => '',
+ 'example' => '',
],
],
[
@@ -8637,156 +5956,139 @@
'in' => 'query',
'style' => 'flat',
'schema' => [
- 'description' => 'The tag to add to the access control policy.'."\n",
+ 'description' => 'The tags.'."\n"
+ ."\n"
+ .'You can attach up to 20 tags.',
'type' => 'array',
'items' => [
- 'description' => 'The tag to add to the access control policy.'."\n",
+ 'description' => 'The tag.'."\n"
+ ."\n"
+ .'You can attach up to 20 tags.',
'type' => 'object',
'properties' => [
- 'Key' => [
- 'description' => 'The tag key.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'k1',
- ],
- 'Value' => [
- 'description' => 'The tag value.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'v1',
- ],
+ 'Key' => ['description' => 'The tag key.'."\n"
+ ."\n"
+ .'The tag key can be up to 128 characters in length. It cannot start with `aliyun` or `acs:` and cannot contain `http://` or `https://`.', 'type' => 'string', 'required' => false, 'example' => 'k1', 'title' => ''],
+ 'Value' => ['description' => 'The tag value.'."\n"
+ ."\n"
+ .'The tag value can be up to 128 characters in length. It cannot start with `acs:` and cannot contain `http://` or `https://`.', 'type' => 'string', 'required' => false, 'example' => 'v1', 'title' => ''],
],
'required' => false,
+ 'title' => '',
+ 'example' => '',
],
- 'required' => false,
+ 'required' => true,
+ 'title' => '',
+ 'example' => '',
],
],
+ [
+ 'name' => 'ResourceType',
+ 'in' => 'query',
+ 'schema' => ['description' => 'The resource type. Valid value:'."\n"
+ ."\n"
+ .'- Account: Attaches tags to members in a resource directory.', 'type' => 'string', 'required' => true, 'example' => 'Account', 'title' => ''],
+ ],
],
'responses' => [
200 => [
'schema' => [
- 'description' => 'The returned result.'."\n",
+ 'description' => 'The response parameters.',
'type' => 'object',
'properties' => [
- 'ControlPolicy' => [
- 'description' => 'The details of the access control policy.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'AttachmentCount' => [
- 'description' => 'The number of times that the access control policy is referenced.'."\n",
- 'type' => 'string',
- 'example' => '0',
- ],
- 'CreateDate' => [
- 'description' => 'The time when the access control policy was created.'."\n",
- 'type' => 'string',
- 'example' => '2021-03-18T09:24:19Z',
- ],
- 'Description' => [
- 'description' => 'The description of the access control policy.'."\n",
- 'type' => 'string',
- 'example' => 'ExampleControlPolicy',
- ],
- 'EffectScope' => [
- 'description' => 'The effective scope of the access control policy.'."\n"
- ."\n"
- .'The value RAM indicates that the access control policy takes effect only for RAM users and RAM roles.'."\n",
- 'type' => 'string',
- 'example' => 'RAM',
- ],
- 'PolicyId' => [
- 'description' => 'The ID of the access control policy.'."\n",
- 'type' => 'string',
- 'example' => 'cp-jExXAqIYkwHN****',
- ],
- 'PolicyName' => [
- 'description' => 'The name of the access control policy.'."\n",
- 'type' => 'string',
- 'example' => 'ExampleControlPolicy',
- ],
- 'PolicyType' => [
- 'description' => 'The type of the access control policy. Valid values:'."\n"
- ."\n"
- .'* System: system access control policy'."\n"
- .'* Custom: custom access control policy'."\n",
- 'type' => 'string',
- 'example' => 'Custom',
- ],
- 'UpdateDate' => [
- 'description' => 'The time when the access control policy was updated.'."\n",
- 'type' => 'string',
- 'example' => '2021-03-18T09:24:19Z',
- ],
- ],
- ],
- 'RequestId' => [
- 'description' => 'The ID of the request.'."\n",
- 'type' => 'string',
- 'example' => '776B05B3-A0B0-464B-A191-F4E1119A94B2',
- ],
+ 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => 'E7747EDF-EDDC-5B38-9B6A-6392B9C92B1C', 'title' => ''],
],
+ 'title' => '',
+ 'example' => '',
],
],
],
- 'errorCodes' => [
- 409 => [
- [
- 'errorCode' => 'InvalidParameter.PolicyDocument.Length',
- 'errorMessage' => 'The maximum length of the policy document is exceeded. It must not exceed 4096 characters.',
+ 'title' => 'TagResources',
+ 'summary' => 'Attaches tags to members in a resource directory.',
+ 'changeSet' => [],
+ 'flowControl' => [
+ 'flowControlList' => [
+ ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'TagResources'],
+ ],
+ ],
+ 'ramActions' => [
+ [
+ 'operationType' => 'update',
+ 'ramAction' => [
+ 'action' => 'resourcemanager:TagResources',
+ 'authLevel' => 'operate',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ResourceManager', 'resourceType' => 'All Resource', 'arn' => '*'],
+ ],
],
],
],
- 'responseDemo' => '[{"type":"json","example":"{\\n \\"ControlPolicy\\": {\\n \\"AttachmentCount\\": \\"0\\",\\n \\"CreateDate\\": \\"2021-03-18T09:24:19Z\\",\\n \\"Description\\": \\"ExampleControlPolicy\\",\\n \\"EffectScope\\": \\"RAM\\",\\n \\"PolicyId\\": \\"cp-jExXAqIYkwHN****\\",\\n \\"PolicyName\\": \\"ExampleControlPolicy\\",\\n \\"PolicyType\\": \\"Custom\\",\\n \\"UpdateDate\\": \\"2021-03-18T09:24:19Z\\"\\n },\\n \\"RequestId\\": \\"776B05B3-A0B0-464B-A191-F4E1119A94B2\\"\\n}","errorExample":""},{"type":"xml","example":"<?xml version=\\"1.0\\" encoding=\\"UTF-8\\" ?>\\r\\n<CreateControlPolicyResponse>\\r\\n\\t<ControlPolicy>\\r\\n\\t\\t<PolicyType>Custom</PolicyType>\\r\\n\\t\\t<UpdateDate>2021-03-18T09:24:19Z</UpdateDate>\\r\\n\\t\\t<Description>ExampleControlPolicy</Description>\\r\\n\\t\\t<AttachmentCount>0</AttachmentCount>\\r\\n\\t\\t<PolicyName>ExampleControlPolicy</PolicyName>\\r\\n\\t\\t<CreateDate>2021-03-18T09:24:19Z</CreateDate>\\r\\n\\t\\t<PolicyId>cp-jExXAqIYkwHN****</PolicyId>\\r\\n\\t\\t<EffectScope>RAM</EffectScope>\\r\\n\\t</ControlPolicy>\\r\\n\\t<RequestId>776B05B3-A0B0-464B-A191-F4E1119A94B2</RequestId>\\r\\n</CreateControlPolicyResponse>\\t\\r\\n","errorExample":""}]',
- 'title' => 'CreateControlPolicy',
- 'summary' => 'Creates a custom access control policy.',
- 'responseParamsDescription' => ' ',
- 'extraInfo' => ' ',
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"E7747EDF-EDDC-5B38-9B6A-6392B9C92B1C\\"\\n}","type":"json"}]',
],
- 'GetControlPolicy' => [
- 'methods' => [
- 'post',
- 'get',
- ],
- 'schemes' => [
- 'https',
- ],
+ 'UntagResources' => [
+ 'methods' => ['post', 'get'],
+ 'schemes' => ['https'],
'security' => [
[
'AK' => [],
],
],
- 'operationType' => 'read',
+ 'operationType' => 'readAndWrite',
'deprecated' => false,
- 'systemTags' => [
- 'operationType' => 'get',
- ],
+ 'systemTags' => ['operationType' => 'update'],
'parameters' => [
[
- 'name' => 'PolicyId',
+ 'name' => 'All',
+ 'in' => 'query',
+ 'schema' => ['description' => 'Specifies whether to remove all tags from the specified members. Valid values:'."\n"
+ ."\n"
+ .'* false (default value)'."\n"
+ .'* true'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''],
+ ],
+ [
+ 'name' => 'ResourceId',
'in' => 'query',
+ 'style' => 'flat',
'schema' => [
- 'description' => 'The ID of the access control policy.'."\n",
- 'type' => 'string',
+ 'description' => 'The Alibaba Cloud account IDs of the members.'."\n"
+ ."\n"
+ .'You can specify a maximum of 50 IDs.'."\n",
+ 'type' => 'array',
+ 'items' => ['description' => 'The Alibaba Cloud account ID of a member.'."\n"
+ ."\n"
+ .'You can specify a maximum of 50 IDs.'."\n", 'type' => 'string', 'required' => false, 'example' => '1524****', 'title' => ''],
'required' => true,
- 'example' => 'cp-SImPt8GCEwiq****',
+ 'title' => '',
],
],
[
- 'name' => 'Language',
+ 'name' => 'TagKey',
'in' => 'query',
+ 'style' => 'flat',
'schema' => [
- 'description' => 'The language in which you want to return the description of the access control policy. Valid values:'."\n"
+ 'description' => 'The tag keys.'."\n"
."\n"
- .'* zh-CN (default value): Chinese'."\n"
- .'* en: English'."\n"
- .'* ja: Japanese'."\n"
+ .'You can specify a maximum of 20 tag keys.'."\n"
."\n"
- .'> This parameter is valid only for system access control policies.'."\n",
- 'type' => 'string',
+ .'> If you set the `All` parameter to `true`, you do not need to specify tag keys.'."\n",
+ 'type' => 'array',
+ 'items' => ['description' => 'A tag key.'."\n"
+ ."\n"
+ .'You can specify a maximum of 20 tag keys.'."\n"
+ ."\n"
+ .'> If you set the `All` parameter to `true`, you do not need to specify tag keys.'."\n", 'type' => 'string', 'required' => false, 'example' => 'k1', 'title' => ''],
'required' => false,
- 'example' => 'zh-CN',
+ 'title' => '',
],
],
+ [
+ 'name' => 'ResourceType',
+ 'in' => 'query',
+ 'schema' => ['description' => 'The type of the objects from which you want to remove tags. Valid values:'."\n"
+ ."\n"
+ .'* Account: member'."\n", 'type' => 'string', 'required' => true, 'example' => 'Account', 'title' => ''],
+ ],
],
'responses' => [
200 => [
@@ -8794,328 +6096,129 @@
'description' => 'The returned result.'."\n",
'type' => 'object',
'properties' => [
- 'ControlPolicy' => [
- 'description' => 'The details of the access control policy.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'PolicyDocument' => [
- 'description' => 'The document of the access control policy.'."\n",
- 'type' => 'string',
- 'example' => '{\\"Version\\":\\"1\\",\\"Statement\\":[{\\"Effect\\":\\"Deny\\",\\"Action\\":[\\"ram:UpdateRole\\",\\"ram:DeleteRole\\",\\"ram:AttachPolicyToRole\\",\\"ram:DetachPolicyFromRole\\"],\\"Resource\\":\\"acs:ram:*:*:role/ResourceDirectoryAccountAccessRole\\"}]}',
- ],
- 'UpdateDate' => [
- 'description' => 'The time when the access control policy was updated.'."\n",
- 'type' => 'string',
- 'example' => '2021-03-18T08:51:33Z',
- ],
- 'Description' => [
- 'description' => 'The description of the access control policy.'."\n",
- 'type' => 'string',
- 'example' => 'ExampleControlPolicy',
- ],
- 'EffectScope' => [
- 'description' => 'The effective scope of the access control policy. Valid values:'."\n"
- ."\n"
- .'* All: The access control policy is in effect for Alibaba Cloud accounts, RAM users, and RAM roles.'."\n"
- .'* RAM: The access control policy is in effect only for RAM users and RAM roles.'."\n",
- 'type' => 'string',
- 'example' => 'RAM',
- ],
- 'AttachmentCount' => [
- 'description' => 'The number of times that the access control policy is referenced.'."\n",
- 'type' => 'string',
- 'example' => '0',
- ],
- 'PolicyName' => [
- 'description' => 'The name of the access control policy.'."\n",
- 'type' => 'string',
- 'example' => 'test',
- ],
- 'PolicyId' => [
- 'description' => 'The ID of the access control policy.'."\n",
- 'type' => 'string',
- 'example' => 'cp-SImPt8GCEwiq****',
- ],
- 'CreateDate' => [
- 'description' => 'The time when the access control policy was created.'."\n",
- 'type' => 'string',
- 'example' => '2021-03-18T08:51:33Z',
- ],
- 'PolicyType' => [
- 'description' => 'The type of the access control policy. Valid values:'."\n"
- ."\n"
- .'* System: system access control policy'."\n"
- .'* Custom: custom access control policy'."\n",
- 'type' => 'string',
- 'example' => 'Custom',
- ],
- ],
- ],
- 'RequestId' => [
- 'description' => 'The ID of the request.'."\n",
- 'type' => 'string',
- 'example' => 'AB769936-CDFA-4D52-8CE2-A3581800044A',
- ],
+ 'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => 'E7747EDF-EDDC-5B38-9B6A-6392B9C92B1C', 'title' => ''],
],
+ 'title' => '',
],
],
],
- 'responseDemo' => '[{"type":"json","example":"{\\n \\"ControlPolicy\\": {\\n \\"PolicyDocument\\": \\"{\\\\\\\\\\\\\\"Version\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"1\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"Statement\\\\\\\\\\\\\\":[{\\\\\\\\\\\\\\"Effect\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"Deny\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"Action\\\\\\\\\\\\\\":[\\\\\\\\\\\\\\"ram:UpdateRole\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"ram:DeleteRole\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"ram:AttachPolicyToRole\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"ram:DetachPolicyFromRole\\\\\\\\\\\\\\"],\\\\\\\\\\\\\\"Resource\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"acs:ram:*:*:role/ResourceDirectoryAccountAccessRole\\\\\\\\\\\\\\"}]}\\",\\n \\"UpdateDate\\": \\"2021-03-18T08:51:33Z\\",\\n \\"Description\\": \\"ExampleControlPolicy\\",\\n \\"EffectScope\\": \\"RAM\\",\\n \\"AttachmentCount\\": \\"0\\",\\n \\"PolicyName\\": \\"test\\",\\n \\"PolicyId\\": \\"cp-SImPt8GCEwiq****\\",\\n \\"CreateDate\\": \\"2021-03-18T08:51:33Z\\",\\n \\"PolicyType\\": \\"Custom\\"\\n },\\n \\"RequestId\\": \\"AB769936-CDFA-4D52-8CE2-A3581800044A\\"\\n}","errorExample":""},{"type":"xml","example":"<?xml version=\\"1.0\\" encoding=\\"UTF-8\\" ?>\\r\\n<GetControlPolicyResponse>\\r\\n\\t<ControlPolicy>\\r\\n\\t\\t<PolicyType>Custom</PolicyType>\\r\\n\\t\\t<UpdateDate>2021-03-18T08:51:33Z</UpdateDate>\\r\\n\\t\\t<Description>ExampleControlPolicy</Description>\\r\\n\\t\\t<AttachmentCount>0</AttachmentCount>\\r\\n\\t\\t<PolicyName>test</PolicyName>\\r\\n\\t\\t<PolicyDocument>{&quot;Version&quot;:&quot;1&quot;,&quot;Statement&quot;:[{&quot;Effect&quot;:&quot;Deny&quot;,&quot;Action&quot;:[&quot;ram:UpdateRole&quot;,&quot;ram:DeleteRole&quot;,&quot;ram:AttachPolicyToRole&quot;,&quot;ram:DetachPolicyFromRole&quot;],&quot;Resource&quot;:&quot;acs:ram:*:*:role/ResourceDirectoryAccountAccessRole&quot;}]}</PolicyDocument>\\r\\n\\t\\t<CreateDate>2021-03-18T08:51:33Z</CreateDate>\\r\\n\\t\\t<PolicyId>cp-SImPt8GCEwiq****</PolicyId>\\r\\n\\t\\t<EffectScope>RAM</EffectScope>\\r\\n\\t</ControlPolicy>\\r\\n\\t<RequestId>AB769936-CDFA-4D52-8CE2-A3581800044A</RequestId>\\r\\n</GetControlPolicyResponse>\\t\\r\\n","errorExample":""}]',
- 'title' => 'GetControlPolicy',
- 'summary' => 'Queries the details of an access control policy.',
- 'responseParamsDescription' => ' ',
- 'extraInfo' => ' ',
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"E7747EDF-EDDC-5B38-9B6A-6392B9C92B1C\\"\\n}","errorExample":""},{"type":"xml","example":"<UntagResourcesResponse>\\n <RequestId>E7747EDF-EDDC-5B38-9B6A-6392B9C92B1C</RequestId>\\n</UntagResourcesResponse>","errorExample":""}]',
+ 'title' => 'UntagResources',
+ 'summary' => 'Removes tags from the members in a resource directory.',
+ 'changeSet' => [],
],
- 'ListControlPolicies' => [
- 'summary' => 'Queries access control policies.',
- 'methods' => [
- 'post',
- 'get',
- ],
- 'schemes' => [
- 'https',
- ],
+ 'UpdateAccount' => [
+ 'methods' => ['post', 'get'],
+ 'schemes' => ['https'],
'security' => [
[
'AK' => [],
],
],
- 'operationType' => 'read',
+ 'operationType' => 'readAndWrite',
'deprecated' => false,
- 'systemTags' => [
- 'operationType' => 'list',
- 'riskType' => 'none',
- 'chargeType' => 'free',
- ],
+ 'systemTags' => ['operationType' => 'update'],
'parameters' => [
[
- 'name' => 'PolicyType',
- 'in' => 'query',
- 'schema' => [
- 'description' => 'The type of the access control policies. Valid values:'."\n"
- ."\n"
- .'* System: system access control policy'."\n"
- .'* Custom: custom access control policy'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'System',
- ],
- ],
- [
- 'name' => 'PageNumber',
+ 'name' => 'NewDisplayName',
'in' => 'query',
- 'schema' => [
- 'description' => 'The page number.'."\n"
- ."\n"
- .'Page starts from page 1. Default value: 1.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'required' => false,
- 'maximum' => '200000',
- 'minimum' => '1',
- 'example' => '1',
- 'default' => '1',
- ],
+ 'schema' => ['description' => 'The new display name of the member.'."\n"
+ ."\n"
+ .'> You can specify either `NewDisplayName` or `NewAccountType`.'."\n", 'type' => 'string', 'required' => false, 'example' => 'admin', 'title' => ''],
],
[
- 'name' => 'PageSize',
+ 'name' => 'NewAccountType',
'in' => 'query',
- 'schema' => [
- 'description' => 'The number of entries per page.'."\n"
- ."\n"
- .'Valid values: 1 to 100. Default value: 10.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'required' => false,
- 'maximum' => '100',
- 'minimum' => '1',
- 'example' => '10',
- 'default' => '10',
- ],
+ 'schema' => ['description' => 'The new type of the member. Valid values:'."\n"
+ ."\n"
+ .'* ResourceAccount: resource account'."\n"
+ .'* CloudAccount: cloud account'."\n"
+ ."\n"
+ .'> You can specify either `NewDisplayName` or `NewAccountType`.'."\n", 'type' => 'string', 'required' => false, 'example' => 'ResourceAccount', 'title' => ''],
],
[
- 'name' => 'Language',
+ 'name' => 'AccountId',
'in' => 'query',
- 'schema' => [
- 'description' => 'The language in which you want to return the descriptions of the access control policies. Valid values:'."\n"
- ."\n"
- .'* zh-CN (default value): Chinese'."\n"
- .'* en: English'."\n"
- .'* ja: Japanese'."\n"
- ."\n"
- .'> This parameter is available only for system access control policies.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'zh-CN',
- ],
+ 'schema' => ['description' => 'The Alibaba Cloud account ID of the member.'."\n", 'type' => 'string', 'required' => true, 'example' => '12323344****', 'title' => ''],
],
[
- 'name' => 'Tag',
+ 'name' => 'DryRun',
'in' => 'query',
- 'style' => 'flat',
- 'schema' => [
- 'description' => 'The tags.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The tag.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'Key' => [
- 'description' => 'The tag key.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'tag_key',
- ],
- 'Value' => [
- 'description' => 'The tag value.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'tag_value',
- ],
- ],
- 'required' => false,
- ],
- 'required' => false,
- ],
+ 'schema' => ['description' => 'Specifies whether to perform only a dry run, without performing the actual request. Valid values:'."\n"
+ ."\n"
+ .'* true: performs only a dry run. The system checks items such as whether the member status can be modified and whether security information is configured for the member. If the request does not pass the dry run, an error code is returned.'."\n"
+ .'* false (default): performs a dry run and performs the actual request.'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
- 'description' => 'The response parameters.'."\n",
+ 'description' => 'The returned result.'."\n",
'type' => 'object',
'properties' => [
- 'TotalCount' => [
- 'description' => 'The number of access control policies.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'example' => '1',
- ],
- 'RequestId' => [
- 'description' => 'The ID of the request.'."\n",
- 'type' => 'string',
- 'example' => '9424A34C-3471-45AD-B6AB-924BBDFE42F9',
- ],
- 'PageSize' => [
- 'description' => 'The number of entries returned per page.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'example' => '10',
- ],
- 'PageNumber' => [
- 'description' => 'The page number of the returned page.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'example' => '1',
- ],
- 'ControlPolicies' => [
+ 'Account' => [
+ 'description' => 'The information of the member.'."\n",
'type' => 'object',
- 'itemNode' => true,
'properties' => [
- 'ControlPolicy' => [
- 'description' => 'The access control policies.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The access control policy.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'UpdateDate' => [
- 'description' => 'The time when the access control policy was updated.'."\n",
- 'type' => 'string',
- 'example' => '2020-08-05T06:32:24Z',
- ],
- 'Description' => [
- 'description' => 'The description of the access control policy.'."\n",
- 'type' => 'string',
- 'example' => 'System access control policy available for all operations on the cloud'."\n",
- ],
- 'EffectScope' => [
- 'description' => 'The effective scope of the access control policy. Valid values:'."\n"
- ."\n"
- .'* All: The access control policy is in effect for Alibaba Cloud accounts, RAM users, and RAM roles.'."\n"
- .'* RAM: The access control policy is in effect only for RAM users and RAM roles.'."\n",
- 'type' => 'string',
- 'example' => 'All',
- ],
- 'AttachmentCount' => [
- 'description' => 'The number of times that the access control policy is referenced.'."\n",
- 'type' => 'string',
- 'example' => '44',
- ],
- 'PolicyName' => [
- 'description' => 'The name of the access control policy.'."\n",
- 'type' => 'string',
- 'example' => 'FullAliyunAccess',
- ],
- 'PolicyId' => [
- 'description' => 'The ID of the access control policy.'."\n",
- 'type' => 'string',
- 'example' => 'cp-FullAliyunAccess',
- ],
- 'CreateDate' => [
- 'description' => 'The time when the access control policy was created.'."\n",
- 'type' => 'string',
- 'example' => '2020-08-05T06:32:24Z',
- ],
- 'PolicyType' => [
- 'description' => 'The type of the access control policy. Valid values:'."\n"
- ."\n"
- .'* System: system access control policy'."\n"
- .'* Custom: custom access control policy'."\n",
- 'type' => 'string',
- 'example' => 'System',
- ],
- 'Tags' => [
- 'type' => 'object',
- 'itemNode' => true,
- 'properties' => [
- 'Tag' => [
- 'description' => 'The tags.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The tag.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'Key' => [
- 'description' => 'The tag key.'."\n",
- 'type' => 'string',
- 'example' => 'tag_key',
- ],
- 'Value' => [
- 'description' => 'The tag value.'."\n",
- 'type' => 'string',
- 'example' => 'tag_value',
- ],
- ],
- ],
- ],
- ],
- ],
- ],
- ],
- ],
+ 'Status' => ['description' => 'The status of the member. Valid values:'."\n"
+ ."\n"
+ .'* CreateSuccess: The member is created.'."\n"
+ .'* InviteSuccess: The member accepts the invitation.'."\n"
+ .'* Removed: The member is removed.'."\n"
+ .'* SwitchSuccess: The type of the member is switched.'."\n", 'type' => 'string', 'example' => 'CreateSuccess', 'title' => ''],
+ 'Type' => ['description' => 'The type of the member. Valid values:'."\n"
+ ."\n"
+ .'* CloudAccount: cloud account'."\n"
+ .'* ResourceAccount: resource account'."\n", 'type' => 'string', 'example' => 'ResourceAccount', 'title' => ''],
+ 'DisplayName' => ['description' => 'The display name of the member.'."\n", 'type' => 'string', 'example' => 'admin', 'title' => ''],
+ 'FolderId' => ['description' => 'The ID of the folder.'."\n", 'type' => 'string', 'example' => 'fd-bVaRIG****', 'title' => ''],
+ 'ResourceDirectoryId' => ['description' => 'The ID of the resource directory.'."\n", 'type' => 'string', 'example' => 'rd-k3****', 'title' => ''],
+ 'JoinTime' => ['description' => 'The time when the member joined the resource directory. The time is displayed in UTC.'."\n", 'type' => 'string', 'example' => '2015-01-23T12:33:18Z', 'title' => ''],
+ 'AccountId' => ['description' => 'The Alibaba Cloud account ID of the member.'."\n", 'type' => 'string', 'example' => '12323344****', 'title' => ''],
+ 'JoinMethod' => ['description' => 'The way in which the member joins the resource directory. Valid values:'."\n"
+ ."\n"
+ .'* invited: The member is invited to join the resource directory.'."\n"
+ .'* created: The member is directly created in the resource directory.'."\n", 'type' => 'string', 'example' => 'created', 'title' => ''],
+ 'ModifyTime' => ['description' => 'The time when the member was modified. The time is displayed in UTC.'."\n", 'type' => 'string', 'example' => '2015-01-23T12:33:18Z', 'title' => ''],
+ 'AccountName' => ['description' => 'The Alibaba Cloud account name of the member.'."\n", 'type' => 'string', 'example' => 'ecs-manager@aliyun.com', 'title' => ''],
],
+ 'title' => '',
],
+ 'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => '9B34724D-54B0-4A51-B34D-4512372FE1BE', 'title' => ''],
],
+ 'title' => '',
],
],
],
- 'staticInfo' => [
- 'returnType' => 'synchronous',
+ 'errorCodes' => [
+ 404 => [
+ ['errorCode' => 'EntityNotExists.ResourceDirectory', 'errorMessage' => 'The resource directory for the account is not enabled. We recommend that you first enable the resource directory for the account.', 'description' => ''],
+ ['errorCode' => 'EntityNotExists.Account', 'errorMessage' => 'This resource directory account does not exist.', 'description' => ''],
+ ],
+ 409 => [
+ ['errorCode' => 'InvalidParameter.Account.DisplayName.AlreadyUsed', 'errorMessage' => 'The displayname of account has been used.', 'description' => ''],
+ ['errorCode' => 'MissingDisplayNameOrAccountType', 'errorMessage' => 'Either display name or account type must be specified.', 'description' => ''],
+ ['errorCode' => 'AccountTypeMismatch', 'errorMessage' => 'The type or status of the member account cannot satisfy the current operation.', 'description' => ''],
+ ['errorCode' => 'PrimaryAkInUse', 'errorMessage' => 'The account has the primary AK in use.', 'description' => ''],
+ ['errorCode' => 'MissingSecurityInfo', 'errorMessage' => 'Security information is missing.', 'description' => ''],
+ ['errorCode' => 'LegalEntityDifferent', 'errorMessage' => 'The account legal entity is different from the one of the Management Account.', 'description' => ''],
+ ['errorCode' => 'CallerIdentityError', 'errorMessage' => 'Please use the RAM user or role of the Management Account.', 'description' => ''],
+ ],
],
- 'responseDemo' => '[{"type":"json","example":"{\\n \\"TotalCount\\": 1,\\n \\"RequestId\\": \\"9424A34C-3471-45AD-B6AB-924BBDFE42F9\\",\\n \\"PageSize\\": 10,\\n \\"PageNumber\\": 1,\\n \\"ControlPolicies\\": {\\n \\"ControlPolicy\\": [\\n {\\n \\"UpdateDate\\": \\"2020-08-05T06:32:24Z\\",\\n \\"Description\\": \\"支持阿里云所有操作的系统管控策略\\",\\n \\"EffectScope\\": \\"All\\",\\n \\"AttachmentCount\\": \\"44\\",\\n \\"PolicyName\\": \\"FullAliyunAccess\\",\\n \\"PolicyId\\": \\"cp-FullAliyunAccess\\",\\n \\"CreateDate\\": \\"2020-08-05T06:32:24Z\\",\\n \\"PolicyType\\": \\"System\\",\\n \\"Tags\\": {\\n \\"Tag\\": [\\n {\\n \\"Key\\": \\"tag_key\\",\\n \\"Value\\": \\"tag_value\\"\\n }\\n ]\\n }\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<?xml version=\\"1.0\\" encoding=\\"UTF-8\\" ?>\\r\\n<ListControlPoliciesResponse>\\r\\n\\t<TotalCount>1</TotalCount>\\r\\n\\t<RequestId>9424A34C-3471-45AD-B6AB-924BBDFE42F9</RequestId>\\r\\n\\t<PageSize>10</PageSize>\\r\\n\\t<PageNumber>1</PageNumber>\\r\\n\\t<ControlPolicies>\\r\\n\\t\\t<ControlPolicy>\\r\\n\\t\\t\\t<PolicyType>System</PolicyType>\\r\\n\\t\\t\\t<UpdateDate>2020-08-05T06:32:24Z</UpdateDate>\\r\\n\\t\\t\\t<Description>支持阿里云所有操作的系统管控策略</Description>\\r\\n\\t\\t\\t<AttachmentCount>44</AttachmentCount>\\r\\n\\t\\t\\t<PolicyName>FullAliyunAccess</PolicyName>\\r\\n\\t\\t\\t<CreateDate>2020-08-05T06:32:24Z</CreateDate>\\r\\n\\t\\t\\t<PolicyId>cp-FullAliyunAccess</PolicyId>\\r\\n\\t\\t\\t<EffectScope>All</EffectScope>\\r\\n\\t\\t</ControlPolicy>\\r\\n\\t</ControlPolicies>\\r\\n</ListControlPoliciesResponse>\\t\\r\\n","errorExample":""}]',
- 'title' => 'ListControlPolicies',
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"Account\\": {\\n \\"Status\\": \\"CreateSuccess\\",\\n \\"Type\\": \\"ResourceAccount\\",\\n \\"DisplayName\\": \\"admin\\",\\n \\"FolderId\\": \\"fd-bVaRIG****\\",\\n \\"ResourceDirectoryId\\": \\"rd-k3****\\",\\n \\"JoinTime\\": \\"2015-01-23T12:33:18Z\\",\\n \\"AccountId\\": \\"12323344****\\",\\n \\"JoinMethod\\": \\"created\\",\\n \\"ModifyTime\\": \\"2015-01-23T12:33:18Z\\",\\n \\"AccountName\\": \\"ecs-manager@aliyun.com\\"\\n },\\n \\"RequestId\\": \\"9B34724D-54B0-4A51-B34D-4512372FE1BE\\"\\n}","errorExample":""},{"type":"xml","example":"<?xml version=\\"1.0\\" encoding=\\"UTF-8\\" ?>\\r\\n<UpdateAccountResponse>\\r\\n <RequestId>9B34724D-54B0-4A51-B34D-4512372FE1BE</RequestId>\\r\\n <Account>\\r\\n <ResourceDirectoryId>rd-k3****</ResourceDirectoryId>\\r\\n <AccountId>12323344****</AccountId>\\r\\n <DisplayName>admin</DisplayName>\\r\\n <FolderId>fd-bVaRIG****</FolderId>\\r\\n <JoinMethod>created</JoinMethod>\\r\\n <JoinTime>2015-01-23T12:33:18Z</JoinTime>\\r\\n <Type>ResourceAccount</Type>\\r\\n <Status>CreateSuccess</Status>\\r\\n <RecordId>06950264-3f0d-4ca9-82dd-6ee7a3d33d6b</RecordId>\\r\\n <ModifyTime>2015-01-23T12:33:18Z</ModifyTime>\\r\\n </Account>\\r\\n</UpdateAccountResponse>","errorExample":""}]',
+ 'title' => 'UpdateAccount',
+ 'summary' => 'Changes the display name of a member, or switches the type of a member.',
+ 'description' => '* To ensure that the system can record the operators of management operations, you must use a RAM user or RAM role to which the AliyunResourceDirectoryFullAccess policy is attached within the management account of your resource directory to call this operation.'."\n"
+ .'* Before you switch the type of a member from resource account to cloud account, make sure that specific conditions are met. For more information about the conditions, see [Switch a resource account to a cloud account](~~111233~~).'."\n"
+ .'* Before you switch the type of a member from cloud account to resource account, make sure that specific conditions are met. For more information about the conditions, see [Switch a cloud account to a resource account](~~209980~~).',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
+ 'changeSet' => [],
],
'UpdateControlPolicy' => [
- 'methods' => [
- 'post',
- 'get',
- ],
- 'schemes' => [
- 'https',
- ],
+ 'summary' => 'Updates a custom control policy.',
+ 'methods' => ['post', 'get'],
+ 'schemes' => ['https'],
'security' => [
[
'AK' => [],
@@ -9123,150 +6226,116 @@
],
'operationType' => 'readAndWrite',
'deprecated' => false,
- 'systemTags' => [
- 'operationType' => 'update',
- ],
+ 'systemTags' => ['operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free'],
'parameters' => [
[
'name' => 'PolicyId',
'in' => 'query',
- 'schema' => [
- 'description' => 'The ID of the access control policy.'."\n",
- 'type' => 'string',
- 'required' => true,
- 'example' => 'cp-jExXAqIYkwHN****',
- ],
+ 'schema' => ['description' => 'The ID of the control policy.', 'type' => 'string', 'required' => true, 'example' => 'cp-jExXAqIYkwHN****', 'title' => ''],
],
[
'name' => 'NewPolicyName',
'in' => 'query',
- 'schema' => [
- 'description' => 'The new name of the access control policy.'."\n"
- ."\n"
- .'The name must be 1 to 128 characters in length. The name can contain letters, digits, and hyphens (-) and must start with a letter.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'NewControlPolicy',
- ],
+ 'schema' => ['description' => 'The new name of the control policy.'."\n"
+ ."\n"
+ .'The name must be 1 to 128 characters long. It must start with a letter and can contain only letters, digits, and hyphens (-).', 'type' => 'string', 'required' => false, 'example' => 'NewControlPolicy', 'title' => ''],
],
[
'name' => 'NewDescription',
'in' => 'query',
- 'schema' => [
- 'description' => 'The new description of the access control policy.'."\n"
- ."\n"
- .'The description must be 1 to 1,024 characters in length. The description can contain letters, digits, underscores (\\_), and hyphens (-) and must start with a letter.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'ExampleControlPolicy',
- ],
+ 'schema' => ['description' => 'The new description of the control policy.'."\n"
+ ."\n"
+ .'The description must be 1 to 1,024 characters long. It must start with a letter and can contain only letters, digits, underscores (\\_), and hyphens (-).', 'type' => 'string', 'required' => false, 'example' => 'ExampleControlPolicy', 'title' => ''],
],
[
'name' => 'NewPolicyDocument',
'in' => 'query',
- 'schema' => [
- 'description' => 'The new document of the access control policy.'."\n"
- ."\n"
- .'The document can be a maximum of 4,096 characters in length.'."\n"
- ."\n"
- .'For more information about the languages of access control policies, see [Languages of access control policies](~~179096~~).'."\n"
- ."\n"
- .'For more information about the examples of access control policies, see [Examples of custom access control policies](~~181474~~).'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => '{"Version":"1","Statement":[{"Effect":"Deny","Action":["ram:UpdateRole","ram:DeleteRole","ram:AttachPolicyToRole","ram:DetachPolicyFromRole"],"Resource":"acs:ram:*:*:role/ResourceDirectoryAccountAccessRole"}]}',
- ],
+ 'schema' => ['description' => 'The new policy document.'."\n"
+ ."\n"
+ .'The policy document can be up to 4,096 characters long.'."\n"
+ ."\n"
+ .'For more information about the control policy language, see [control policy language](~~179096~~).'."\n"
+ ."\n"
+ .'For policy examples, see [custom control policy examples](~~181474~~).', 'type' => 'string', 'required' => false, 'example' => '{"Version":"1","Statement":[{"Effect":"Deny","Action":["ram:UpdateRole","ram:DeleteRole","ram:AttachPolicyToRole","ram:DetachPolicyFromRole"],"Resource":"acs:ram:*:*:role/ResourceDirectoryAccountAccessRole"}]}', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
- 'description' => 'The returned result.'."\n",
+ 'description' => 'The response.',
'type' => 'object',
'properties' => [
'ControlPolicy' => [
- 'description' => 'The details of the access control policy.'."\n",
+ 'description' => 'The details of the control policy.',
'type' => 'object',
'properties' => [
- 'UpdateDate' => [
- 'description' => 'The time when the access control policy was updated.'."\n",
- 'type' => 'string',
- 'example' => '2021-03-18T10:04:55Z',
- ],
- 'Description' => [
- 'description' => 'The description of the access control policy.'."\n",
- 'type' => 'string',
- 'example' => 'ExampleControlPolicy',
- ],
- 'EffectScope' => [
- 'description' => 'The effective scope of the access control policy. Valid values:'."\n"
- ."\n"
- .'* All: The access control policy is in effect for Alibaba Cloud accounts, RAM users, and RAM roles.'."\n"
- .'* RAM: The access control policy is in effect only for RAM users and RAM roles.'."\n",
- 'type' => 'string',
- 'example' => 'RAM',
- ],
- 'AttachmentCount' => [
- 'description' => 'The number of times that the access control policy is referenced.'."\n",
- 'type' => 'string',
- 'example' => '0',
- ],
- 'PolicyName' => [
- 'description' => 'The name of the access control policy.'."\n",
- 'type' => 'string',
- 'example' => 'NewControlPolicy',
- ],
- 'PolicyId' => [
- 'description' => 'The ID of the access control policy.'."\n",
- 'type' => 'string',
- 'example' => 'cp-jExXAqIYkwHN****',
- ],
- 'CreateDate' => [
- 'description' => 'The time when the access control policy was created.'."\n",
- 'type' => 'string',
- 'example' => '2021-03-18T09:24:19Z',
- ],
- 'PolicyType' => [
- 'description' => 'The type of the access control policy. Valid values:'."\n"
- ."\n"
- .'* System: system access control policy'."\n"
- .'* Custom: custom access control policy'."\n",
- 'type' => 'string',
- 'example' => 'Custom',
- ],
+ 'UpdateDate' => ['description' => 'The time when the control policy was last updated.', 'type' => 'string', 'example' => '2021-03-18T10:04:55Z', 'title' => ''],
+ 'Description' => ['description' => 'The description of the control policy.', 'type' => 'string', 'example' => 'ExampleControlPolicy', 'title' => ''],
+ 'EffectScope' => ['description' => 'The scope of the control policy. Valid values:'."\n"
+ ."\n"
+ .'- All: The control policy applies to Alibaba Cloud accounts, RAM users, and RAM roles.'."\n"
+ ."\n"
+ .'- RAM: The control policy applies only to RAM users and RAM roles.', 'type' => 'string', 'example' => 'RAM', 'title' => ''],
+ 'AttachmentCount' => ['description' => 'The number of entities to which the control policy is attached.', 'type' => 'string', 'example' => '0', 'title' => ''],
+ 'PolicyName' => ['description' => 'The name of the control policy.', 'type' => 'string', 'example' => 'NewControlPolicy', 'title' => ''],
+ 'PolicyId' => ['description' => 'The ID of the control policy.', 'type' => 'string', 'example' => 'cp-jExXAqIYkwHN****', 'title' => ''],
+ 'CreateDate' => ['description' => 'The time when the control policy was created.', 'type' => 'string', 'example' => '2021-03-18T09:24:19Z', 'title' => ''],
+ 'PolicyType' => ['description' => 'The type of the control policy. Valid values:'."\n"
+ ."\n"
+ .'- System: A system control policy.'."\n"
+ ."\n"
+ .'- Custom: A custom control policy.', 'type' => 'string', 'example' => 'Custom', 'title' => ''],
+ 'ControlPolicyType' => ['type' => 'string', 'example' => 'RESOURCE_CONTROL_POLICY', 'description' => '', 'title' => ''],
],
+ 'title' => '',
+ 'example' => '',
],
- 'RequestId' => [
- 'description' => 'The ID of the request.'."\n",
- 'type' => 'string',
- 'example' => '2DFCE4C9-04A9-4C83-BB14-FE791275EC53',
- ],
+ 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '2DFCE4C9-04A9-4C83-BB14-FE791275EC53', 'title' => ''],
],
+ 'title' => '',
+ 'example' => '',
],
],
],
'errorCodes' => [
400 => [
- [
- 'errorCode' => 'InvalidParameter.NewPolicyDocument.Length',
- 'errorMessage' => 'Unable to save your policy. A policy contains a maximum of 4096 characters.',
- ],
+ ['errorCode' => 'InvalidParameter.NewPolicyDocument.Length', 'errorMessage' => 'Unable to save your policy. A policy contains a maximum of 4096 characters.', 'description' => 'Failed to save the policy. The policy document can be up to 4,096 characters in length.'],
+ ],
+ 404 => [
+ ['errorCode' => 'EntityNotExists.ResourceControlPolicy', 'errorMessage' => 'The specified resource control policy does not exist.', 'description' => ''],
+ ],
+ 409 => [
+ ['errorCode' => 'DeleteConflict.SystemResourceControlPolicy', 'errorMessage' => 'The system resource control policy cannot be deleted.', 'description' => ''],
+ ['errorCode' => 'InvalidResourceControlPolicyEnablementStatus', 'errorMessage' => 'The resource control policy enablement status is not valid to perform this operation.', 'description' => ''],
],
],
- 'responseDemo' => '[{"type":"json","example":"{\\n \\"ControlPolicy\\": {\\n \\"UpdateDate\\": \\"2021-03-18T10:04:55Z\\",\\n \\"Description\\": \\"ExampleControlPolicy\\",\\n \\"EffectScope\\": \\"RAM\\",\\n \\"AttachmentCount\\": \\"0\\",\\n \\"PolicyName\\": \\"NewControlPolicy\\",\\n \\"PolicyId\\": \\"cp-jExXAqIYkwHN****\\",\\n \\"CreateDate\\": \\"2021-03-18T09:24:19Z\\",\\n \\"PolicyType\\": \\"Custom\\"\\n },\\n \\"RequestId\\": \\"2DFCE4C9-04A9-4C83-BB14-FE791275EC53\\"\\n}","errorExample":""},{"type":"xml","example":"<?xml version=\\"1.0\\" encoding=\\"UTF-8\\" ?>\\r\\n<UpdateControlPolicyResponse>\\r\\n\\t<ControlPolicy>\\r\\n\\t\\t<PolicyType>Custom</PolicyType>\\r\\n\\t\\t<UpdateDate>2021-03-18T10:04:55Z</UpdateDate>\\r\\n\\t\\t<Description>ExampleControlPolicy</Description>\\r\\n\\t\\t<AttachmentCount>0</AttachmentCount>\\r\\n\\t\\t<PolicyName>NewControlPolicy</PolicyName>\\r\\n\\t\\t<CreateDate>2021-03-18T09:24:19Z</CreateDate>\\r\\n\\t\\t<PolicyId>cp-jExXAqIYkwHN****</PolicyId>\\r\\n\\t\\t<EffectScope>RAM</EffectScope>\\r\\n\\t</ControlPolicy>\\r\\n\\t<RequestId>2DFCE4C9-04A9-4C83-BB14-FE791275EC53</RequestId>\\r\\n</UpdateControlPolicyResponse>\\t\\r\\n","errorExample":""}]',
'title' => 'UpdateControlPolicy',
- 'summary' => 'Updates a custom access control policy.',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
- ],
- 'DeleteControlPolicy' => [
- 'methods' => [
- 'post',
- 'get',
+ 'changeSet' => [],
+ 'flowControl' => [
+ 'flowControlList' => [
+ ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateControlPolicy'],
+ ],
],
- 'schemes' => [
- 'https',
+ 'ramActions' => [
+ [
+ 'operationType' => 'update',
+ 'ramAction' => [
+ 'action' => 'resourcemanager:UpdateControlPolicy',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ResourceManager', 'resourceType' => 'ControlPolicy', 'arn' => 'acs:resourcemanager::{#accountId}:policy/controlpolicy/{#PolicyId}'],
+ ],
+ ],
+ ],
],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"ControlPolicy\\": {\\n \\"UpdateDate\\": \\"2021-03-18T10:04:55Z\\",\\n \\"Description\\": \\"ExampleControlPolicy\\",\\n \\"EffectScope\\": \\"RAM\\",\\n \\"AttachmentCount\\": \\"0\\",\\n \\"PolicyName\\": \\"NewControlPolicy\\",\\n \\"PolicyId\\": \\"cp-jExXAqIYkwHN****\\",\\n \\"CreateDate\\": \\"2021-03-18T09:24:19Z\\",\\n \\"PolicyType\\": \\"Custom\\",\\n \\"ControlPolicyType\\": \\"RESOURCE_CONTROL_POLICY\\"\\n },\\n \\"RequestId\\": \\"2DFCE4C9-04A9-4C83-BB14-FE791275EC53\\"\\n}","type":"json"}]',
+ ],
+ 'UpdateFolder' => [
+ 'methods' => ['post', 'get'],
+ 'schemes' => ['https'],
'security' => [
[
'AK' => [],
@@ -9274,19 +6343,19 @@
],
'operationType' => 'readAndWrite',
'deprecated' => false,
- 'systemTags' => [
- 'operationType' => 'delete',
- ],
+ 'systemTags' => ['operationType' => 'update'],
'parameters' => [
[
- 'name' => 'PolicyId',
+ 'name' => 'FolderId',
'in' => 'query',
- 'schema' => [
- 'description' => 'The ID of the access control policy.'."\n",
- 'type' => 'string',
- 'required' => true,
- 'example' => 'cp-SImPt8GCEwiq****',
- ],
+ 'schema' => ['description' => 'The ID of the folder.'."\n", 'type' => 'string', 'required' => true, 'example' => 'fd-u8B321****', 'title' => ''],
+ ],
+ [
+ 'name' => 'NewFolderName',
+ 'in' => 'query',
+ 'schema' => ['description' => 'The new name of the folder.'."\n"
+ ."\n"
+ .'The name must be 1 to 24 characters in length and can contain letters, digits, underscores (\\_), periods (.), and hyphens (-).'."\n", 'type' => 'string', 'required' => true, 'example' => 'rdFolder', 'title' => ''],
],
],
'responses' => [
@@ -9295,31 +6364,52 @@
'description' => 'The returned result.'."\n",
'type' => 'object',
'properties' => [
- 'RequestId' => [
- 'description' => 'The ID of the request.'."\n",
- 'type' => 'string',
- 'example' => 'C8541E06-B207-46BF-92C9-DC8DE4609D75',
+ 'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => 'C2CBCA30-C8DD-423E-B4AD-4FB694C9180C', 'title' => ''],
+ 'Folder' => [
+ 'description' => 'The information about the folder.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'FolderId' => ['description' => 'The ID of the folder.'."\n", 'type' => 'string', 'example' => 'fd-u8B321****', 'title' => ''],
+ 'CreateTime' => ['description' => 'The time when the folder was created.'."\n", 'type' => 'string', 'example' => '2019-02-19T09:34:50.757Z', 'title' => ''],
+ 'ParentFolderId' => ['description' => 'The ID of the parent folder.'."\n", 'type' => 'string', 'example' => 'r-b1****', 'title' => ''],
+ 'FolderName' => ['description' => 'The name of the folder.'."\n", 'type' => 'string', 'example' => 'rdFolder', 'title' => ''],
+ ],
+ 'title' => '',
],
],
+ 'title' => '',
],
],
],
- 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"C8541E06-B207-46BF-92C9-DC8DE4609D75\\"\\n}","errorExample":""},{"type":"xml","example":"<?xml version=\\"1.0\\" encoding=\\"UTF-8\\" ?>\\r\\n<DeleteControlPolicyResponse>\\r\\n\\t<RequestId>C8541E06-B207-46BF-92C9-DC8DE4609D75</RequestId>\\r\\n</DeleteControlPolicyResponse>\\t\\r\\n","errorExample":""}]',
- 'title' => 'DeleteControlPolicy',
- 'summary' => 'Deletes a custom access control policy.',
- 'description' => 'If you want to delete a custom access control policy that is attached to folders or members, you must call the [DetachControlPolicy](~~DetachControlPolicy~~) operation to detach the policy before you delete it.'."\n",
+ 'errorCodes' => [
+ 400 => [
+ ['errorCode' => 'MissingParameter.Folder.Name', 'errorMessage' => 'You must specify the resource folder name.', 'description' => ''],
+ ['errorCode' => 'InvalidParameter.Folder.Name', 'errorMessage' => 'The Name of folder is invalid.', 'description' => ''],
+ ['errorCode' => 'InvalidParameter.Folder.Name.Length', 'errorMessage' => 'The Name of folder exceeds the length limit.', 'description' => ''],
+ ['errorCode' => 'MissingParameter.FolderId', 'errorMessage' => 'You must specify FolderId.', 'description' => ''],
+ ['errorCode' => 'InvalidParameter.FolderId', 'errorMessage' => 'The FolderId is invalid.', 'description' => ''],
+ ['errorCode' => 'InvalidParameter.Folder.Name.AlreadyUsed', 'errorMessage' => 'The name already exists under the same parent. Please change to another name.', 'description' => ''],
+ ],
+ 404 => [
+ ['errorCode' => 'EntityNotExists.ResourceDirectory', 'errorMessage' => 'The resource directory for the account is not enabled. We recommend that you first enable the resource directory for the account.', 'description' => ''],
+ ['errorCode' => 'EntityNotExists.Folder', 'errorMessage' => 'The resource directory folder does not exist.', 'description' => ''],
+ ],
+ 409 => [
+ ['errorCode' => 'LimitExceeded.Folder.Depth', 'errorMessage' => 'The folder depth exceeds the limit of 5.', 'description' => ''],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"C2CBCA30-C8DD-423E-B4AD-4FB694C9180C\\",\\n \\"Folder\\": {\\n \\"FolderId\\": \\"fd-u8B321****\\",\\n \\"CreateTime\\": \\"2019-02-19T09:34:50.757Z\\",\\n \\"ParentFolderId\\": \\"r-b1****\\",\\n \\"FolderName\\": \\"rdFolder\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"<?xml version=\\"1.0\\" encoding=\\"UTF-8\\" ?>\\r\\n<UpdateFolderResponse>\\r\\n <Folder>\\r\\n <FolderName>rdFolder</FolderName>\\r\\n <ParentFolderId>r-b1****</ParentFolderId>\\r\\n <FolderId>fd-u8B321****</FolderId>\\r\\n <CreateTime>2019-02-19T09:34:50.757Z</CreateTime>\\r\\n </Folder>\\r\\n <RequestId>C2CBCA30-C8DD-423E-B4AD-4FB694C9180C</RequestId>\\r\\n</UpdateFolderResponse>","errorExample":""}]',
+ 'title' => 'UpdateFolder',
+ 'summary' => 'Changes the name of a folder.',
+ 'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
+ 'changeSet' => [],
],
- 'AttachControlPolicy' => [
- 'summary' => 'Attaches an access control policy.',
- 'methods' => [
- 'post',
- 'get',
- ],
- 'schemes' => [
- 'https',
- ],
+ 'UpdateMessageContact' => [
+ 'summary' => 'Updates a contact.',
+ 'methods' => ['post', 'get'],
+ 'schemes' => ['https'],
'security' => [
[
'AK' => [],
@@ -9327,78 +6417,229 @@
],
'operationType' => 'readAndWrite',
'deprecated' => false,
- 'systemTags' => [
- 'operationType' => 'update',
- ],
+ 'systemTags' => ['operationType' => 'update'],
'parameters' => [
[
- 'name' => 'PolicyId',
+ 'name' => 'ContactId',
+ 'in' => 'query',
+ 'schema' => ['description' => 'The ID of the contact.', 'type' => 'string', 'required' => false, 'example' => 'c-qL4HqKONzOM7****', 'title' => ''],
+ ],
+ [
+ 'name' => 'Name',
+ 'in' => 'query',
+ 'schema' => ['description' => 'The name of the contact.', 'type' => 'string', 'required' => false, 'example' => 'tom', 'title' => ''],
+ ],
+ [
+ 'name' => 'EmailAddress',
+ 'in' => 'query',
+ 'schema' => ['description' => 'The email address of the contact.'."\n"
+ ."\n"
+ .'After you specify an email address, you need to call [SendEmailVerificationForMessageContact](~~SendEmailVerificationForMessageContact~~) to send verification information to the email address. After the verification is passed, the email address takes effect.', 'type' => 'string', 'required' => false, 'example' => 'someone***@example.com', 'title' => ''],
+ ],
+ [
+ 'name' => 'PhoneNumber',
+ 'in' => 'query',
+ 'schema' => ['description' => 'The mobile phone number of the contact.'."\n"
+ ."\n"
+ .'Specify the mobile phone number in the `<Country code>-<Mobile phone number>` format.'."\n"
+ ."\n"
+ .'After you specify a mobile phone number, you need to call [SendPhoneVerificationForMessageContact](~~SendPhoneVerificationForMessageContact~~) to send verification information to the mobile phone number. After the verification is passed, the mobile phone number takes effect.', 'type' => 'string', 'required' => false, 'example' => '86-139****1234', 'title' => ''],
+ ],
+ [
+ 'name' => 'Title',
'in' => 'query',
'schema' => [
- 'description' => 'The ID of the access control policy.'."\n",
+ 'description' => 'The job title of the contact.'."\n"
+ ."\n"
+ .'Valid values:'."\n"
+ ."\n"
+ .'- FinanceDirector'."\n"
+ ."\n"
+ .' <!-- -->'."\n"
+ ."\n"
+ .' <!-- -->'."\n"
+ ."\n"
+ .' <!-- -->'."\n"
+ ."\n"
+ .'- TechnicalDirector'."\n"
+ ."\n"
+ .' <!-- -->'."\n"
+ ."\n"
+ .' <!-- -->'."\n"
+ ."\n"
+ .' <!-- -->'."\n"
+ ."\n"
+ .'- MaintenanceDirector'."\n"
+ ."\n"
+ .' <!-- -->'."\n"
+ ."\n"
+ .' <!-- -->'."\n"
+ ."\n"
+ .' <!-- -->'."\n"
+ ."\n"
+ .'- CEO'."\n"
+ ."\n"
+ .' <!-- -->'."\n"
+ ."\n"
+ .' <!-- -->'."\n"
+ ."\n"
+ .' <!-- -->'."\n"
+ ."\n"
+ .'- ProjectDirector'."\n"
+ ."\n"
+ .' <!-- -->'."\n"
+ ."\n"
+ .' <!-- -->'."\n"
+ ."\n"
+ .' <!-- -->'."\n"
+ ."\n"
+ .'- Other'."\n"
+ ."\n"
+ .' <!-- -->'."\n"
+ ."\n"
+ .' <!-- -->'."\n"
+ ."\n"
+ .' <!-- -->',
+ 'enumValueTitles' => ['FinanceDirector' => 'Finance manager', 'TechnicalDirector' => 'Technical manager', 'MaintenanceDirector' => 'O\\&M manager', 'CEO' => 'CEO', 'ProjectDirector' => 'Project manager', 'Other' => 'Others'],
'type' => 'string',
- 'required' => true,
- 'example' => 'cp-jExXAqIYkwHN****',
+ 'required' => false,
+ 'example' => 'TechnicalDirector',
+ 'title' => '',
],
],
[
- 'name' => 'TargetId',
+ 'name' => 'MessageTypes',
'in' => 'query',
+ 'style' => 'flat',
'schema' => [
- 'description' => 'The ID of the object to which you want to attach the access control policy. Access control policies can be attached to the following objects:'."\n"
- ."\n"
- .'* Root folder'."\n"
- .'* Subfolders of the Root folder'."\n"
- .'* Members'."\n",
- 'type' => 'string',
- 'required' => true,
- 'example' => 'fd-ZDNPiT****',
+ 'description' => 'The types of messages received by the contact.',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The type of the message received by the contact.'."\n"
+ ."\n"
+ .'Valid values:'."\n"
+ ."\n"
+ .'- ServiceMessage'."\n"
+ ."\n"
+ .' <!-- -->'."\n"
+ ."\n"
+ .' <!-- -->'."\n"
+ ."\n"
+ .' <!-- -->'."\n"
+ ."\n"
+ .'- FaultMessage'."\n"
+ ."\n"
+ .' <!-- -->'."\n"
+ ."\n"
+ .' <!-- -->'."\n"
+ ."\n"
+ .' <!-- -->'."\n"
+ ."\n"
+ .'- AccountExpenses'."\n"
+ ."\n"
+ .' <!-- -->'."\n"
+ ."\n"
+ .' <!-- -->'."\n"
+ ."\n"
+ .' <!-- -->'."\n"
+ ."\n"
+ .'- SecurityMessage'."\n"
+ ."\n"
+ .' <!-- -->'."\n"
+ ."\n"
+ .' <!-- -->'."\n"
+ ."\n"
+ .' <!-- -->'."\n"
+ ."\n"
+ .'- ActivityMessage'."\n"
+ ."\n"
+ .' <!-- -->'."\n"
+ ."\n"
+ .' <!-- -->'."\n"
+ ."\n"
+ .' <!-- -->'."\n"
+ ."\n"
+ .'- ProductMessage'."\n"
+ ."\n"
+ .' <!-- -->'."\n"
+ ."\n"
+ .' <!-- -->'."\n"
+ ."\n"
+ .' <!-- -->',
+ 'enumValueTitles' => ['ServiceMessage' => 'Service messages', 'FaultMessage' => 'Fault messages', 'AccountExpenses' => 'Account fund messages', 'SecurityMessage' => 'Security messages', 'ActivityMessage' => 'Promotional messages', 'ProductMessage' => 'Product messages'],
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'AccountExpenses',
+ 'title' => '',
+ ],
+ 'required' => false,
+ 'title' => '',
+ 'example' => '',
],
],
],
'responses' => [
200 => [
'schema' => [
- 'description' => 'The returned result.'."\n",
+ 'title' => 'Schema of Response',
+ 'description' => 'The returned result.',
'type' => 'object',
'properties' => [
- 'RequestId' => [
- 'description' => 'The ID of the request.'."\n",
- 'type' => 'string',
- 'example' => '95060F1D-6990-4645-8920-A81D1BBFE992',
- ],
+ 'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.', 'type' => 'string', 'example' => '9B34724D-54B0-4A51-B34D-4512372FE1BE'],
],
+ 'example' => '',
],
],
],
'errorCodes' => [
+ 400 => [
+ ['errorCode' => 'InvalidParameter.Name', 'errorMessage' => 'The Name is invalid.', 'description' => 'The value of the Name parameter is invalid. The value can contain only letters.'],
+ ['errorCode' => 'InvalidParameter.Name.Length', 'errorMessage' => 'The Name exceeds the length limit.', 'description' => 'The length of the value specified for the Name parameter exceeds the upper limit. The value must be 2 to 12 characters in length and can contain only letters.'],
+ ['errorCode' => 'InvalidParameter.Name.AlreadyUsed', 'errorMessage' => 'The Name already exists. Please change to another name.', 'description' => 'The contact name already exists in the resource directory. Use another name.'],
+ ['errorCode' => 'InvalidParameter.EmailAddress', 'errorMessage' => 'The EmailAddress is invalid.', 'description' => 'The value of the EmailAddress parameter is invalid.'],
+ ['errorCode' => 'InvalidParameter.PhoneNumber', 'errorMessage' => 'The PhoneNumber is invalid.', 'description' => 'The value of the PhoneNumber parameter is invalid.'],
+ ['errorCode' => 'InvalidParameter.Title', 'errorMessage' => 'The Title is invalid.', 'description' => 'The value of the Title parameter is invalid.'],
+ ['errorCode' => 'InvalidParameter.MessageTypes', 'errorMessage' => 'The MessageTypes is invalid.', 'description' => 'The value of the MessageTypes parameter is invalid.'],
+ ['errorCode' => 'InvalidParameter.MobileCountryCode', 'errorMessage' => 'The current site does not support the country code.', 'description' => ''],
+ ['errorCode' => 'InvalidParameter.ContactId', 'errorMessage' => 'The ContactId is invalid.', 'description' => 'The value of the ContactId parameter is invalid.'],
+ ['errorCode' => 'MissingParameter.ContactId', 'errorMessage' => 'You must specify ContactId.', 'description' => 'The ContactId parameter is not configured.'],
+ ['errorCode' => 'InvalidParameter.EmailAddress.Length', 'errorMessage' => 'The EmailAddress exceeds the length limit.', 'description' => 'The length of the value specified for the EmailAddress parameter exceeds the upper limit.'],
+ ['errorCode' => 'ContactStatusMismatchAction', 'errorMessage' => 'The status of the contact does not allow the specified operation.', 'description' => 'The status of the contact does not support the current operation.'],
+ ],
404 => [
- [
- 'errorCode' => 'EntityNotExists.Target',
- 'errorMessage' => 'The specified target does not exist in the resource directory.',
- ],
+ ['errorCode' => 'EntityNotExists.Contact', 'errorMessage' => 'This Contact does not exist.', 'description' => 'The specified contact does not exist.'],
+ ],
+ 429 => [
+ ['errorCode' => 'ConcurrentCallNotSupported', 'errorMessage' => 'The operation conflicts with other operations. Please try again later.', 'description' => 'The operation conflicts with other operations. Try again later.'],
],
],
- 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"95060F1D-6990-4645-8920-A81D1BBFE992\\"\\n}","errorExample":""},{"type":"xml","example":"<?xml version=\\"1.0\\" encoding=\\"UTF-8\\" ?>\\r\\n<AttachControlPolicyResponse>\\r\\n\\t<RequestId>95060F1D-6990-4645-8920-A81D1BBFE992</RequestId>\\r\\n</AttachControlPolicyResponse>","errorExample":""}]',
- 'title' => 'AttachControlPolicy',
- 'description' => 'After you attach a custom access control policy, the operations performed on resources by using members are limited by the policy. Make sure that the attached policy meets your expectations. Otherwise, your business may be affected.'."\n"
- ."\n"
- .'By default, the system access control policy FullAliyunAccess is attached to each folder and member.'."\n"
- ."\n"
- .'The access control policy that is attached to a folder also applies to all its subfolders and all members in the subfolders.'."\n"
- ."\n"
- .'A maximum of 10 access control policies can be attached to a folder or member.'."\n",
- 'responseParamsDescription' => ' ',
- 'extraInfo' => ' ',
- ],
- 'DetachControlPolicy' => [
- 'methods' => [
- 'post',
- 'get',
+ 'staticInfo' => ['returnType' => 'synchronous'],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"9B34724D-54B0-4A51-B34D-4512372FE1BE\\"\\n}","type":"json"}]',
+ 'title' => 'UpdateMessageContact',
+ 'changeSet' => [],
+ 'flowControl' => [
+ 'flowControlList' => [
+ ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateMessageContact'],
+ ],
],
- 'schemes' => [
- 'https',
+ 'ramActions' => [
+ [
+ 'operationType' => 'update',
+ 'ramAction' => [
+ 'action' => 'resourcemanager:UpdateMessageContact',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ResourceManager', 'resourceType' => 'MessageContact', 'arn' => 'acs:resourcemanager:*:{#accountId}:messagecontact/{#MessageContactId}'],
+ ],
+ ],
+ ],
],
+ ],
+ 'UpdatePayerForAccount' => [
+ 'path' => '',
+ 'methods' => ['post', 'get'],
+ 'schemes' => ['https'],
'security' => [
[
'AK' => [],
@@ -9406,918 +6647,1488 @@
],
'operationType' => 'readAndWrite',
'deprecated' => false,
- 'systemTags' => [
- 'operationType' => 'update',
- ],
+ 'systemTags' => ['operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', 'autoTest' => true, 'tenantRelevance' => 'tenant'],
'parameters' => [
[
- 'name' => 'PolicyId',
+ 'name' => 'AccountId',
'in' => 'query',
- 'schema' => [
- 'description' => 'The ID of the access control policy.'."\n",
- 'type' => 'string',
- 'required' => true,
- 'example' => 'cp-jExXAqIYkwHN****',
- ],
+ 'schema' => ['description' => 'The Alibaba Cloud account ID of the member.'."\n", 'type' => 'string', 'required' => true, 'example' => '138660628348****', 'title' => ''],
],
[
- 'name' => 'TargetId',
+ 'name' => 'PayerAccountId',
'in' => 'query',
- 'schema' => [
- 'description' => 'The ID of the object from which you want to detach the access control policy. Access control policies can be attached to the following objects:'."\n"
- ."\n"
- .'* Root folder'."\n"
- .'* Subfolders of the Root folder'."\n"
- .'* Members'."\n",
- 'type' => 'string',
- 'required' => true,
- 'example' => 'fd-ZDNPiT****',
- ],
+ 'schema' => ['description' => 'The ID of the billing account.'."\n", 'type' => 'string', 'required' => true, 'example' => '12323344****', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
+ 'title' => 'Schema of Response',
'description' => 'The returned result.'."\n",
'type' => 'object',
'properties' => [
- 'RequestId' => [
- 'description' => 'The ID of the request.'."\n",
- 'type' => 'string',
- 'example' => '9EA4F962-1A2E-4AFE-BE0C-B14736FC46CC',
- ],
+ 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '9B34724D-54B0-4A51-B34D-4512372FE1BE', 'title' => ''],
],
],
],
],
'errorCodes' => [
- 400 => [
- [
- 'errorCode' => 'NotSupport.DetachLastControlPolicy',
- 'errorMessage' => 'It is not detach the last control policy on the target node.',
- ],
- ],
404 => [
- [
- 'errorCode' => 'EntityNotExists.Target',
- 'errorMessage' => 'The specified target does not exist in the resource directory.',
- ],
+ ['errorCode' => 'EntityNotExists.Account', 'errorMessage' => 'This resource directory account does not exist.', 'description' => ''],
+ ],
+ 409 => [
+ ['errorCode' => 'AccountTypeMismatch', 'errorMessage' => 'The type or status of the member account cannot satisfy the current operation.', 'description' => ''],
+ ['errorCode' => 'InconsistentEnterpriseNameError', 'errorMessage' => 'The enterprise name of the payment account and the member must be consistent.', 'description' => ''],
+ ['errorCode' => 'NotSupport.PayerAccountInAnotherResourceDirectory', 'errorMessage' => 'The specified payment account does not exist in the resource directory. You must specify a valid payment account.', 'description' => ''],
],
],
- 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"9EA4F962-1A2E-4AFE-BE0C-B14736FC46CC\\"\\n}","errorExample":""},{"type":"xml","example":"<?xml version=\\"1.0\\" encoding=\\"UTF-8\\" ?>\\r\\n<DetachControlPolicyResponse>\\r\\n\\t<RequestId>9EA4F962-1A2E-4AFE-BE0C-B14736FC46CC</RequestId>\\r\\n</DetachControlPolicyResponse>\\t\\r\\n","errorExample":""}]',
- 'title' => 'DetachControlPolicy',
- 'summary' => 'Detaches an access control policy.',
- 'description' => 'After you detach an access control policy, the operations performed on resources by using members are not limited by the policy. Make sure that the detached policy meets your expectations. Otherwise, your business may be affected.'."\n"
- ."\n"
- .'Both the system and custom access control policies can be detached. If an object has only one access control policy attached, the policy cannot be detached.'."\n",
- 'responseParamsDescription' => ' ',
- 'extraInfo' => ' ',
+ 'staticInfo' => ['returnType' => 'synchronous'],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"9B34724D-54B0-4A51-B34D-4512372FE1BE\\"\\n}","type":"json"}]',
+ 'title' => 'UpdatePayerForAccount',
+ 'summary' => 'Updates the billing account of a member.',
+ 'changeSet' => [],
],
- 'ListControlPolicyAttachmentsForTarget' => [
- 'methods' => [
- 'post',
- 'get',
+ ],
+ 'endpoints' => [
+ ['regionId' => 'ap-southeast-1', 'regionName' => 'Singapore', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'resourcedirectory-intl.aliyuncs.com', 'endpoint' => 'resourcedirectory-intl.aliyuncs.com', 'vpc' => 'resourcedirectory.vpc-proxy.aliyuncs.com'],
+ ['regionId' => 'cn-shanghai', 'regionName' => 'China (Shanghai)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'resourcedirectory.aliyuncs.com', 'endpoint' => 'resourcedirectory.aliyuncs.com', 'vpc' => 'resourcedirectory.vpc-proxy.aliyuncs.com'],
+ ],
+ 'errorCodes' => [
+ ['code' => 'AccountInAnotherResourceDir', 'message' => 'This account is a master account or a member account in another resource directory.', 'http_code' => 409, 'description' => 'The account is an Alibaba Cloud account or a member of another resource directory.'],
+ ['code' => 'AccountNotExist.DeleteAccount', 'message' => 'The deletion failed. The account does not exist. Please confirm whether it has been deleted.', 'http_code' => 409, 'description' => 'Delete failed. The account does not exist. Check whether the account is already deleted.'],
+ ['code' => 'AccountNotInResourceDirectory', 'message' => 'The account is not a master or a member of a resource directory.', 'http_code' => 409, 'description' => 'The account is not a master or a member of a resource directory.'],
+ ['code' => 'AccountSecureMobileAlreadyExists', 'message' => 'The secure mobile number of the member already exists.', 'http_code' => 409, 'description' => 'A mobile phone number is already bound to the member for security purposes.'],
+ ['code' => 'AccountTypeMismatch', 'message' => 'The type or status of the member account cannot satisfy the current operation.', 'http_code' => 409, 'description' => 'The type or status of the member account cannot satisfy the current operation.'],
+ ['code' => 'AccountTypeOrStatusMismatch', 'message' => 'You cannot perform the action on the member account.', 'http_code' => 409, 'description' => 'You cannot perform the operation on the member.'],
+ ['code' => 'AssociateConflict', 'message' => 'You cannot perform the operation while disassociation operation is being performed.', 'http_code' => 409, 'description' => 'The operation is not supported while a disassociation operation is being performed.'],
+ ['code' => 'BusinessRestricted', 'message' => 'Business is restricted. Please contact your customer service manager.', 'http_code' => 409, 'description' => 'Your business is limited. Contact your customer business manager (CBM).'],
+ ['code' => 'CallerIdentityError', 'message' => 'Please use the RAM user or role of the Management Account.', 'http_code' => 409, 'description' => 'Only a RAM user or RAM role within the management account can be used to perform this operation.'],
+ ['code' => 'CallerIdentityError.DeleteAccount', 'message' => 'Delete operation is not supported for caller identity.', 'http_code' => 409, 'description' => 'The operation is not supported for the caller.'],
+ ['code' => 'CallerIdentityError.DeleteAccount', 'message' => 'Please use the RAM user or role of the management account to delete.', 'http_code' => 409, 'description' => 'Only a RAM user or RAM role within the management account can be used to perform this operation.'],
+ ['code' => 'CanNotBeDetached.FullAliyunAccess', 'message' => 'The system policy FullAliyunAccess cannot be detached.', 'http_code' => 409, 'description' => 'The system policy FullAliyunAccess cannot be detached.'],
+ ['code' => 'CannotRegisterMasterAsDelegatedAdministrator', 'message' => 'You attempted to register the management account as a delegated administrator for the service. You can designate only a member as a delegated administrator.', 'http_code' => 409, 'description' => 'You are specifying the management account of a resource directory as a delegated administrator account of a trusted service. You can specify only the members of a resource directory as delegated administrator accounts.'],
+ ['code' => 'ConcurrentCallNotSupported', 'message' => 'The operation conflicts with other operations. Please try again later.', 'http_code' => 429, 'description' => 'The operation conflicts with other operations. Try again later.'],
+ ['code' => 'ConflictedAssociationType', 'message' => 'The specified ResourceId or Target conflicts with AssociationType.', 'http_code' => 400, 'description' => 'The specified ResourceId or Target conflicts with AssociationType.'],
+ ['code' => 'ContactStatusMismatchAction', 'message' => 'The status of the contact does not allow the specified operation.', 'http_code' => 400, 'description' => 'The status of the contact does not support the current operation.'],
+ ['code' => 'ControlPolicyNotDisabled', 'message' => 'You should disable Control Policy before performing this operation.', 'http_code' => 409, 'description' => 'You should disable Control Policy before performing this operation.'],
+ ['code' => 'ControlPolicyNotEnabled', 'message' => 'The control policy has not been enabled.', 'http_code' => 409, 'description' => 'The access control policy is disabled.'],
+ ['code' => 'CreditControlBlock.DeleteAccount', 'message' => 'The deletion failed. The current account has a credit limit. Please handle the deletion and try again.', 'http_code' => 409, 'description' => 'Delete failed. The current account has a fund limit. Process it and try again.'],
+ ['code' => 'DeleteConflict.AttachedPolicy', 'message' => 'The control policy has been attached and cannot be deleted.', 'http_code' => 409, 'description' => 'The access control policy is attached to an object and cannot be deleted.'],
+ ['code' => 'DeleteConflict.Folder.Account', 'message' => 'This folder has accounts.', 'http_code' => 409, 'description' => 'One or more members exist in the folder. Remove the members first.'],
+ ['code' => 'DeleteConflict.Folder.SubFolder', 'message' => 'This folder has sub folders.', 'http_code' => 409, 'description' => 'The folder contains subfolders. Delete the subfolders first.'],
+ ['code' => 'DeleteConflict.Policy.Group', 'message' => 'The policy cannot be attached to any group when you delete it.', 'http_code' => 409, 'description' => 'The policy cannot be attached to any group when you delete it.'],
+ ['code' => 'DeleteConflict.Policy.Role', 'message' => 'The policy cannot be attached to any role when you delete it.', 'http_code' => 409, 'description' => 'The policy cannot be attached to any role when you delete it.'],
+ ['code' => 'DeleteConflict.Policy.User', 'message' => 'Before deleting the policy, it may not be attached to any user.', 'http_code' => 409, 'description' => 'The policy must not be attached to any user when you delete it.'],
+ ['code' => 'DeleteConflict.Policy.Version', 'message' => 'You must delete all non-default versions before you delete the policy.', 'http_code' => 409, 'description' => 'You must delete all non-default versions before you delete the policy.'],
+ ['code' => 'DeleteConflict.Policy.Version.Default', 'message' => 'You cannot delete the default policy version.', 'http_code' => 409, 'description' => 'You cannot delete the default policy version.'],
+ ['code' => 'DeleteConflict.ResourceDir.Account', 'message' => 'This resource directory has accounts.', 'http_code' => 409, 'description' => 'One or more members exist in the resource directory. Remove or delete the members first.'],
+ ['code' => 'DeleteConflict.ResourceDirectory.Account', 'message' => 'Failed to delete the resource directory because one or more member accounts exist. We recommend that you first remove these member accounts.', 'http_code' => 409, 'description' => 'One or more members exist in the resource directory. Remove or delete the members first.'],
+ ['code' => 'DeleteConflict.Role.Policy', 'message' => 'The role cannot have any attached policies when you delete it.', 'http_code' => 409, 'description' => 'The role cannot have any attached policies when you delete it.'],
+ ['code' => 'DeleteConflict.SystemControlPolicy', 'message' => 'The control policy is a system policy and cannot be deleted.', 'http_code' => 409, 'description' => 'The access control policy is a system access control policy and cannot be deleted.'],
+ ['code' => 'DeleteResourceShareConflict', 'message' => 'You cannot delete resource sharing while there are unfinished tasks.', 'http_code' => 409, 'description' => 'You cannot delete the resource share because a task is being performed for the resource share.'],
+ ['code' => 'Deny.TrustedService', 'message' => 'You attempted to remove an account that is used in %s. To complete this operation, you must first remove this account from the Trusted Service.', 'http_code' => 409, 'description' => 'The current account is used in the trusted service %s. Remove the account from the trusted service first.'],
+ ['code' => 'DeregisterDA.Deny.TrustedService', 'message' => 'To complete this operation, you need to first remove the member account from being managed in the trusted service.', 'http_code' => 409, 'description' => 'To complete this operation, you need to first remove the member account from being managed in the trusted service.'],
+ ['code' => 'DeregisterDeny.TrustedService', 'message' => 'You attempted to deregister an account that is used as a delegated adminstrator in %s. To complete this operation, you must first remove this account from the Trusted Service.', 'http_code' => 409, 'description' => 'The current account is a delegated administrator account of the trusted service %s. Remove the delegated administrator account for the trusted service first.'],
+ ['code' => 'DisassociateConflict', 'message' => 'You cannot perform an associate operation while it is being perfomed.', 'http_code' => 409, 'description' => 'The operation is not supported while an association is being performed.'],
+ ['code' => 'DisassociateInvalid', 'message' => 'You can not disassociate unassociated resource or target.', 'http_code' => 400, 'description' => 'The operation is not supported because the object is not associated with the resource share.'],
+ ['code' => 'EcoRelationCheckFailed', 'message' => 'Accounts associated with partners are not allowed to set up agency payment relationships.', 'http_code' => 409, 'description' => 'Accounts associated with partners are not allowed to set up agency payment relationships.'],
+ ['code' => 'EmailSendingExceedsLimit', 'message' => 'The daily number of messages sent to the same email exceeds the limit.', 'http_code' => 409, 'description' => 'The maximum number of emails that can be sent to the email address per day is reached.'],
+ ['code' => 'EnterpriseCertifyAuthenticationError', 'message' => 'Your account has not passed the enterprise real-name authentication yet.', 'http_code' => 404, 'description' => 'The account does not pass enterprise real-name verification. Complete the verification for the account first.'],
+ ['code' => 'EnterpriseInvoiceAuthenticationError', 'message' => 'Your account has not set the enterprise invoice yet.', 'http_code' => 404, 'description' => 'No invoice title information is specified for the account. Specify invoice title information.'],
+ ['code' => 'EnterpriseInvoiceTitleError', 'message' => 'The invoice title of the specified account is invalid. You must specify a valid invoice title.', 'http_code' => 409, 'description' => 'No invoice title information is specified for the account. Specify invoice title information.'],
+ ['code' => 'EnterpriseNameMismatch', 'message' => 'Your account does not have the same enterpriseName as the master account.', 'http_code' => 409, 'description' => 'The enterprise name of the current account is inconsistent with that of your Alibaba Cloud account.'],
+ ['code' => 'EnterpriseRealNameVerificationError', 'message' => 'The specified account does not pass enterprise real-name verification. We recommend you first complete enterprise real-name verification for the account.', 'http_code' => 409, 'description' => 'The account does not pass enterprise real-name verification. Complete the verification for the account first.'],
+ ['code' => 'EntityAlreadyExists.ControlPolicy', 'message' => 'The control policy already exists.', 'http_code' => 409, 'description' => 'The access control policy already exists.'],
+ ['code' => 'EntityAlreadyExists.ControlPolicyAttachment', 'message' => 'The specified control policy has already been attached to the specified target.', 'http_code' => 409, 'description' => 'The access control policy is already attached to the specified object.'],
+ ['code' => 'EntityAlreadyExists.Policy', 'message' => 'The policy already exists.', 'http_code' => 409, 'description' => 'The policy already exists.'],
+ ['code' => 'EntityAlreadyExists.ResourceDir', 'message' => 'The caller has already initialized resource directory.', 'http_code' => 409, 'description' => 'The account has been used to enable a resource directory. Do not use the account to enable a resource directory again.'],
+ ['code' => 'EntityAlreadyExists.ResourceDir.Account', 'message' => 'This resource directory account already exists.', 'http_code' => 409, 'description' => 'The email address that is generated by the system when the member is created already exists. Try again later.'],
+ ['code' => 'EntityAlreadyExists.ResourceDirectory', 'message' => 'The resource directory for the account is already enabled. We recommend that you do not enable the resource directory again.', 'http_code' => 409, 'description' => 'The account has been used to enable a resource directory. Do not use the account to enable a resource directory again.'],
+ ['code' => 'EntityAlreadyExists.ResourceDirectory.Account', 'message' => 'The email address that the system generates when you create a member account already exists. Try again later.', 'http_code' => 409, 'description' => 'The email address that is generated by the system when the member is created already exists. Try again later.'],
+ ['code' => 'EntityAlreadyExists.ResourceShare', 'message' => 'The specified resource share ID already exists.', 'http_code' => 409, 'description' => 'The specified resource sharing ID already exists.'],
+ ['code' => 'EntityAlreadyExists.Role', 'message' => 'The role already exists.', 'http_code' => 409, 'description' => 'The role already exists.'],
+ ['code' => 'EntityAlreadyExists.Role.Policy', 'message' => 'This policy is already attached to the role.', 'http_code' => 409, 'description' => 'This policy is already attached to the role.'],
+ ['code' => 'EntityAlreadyExists.User.Policy', 'message' => 'This policy is already attached to the user.', 'http_code' => 409, 'description' => 'This policy is already attached to the user.'],
+ ['code' => 'EntityNotExist.Group.Policy', 'message' => 'This policy is not attached to the group.', 'http_code' => 404, 'description' => 'This policy is not attached to the group.'],
+ ['code' => 'EntityNotExist.Policy', 'message' => 'The policy does not exist.', 'http_code' => 404, 'description' => 'The policy does not exist.'],
+ ['code' => 'EntityNotExist.Policy.Version', 'message' => 'The policy version does not exist.', 'http_code' => 404, 'description' => 'The policy version does not exist.'],
+ ['code' => 'EntityNotExist.Role', 'message' => 'The role does not exist.', 'http_code' => 404, 'description' => 'The role does not exist.'],
+ ['code' => 'EntityNotExist.Role.Policy', 'message' => 'This policy is not attached to the role.', 'http_code' => 404, 'description' => 'This policy is not attached to the role.'],
+ ['code' => 'EntityNotExist.Service', 'message' => 'The service does not exist.', 'http_code' => 404, 'description' => 'The service does not exist.'],
+ ['code' => 'EntityNotExist.ServiceLinkedRole', 'message' => 'This role exists but is not a Service Linked Role.', 'http_code' => 404, 'description' => 'The role exists but is not a service-linked role.'],
+ ['code' => 'EntityNotExist.ServiceLinkedRole.DeletionTask', 'message' => 'The deletion task for the given ID does not exist.', 'http_code' => 404, 'description' => 'The deletion task for the given ID does not exist.'],
+ ['code' => 'EntityNotExist.ServiceLinkedRoleTemplate', 'message' => 'The Service Linked Role template does not exist.', 'http_code' => 404, 'description' => 'The Service Linked Role template does not exist.'],
+ ['code' => 'EntityNotExist.User.Policy', 'message' => 'This policy is not attached to the user.', 'http_code' => 404, 'description' => 'This policy is not attached to the user.'],
+ ['code' => 'EntityNotExists.Account', 'message' => 'This resource directory account does not exist.', 'http_code' => 404, 'description' => 'The member does not exist. Create such a member first.'],
+ ['code' => 'EntityNotExists.AccountRecord', 'message' => 'This resource directory account recordId does not exist.', 'http_code' => 404, 'description' => 'The record ID does not exist.'],
+ ['code' => 'EntityNotExists.AgAccount', 'message' => 'The account does not exist.', 'http_code' => 409, 'description' => 'The account does not exist.'],
+ ['code' => 'EntityNotExists.Contact', 'message' => 'This Contact does not exist.', 'http_code' => 404, 'description' => 'The specified contact does not exist.'],
+ ['code' => 'EntityNotExists.Contact.Verification', 'message' => 'This contact verification does not exist.', 'http_code' => 404, 'description' => 'The verification code of the contact does not exist.'],
+ ['code' => 'EntityNotExists.ControlPolicy', 'message' => 'The specified control policy does not exist.', 'http_code' => 404, 'description' => 'The specified access control policy does not exist.'],
+ ['code' => 'EntityNotExists.ControlPolicyAttachment', 'message' => 'The specified control policy on the specified target does not exist.', 'http_code' => 404, 'description' => 'The specified access control policy for the specified object does not exist.'],
+ ['code' => 'EntityNotExists.EmailModifyRecord', 'message' => 'This email modification record of the account does not exist.', 'http_code' => 404, 'description' => 'This email modification record of the account does not exist.'],
+ ['code' => 'EntityNotExists.Folder', 'message' => 'The resource directory folder does not exist.', 'http_code' => 404, 'description' => 'The specified folder does not exist. Create such a folder first.'],
+ ['code' => 'EntityNotExists.Member', 'message' => 'This Member does not exist.', 'http_code' => 404, 'description' => 'The specified member does not exist.'],
+ ['code' => 'EntityNotExists.ResourceDir', 'message' => 'The account has not initialized resource directory.', 'http_code' => 404, 'description' => 'The account is not used to enable a resource directory. Use the account to enable a resource directory first.'],
+ ['code' => 'EntityNotExists.ResourceDirectory', 'message' => 'The resource directory for the account is not enabled. We recommend that you first enable the resource directory for the account.', 'http_code' => 404, 'description' => 'The account is not used to enable a resource directory. Use the account to enable a resource directory first.'],
+ ['code' => 'EntityNotExists.ResourceShare', 'message' => 'Resource sharing does not exist in the current account.', 'http_code' => 404, 'description' => 'Resource sharing does not exist in the current account.'],
+ ['code' => 'EntityNotExists.Target', 'message' => 'The specified target does not exist in the resource directory.', 'http_code' => 404, 'description' => 'The specified object does not exist in the resource directory.'],
+ ['code' => 'ExistPrepaidInstance.DeleteAccount', 'message' => 'The deletion failed. There are prepaid products under the current account. Please release them and try again.', 'http_code' => 409, 'description' => 'Delete failed. The current account has subscription resources. Release the resources and try again.'],
+ ['code' => 'ExistProcessingDeleteFlow.DeleteAccount', 'message' => 'The request is invalid. The account is already in the process of deletion. Please do not repeat the operation.', 'http_code' => 409, 'description' => 'The request is invalid. The account is being deleted. Do not repeat the operation.'],
+ ['code' => 'ExistUnreleaseInstance.DeleteAccount', 'message' => 'The deletion failed. Certain cloud resources under the current account and you need to delete them.', 'http_code' => 409, 'description' => 'Delete failed. The current account has resources that are not released. Release these resources first.'],
+ ['code' => 'ExistUnsettledBill.DeleteAccount', 'message' => 'The deletion failed. There are unsettled bills in the current account, please settle and try again.', 'http_code' => 409, 'description' => 'Delete failed. The current account has unsettled bills. Settle the bills and try again.'],
+ ['code' => 'ForbidDelete.Account', 'message' => 'Delete is prohibited. The current account is abnormal. Please contact customer service.', 'http_code' => 409, 'description' => 'The current account is abnormal, and the deletion is prohibited. Contact customer service representatives.'],
+ ['code' => 'FundAccountHasArrearsAmount', 'message' => 'There are arrears in the current payment account. You cannot change the payment account. Please settle the arrears and try again.', 'http_code' => 409, 'description' => 'There are arrears in the current payment account. You cannot change the payment account. Please settle the arrears and try again.'],
+ ['code' => 'FundAccountOwnerPayedByOthers', 'message' => 'If the payment has been made by another account, it is not allowed to be used as the main payment account.', 'http_code' => 409, 'description' => 'If the payment has been made by another account, it is not allowed to be used as the main payment account.'],
+ ['code' => 'HandshakeStatusMismatch', 'message' => 'The invitation is invalid.', 'http_code' => 409, 'description' => 'The invitation is invalid.'],
+ ['code' => 'IllegalParameter.Account.AccountName', 'message' => 'The account name is illegal.', 'http_code' => 409, 'description' => 'The account name is illegal.'],
+ ['code' => 'Inactive', 'message' => 'Resource Management or Resource Access Management is not activated under the account. We recommend that you first activate the two services.', 'http_code' => 404, 'description' => 'Resource Management or Resource Access Management is not activated under the account. We recommend that you first activate the two services.'],
+ ['code' => 'InconsistentEnterpriseNameError', 'message' => 'The enterprise name of the payment account and the member must be consistent.', 'http_code' => 409, 'description' => 'The enterprise names of the billing account and the member are inconsistent.'],
+ ['code' => 'Invalid.AccountType', 'message' => 'The specified profile type of account is invalid.', 'http_code' => 409, 'description' => 'The account type is invalid. Use an enterprise account.'],
+ ['code' => 'Invalid.EnterpriseName', 'message' => 'You must specify the enterprise name.', 'http_code' => 409, 'description' => 'No enterprise name is specified for the account. Specify an enterprise name for the account.'],
+ ['code' => 'Invalid.payRelation', 'message' => 'Failed to create a member. The specified billing account is unavailable. Please try again.', 'http_code' => 400, 'description' => 'Failed to create the member. The specified billing account is unavailable. Specify a valid billing account and try again.'],
+ ['code' => 'Invalid.PayRelation', 'message' => 'Failed to create a member. The specified billing account is unavailable. Please change to another billing account and try again.', 'http_code' => 409, 'description' => 'Failed to create the member. The specified billing account is unavailable. Specify a valid billing account and try again.'],
+ ['code' => 'Invalid.VerificationCode', 'message' => 'The verification code is invalid.', 'http_code' => 409, 'description' => 'The verification code is invalid.'],
+ ['code' => 'InvalidControlPolicyEnablementStatus', 'message' => 'The control policy enablement status is not valid to perform this operation.', 'http_code' => 409, 'description' => 'You cannot perform the operation when the access control policy is enabled.'],
+ ['code' => 'InvalidMember', 'message' => 'The member does not exist in the resource directory.', 'http_code' => 400, 'description' => 'The specified member does not belong to the resource directory.'],
+ ['code' => 'InvalidParameter', 'message' => 'The specified parameter is invalid.', 'http_code' => 400, 'description' => 'The value of a parameter is invalid.'],
+ ['code' => 'InvalidParameter.Account.AccountNamePrefix.Length', 'message' => 'The account name prefix exceeds the length limit.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'InvalidParameter.Account.DisplayName', 'message' => 'The DisplayName of account is invalid.', 'http_code' => 400, 'description' => 'The value of the DisplayName parameter is invalid. The value can contain only letters, digits, underscores (_), periods (.), and hyphens (-).'],
+ ['code' => 'InvalidParameter.Account.DisplayName.AlreadyUsed', 'message' => 'The display name of account has been used. You must specify a valid display name.', 'http_code' => 409, 'description' => 'The display name already exists. Specify a valid display name.'],
+ ['code' => 'InvalidParameter.Account.DisplayName.AlreadyUsed', 'message' => 'The displayname of account has been used.', 'http_code' => 409, 'description' => 'The displayname of account has been used.'],
+ ['code' => 'InvalidParameter.Account.DisplayName.Length', 'message' => 'The DisplayName of the account exceeds the length limit.', 'http_code' => 400, 'description' => 'The length of the value for the DisplayName parameter exceeds the upper limit. The value must be 2 to 50 characters in length.'],
+ ['code' => 'InvalidParameter.AccountId', 'message' => 'The AccountId is invalid.', 'http_code' => 400, 'description' => 'The value of the AccountId parameter is invalid. Specify a 16-digit ID.'],
+ ['code' => 'InvalidParameter.AdminAccountId', 'message' => 'The specified account is not management account or delegated administrator account.', 'http_code' => 409, 'description' => 'The current account is not a management account or delegated administrator account.'],
+ ['code' => 'InvalidParameter.AssociationStatus', 'message' => 'The AssociationStatus is invalid.', 'http_code' => 400, 'description' => 'The AssociationStatus is invalid.'],
+ ['code' => 'InvalidParameter.AssociationType', 'message' => 'The AssociationType is invalid.', 'http_code' => 400, 'description' => 'The AssociationType is invalid.'],
+ ['code' => 'InvalidParameter.AssumeRolePolicyDocument.Length', 'message' => 'The maximum length of the trust policy document of the role is exceeded.', 'http_code' => 400, 'description' => 'The maximum length of the trust policy document of the role is exceeded.'],
+ ['code' => 'InvalidParameter.ChildId', 'message' => 'The ChildId is invalid.', 'http_code' => 400, 'description' => 'The value of the ChildId parameter is invalid. The value must start with r- followed by 6 characters or start with fd- followed by 10 characters. Valid characters are letters and digits.'],
+ ['code' => 'InvalidParameter.Comments.Length', 'message' => 'The maximum length of Note is exceeded.', 'http_code' => 400, 'description' => 'The maximum length of Note is exceeded.'],
+ ['code' => 'InvalidParameter.ContactId', 'message' => 'The ContactId is invalid.', 'http_code' => 400, 'description' => 'The value of the ContactId parameter is invalid.'],
+ ['code' => 'InvalidParameter.CustomSuffix.InvalidChars', 'message' => 'The parameter CustomSuffix contains invalid characters.', 'http_code' => 400, 'description' => 'The value of the CustomSuffix parameter contains invalid characters.'],
+ ['code' => 'InvalidParameter.CustomSuffix.Length', 'message' => 'The maximum length of the parameter CustomSuffix is exceeded.', 'http_code' => 400, 'description' => 'The length of the value for the CustomSuffix parameter exceeds the upper limit.'],
+ ['code' => 'InvalidParameter.CustomSuffix.NotAllowed', 'message' => 'Custom suffix is not allowed for this Service Linked Role.', 'http_code' => 400, 'description' => 'The service-linked role does not support custom suffixes.'],
+ ['code' => 'InvalidParameter.DeletionTaskId', 'message' => 'The DeletionTaskId is invalid.', 'http_code' => 400, 'description' => 'The value of the DeletionTaskId parameter is invalid.'],
+ ['code' => 'InvalidParameter.DeletionTaskId.Length', 'message' => 'The length of DeletionTaskId must be between 26 and 255 characters.', 'http_code' => 400, 'description' => 'The length of DeletionTaskId must be between 26 and 255 characters.'],
+ ['code' => 'InvalidParameter.Description.Length', 'message' => 'The maximum length of the description is exceeded. It must not exceed 1024 characters.', 'http_code' => 400, 'description' => 'The maximum length of the description is exceeded. It must not exceed 1024 characters.'],
+ ['code' => 'InvalidParameter.Description.NotAllowed', 'message' => 'Custom description is not allowed for this Service Linked Role.', 'http_code' => 400, 'description' => 'The service-linked role does not support custom descriptions.'],
+ ['code' => 'InvalidParameter.DestinationFolderId', 'message' => 'The DestinationFolderId is invalid.', 'http_code' => 400, 'description' => 'The value of the DestinationFolderId parameter is invalid. The value must start with r- followed by 6 characters or start with fd- followed by 10 characters. Valid characters are letters and digits.'],
+ ['code' => 'InvalidParameter.DisplayName', 'message' => 'The DisplayName is invalid.', 'http_code' => 400, 'description' => 'The value of the DisplayName parameter is invalid.'],
+ ['code' => 'InvalidParameter.DisplayName.Length', 'message' => 'The maximum length of DisplayName is exceeded.', 'http_code' => 400, 'description' => 'The length of the value for the DisplayName parameter exceeds the upper limit.'],
+ ['code' => 'InvalidParameter.EffectScope', 'message' => 'The parameter EffectScope is invalid.', 'http_code' => 400, 'description' => 'The value of the parameter EffectScope is invalid.'],
+ ['code' => 'InvalidParameter.Email', 'message' => 'The Email is invalid.', 'http_code' => 400, 'description' => 'The format of the value for the Email parameter is invalid.'],
+ ['code' => 'InvalidParameter.Email.AlreadyUsed', 'message' => 'The email has been used.', 'http_code' => 409, 'description' => 'The email has been used.'],
+ ['code' => 'InvalidParameter.EmailAddress', 'message' => 'The EmailAddress is invalid.', 'http_code' => 400, 'description' => 'The value of the EmailAddress parameter is invalid.'],
+ ['code' => 'InvalidParameter.EmailAddress.Length', 'message' => 'The EmailAddress exceeds the length limit.', 'http_code' => 400, 'description' => 'The length of the value specified for the EmailAddress parameter exceeds the upper limit.'],
+ ['code' => 'InvalidParameter.Folder.Name', 'message' => 'The Name of folder is invalid.', 'http_code' => 400, 'description' => 'The folder name is invalid. The name can contain only letters, digits, underscores (_), periods (.), and hyphens (-).'],
+ ['code' => 'InvalidParameter.Folder.Name.AlreadyUsed', 'message' => 'The name already exists under the same parent. Please change to another name.', 'http_code' => 400, 'description' => 'The folder name already exists in the same parent folder. Change the name.'],
+ ['code' => 'InvalidParameter.Folder.Name.Length', 'message' => 'The Name of folder exceeds the length limit.', 'http_code' => 400, 'description' => 'The length of the folder name exceeds the upper limit. The name must be 1 to 24 characters in length.'],
+ ['code' => 'InvalidParameter.FolderId', 'message' => 'The FolderId is invalid.', 'http_code' => 400, 'description' => 'The value of the FolderId parameter is invalid. The value must start with r- followed by 6 characters or start with fd- followed by 10 characters. Valid characters are letters and digits.'],
+ ['code' => 'InvalidParameter.HandshakeId', 'message' => 'The HandshakeId is invalid.', 'http_code' => 400, 'description' => 'The value of the HandshakeId parameter is invalid. The value must start with h- followed by 16 letters or digits.'],
+ ['code' => 'InvalidParameter.Language', 'message' => 'The parameter Language is invalid.', 'http_code' => 400, 'description' => 'The value of the Language parameter is invalid.'],
+ ['code' => 'InvalidParameter.ManagementAccountName', 'message' => 'The management account name is in the wrong format.', 'http_code' => 409, 'description' => 'The format of the name specified for the management account is incorrect.'],
+ ['code' => 'InvalidParameter.ManagementAccountName.AlreadyUsed', 'message' => 'The ManagementAccountName has been used.', 'http_code' => 409, 'description' => 'The name specified for the management account already exists. Specify a valid name.'],
+ ['code' => 'InvalidParameter.ManagementAccountName.Length', 'message' => 'The Parameter ManagementAccountName beyond the length limit.', 'http_code' => 400, 'description' => 'The Parameter ManagementAccountName beyond the length limit.'],
+ ['code' => 'InvalidParameter.ManagementAccountSecurityInfo', 'message' => 'The parameter management account secure mobile phone is invalid.', 'http_code' => 409, 'description' => 'The format of the mobile phone number specified for security purposes is incorrect.'],
+ ['code' => 'InvalidParameter.MaxResults', 'message' => 'The MaxResults is invalid.', 'http_code' => 400, 'description' => 'The MaxResults is invalid.'],
+ ['code' => 'InvalidParameter.MaxSessionDuration', 'message' => 'The parameter MaxSessionDuration is invalid.', 'http_code' => 400, 'description' => 'The value of the MaxSessionDuration parameter is invalid.'],
+ ['code' => 'InvalidParameter.Member', 'message' => 'The Member is invalid.', 'http_code' => 400, 'description' => 'The value of the Member parameter is invalid.'],
+ ['code' => 'InvalidParameter.Members', 'message' => 'The Members is invalid.', 'http_code' => 400, 'description' => 'The value of the Members parameter is invalid.'],
+ ['code' => 'InvalidParameter.Members.Duplicate', 'message' => 'The Members contains duplicate values.', 'http_code' => 400, 'description' => 'Duplicate members are specified.'],
+ ['code' => 'InvalidParameter.Members.Length', 'message' => 'The maximum number of Members exceeds the limit.', 'http_code' => 400, 'description' => 'The number of members exceeds the upper limit.'],
+ ['code' => 'InvalidParameter.MessageTypes', 'message' => 'The MessageTypes is invalid.', 'http_code' => 400, 'description' => 'The value of the MessageTypes parameter is invalid.'],
+ ['code' => 'InvalidParameter.MobileCountryCode', 'message' => 'The current site does not support the country code.', 'http_code' => 409, 'description' => 'The specified country code is not supported at the current site.'],
+ ['code' => 'InvalidParameter.Name', 'message' => 'The Name is invalid.', 'http_code' => 400, 'description' => 'The value of the Name parameter is invalid. The value can contain only letters.'],
+ ['code' => 'InvalidParameter.Name.AlreadyUsed', 'message' => 'The Name already exists. Please change to another name.', 'http_code' => 400, 'description' => 'The contact name already exists in the resource directory. Use another name.'],
+ ['code' => 'InvalidParameter.Name.InvalidChars', 'message' => 'The Name is invalid.', 'http_code' => 400, 'description' => 'The Name is invalid.'],
+ ['code' => 'InvalidParameter.Name.Length', 'message' => 'The maximum length of Name is exceeded.', 'http_code' => 400, 'description' => 'The length of the value for the Name parameter exceeds the upper limit.'],
+ ['code' => 'InvalidParameter.Name.Length', 'message' => 'The Name exceeds the length limit.', 'http_code' => 400, 'description' => 'The length of the value specified for the Name parameter exceeds the upper limit. The value must be 2 to 12 characters in length and can contain only letters.'],
+ ['code' => 'InvalidParameter.NewAssumeRolePolicyDocument.Length', 'message' => 'The maximum length of the new trust policy document of the role is exceeded.', 'http_code' => 400, 'description' => 'The maximum length of the new trust policy document of the role is exceeded.'],
+ ['code' => 'InvalidParameter.NewComments.Length', 'message' => 'The maximum length of Note is exceeded.', 'http_code' => 400, 'description' => 'The maximum length of Note is exceeded.'],
+ ['code' => 'InvalidParameter.NewDescription.Length', 'message' => 'The maximum length of the parameter NewDescription is exceeded.', 'http_code' => 400, 'description' => 'The length of the value for the NewDescription parameter exceeds the upper limit.'],
+ ['code' => 'InvalidParameter.NewDisplayName.Length', 'message' => 'The maximum length of NewDisplayName is exceeded.', 'http_code' => 400, 'description' => 'The length of the value for the NewDisplayName parameter exceeds the upper limit.'],
+ ['code' => 'InvalidParameter.NewMaxSessionDuration', 'message' => 'The NewMaxSessionDuration is invalid.', 'http_code' => 400, 'description' => 'The NewMaxSessionDuration is invalid.'],
+ ['code' => 'InvalidParameter.NewPolicyDocument.Length', 'message' => 'Unable to save your policy. A policy contains a maximum of 4096 characters.', 'http_code' => 400, 'description' => 'Failed to save the policy. The policy document can be up to 4,096 characters in length.'],
+ ['code' => 'InvalidParameter.NewPolicyName.InvalidChars', 'message' => 'The parameter NewPolicyName contains invalid characters.', 'http_code' => 400, 'description' => 'The value of the NewPolicyName parameter contains invalid characters.'],
+ ['code' => 'InvalidParameter.NewPolicyName.Length', 'message' => 'The maximum length of the parameter NewPolicyName is exceeded.', 'http_code' => 400, 'description' => 'The length of the value for the NewPolicyName parameter exceeds the upper limit.'],
+ ['code' => 'InvalidParameter.NextToken', 'message' => 'The NextToken is invalid.', 'http_code' => 400, 'description' => 'The NextToken is invalid.'],
+ ['code' => 'InvalidParameter.NextToken.Length', 'message' => 'The maximum length of NextToken (256 characters) is exceeded.', 'http_code' => 400, 'description' => 'The maximum length of NextToken (256 characters) is exceeded.'],
+ ['code' => 'InvalidParameter.ParentFolderId', 'message' => 'The ParentFolderId is invalid.', 'http_code' => 400, 'description' => 'The value of the ParentFolderId parameter is invalid. The value must start with r- followed by 6 characters or start with fd- followed by 10 characters. Valid characters include letters and digits.'],
+ ['code' => 'InvalidParameter.Payer', 'message' => 'The specified Payer is invalid.', 'http_code' => 400, 'description' => 'The specified billing account is invalid. Specify a valid billing account.'],
+ ['code' => 'InvalidParameter.PhoneNumber', 'message' => 'The PhoneNumber is invalid.', 'http_code' => 400, 'description' => 'The value of the PhoneNumber parameter is invalid.'],
+ ['code' => 'InvalidParameter.PolicyDocument.Action', 'message' => 'The specified Action is invalid.', 'http_code' => 400, 'description' => 'The value of the Action parameter is invalid.'],
+ ['code' => 'InvalidParameter.PolicyDocument.Effect', 'message' => 'The specified Effect is invalid.', 'http_code' => 400, 'description' => 'The value of the Effect parameter is invalid.'],
+ ['code' => 'InvalidParameter.PolicyDocument.Length', 'message' => 'Unable to save your policy. A policy contains a maximum of 4096 characters.', 'http_code' => 409, 'description' => 'Failed to save the policy. The policy document can be up to 4,096 characters in length.'],
+ ['code' => 'InvalidParameter.PolicyDocument.Length', 'message' => 'The policy document size is limited to %s bytes', 'http_code' => 400, 'description' => 'The length of the value for the PolicyDocument parameter exceeds the upper limit. The value can be up to %s characters in length.'],
+ ['code' => 'InvalidParameter.PolicyDocument.PrincipalARNValue', 'message' => 'The condition value of PrincipalARN is invalid.', 'http_code' => 400, 'description' => 'The value of the PrincipalARN parameter is invalid.'],
+ ['code' => 'InvalidParameter.PolicyId', 'message' => 'The parameter PolicyId is invalid.', 'http_code' => 400, 'description' => 'The value of the PolicyId parameter is invalid.'],
+ ['code' => 'InvalidParameter.PolicyName.InvalidChars', 'message' => 'The policy name contains invalid characters. It must only contain upper or lower case letters, numbers, and dash (-).', 'http_code' => 400, 'description' => 'The policy name contains invalid characters. It must only contain upper or lower case letters, numbers, and dash (-).'],
+ ['code' => 'InvalidParameter.PolicyName.Length', 'message' => 'The length of the policy name is invalid. It must be 1 to 128 characters in length.', 'http_code' => 400, 'description' => 'The maximum length of the policy name is exceeded. It must be 1 to 128 characters in length.'],
+ ['code' => 'InvalidParameter.PolicyType', 'message' => 'The specified policy type is invalid.', 'http_code' => 400, 'description' => 'The value of the PolicyType parameter is invalid.'],
+ ['code' => 'InvalidParameter.PrincipalName.Empty', 'message' => 'You must specify PrincipalName.', 'http_code' => 400, 'description' => 'The PrincipalName parameter is not configured.'],
+ ['code' => 'InvalidParameter.ResourceGroupId', 'message' => 'The ResourceGroupId is invalid.', 'http_code' => 400, 'description' => 'The value of the ResourceGroupId parameter is invalid.'],
+ ['code' => 'InvalidParameter.ResourceId', 'message' => 'The ResourceId is invalid.', 'http_code' => 400, 'description' => 'The ResourceId is invalid.'],
+ ['code' => 'InvalidParameter.ResourceIds', 'message' => 'The ResourceIds is invalid.', 'http_code' => 400, 'description' => 'The value of the ResourceIds parameter is invalid.'],
+ ['code' => 'InvalidParameter.ResourceIds', 'message' => 'The specified ResourceIds is invalid.', 'http_code' => 400, 'description' => 'The value of the ResourceIds parameter is invalid.'],
+ ['code' => 'InvalidParameter.ResourceIds.Duplicate', 'message' => 'The specified ResourceId contains duplicate values.', 'http_code' => 400, 'description' => 'Duplicate resource IDs are specified.'],
+ ['code' => 'InvalidParameter.ResourceIds.Length', 'message' => 'The maximum number of ResourceIds (5) is exceeded.', 'http_code' => 400, 'description' => 'The number of specified resource IDs exceeds the upper limit. Specify a maximum of five resource IDs.'],
+ ['code' => 'InvalidParameter.ResourceOwner', 'message' => 'The ResourceOwner is invalid.', 'http_code' => 400, 'description' => 'The ResourceOwner is invalid.'],
+ ['code' => 'InvalidParameter.Resources', 'message' => 'The Resources is invalid.', 'http_code' => 400, 'description' => 'The Resources is invalid.'],
+ ['code' => 'InvalidParameter.Resources.Duplicate', 'message' => 'The Resources contains duplicate values.', 'http_code' => 400, 'description' => 'The Resources contains duplicate values.'],
+ ['code' => 'InvalidParameter.Resources.Length', 'message' => 'The maximum number of Resources (5) is exceeded.', 'http_code' => 400, 'description' => 'The maximum number of Resources (5) is exceeded.'],
+ ['code' => 'InvalidParameter.ResourceShareId', 'message' => 'The ResourceShareId is invalid.', 'http_code' => 400, 'description' => 'The ResourceShareId is invalid.'],
+ ['code' => 'InvalidParameter.ResourceShareName', 'message' => 'The ResourceShareName is invalid.', 'http_code' => 400, 'description' => 'The ResourceShareName is invalid.'],
+ ['code' => 'InvalidParameter.ResourceShareName.Length', 'message' => 'The maximum length of ResourceShareName is exceeded.', 'http_code' => 400, 'description' => 'The maximum length of ResourceShareName (50 characeters) is exceeded.'],
+ ['code' => 'InvalidParameter.ResourceType', 'message' => 'The ResourceType is invalid.', 'http_code' => 400, 'description' => 'The value of the ResourceType parameter is invalid.'],
+ ['code' => 'InvalidParameter.RoleName.InvalidChars', 'message' => 'The specified role name contains invalid characters.', 'http_code' => 400, 'description' => 'The specified role name contains invalid characters.'],
+ ['code' => 'InvalidParameter.RoleName.Length', 'message' => 'The maximum length of the role name is exceeded.', 'http_code' => 400, 'description' => 'The maximum length of the role name is exceeded.'],
+ ['code' => 'InvalidParameter.RoleName.Prefix', 'message' => 'Role name prefix AliyunServiceRoleFor can only be used for Service Linked Roles.', 'http_code' => 400, 'description' => 'The role name prefix AliyunServiceRoleFor can be used only for service-linked roles.'],
+ ['code' => 'InvalidParameter.Status', 'message' => 'The specified Status is invalid.', 'http_code' => 400, 'description' => 'The specified Status is invalid.'],
+ ['code' => 'InvalidParameter.Tag.ResourceType', 'message' => 'The Parameter ResourceType is invalid.', 'http_code' => 409, 'description' => 'The Parameter ResourceType is invalid.'],
+ ['code' => 'InvalidParameter.Target', 'message' => 'The Target is invalid.', 'http_code' => 400, 'description' => 'The Target is invalid. '],
+ ['code' => 'InvalidParameter.TargetId', 'message' => 'The parameter TargetId is invalid.', 'http_code' => 400, 'description' => 'The value of the TargetId parameter is invalid.'],
+ ['code' => 'InvalidParameter.Targets', 'message' => 'The Targets is invalid.', 'http_code' => 400, 'description' => ' The Targets is invalid.'],
+ ['code' => 'InvalidParameter.Targets.Duplicate', 'message' => 'The Targets contains duplicate values.', 'http_code' => 400, 'description' => 'The Targets contains duplicate values.'],
+ ['code' => 'InvalidParameter.Targets.Length', 'message' => 'The maximum number of Targets (5) is exceeded.', 'http_code' => 400, 'description' => 'The maximum number of Targets (5) is exceeded.'],
+ ['code' => 'InvalidParameter.Title', 'message' => 'The Title is invalid.', 'http_code' => 400, 'description' => 'The value of the Title parameter is invalid.'],
+ ['code' => 'InvalidParameter.VersionId.Format', 'message' => 'The specified version ID is invalid.', 'http_code' => 400, 'description' => 'The specified version ID is invalid.'],
+ ['code' => 'InvalidTarget', 'message' => 'The target you are sharing does not exist in your resource directory.', 'http_code' => 400, 'description' => 'The target you are sharing does not exist in your resource directory.'],
+ ['code' => 'InvoiceBlock.DeleteAccount', 'message' => 'The deletion failed. The invoice status of the current account is abnormal, please contact customer service.', 'http_code' => 409, 'description' => 'Delete failed. The invoice status of the current account is abnormal. Contact customer service representatives.'],
+ ['code' => 'LastControlPolicyOnTarget', 'message' => 'The last control policy on a target cannot be detached.', 'http_code' => 409, 'description' => 'The access control policy is the only access control policy attached to the object and cannot be detached.'],
+ ['code' => 'LatestActionNotFinished', 'message' => 'The request is being processed.', 'http_code' => 409, 'description' => 'The request is being processed.'],
+ ['code' => 'LegalEntityDifferent', 'message' => 'The account legal entity is different from the one of the Management Account.', 'http_code' => 409, 'description' => 'The legal entity of the account is inconsistent with that of the management account.'],
+ ['code' => 'LegalEntityMismatch', 'message' => 'The account does not have the same legal entity as the management account.', 'http_code' => 409, 'description' => 'The account does not have the same legal entity as the management account.'],
+ ['code' => 'LengthLimit.Email', 'message' => 'The maximum length of the email is exceeded.', 'http_code' => 409, 'description' => 'The length of the email address exceeds the upper limit.'],
+ ['code' => 'LimitExceeded.Account', 'message' => 'The maximum number of member accounts in a resource directory exceeds the limit.', 'http_code' => 409, 'description' => 'The number of members in the resource directory exceeds the upper limit.'],
+ ['code' => 'LimitExceeded.ContactMembers', 'message' => 'The maximum number of contact members exceeds the limit.', 'http_code' => 400, 'description' => 'The number of members exceeds the upper limit.'],
+ ['code' => 'LimitExceeded.Contacts', 'message' => 'The maximum number of contacts in a resource directory exceeds the limit.', 'http_code' => 400, 'description' => 'The number of contacts exceeds the upper limit.'],
+ ['code' => 'LimitExceeded.ControlPolicy', 'message' => 'The maximum number of policies is exceeded.', 'http_code' => 409, 'description' => 'The number of access control policies exceeds the upper limit.'],
+ ['code' => 'LimitExceeded.ControlPolicyAttachment', 'message' => 'The maximum number of control policies on the specified target is exceeded.', 'http_code' => 409, 'description' => 'The number of access control policies attached to the specified object exceeds the upper limit.'],
+ ['code' => 'LimitExceeded.Folder.Depth', 'message' => 'The folder depth exceeds the limit of 5.', 'http_code' => 409, 'description' => 'The maximum number of folder levels is reached. A maximum of five levels of folders can be created in the Root folder.'],
+ ['code' => 'LimitExceeded.Frequency', 'message' => 'The frequency of request exceeds limit.', 'http_code' => 409, 'description' => 'The frequency of the request exceeds the upper limit. Try again later.'],
+ ['code' => 'LimitExceeded.Group.Policy', 'message' => 'The maximum number of policies attached to this group is exceeded.', 'http_code' => 409, 'description' => 'The maximum number of policies attached to this group is exceeded.'],
+ ['code' => 'LimitExceeded.Invitation.InvalidTarget', 'message' => 'The maximum number of invalid targets that can be invited by a single account is exceeded.', 'http_code' => 409, 'description' => 'The number of invalid accounts invited by the same account exceeds the upper limit.'],
+ ['code' => 'LimitExceeded.PageSize', 'message' => 'The pagesize exceeds limit of 10.', 'http_code' => 409, 'description' => 'The value of the PageSize parameter exceeds the upper limit. Each page can contain up to 10 entries.'],
+ ['code' => 'LimitExceeded.Policy', 'message' => 'The maximum number of policies is exceeded.', 'http_code' => 409, 'description' => 'The maximum number of policies attached to this user is exceeded.'],
+ ['code' => 'LimitExceeded.Policy.Version', 'message' => 'The maximum number of policy versions is exceeded.', 'http_code' => 409, 'description' => 'The maximum number of policy versions is exceeded.'],
+ ['code' => 'LimitExceeded.ResourceIds', 'message' => 'The maximum number of ResourceId is exceeded.', 'http_code' => 400, 'description' => 'The number of specified resource IDs exceeds the upper limit.'],
+ ['code' => 'LimitExceeded.Role', 'message' => 'The maximum number of roles is exceeded.', 'http_code' => 409, 'description' => 'The maximum number of roles is exceeded.'],
+ ['code' => 'LimitExceeded.Role.Policy', 'message' => 'The maximum number of policies attached to this role is exceeded.', 'http_code' => 409, 'description' => 'The maximum number of policies attached to this role is exceeded.'],
+ ['code' => 'LimitExceeded.SameTargetInvitationRate', 'message' => 'The number of invitations sent to the same account exceeds the limit.', 'http_code' => 409, 'description' => 'The number of invitations sent to the account exceeds the upper limit.'],
+ ['code' => 'LimitExceeded.User.Policy', 'message' => 'The maximum number of policies attached to this user is exceeded.', 'http_code' => 409, 'description' => 'The maximum number of policies attached to this user is exceeded.'],
+ ['code' => 'MalformedPolicyDocument', 'message' => 'The policy format is invalid.', 'http_code' => 409, 'description' => 'The policy format is invalid.'],
+ ['code' => 'MasterUidCanNotOpenTrusteeshipError', 'message' => 'Trusteeship is only available for alibaba directselling accounts and alibaba channel partner (except Agency) enduser', 'http_code' => 409, 'description' => 'You are not allowed to enable the finance trusteeship feature because only Alibaba Cloud direct customers and resellers can enable the feature.'],
+ ['code' => 'MasterUidCustomerRelationNotExistedError', 'message' => 'Trusteeship cannot be created because the relevant accounts are not belonging to the same channel partner.', 'http_code' => 409, 'description' => 'A finance trusteeship cannot be established between the management account and member because the management account and member are not associated with resellers or are associated with different resellers.'],
+ ['code' => 'MemberAccountAccessDenied', 'message' => 'The member account is not allowed to perform the operation.', 'http_code' => 403, 'description' => 'A member cannot be used to perform this operation.'],
+ ['code' => 'MemberAccountOperationNotAllowed', 'message' => 'The member is not allowed to perform the operation.', 'http_code' => 403, 'description' => 'The member is not allowed to perform the operation.'],
+ ['code' => 'MemberAccountOperationNotAllowed', 'message' => 'The member account is not allowed to perform the operation.', 'http_code' => 403, 'description' => 'You cannot use a member to perform this operation.'],
+ ['code' => 'MemberAccountResellerVerifyError', 'message' => 'The type of the member must not be reseller.', 'http_code' => 409, 'description' => 'A member cannot be an account for a reseller.'],
+ ['code' => 'MemberAccountVirtualCloudOperatorVerifyError', 'message' => 'The type of the member must not be virtual operator.', 'http_code' => 409, 'description' => 'A member cannot be an account for a virtual network operator (VNO).'],
+ ['code' => 'MemberTypeError.DeleteAccount', 'message' => 'Cloud account type members do not support deletion.', 'http_code' => 409, 'description' => 'Members of the cloud account type cannot be deleted.'],
+ ['code' => 'MissingAccountRealName', 'message' => 'The name of the invited account is not specified.', 'http_code' => 409, 'description' => 'The name of the invited account is not specified.'],
+ ['code' => 'MissingDisplayNameOrAccountType', 'message' => 'Either display name or account type must be specified.', 'http_code' => 409, 'description' => 'You must specify either the display name or type of the member.'],
+ ['code' => 'MissingParameter.Account.DisplayName', 'message' => 'You must specify DisplayName.', 'http_code' => 400, 'description' => 'The DisplayName parameter is not configured. Configure this parameter.'],
+ ['code' => 'MissingParameter.AccountId', 'message' => 'You must specify AccountId.', 'http_code' => 400, 'description' => 'The AccountId parameter is not configured.'],
+ ['code' => 'MissingParameter.AssociationType', 'message' => 'You must specify Association Type.', 'http_code' => 400, 'description' => 'You must specify AssociationType.'],
+ ['code' => 'MissingParameter.ChildId', 'message' => 'You must specify ChildId.', 'http_code' => 400, 'description' => 'The ChildId parameter is not configured. Configure this parameter.'],
+ ['code' => 'MissingParameter.ContactId', 'message' => 'You must specify ContactId.', 'http_code' => 400, 'description' => 'The ContactId parameter is not configured.'],
+ ['code' => 'MissingParameter.DestinationFolderId', 'message' => 'You must specify DestinationFolderId.', 'http_code' => 400, 'description' => 'The DestinationFolderId parameter is not configured. Configure this parameter.'],
+ ['code' => 'MissingParameter.DisplayName', 'message' => 'You must specify DisplayName.', 'http_code' => 400, 'description' => 'The DisplayName parameter is not configured.'],
+ ['code' => 'MissingParameter.EffectScope', 'message' => 'You must specify EffectScope.', 'http_code' => 400, 'description' => 'The EffectScope parameter is not configured.'],
+ ['code' => 'MissingParameter.Email', 'message' => 'You must specify Email.', 'http_code' => 400, 'description' => 'The Email parameter is not configured. Configure this parameter.'],
+ ['code' => 'MissingParameter.EmailAddress', 'message' => 'You must specify EmailAddress.', 'http_code' => 400, 'description' => 'The EmailAddress parameter is not configured.'],
+ ['code' => 'MissingParameter.Folder.Name', 'message' => 'You must specify the resource folder name.', 'http_code' => 400, 'description' => 'No folder name is specified. Specify a folder name.'],
+ ['code' => 'MissingParameter.FolderId', 'message' => 'You must specify FolderId.', 'http_code' => 400, 'description' => 'The FolderId parameter is not configured. Configure this parameter.'],
+ ['code' => 'MissingParameter.MessageTypes', 'message' => 'You must specify MessageTypes.', 'http_code' => 400, 'description' => 'The MessageTypes parameter is not configured.'],
+ ['code' => 'MissingParameter.Name', 'message' => 'You must specify Name.', 'http_code' => 400, 'description' => 'You must specify Name.'],
+ ['code' => 'MissingParameter.PhoneNumber', 'message' => 'You must specify PhoneNumber.', 'http_code' => 400, 'description' => 'The PhoneNumber parameter is not configured.'],
+ ['code' => 'MissingParameter.PolicyDocument', 'message' => 'You must specify PolicyDocument.', 'http_code' => 400, 'description' => 'The PolicyDocument parameter is not configured.'],
+ ['code' => 'MissingParameter.PolicyId', 'message' => 'You must specify PolicyId.', 'http_code' => 400, 'description' => 'The PolicyId parameter is not configured.'],
+ ['code' => 'MissingParameter.PolicyName', 'message' => 'You must specify PolicyName.', 'http_code' => 400, 'description' => 'The PolicyName parameter is not configured.'],
+ ['code' => 'MissingParameter.RecordId', 'message' => 'You must specify RecordId.', 'http_code' => 400, 'description' => 'The RecordId parameter is not configured. Configure this parameter.'],
+ ['code' => 'MissingParameter.ResourceIdOrTag', 'message' => 'Parameter ResourceId or Tag is required.', 'http_code' => 409, 'description' => 'Parameter ResourceId or Tag is required.'],
+ ['code' => 'MissingParameter.ResourceOwner', 'message' => 'You must specify ResourceOwner.', 'http_code' => 400, 'description' => 'You must specify ResourceOwner.'],
+ ['code' => 'MissingParameter.ResourceShareId', 'message' => 'You must specify ResourceShareId.', 'http_code' => 400, 'description' => 'You must specify ResourceShareId.'],
+ ['code' => 'MissingParameter.ResourceShareName', 'message' => 'You must specify ResourceShareName.', 'http_code' => 400, 'description' => 'You must specify ResourceShareName.'],
+ ['code' => 'MissingParameter.TargetId', 'message' => 'You must specify TargetId.', 'http_code' => 400, 'description' => 'The TargetId parameter is not configured.'],
+ ['code' => 'MissingParameter.Title', 'message' => 'You must specify Title.', 'http_code' => 400, 'description' => 'The Title parameter is not configured.'],
+ ['code' => 'MissingSecureMobilePhone', 'message' => 'Secure mobile phone is missing.', 'http_code' => 409, 'description' => 'No mobile phone number is specified for security purposes.'],
+ ['code' => 'MissingSecurityInfo', 'message' => 'Security info is missing.', 'http_code' => 409, 'description' => 'No security information is specified.'],
+ ['code' => 'NoLicense.ResourceDirectory', 'message' => 'The resource directory has not enabled the delete operation.', 'http_code' => 409, 'description' => 'The member deletion feature is disabled for the resource directory.'],
+ ['code' => 'NoPermission', 'message' => 'You are not authorized to perform the operation.', 'http_code' => 403, 'description' => 'You are not authorized to perform the operation.'],
+ ['code' => 'NoRealNameAuthentication', 'message' => 'The account invited has not passed real-name authentication.', 'http_code' => 409, 'description' => 'The invited account does not pass real-name verification.'],
+ ['code' => 'NotSupport.Account', 'message' => 'You can only perform this operation for a sub-user.', 'http_code' => 409, 'description' => 'You can only perform this operation for a sub-user.'],
+ ['code' => 'NotSupport.Account.RealNameType', 'message' => 'Your account is not a real-name of enterprise type, so you cannot accept the invitation.', 'http_code' => 409, 'description' => 'You cannot accept the invitation because your account does not pass enterprise real-name verification.'],
+ ['code' => 'NotSupport.Account.Site', 'message' => 'The caller is not a China site account, which is not supported.', 'http_code' => 409, 'description' => 'The account is not registered at the current site. Use an account registered at the current site.'],
+ ['code' => 'NotSupport.AccountInAnotherResourceDirectory', 'message' => 'The invited account already belongs to another resource directory. To continue, remove the account from the other resource directory.', 'http_code' => 409, 'description' => 'The invited account already belongs to another resource directory. To continue, remove the account from the other resource directory.'],
+ ['code' => 'NotSupport.AccountInAnotherResourceDirectory', 'message' => 'The specified account is an Alibaba Cloud account or already exists in another resource directory.', 'http_code' => 409, 'description' => ''],
+ ['code' => 'NotSupport.Bid', 'message' => 'End users from the International site cannot visit the BID.', 'http_code' => 409, 'description' => 'The Bid parameter is not supported.'],
+ ['code' => 'NotSupport.CallerType', 'message' => 'Your account type does not support the operation.', 'http_code' => 409, 'description' => 'Your account does not support the operation.'],
+ ['code' => 'NotSupport.DetachLastControlPolicy', 'message' => 'It is not detach the last control policy on the target node.', 'http_code' => 400, 'description' => 'It is not detach the last control policy on the target node.'],
+ ['code' => 'NotSupport.InvitedAccount', 'message' => 'The current operation is not supported for accounts invited to join the resource directory.', 'http_code' => 400, 'description' => 'The current operation is not supported for accounts invited to join the resource directory.'],
+ ['code' => 'NotSupport.PayerAccountInAnotherResourceDir', 'message' => 'This payer account is a master account or a member account in another resource directory.', 'http_code' => 400, 'description' => 'The billing account is not in the resource directory. Specify a valid billing account.'],
+ ['code' => 'NotSupport.PayerAccountInAnotherResourceDirectory', 'message' => 'The specified payment account does not exist in the resource directory. You must specify a valid payment account.', 'http_code' => 409, 'description' => 'The billing account is not in the resource directory. Specify a valid billing account.'],
+ ['code' => 'NotSupport.Policy', 'message' => 'The policy can only be attached to a Service Linked Role.', 'http_code' => 400, 'description' => 'The policy can be attached only to service-linked roles.'],
+ ['code' => 'NotSupport.PolicyDocument.NotAction', 'message' => 'The specified NotAction is not supported.', 'http_code' => 400, 'description' => 'The NotAction parameter is not supported.'],
+ ['code' => 'NotSupport.ServiceLinkedRole', 'message' => 'Cannot perform the operation on this service linked role.', 'http_code' => 400, 'description' => 'You cannot perform operations on the service-linked role.'],
+ ['code' => 'NotSupport.SettingResellAccountType', 'message' => 'The current account does not support setting the resellAccountType for members.', 'http_code' => 409, 'description' => 'The current account does not support setting the resellAccountType for members.'],
+ ['code' => 'NotSupport.Site', 'message' => 'Site does not allow current user access.', 'http_code' => 400, 'description' => 'Site does not allow current user access.'],
+ ['code' => 'NotSupport.Site.Action', 'message' => 'Site does not allow current action.', 'http_code' => 400, 'description' => 'Site does not allow current action.'],
+ ['code' => 'NotSupportedOperation.Account.EmailModify', 'message' => 'The operation is not supported because the account email is being modifying.', 'http_code' => 400, 'description' => 'The operation is not supported because the account email is being modifying.'],
+ ['code' => 'NotSupportedOperation.DeletingAccount', 'message' => 'The operation is not supported because the account email is being modifying.', 'http_code' => 400, 'description' => 'The operation is not supported because the account email is being modifying.'],
+ ['code' => 'OperationUnsupported.AccountTypeOrStatusMismatch.MoveAccount', 'message' => 'The account type or status does not match when moving an account.', 'http_code' => 409, 'description' => 'You cannot perform the operation on the member.'],
+ ['code' => 'PatternNotMatch.Param.Mobile', 'message' => 'Incorrect mobile format.', 'http_code' => 409, 'description' => 'Incorrect mobile format.'],
+ ['code' => 'PaymentAccountCreditIdentityTypeError', 'message' => 'Non-credit identity type or insufficient credit limit, cannot be used as payment account.', 'http_code' => 409, 'description' => 'The account cannot be used as a billing account because the account is not of the credit identity type or the balance in the credit card for the account is insufficient.'],
+ ['code' => 'PaymentAccountEnterpriseInvoiceError', 'message' => 'No enterprise invoice header information is set for the payment account.', 'http_code' => 409, 'description' => 'No invoice title information is specified for the billing account.'],
+ ['code' => 'PaymentAccountEnterpriseTypeError', 'message' => 'The type of the payment account is not enterprise.', 'http_code' => 409, 'description' => 'The billing account is not an enterprise account.'],
+ ['code' => 'PaymentAccountEnterpriseVerifyError', 'message' => 'The type of the payment account is not enterprise verified.', 'http_code' => 409, 'description' => 'The billing account does not pass enterprise real-name verification.'],
+ ['code' => 'PaymentAccountFinancialRelationshipsChangeFrequencyVerifyError', 'message' => 'The financial relationship of payment account changes too frequently. Please try again later.', 'http_code' => 409, 'description' => 'The financial relationship of the billing account frequently changes. Try again later.'],
+ ['code' => 'PaymentAccountFinancialRelationshipVerifyError', 'message' => 'The payment account must not be the beneficiary account from other financial relationships.', 'http_code' => 409, 'description' => 'A billing account cannot be associated with a financial account.'],
+ ['code' => 'PaymentAccountManagementVerifyError', 'message' => 'You can use the management account for settlement because the account type of the new member account is resell.', 'http_code' => 409, 'description' => 'The new member is an account for a reseller. You can only use the management account for settlement.'],
+ ['code' => 'PaymentAccountResellerVerifyError', 'message' => 'The type of the payment account must not be reseller.', 'http_code' => 409, 'description' => 'The billing account cannot be an account for a reseller.'],
+ ['code' => 'PaymentAccountVirtualCloudOperatorVerifyError', 'message' => 'The type of the payment account must not be virtual operator.', 'http_code' => 409, 'description' => 'A billing account cannot be an account for a virtual network operator (VNO).'],
+ ['code' => 'PeripheralError.DeleteAccount', 'message' => 'The deletion failed. The deletion process is abnormal. Please try again later.', 'http_code' => 409, 'description' => 'Delete failed. An exception occurred during the deletion. Try again later.'],
+ ['code' => 'PrimaryAkInUse', 'message' => 'The root user has an AccessKey pair in use.', 'http_code' => 409, 'description' => 'The AccessKey pair of the root user for the member is in use.'],
+ ['code' => 'QuotaExceeded.Account.Count', 'message' => 'The number of resource directory accounts exceeds the quota.', 'http_code' => 409, 'description' => 'The number of members in the resource directory exceeds the upper limit. A resource directory can contain a maximum of 20 members.'],
+ ['code' => 'QuotaExceeded.Contacts', 'message' => 'The maximum number of contacts in a resource directory exceeds the limit.', 'http_code' => 400, 'description' => 'The number of contacts exceeds the upper limit.'],
+ ['code' => 'QuotaExceeded.CreateAccount.Count', 'message' => 'The number of accounts that a master account can create exceeds the quota.', 'http_code' => 404, 'description' => 'The number of members created within the Alibaba Cloud account exceeds the upper limit. You can create a maximum of 20 members.'],
+ ['code' => 'QuotaExceeded.DeleteAccount', 'message' => 'You have exceeded delete account quota for the past 30 days.', 'http_code' => 409, 'description' => 'You have exceeded delete account quota for the past 30 days.'],
+ ['code' => 'QuotaExceeded.Folder.Count', 'message' => 'The number of folders exceeds the quota.', 'http_code' => 409, 'description' => 'The maximum number of folders is reached.'],
+ ['code' => 'QuotaExceeded.Members', 'message' => 'The maximum number of Members exceeds the limit.', 'http_code' => 400, 'description' => 'The number of members exceeds the upper limit.'],
+ ['code' => 'QuotaExceeded.ResourceShare.Count', 'message' => 'The maximum number of shared resources (20) is exceeded.', 'http_code' => 409, 'description' => 'The maximum number of shared resources (20) is exceeded.'],
+ ['code' => 'QuotaExceeded.SharedResource.Count', 'message' => 'The maximum number of shared resources per account (50) is exceeded.', 'http_code' => 409, 'description' => 'The maximum number of shared resources per account (50) is exceeded.'],
+ ['code' => 'RemoveConfilctAccountAsDelegatedAdministator', 'message' => 'You attempted to remove a member that is registered as a delegated administrator. To complete this operation, you must first deregister this account as a delegated administrator.', 'http_code' => 409, 'description' => 'The member is a delegated administrator account of a trusted service. Remove the delegated administrator account for the trusted service first.'],
+ ['code' => 'ResourceAndTargetBothEmpty', 'message' => 'Either a resource or a target must be specified.', 'http_code' => 400, 'description' => 'Either a resource or a target must be specified.'],
+ ['code' => 'ResourceDirectoryNotInUse', 'message' => 'The specified account is not an Alibaba Cloud account or a member account of the resource directory.', 'http_code' => 404, 'description' => 'The account is not an Alibaba Cloud account or a member of a resource directory.'],
+ ['code' => 'ResourceDirNotInUse', 'message' => 'The account is not a master or a member of a resource directory.', 'http_code' => 404, 'description' => 'The account is not an Alibaba Cloud account or a member of a resource directory.'],
+ ['code' => 'ResourceShareStatusMismatchAction', 'message' => 'The status of resource sharing does not allow the specified operation.', 'http_code' => 409, 'description' => 'The status of resource sharing does not allow the specified operation.'],
+ ['code' => 'SecureMobileNotExists.InheritFrom', 'message' => 'The inherited secure mobile is missing.', 'http_code' => 409, 'description' => 'The inherited secure mobile is missing.'],
+ ['code' => 'SecurityMobileOverLimit', 'message' => 'The number of secure phone numbers exceeds the limit.', 'http_code' => 409, 'description' => 'The number of secure phone numbers exceeds the limit.'],
+ ['code' => 'SendValidateCodeExceedsLimitForAccount', 'message' => 'For the same account, the number of verification codes sent exceeds the limit.', 'http_code' => 409, 'description' => 'The number of verification codes that are sent per day by using the account exceeds the upper limit.'],
+ ['code' => 'ShareWithYourself', 'message' => 'You cannot share with yourself.', 'http_code' => 409, 'description' => 'You cannot share with yourself.'],
+ ['code' => 'SmsSendingExceedsLimitForMember', 'message' => 'For the same member, the number of SMS messages sent exceeds the limit.', 'http_code' => 409, 'description' => 'The number of text messages sent to the member exceeds the upper limit.'],
+ ['code' => 'SmsSendingExceedsLimitForMobile', 'message' => 'For the same mobile number, the number of SMS messages sent exceeds the limit.', 'http_code' => 409, 'description' => 'The number of text messages sent to the mobile phone number exceeds the upper limit.'],
+ ['code' => 'SmsVerificationFailed', 'message' => 'The verification code is incorrect or has expired.', 'http_code' => 409, 'description' => 'The verification code is incorrect or has expired.'],
+ ['code' => 'SpBlock.DeleteAccount', 'message' => 'The deletion failed. There are prepaid products under the current account. Please release them and try again.', 'http_code' => 409, 'description' => 'Delete failed. The current account has subscription resources. Release the resources and try again.'],
+ ['code' => 'SpecifiedResourceDirectoryNotExists', 'message' => 'The specified resource directory does not exist. You must specify a valid resource directory.', 'http_code' => 404, 'description' => 'The specified resource directory does not exist. Specify a valid resource directory.'],
+ ['code' => 'SubAndMasterUidNotSameCompanyNameError', 'message' => 'Trusteeship is only available for the UIDs from same entity. The entity names of the current accounts are invalid or different.', 'http_code' => 409, 'description' => 'A finance trusteeship cannot be established between the management account and member because no enterprise names are specified for the management account and member or the enterprise names of the management account and member are inconsistent. A finance trusteeship can be established only between accounts that belong to the same enterprise.'],
+ ['code' => 'Throttling.EnableControlPolicy', 'message' => 'The operation is too frequent. Please try again later.', 'http_code' => 409, 'description' => 'The operation is frequently performed. Try again later.'],
+ ['code' => 'Throttling.EnableControlPolicy', 'message' => 'The enable operation is too frequent. Please try again in %s minute(s).', 'http_code' => 409, 'description' => 'The operation is frequently performed. Wait %s minutes and try again.'],
+ ['code' => 'UnknownError.Account', 'message' => 'The deletion failed. An unknown error occurred. Please try again later.', 'http_code' => 409, 'description' => 'Delete failed. An unknown error occurred. Try again later.'],
+ ['code' => 'UnknownFinancialError', 'message' => 'An unknown financial error occurred.', 'http_code' => 409, 'description' => 'An unknown financial error occurred.'],
+ ['code' => 'UnsupportedOperation.RemoveAdminSelf', 'message' => 'If the logon account is not an Alibaba Cloud account or not granted administrator permissions, you cannot remove permissions for the account.', 'http_code' => 409, 'description' => 'You cannot remove permissions for the current logon account because the account is not an Alibaba Cloud account or does not have administrator permissions.'],
+ ['code' => 'UserOwnFundAccountPayForOthers', 'message' => 'If the account has been used as the main payment account, it is not allowed to set up payment by others.', 'http_code' => 409, 'description' => 'If the account has been used as the main payment account, it is not allowed to set up payment by others.'],
+ ['code' => 'NotSupport.DetachLastResourceControlPolicy', 'message' => 'It is not supported to detach the last resource control policy.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'Throttling.EnableResourceControlPolicy', 'message' => 'The operation is too frequent. Please try again later.', 'http_code' => 409, 'description' => ''],
+ ['code' => 'InvalidResourceControlPolicyEnablementStatus', 'message' => 'The resource control policy enablement status is not valid to perform this operation.', 'http_code' => 409, 'description' => ''],
+ ['code' => 'NotSupport.DetachSystemResourceControlPolicy', 'message' => 'It is not supported to detach system resource control policy.', 'http_code' => 400, 'description' => ''],
+ ['code' => 'ResourceControlPolicyNotEnabled', 'message' => 'Resource control policy has not been enabled.', 'http_code' => 409, 'description' => ''],
+ ['code' => 'ResourceControlPolicyNotDisabled', 'message' => 'You should disable Resource Control Policy before performing this operation.', 'http_code' => 409, 'description' => ''],
+ ['code' => 'DeleteConflict.SystemResourceControlPolicy', 'message' => 'The system resource control policy cannot be deleted.', 'http_code' => 409, 'description' => ''],
+ ['code' => 'LimitExceeded.ResourceControlPolicyAttachment', 'message' => 'The resource control policy attachment number exceeds the limit.', 'http_code' => 409, 'description' => ''],
+ ['code' => 'LimitExceeded.ResourceControlPolicy', 'message' => 'The resource control policy number exceeds the limit.', 'http_code' => 409, 'description' => ''],
+ ['code' => 'EntityAlreadyExists.ResourceControlPolicyAttachment', 'message' => 'The resource control policy attachment already exists.', 'http_code' => 409, 'description' => ''],
+ ['code' => 'EntityAlreadyExists.ResourceControlPolicy', 'message' => 'The resource control policy already exists.', 'http_code' => 409, 'description' => ''],
+ ['code' => 'EntityNotExists.ResourceControlPolicyAttachment', 'message' => 'The specified resource control policy attachment does not exist.', 'http_code' => 404, 'description' => ''],
+ ['code' => 'EntityNotExists.ResourceControlPolicy', 'message' => 'The specified resource control policy does not exist.', 'http_code' => 404, 'description' => ''],
+ ['code' => 'Throttling.EnableResourceControlPolicy', 'message' => 'The enable operation is too frequent. Please try again in %s minute(s).', 'http_code' => 409, 'description' => ''],
+ ],
+ 'changeSet' => [],
+ 'flowControl' => [
+ 'flowControlList' => [
+ ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CheckAccountDelete'],
+ ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateControlPolicy'],
+ ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListTagResources'],
+ ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UntagResources'],
+ ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetResourceDirectory'],
+ ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetHandshake'],
+ ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'BindSecureMobilePhone'],
+ ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DetachControlPolicy'],
+ ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'AcceptHandshake'],
+ ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'SendPhoneVerificationForMessageContact'],
+ ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListControlPolicies'],
+ ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteFolder'],
+ ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DisableControlPolicy'],
+ ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListDelegatedAdministrators'],
+ ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'AddMessageContact'],
+ ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetAccountDeletionStatus'],
+ ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListHandshakesForResourceDirectory'],
+ ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetFolder'],
+ ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetControlPolicy'],
+ ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CancelHandshake'],
+ ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DestroyResourceDirectory'],
+ ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DisassociateMembers'],
+ ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListAccountsForParent'],
+ ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'SendEmailVerificationForMessageContact'],
+ ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'InviteAccountToResourceDirectory'],
+ ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListAncestors'],
+ ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteControlPolicy'],
+ ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListTagKeys'],
+ ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateMessageContact'],
+ ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'SetMemberDisplayNameSyncStatus'],
+ ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'EnableControlPolicy'],
+ ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetAccountDeletionCheckResult'],
+ ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'AssociateMembers'],
+ ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'EnableResourceDirectory'],
+ ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetControlPolicyEnablementStatus'],
+ ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteMessageContact'],
+ ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetMessageContact'],
+ ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListAccounts'],
+ ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListTagValues'],
+ ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'PrecheckForConsolidatedBillingAccount'],
+ ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'RetryChangeAccountEmail'],
+ ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CancelMessageContactUpdate'],
+ ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListTargetAttachmentsForControlPolicy'],
+ ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdatePayerForAccount'],
+ ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListControlPolicyAttachmentsForTarget'],
+ ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListTrustedServiceStatus'],
+ ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateAccount'],
+ ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ChangeAccountEmail'],
+ ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'SetMemberDeletionPermission'],
+ ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListHandshakesForAccount'],
+ ['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'SendVerificationCodeForEnableRD'],
+ ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetMessageContactDeletionStatus'],
+ ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListMessageContactVerifications'],
+ ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateControlPolicy'],
+ ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteAccount'],
+ ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateResourceAccount'],
+ ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeclineHandshake'],
+ ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetPayerForAccount'],
+ ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListFoldersForParent'],
+ ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CancelChangeAccountEmail'],
+ ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetAccount'],
+ ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListMessageContacts'],
+ ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeregisterDelegatedAdministrator'],
+ ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'RegisterDelegatedAdministrator'],
+ ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'SendVerificationCodeForBindSecureMobilePhone'],
+ ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'AttachControlPolicy'],
+ ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'MoveAccount'],
+ ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListDelegatedServicesForAccount'],
+ ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'TagResources'],
+ ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateFolder'],
+ ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'RemoveCloudAccount'],
+ ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateFolder'],
+ ],
+ ],
+ 'ram' => [
+ 'productCode' => 'ResourceManager',
+ 'productName' => 'Resource Management',
+ 'ramCodes' => ['resourcecenter', 'resourcemanager', 'tag', 'resourcesharing'],
+ 'ramLevel' => 'RESOURCE',
+ 'ramConditions' => [
+ [
+ 'name' => 'resourcesharing:ResourceArn',
+ 'schema' => ['type' => 'String', 'description' => 'The resource ARN. Example: acs:vpc:cn-shanghai:131993166204****:vswitch/vsw-7xv4sfwo86u2etl64****.'],
+ ],
+ [
+ 'name' => 'resourcesharing:RequestedAllowExternalTargets',
+ 'schema' => [
+ 'type' => 'Boolean',
+ 'description' => 'Whether resources in the resource share can be shared with accounts outside the resource directory. Example: false.',
+ 'enums' => ['true', 'false'],
+ ],
+ ],
+ [
+ 'name' => 'ram:ServiceName',
+ 'schema' => ['type' => 'String', 'description' => 'Specifies the trusted service principal for service-linked role. Example: actiontrail.aliyuncs.com'],
+ ],
+ [
+ 'name' => 'resourcesharing:Target',
+ 'schema' => ['type' => 'String', 'description' => 'Example values include: Resource Directory ID, the RDPath of a folder, or the RDPath of an account (within the resource directory), or the account ID (for accounts outside of the resource directory).'],
+ ],
+ [
+ 'name' => 'resourcesharing:RequestedResourceType',
+ 'schema' => ['type' => 'String', 'description' => 'The resource type. Example: VSwitch.'],
],
- 'schemes' => [
- 'https',
+ ],
+ 'ramActions' => [
+ [
+ 'apiName' => 'DetachControlPolicy',
+ 'description' => '',
+ 'operationType' => 'update',
+ 'ramAction' => [
+ 'action' => 'resourcemanager:DetachControlPolicy',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ResourceManager', 'resourceType' => 'Account', 'arn' => 'acs:resourcemanager::{#accountId}:account/{#ResourceDirectoryPath}'],
+ ['validationType' => 'always', 'product' => 'ResourceManager', 'resourceType' => 'ControlPolicy', 'arn' => 'acs:resourcemanager::{#accountId}:policy/controlpolicy/{#PolicyId}'],
+ ['validationType' => 'always', 'product' => 'ResourceManager', 'resourceType' => 'Folder', 'arn' => 'acs:resourcemanager::{#accountId}:folder/{#ResourceDirectoryPath}'],
+ ],
+ ],
],
- 'security' => [
- [
- 'AK' => [],
+ [
+ 'apiName' => 'ListDelegatedAdministrators',
+ 'description' => '',
+ 'operationType' => 'list',
+ 'ramAction' => [
+ 'action' => 'resourcemanager:ListDelegatedAdministrators',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ResourceManager', 'resourceType' => 'All Resource', 'arn' => '*'],
+ ],
],
],
- 'operationType' => 'read',
- 'deprecated' => false,
- 'systemTags' => [
+ [
+ 'apiName' => 'DisassociateMembers',
+ 'description' => '',
+ 'operationType' => 'update',
+ 'ramAction' => [
+ 'action' => 'resourcemanager:DisassociateMembers',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ResourceManager', 'resourceType' => 'All Resource', 'arn' => '*'],
+ ],
+ ],
+ ],
+ [
+ 'apiName' => 'GetAccountDeletionCheckResult',
+ 'description' => '',
+ 'operationType' => 'get',
+ 'ramAction' => [
+ 'action' => 'resourcemanager:GetAccountDeletionCheckResult',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ResourceManager', 'resourceType' => 'Account', 'arn' => 'acs:resourcemanager::{#accountId}:account/{#ResourceDirectoryPath}'],
+ ],
+ ],
+ ],
+ [
+ 'apiName' => 'ListHandshakesForAccount',
+ 'description' => '',
'operationType' => 'list',
+ 'ramAction' => [
+ 'action' => 'resourcemanager:ListHandshakesForAccount',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ResourceManager', 'resourceType' => 'All Resource', 'arn' => '*'],
+ ],
+ ],
],
- 'parameters' => [
- [
- 'name' => 'TargetId',
- 'in' => 'query',
- 'schema' => [
- 'description' => 'The ID of the object whose access control policies you want to query. Access control policies can be attached to the following objects:'."\n"
- ."\n"
- .'* Root folder'."\n"
- .'* Subfolders of the Root folder'."\n"
- .'* Members'."\n",
- 'type' => 'string',
- 'required' => true,
- 'example' => 'fd-ZDNPiT****',
+ [
+ 'apiName' => 'GetAccount',
+ 'description' => '',
+ 'operationType' => 'get',
+ 'ramAction' => [
+ 'action' => 'resourcemanager:GetAccount',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ResourceManager', 'resourceType' => 'Account', 'arn' => 'acs:resourcemanager::{#accountId}:account/{#ResourceDirectoryPath}'],
],
],
- [
- 'name' => 'Language',
- 'in' => 'query',
- 'schema' => [
- 'description' => 'The language in which you want to return the descriptions of the access control policies. Valid values:'."\n"
- ."\n"
- .'* zh-CN (default value): Chinese'."\n"
- .'* en: English'."\n"
- .'* ja: Japanese'."\n"
- ."\n"
- .'> This parameter is valid only for system access control policies.'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'zh-CN',
+ ],
+ [
+ 'apiName' => 'BindSecureMobilePhone',
+ 'description' => '',
+ 'operationType' => 'update',
+ 'ramAction' => [
+ 'action' => 'resourcemanager:BindSecureMobilePhone',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ResourceManager', 'resourceType' => 'Account', 'arn' => 'acs:resourcemanager::{#accountId}:account/{#ResourceDirectoryPath}'],
],
],
],
- 'responses' => [
- 200 => [
- 'schema' => [
- 'description' => 'The returned result.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'RequestId' => [
- 'description' => 'The ID of the request.'."\n",
- 'type' => 'string',
- 'example' => 'C276B600-7B7A-49E8-938C-E16CFA955A82',
- ],
- 'ControlPolicyAttachments' => [
- 'type' => 'object',
- 'itemNode' => true,
- 'properties' => [
- 'ControlPolicyAttachment' => [
- 'description' => 'The information about the attached access control policies.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The information about an attached access control policy.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'Description' => [
- 'description' => 'The description of the access control policy.'."\n",
- 'type' => 'string',
- 'example' => 'ExampleControlPolicy',
- ],
- 'EffectScope' => [
- 'description' => 'The effective scope of the access control policy. Valid values:'."\n"
- ."\n"
- .'* All: The access control policy is in effect for Alibaba Cloud accounts, RAM users, and RAM roles.'."\n"
- .'* RAM: The access control policy is in effect only for RAM users and RAM roles.'."\n",
- 'type' => 'string',
- 'example' => 'RAM',
- ],
- 'PolicyName' => [
- 'description' => 'The name of the access control policy.'."\n",
- 'type' => 'string',
- 'example' => 'ExampleControlPolicy',
- ],
- 'PolicyId' => [
- 'description' => 'The ID of the access control policy.'."\n",
- 'type' => 'string',
- 'example' => 'cp-jExXAqIYkwHN****',
- ],
- 'AttachDate' => [
- 'description' => 'The time when the access control policy was attached.'."\n",
- 'type' => 'string',
- 'example' => '2021-03-19T02:56:24Z',
- ],
- 'PolicyType' => [
- 'description' => 'The type of the access control policy. Valid values:'."\n"
- ."\n"
- .'* System: system access control policy'."\n"
- .'* Custom: custom access control policy'."\n",
- 'type' => 'string',
- 'example' => 'Custom',
- ],
- ],
- ],
- ],
- ],
- ],
- ],
+ [
+ 'apiName' => 'MoveAccount',
+ 'description' => '',
+ 'operationType' => 'update',
+ 'ramAction' => [
+ 'action' => 'resourcemanager:MoveAccount',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ResourceManager', 'resourceType' => 'Account', 'arn' => 'acs:resourcemanager::{#accountId}:account/{#ResourceDirectoryPath}'],
+ ['validationType' => 'always', 'product' => 'ResourceManager', 'resourceType' => 'Folder', 'arn' => 'acs:resourcemanager::{#accountId}:folder/{#ResourceDirectoryPath}'],
],
],
],
- 'errorCodes' => [
- 404 => [
- [
- 'errorCode' => 'EntityNotExists.Target',
- 'errorMessage' => 'The specified target does not exist in the resource directory.',
+ [
+ 'apiName' => 'EnableControlPolicy',
+ 'description' => '',
+ 'operationType' => 'update',
+ 'ramAction' => [
+ 'action' => 'resourcemanager:EnableControlPolicy',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ResourceManager', 'resourceType' => 'ResourceDirectory', 'arn' => 'acs:resourcemanager::{#accountId}:policy/controlpolicy/*'],
],
],
],
- 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"C276B600-7B7A-49E8-938C-E16CFA955A82\\",\\n \\"ControlPolicyAttachments\\": {\\n \\"ControlPolicyAttachment\\": [\\n {\\n \\"Description\\": \\"ExampleControlPolicy\\",\\n \\"EffectScope\\": \\"RAM\\",\\n \\"PolicyName\\": \\"ExampleControlPolicy\\",\\n \\"PolicyId\\": \\"cp-jExXAqIYkwHN****\\",\\n \\"AttachDate\\": \\"2021-03-19T02:56:24Z\\",\\n \\"PolicyType\\": \\"Custom\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<?xml version=\\"1.0\\" encoding=\\"UTF-8\\" ?>\\r\\n<ListControlPolicyAttachmentsForTargetResponse>\\r\\n\\t<RequestId>C276B600-7B7A-49E8-938C-E16CFA955A82</RequestId>\\r\\n\\t<ControlPolicyAttachments>\\r\\n\\t\\t<ControlPolicyAttachment>\\r\\n\\t\\t\\t<PolicyType>System</PolicyType>\\r\\n\\t\\t\\t<Description>支持阿里云所有操作的系统管控策略</Description>\\r\\n\\t\\t\\t<AttachDate>2021-03-18T07:27:59Z</AttachDate>\\r\\n\\t\\t\\t<PolicyName>FullAliyunAccess</PolicyName>\\r\\n\\t\\t\\t<PolicyId>cp-FullAliyunAccess</PolicyId>\\r\\n\\t\\t</ControlPolicyAttachment>\\r\\n\\t\\t<ControlPolicyAttachment>\\r\\n\\t\\t\\t<PolicyType>Custom</PolicyType>\\r\\n\\t\\t\\t<Description>ExampleControlPolicy</Description>\\r\\n\\t\\t\\t<AttachDate>2021-03-19T02:56:24Z</AttachDate>\\r\\n\\t\\t\\t<PolicyName>ExampleControlPolicy</PolicyName>\\r\\n\\t\\t\\t<PolicyId>cp-jExXAqIYkwHN****</PolicyId>\\r\\n\\t\\t</ControlPolicyAttachment>\\r\\n\\t</ControlPolicyAttachments>\\r\\n</ListControlPolicyAttachmentsForTargetResponse>\\t\\r\\n","errorExample":""}]',
- 'title' => 'ListControlPolicyAttachmentsForTarget',
- 'summary' => 'Queries the access control policies that are attached to a folder or member.',
- 'responseParamsDescription' => ' ',
- 'extraInfo' => ' ',
- ],
- 'ListTargetAttachmentsForControlPolicy' => [
- 'methods' => [
- 'post',
- 'get',
+ [
+ 'apiName' => 'CancelChangeAccountEmail',
+ 'description' => '',
+ 'operationType' => 'update',
+ 'ramAction' => [
+ 'action' => 'resourcemanager:CancelChangeAccountEmail',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ResourceManager', 'resourceType' => 'All Resource', 'arn' => '*'],
+ ],
+ ],
],
- 'schemes' => [
- 'https',
+ [
+ 'apiName' => 'CheckAccountDelete',
+ 'description' => '',
+ 'operationType' => 'get',
+ 'ramAction' => [
+ 'action' => 'resourcemanager:CheckAccountDelete',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ResourceManager', 'resourceType' => 'Account', 'arn' => 'acs:resourcemanager::{#accountId}:account/{#ResourceDirectoryPath}'],
+ ],
+ ],
],
- 'security' => [
- [
- 'AK' => [],
+ [
+ 'apiName' => 'CreateControlPolicy',
+ 'description' => '',
+ 'operationType' => 'create',
+ 'ramAction' => [
+ 'action' => 'resourcemanager:CreateControlPolicy',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ResourceManager', 'resourceType' => 'All Resource', 'arn' => '*'],
+ ],
],
],
- 'operationType' => 'read',
- 'deprecated' => false,
- 'systemTags' => [
+ [
+ 'apiName' => 'ListTagKeys',
+ 'description' => '',
'operationType' => 'list',
+ 'ramAction' => [
+ 'action' => 'resourcemanager:ListTagKeys',
+ 'authLevel' => 'operate',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ResourceManager', 'resourceType' => 'All Resource', 'arn' => '*'],
+ ],
+ ],
],
- 'parameters' => [
- [
- 'name' => 'PolicyId',
- 'in' => 'query',
- 'schema' => [
- 'description' => 'The ID of the access control policy.'."\n",
- 'type' => 'string',
- 'required' => true,
- 'example' => 'cp-jExXAqIYkwHN****',
+ [
+ 'apiName' => 'ListFoldersForParent',
+ 'description' => '',
+ 'operationType' => 'list',
+ 'ramAction' => [
+ 'action' => 'resourcemanager:ListFoldersForParent',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ResourceManager', 'resourceType' => 'Folder', 'arn' => 'acs:resourcemanager::{#accountId}:folder/{#ResourceDirectoryPath}'],
],
],
- [
- 'name' => 'PageNumber',
- 'in' => 'query',
- 'schema' => [
- 'description' => 'The number of the page to return.'."\n"
- ."\n"
- .'Pages start from page 1. Default value: 1.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'required' => false,
- 'maximum' => '200000',
- 'minimum' => '1',
- 'example' => '1',
- 'default' => '1',
+ ],
+ [
+ 'apiName' => 'SendVerificationCodeForBindSecureMobilePhone',
+ 'description' => '',
+ 'operationType' => 'none',
+ 'ramAction' => [
+ 'action' => 'resourcemanager:SendVerificationCodeForBindSecureMobilePhone',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ResourceManager', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
- [
- 'name' => 'PageSize',
- 'in' => 'query',
- 'schema' => [
- 'description' => 'The number of entries to return on each page.'."\n"
- ."\n"
- .'Valid values: 1 to 100. Default value: 10.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'required' => false,
- 'maximum' => '100',
- 'minimum' => '1',
- 'example' => '10',
- 'default' => '10',
+ ],
+ [
+ 'apiName' => 'DeleteControlPolicy',
+ 'description' => '',
+ 'operationType' => 'delete',
+ 'ramAction' => [
+ 'action' => 'resourcemanager:DeleteControlPolicy',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ResourceManager', 'resourceType' => 'ControlPolicy', 'arn' => 'acs:resourcemanager::{#accountId}:policy/controlpolicy/{#PolicyId}'],
],
],
],
- 'responses' => [
- 200 => [
- 'schema' => [
- 'description' => 'The returned result.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'TotalCount' => [
- 'description' => 'The total number of objects to which the access control policy is attached.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'example' => '1',
- ],
- 'RequestId' => [
- 'description' => 'The ID of the request.'."\n",
- 'type' => 'string',
- 'example' => 'B32BD3D6-1089-41F3-8E70-E0079BC7D760',
- ],
- 'PageSize' => [
- 'description' => 'The number of entries returned per page.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'example' => '10',
- ],
- 'PageNumber' => [
- 'description' => 'The page number of the returned page.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'example' => '1',
- ],
- 'TargetAttachments' => [
- 'type' => 'object',
- 'itemNode' => true,
- 'properties' => [
- 'TargetAttachment' => [
- 'description' => 'The information about the objects to which the access control policy is attached.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The information about an object to which the access control policy is attached.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'TargetId' => [
- 'description' => 'The ID of the object.'."\n",
- 'type' => 'string',
- 'example' => 'fd-ZDNPiT****',
- ],
- 'TargetName' => [
- 'description' => 'The name of the object.'."\n",
- 'type' => 'string',
- 'example' => 'Dev_Department',
- ],
- 'AttachDate' => [
- 'description' => 'The time when the access control policy was attached to the object.'."\n",
- 'type' => 'string',
- 'example' => '2021-03-19T02:56:24Z',
- ],
- 'TargetType' => [
- 'description' => 'The type of the object. Valid values:'."\n"
- ."\n"
- .'* Root: Root folder'."\n"
- .'* Folder: subfolder of the Root folder'."\n"
- .'* Account: member'."\n",
- 'type' => 'string',
- 'example' => 'Folder',
- ],
- ],
- ],
- ],
- ],
- ],
- ],
+ [
+ 'apiName' => 'AssociateMembers',
+ 'description' => '',
+ 'operationType' => 'update',
+ 'ramAction' => [
+ 'action' => 'resourcemanager:AssociateMembers',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ResourceManager', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
- 'responseDemo' => '[{"type":"json","example":"{\\n \\"TotalCount\\": 1,\\n \\"RequestId\\": \\"B32BD3D6-1089-41F3-8E70-E0079BC7D760\\",\\n \\"PageSize\\": 10,\\n \\"PageNumber\\": 1,\\n \\"TargetAttachments\\": {\\n \\"TargetAttachment\\": [\\n {\\n \\"TargetId\\": \\"fd-ZDNPiT****\\",\\n \\"TargetName\\": \\"Dev_Department\\",\\n \\"AttachDate\\": \\"2021-03-19T02:56:24Z\\",\\n \\"TargetType\\": \\"Folder\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<?xml version=\\"1.0\\" encoding=\\"UTF-8\\" ?>\\r\\n<ListTargetAttachmentsForControlPolicyResponse>\\r\\n\\t<TotalCount>1</TotalCount>\\r\\n\\t<RequestId>B32BD3D6-1089-41F3-8E70-E0079BC7D760</RequestId>\\r\\n\\t<PageSize>10</PageSize>\\r\\n\\t<PageNumber>1</PageNumber>\\r\\n\\t<TargetAttachments>\\r\\n\\t\\t<TargetAttachment>\\r\\n\\t\\t\\t<AttachDate>2021-03-19T02:56:24Z</AttachDate>\\r\\n\\t\\t\\t<TargetType>Folder</TargetType>\\r\\n\\t\\t\\t<TargetName>Dev_Department</TargetName>\\r\\n\\t\\t\\t<TargetId>fd-ZDNPiT****</TargetId>\\r\\n\\t\\t</TargetAttachment>\\r\\n\\t</TargetAttachments>\\r\\n</ListTargetAttachmentsForControlPolicyResponse>\\t\\r\\n\\r\\n\\t\\r\\n","errorExample":""}]',
- 'title' => 'ListTargetAttachmentsForControlPolicy',
- 'summary' => 'Queries the objects to which an access control policy is attached.',
- 'responseParamsDescription' => ' ',
- 'extraInfo' => ' ',
- ],
- 'ListTrustedServiceStatus' => [
- 'methods' => [
- 'post',
- 'get',
+ [
+ 'apiName' => 'GetAccountDeletionStatus',
+ 'description' => '',
+ 'operationType' => 'get',
+ 'ramAction' => [
+ 'action' => 'resourcemanager:GetAccountDeletionStatus',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ResourceManager', 'resourceType' => 'Account', 'arn' => 'acs:resourcemanager::{#accountId}:account/{#ResourceDirectoryPath}'],
+ ],
+ ],
],
- 'schemes' => [
- 'https',
+ [
+ 'apiName' => 'RetryChangeAccountEmail',
+ 'description' => '',
+ 'operationType' => 'update',
+ 'ramAction' => [
+ 'action' => 'resourcemanager:RetryChangeAccountEmail',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ResourceManager', 'resourceType' => 'Account', 'arn' => 'acs:resourcemanager::{#accountId}:account/{#ResourceDirectoryPath}'],
+ ],
+ ],
],
- 'security' => [
- [
- 'AK' => [],
+ [
+ 'apiName' => 'PrecheckForConsolidatedBillingAccount',
+ 'description' => '',
+ 'operationType' => 'get',
+ 'ramAction' => [
+ 'action' => 'resourcemanager:PrecheckForConsolidatedBillingAccount',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ResourceManager', 'resourceType' => 'Account', 'arn' => 'acs:resourcemanager::{#accountId}:account/{#ResourceDirectoryPath}'],
+ ],
],
],
- 'operationType' => 'read',
- 'deprecated' => false,
- 'systemTags' => [
+ [
+ 'apiName' => 'ListDelegatedServicesForAccount',
+ 'description' => '',
'operationType' => 'list',
+ 'ramAction' => [
+ 'action' => 'resourcemanager:ListDelegatedServicesForAccount',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ResourceManager', 'resourceType' => 'Account', 'arn' => 'acs:resourcemanager::{#accountId}:account/{#ResourceDirectoryPath}'],
+ ],
+ ],
],
- 'parameters' => [
- [
- 'name' => 'PageNumber',
- 'in' => 'query',
- 'schema' => [
- 'description' => 'The number of the page to return.'."\n"
- ."\n"
- .'Pages start from page 1. Default value: 1.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'required' => false,
- 'example' => '1',
+ [
+ 'apiName' => 'AddMessageContact',
+ 'description' => '',
+ 'operationType' => 'create',
+ 'ramAction' => [
+ 'action' => 'resourcemanager:AddMessageContact',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ResourceManager', 'resourceType' => 'MessageContact', 'arn' => 'acs:resourcemanager:*:{#accountId}:messagecontact/*'],
],
],
- [
- 'name' => 'PageSize',
- 'in' => 'query',
- 'schema' => [
- 'description' => 'The number of entries to return on each page.'."\n"
- ."\n"
- .'Valid values: 1 to 100. Default value: 10.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'required' => false,
- 'example' => '10',
+ ],
+ [
+ 'apiName' => 'GetMessageContact',
+ 'description' => '',
+ 'operationType' => 'get',
+ 'ramAction' => [
+ 'action' => 'resourcemanager:GetMessageContact',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ResourceManager', 'resourceType' => 'MessageContact', 'arn' => 'acs:resourcemanager:*:{#accountId}:messagecontact/{#MessageContactId}'],
],
],
- [
- 'name' => 'AdminAccountId',
- 'in' => 'query',
- 'schema' => [
- 'description' => 'The ID of the management account or delegated administrator account.'."\n"
- ."\n"
- .'* If you set this parameter to the ID of a management account, the trusted services that are enabled within the management account are queried. The default value of this parameter is the ID of an management account.'."\n"
- .'* If you set this parameter to the ID of a delegated administrator account, the trusted services that are enabled within the delegated administrator account are queried.'."\n"
- ."\n"
- .'For more information about trusted services and delegated administrator accounts, see [Overview of trusted services](~~208133~~) and [Delegated administrator accounts](~~208117~~).'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => '177242285274****',
+ ],
+ [
+ 'apiName' => 'TagResources',
+ 'description' => '',
+ 'operationType' => 'update',
+ 'ramAction' => [
+ 'action' => 'resourcemanager:TagResources',
+ 'authLevel' => 'operate',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ResourceManager', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
- 'responses' => [
- 200 => [
- 'schema' => [
- 'description' => 'The returned result.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'TotalCount' => [
- 'description' => 'The total number of entries returned.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'example' => '2',
- ],
- 'RequestId' => [
- 'description' => 'The ID of the request.'."\n",
- 'type' => 'string',
- 'example' => 'CD76D376-2517-4924-92C5-DBC52262F93A',
- ],
- 'PageSize' => [
- 'description' => 'The number of entries returned per page.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'example' => '10',
- ],
- 'PageNumber' => [
- 'description' => 'The page number of the returned page.'."\n",
- 'type' => 'integer',
- 'format' => 'int32',
- 'example' => '1',
- ],
- 'EnabledServicePrincipals' => [
- 'type' => 'object',
- 'itemNode' => true,
- 'properties' => [
- 'EnabledServicePrincipal' => [
- 'description' => 'The information about the trusted services that are enabled.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The information about a trusted service that is enabled.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'ServicePrincipal' => [
- 'description' => 'The identifier of the trusted service.'."\n",
- 'type' => 'string',
- 'example' => 'config.aliyuncs.com',
- ],
- 'EnableTime' => [
- 'description' => 'The time when the trusted service was enabled.'."\n",
- 'type' => 'string',
- 'example' => '2019-02-18T15:32:10.473Z',
- ],
- ],
- ],
- ],
- ],
- ],
- ],
+ [
+ 'apiName' => 'UntagResources',
+ 'description' => '',
+ 'operationType' => 'update',
+ 'ramAction' => [
+ 'action' => 'resourcemanager:UntagResources',
+ 'authLevel' => 'operate',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ResourceManager', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
- 'errorCodes' => [
- 404 => [
- [
- 'errorCode' => 'EntityNotExists.ResourceDirectory',
- 'errorMessage' => 'The resource directory for the account is not enabled. We recommend that you first enable the resource directory for the account.',
+ [
+ 'apiName' => 'UpdateControlPolicy',
+ 'description' => '',
+ 'operationType' => 'update',
+ 'ramAction' => [
+ 'action' => 'resourcemanager:UpdateControlPolicy',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ResourceManager', 'resourceType' => 'ControlPolicy', 'arn' => 'acs:resourcemanager::{#accountId}:policy/controlpolicy/{#PolicyId}'],
],
],
],
- 'responseDemo' => '[{"type":"json","example":"{\\n \\"TotalCount\\": 2,\\n \\"RequestId\\": \\"CD76D376-2517-4924-92C5-DBC52262F93A\\",\\n \\"PageSize\\": 10,\\n \\"PageNumber\\": 1,\\n \\"EnabledServicePrincipals\\": {\\n \\"EnabledServicePrincipal\\": [\\n {\\n \\"ServicePrincipal\\": \\"config.aliyuncs.com\\",\\n \\"EnableTime\\": \\"2019-02-18T15:32:10.473Z\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<?xml version=\\"1.0\\" encoding=\\"UTF-8\\" ?>\\r\\n<ListTrustedServiceStatusResponse>\\r\\n <EnabledServicePrincipal>\\r\\n <ServicePrincipal>config.aliyuncs.com</ServicePrincipal>\\r\\n <EnableTime>2019-02-18T15:32:10.473Z</EnableTime>\\r\\n </EnabledServicePrincipal>\\r\\n <EnabledServicePrincipal>\\r\\n <ServicePrincipal>actiontrail.aliyuncs.com</ServicePrincipal>\\r\\n <EnableTime>2019-02-16T15:32:10.473Z</EnableTime>\\r\\n </EnabledServicePrincipal>\\r\\n <RequestId>CD76D376-2517-4924-92C5-DBC52262F93A</RequestId>\\r\\n</ListTrustedServiceStatusResponse>","errorExample":""}]',
- 'title' => 'ListTrustedServiceStatus',
- 'summary' => 'Queries the trusted services that are enabled within a management account or delegated administrator account.',
- 'description' => 'Only a management account or delegated administrator account can be used to call this operation.'."\n",
- 'responseParamsDescription' => ' ',
- 'extraInfo' => ' ',
- ],
- 'RegisterDelegatedAdministrator' => [
- 'methods' => [
- 'post',
- 'get',
+ [
+ 'apiName' => 'GetFolder',
+ 'description' => '',
+ 'operationType' => 'get',
+ 'ramAction' => [
+ 'action' => 'resourcemanager:GetFolder',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ResourceManager', 'resourceType' => 'Folder', 'arn' => 'acs:resourcemanager::{#accountId}:folder/{#ResourceDirectoryPath}'],
+ ],
+ ],
],
- 'schemes' => [
- 'http',
- 'https',
+ [
+ 'apiName' => 'DestroyResourceDirectory',
+ 'description' => '',
+ 'operationType' => 'delete',
+ 'ramAction' => [
+ 'action' => 'resourcemanager:DestroyResourceDirectory',
+ 'authLevel' => 'operate',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ResourceManager', 'resourceType' => 'All Resource', 'arn' => '*'],
+ ],
+ ],
],
- 'security' => [
- [
- 'AK' => [],
+ [
+ 'apiName' => 'GetResourceDirectory',
+ 'description' => '',
+ 'operationType' => 'get',
+ 'ramAction' => [
+ 'action' => 'resourcemanager:GetResourceDirectory',
+ 'authLevel' => 'operate',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ResourceManager', 'resourceType' => 'All Resource', 'arn' => '*'],
+ ],
],
],
- 'operationType' => 'readAndWrite',
- 'deprecated' => false,
- 'systemTags' => [
+ [
+ 'apiName' => 'DeregisterDelegatedAdministrator',
+ 'description' => '',
+ 'operationType' => 'delete',
+ 'ramAction' => [
+ 'action' => 'resourcemanager:DeregisterDelegatedAdministrator',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ResourceManager', 'resourceType' => 'Account', 'arn' => 'acs:resourcemanager::{#accountId}:account/{#ResourceDirectoryPath}'],
+ ],
+ ],
+ ],
+ [
+ 'apiName' => 'EnableResourceDirectory',
+ 'description' => '',
'operationType' => 'create',
+ 'ramAction' => [
+ 'action' => 'resourcemanager:EnableResourceDirectory',
+ 'authLevel' => 'operate',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ResourceManager', 'resourceType' => 'All Resource', 'arn' => '*'],
+ ],
+ ],
],
- 'parameters' => [
- [
- 'name' => 'AccountId',
- 'in' => 'query',
- 'schema' => [
- 'description' => 'The Alibaba Cloud account ID of the member in the resource directory.'."\n",
- 'type' => 'string',
- 'required' => true,
- 'example' => '181761095690****',
+ [
+ 'apiName' => 'ListAccounts',
+ 'description' => '',
+ 'operationType' => 'list',
+ 'ramAction' => [
+ 'action' => 'resourcemanager:ListAccounts',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ResourceManager', 'resourceType' => 'Account', 'arn' => 'acs:resourcemanager::{#accountId}:account/*'],
],
],
- [
- 'name' => 'ServicePrincipal',
- 'in' => 'query',
- 'schema' => [
- 'description' => 'The identifier of the trusted service.'."\n"
- ."\n"
- .'For more information, see the `Trusted service identifier` column in [Supported trusted services](~~208133~~).'."\n",
- 'type' => 'string',
- 'required' => true,
- 'example' => 'cloudfw.aliyuncs.com',
+ ],
+ [
+ 'apiName' => 'ListTargetAttachmentsForControlPolicy',
+ 'description' => '',
+ 'operationType' => 'list',
+ 'ramAction' => [
+ 'action' => 'resourcemanager:ListTargetAttachmentsForControlPolicy',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ResourceManager', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
- 'responses' => [
- 200 => [
- 'schema' => [
- 'description' => 'The returned result.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'RequestId' => [
- 'description' => 'The ID of the request.'."\n",
- 'type' => 'string',
- 'example' => '0A45FC8F-54D2-4A65-8338-25E5DEBDA304',
- ],
- ],
+ [
+ 'apiName' => 'GetControlPolicy',
+ 'description' => '',
+ 'operationType' => 'get',
+ 'ramAction' => [
+ 'action' => 'resourcemanager:GetControlPolicy',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ResourceManager', 'resourceType' => 'ControlPolicy', 'arn' => 'acs:resourcemanager::{#accountId}:policy/controlpolicy/{#PolicyId}'],
],
],
],
- 'errorCodes' => [
- 409 => [
- [
- 'errorCode' => 'InvalidParameter.ServicePrincipal',
- 'errorMessage' => 'The specified ServicePrincipal is invalid.',
+ [
+ 'apiName' => 'UpdateAccount',
+ 'description' => '',
+ 'operationType' => 'update',
+ 'ramAction' => [
+ 'action' => 'resourcemanager:UpdateAccount',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ResourceManager', 'resourceType' => 'Account', 'arn' => 'acs:resourcemanager::{#accountId}:account/{#ResourceDirectoryPath}'],
],
- [
- 'errorCode' => 'AccountAlreadyRegistered',
- 'errorMessage' => 'The specified account is already a delegated administrator for this service.',
+ ],
+ ],
+ [
+ 'apiName' => 'CreateFolder',
+ 'description' => '',
+ 'operationType' => 'create',
+ 'ramAction' => [
+ 'action' => 'resourcemanager:CreateFolder',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ResourceManager', 'resourceType' => 'Folder', 'arn' => 'acs:resourcemanager::{#accountId}:folder/{#ResourceDirectoryPath}'],
],
- [
- 'errorCode' => 'DelegatedAccountNumberExceeded',
- 'errorMessage' => 'The maximum number of delegated administrators for the service principal is exceeded.',
+ ],
+ ],
+ [
+ 'apiName' => 'AttachControlPolicy',
+ 'description' => '',
+ 'operationType' => 'update',
+ 'ramAction' => [
+ 'action' => 'resourcemanager:AttachControlPolicy',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ResourceManager', 'resourceType' => 'Account', 'arn' => 'acs:resourcemanager::{#accountId}:account/{#ResourceDirectoryPath}'],
+ ['validationType' => 'always', 'product' => 'ResourceManager', 'resourceType' => 'Folder', 'arn' => 'acs:resourcemanager::{#accountId}:folder/{#ResourceDirectoryPath}'],
+ ['validationType' => 'always', 'product' => 'ResourceManager', 'resourceType' => 'ControlPolicy', 'arn' => 'acs:resourcemanager::{#accountId}:policy/controlpolicy/{#PolicyId}'],
],
- [
- 'errorCode' => 'CannotRegisterMasterAsDelegatedAdministrator',
- 'errorMessage' => 'You attempted to register the enterprise management account as a delegated administrator for the service. You can designate only a member account as a delegated administrator.',
+ ],
+ ],
+ [
+ 'apiName' => 'RemoveCloudAccount',
+ 'description' => '',
+ 'operationType' => 'delete',
+ 'ramAction' => [
+ 'action' => 'resourcemanager:RemoveCloudAccount',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ResourceManager', 'resourceType' => 'Account', 'arn' => 'acs:resourcemanager::{#accountId}:account/{#ResourceDirectoryPath}'],
],
],
],
- 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"0A45FC8F-54D2-4A65-8338-25E5DEBDA304\\"\\n}","errorExample":""},{"type":"xml","example":"<?xml version=\\"1.0\\" encoding=\\"UTF-8\\" ?>\\r\\n<RegisterDelegatedAdministratorResponse>\\r\\n\\t<RequestId>0A45FC8F-54D2-4A65-8338-25E5DEBDA304</RequestId>\\r\\n</RegisterDelegatedAdministratorResponse>\\t\\r\\n","errorExample":""}]',
- 'title' => 'RegisterDelegatedAdministrator',
- 'summary' => 'Specifies a member in a resource directory as a delegated administrator account of a trusted service.',
- 'description' => 'The delegated administrator account can be used to access the information of the resource directory and view the structure and members of the resource directory. The delegated administrator account can also be used to perform service-related management operations in the trusted service on behalf of the management account of the resource directory. When you call this operation, you must take note of the following limits:'."\n"
- ."\n"
- .'* Only some trusted services support delegated administrator accounts. For more information, see [Supported trusted services](~~208133~~).'."\n"
- .'* Only the management account of a resource directory or an authorized RAM user or RAM role of the management account can be used to call this operation.'."\n"
- .'* The number of delegated administrator accounts that are allowed for a trusted service is defined by the trusted service.'."\n",
- 'responseParamsDescription' => ' ',
- 'extraInfo' => ' ',
- ],
- 'DeregisterDelegatedAdministrator' => [
- 'summary' => 'Removes a delegated administrator account for a trusted service.',
- 'methods' => [
- 'post',
- 'get',
+ [
+ 'apiName' => 'GetHandshake',
+ 'description' => '',
+ 'operationType' => 'get',
+ 'ramAction' => [
+ 'action' => 'resourcemanager:GetHandshake',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ResourceManager', 'resourceType' => 'Handshake', 'arn' => 'acs:resourcemanager::{#accountId}:handshake/{#HandshakeId}'],
+ ],
+ ],
],
- 'schemes' => [
- 'http',
- 'https',
+ [
+ 'apiName' => 'RegisterDelegatedAdministrator',
+ 'description' => '',
+ 'operationType' => 'create',
+ 'ramAction' => [
+ 'action' => 'resourcemanager:RegisterDelegatedAdministrator',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ResourceManager', 'resourceType' => 'DelegatedAdministrator', 'arn' => 'acs:resourcemanager::{#accountId}:account/{#ResourceDirectoryPath}'],
+ ],
+ ],
],
- 'security' => [
- [
- 'AK' => [],
+ [
+ 'apiName' => 'ListHandshakesForResourceDirectory',
+ 'description' => '',
+ 'operationType' => 'list',
+ 'ramAction' => [
+ 'action' => 'resourcemanager:ListHandshakesForResourceDirectory',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ResourceManager', 'resourceType' => 'Handshake', 'arn' => 'acs:resourcemanager::{#accountId}:handshake/*'],
+ ],
],
],
- 'operationType' => 'readAndWrite',
- 'deprecated' => false,
- 'systemTags' => [
- 'operationType' => 'delete',
+ [
+ 'apiName' => 'SendVerificationCodeForEnableRD',
+ 'description' => '',
+ 'operationType' => 'none',
+ 'ramAction' => [
+ 'action' => 'resourcemanager:SendVerificationCodeForEnableRD',
+ 'authLevel' => 'operate',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ResourceManager', 'resourceType' => 'All Resource', 'arn' => '*'],
+ ],
+ ],
],
- 'parameters' => [
- [
- 'name' => 'AccountId',
- 'in' => 'query',
- 'schema' => [
- 'description' => 'The Alibaba Cloud account ID of the member in the resource directory.'."\n",
- 'type' => 'string',
- 'required' => true,
- 'example' => '181761095690****',
+ [
+ 'apiName' => 'CancelMessageContactUpdate',
+ 'description' => '',
+ 'operationType' => 'update',
+ 'ramAction' => [
+ 'action' => 'resourcemanager:CancelMessageContactUpdate',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ResourceManager', 'resourceType' => 'MessageContact', 'arn' => 'acs:resourcemanager:*:{#accountId}:messagecontact/{#MessageContactId}'],
],
],
- [
- 'name' => 'ServicePrincipal',
- 'in' => 'query',
- 'schema' => [
- 'description' => 'The identifier of the trusted service.'."\n",
- 'type' => 'string',
- 'required' => true,
- 'example' => 'cloudfw.aliyuncs.com',
+ ],
+ [
+ 'apiName' => 'ListAccountsForParent',
+ 'description' => '',
+ 'operationType' => 'list',
+ 'ramAction' => [
+ 'action' => 'resourcemanager:ListAccountsForParent',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ResourceManager', 'resourceType' => 'Folder', 'arn' => 'acs:resourcemanager::{#accountId}:folder/{#ResourceDirectoryPath}'],
],
],
],
- 'responses' => [
- 200 => [
- 'schema' => [
- 'description' => 'The returned result.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'RequestId' => [
- 'description' => 'The ID of the request.'."\n",
- 'type' => 'string',
- 'example' => 'DF5D5C52-7BD0-40E7-94C6-23A1505038A2',
- ],
- ],
+ [
+ 'apiName' => 'ListControlPolicies',
+ 'description' => '',
+ 'operationType' => 'list',
+ 'ramAction' => [
+ 'action' => 'resourcemanager:ListControlPolicies',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ResourceManager', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
- 'errorCodes' => [
- 409 => [
- [
- 'errorCode' => 'InvalidParameter.ServicePrincipal',
- 'errorMessage' => 'The specified ServicePrincipal is invalid.',
+ [
+ 'apiName' => 'SendPhoneVerificationForMessageContact',
+ 'description' => '',
+ 'operationType' => 'none',
+ 'ramAction' => [
+ 'action' => 'resourcemanager:SendPhoneVerificationForMessageContact',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ResourceManager', 'resourceType' => 'MessageContact', 'arn' => 'acs:resourcemanager:*:{#accountId}:messagecontact/{#MessageContactId}'],
],
- [
- 'errorCode' => 'AccountNotRegistered',
- 'errorMessage' => 'The specified account is not a delegated administrator for this service.',
+ ],
+ ],
+ [
+ 'apiName' => 'ListAncestors',
+ 'description' => '',
+ 'operationType' => 'list',
+ 'ramAction' => [
+ 'action' => 'resourcemanager:ListAncestors',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ResourceManager', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
- 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"DF5D5C52-7BD0-40E7-94C6-23A1505038A2\\"\\n}","errorExample":""},{"type":"xml","example":"<?xml version=\\"1.0\\" encoding=\\"UTF-8\\" ?>\\r\\n<DeregisterDelegatedAdministratorResponse>\\r\\n\\t<RequestId>DF5D5C52-7BD0-40E7-94C6-23A1505038A2</RequestId>\\r\\n</DeregisterDelegatedAdministratorResponse>\\t\\r\\n","errorExample":""}]',
- 'title' => 'DeregisterDelegatedAdministrator',
- 'description' => 'If the delegated administrator account that you want to remove has historical management tasks in the related trusted service, the trusted service may be affected after the delegated administrator account is removed. Therefore, proceed with caution.'."\n",
- 'responseParamsDescription' => ' ',
- 'extraInfo' => ' ',
- ],
- 'ListDelegatedAdministrators' => [
- 'summary' => 'Queries delegated administrator accounts.',
- 'methods' => [
- 'post',
- 'get',
+ [
+ 'apiName' => 'SetMemberDeletionPermission',
+ 'description' => '',
+ 'operationType' => 'update',
+ 'ramAction' => [
+ 'action' => 'resourcemanager:SetMemberDeletionPermission',
+ 'authLevel' => 'operate',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ResourceManager', 'resourceType' => 'All Resource', 'arn' => '*'],
+ ],
+ ],
],
- 'schemes' => [
- 'http',
- 'https',
+ [
+ 'apiName' => 'SendEmailVerificationForMessageContact',
+ 'description' => '',
+ 'operationType' => 'none',
+ 'ramAction' => [
+ 'action' => 'resourcemanager:SendEmailVerificationForMessageContact',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ResourceManager', 'resourceType' => 'MessageContact', 'arn' => 'acs:resourcemanager:*:{#accountId}:messagecontact/{#MessageContactId}'],
+ ],
+ ],
],
- 'security' => [
- [
- 'AK' => [],
+ [
+ 'apiName' => 'GetControlPolicyEnablementStatus',
+ 'description' => '',
+ 'operationType' => 'get',
+ 'ramAction' => [
+ 'action' => 'resourcemanager:GetControlPolicyEnablementStatus',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ResourceManager', 'resourceType' => 'ResourceDirectory', 'arn' => 'acs:resourcemanager::{#accountId}:policy/controlpolicy/*'],
+ ],
],
],
- 'operationType' => 'read',
- 'deprecated' => false,
- 'systemTags' => [
+ [
+ 'apiName' => 'ListAuthorizedFolders',
+ 'description' => '',
'operationType' => 'list',
+ 'ramAction' => [
+ 'action' => 'resourcemanager:ListAuthorizedFolders',
+ 'authLevel' => 'operate',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ResourceManager', 'resourceType' => 'All Resource', 'arn' => '*'],
+ ],
+ ],
],
- 'parameters' => [
- [
- 'name' => 'ServicePrincipal',
- 'in' => 'query',
- 'schema' => [
- 'description' => 'The identifier of the trusted service.'."\n"
- ."\n"
- .'For more information, see the `Trusted service identifier` column in [Supported trusted services](~~208133~~).'."\n",
- 'type' => 'string',
- 'required' => false,
- 'example' => 'cloudfw.aliyuncs.com',
+ [
+ 'apiName' => 'CancelHandshake',
+ 'description' => '',
+ 'operationType' => 'update',
+ 'ramAction' => [
+ 'action' => 'resourcemanager:CancelHandshake',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ResourceManager', 'resourceType' => 'Handshake', 'arn' => 'acs:resourcemanager::{#accountId}:handshake/{#HandshakeId}'],
],
],
- [
- 'name' => 'PageNumber',
- 'in' => 'query',
- 'schema' => [
- 'description' => 'The number of the page to return.'."\n"
- ."\n"
- .'Pages start from page 1. Default value: 1.'."\n",
- 'type' => 'integer',
- 'format' => 'int64',
- 'required' => false,
- 'example' => '1',
+ ],
+ [
+ 'apiName' => 'ListMessageContactVerifications',
+ 'description' => '',
+ 'operationType' => 'list',
+ 'ramAction' => [
+ 'action' => 'resourcemanager:ListMessageContactVerifications',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ResourceManager', 'resourceType' => 'MessageContact', 'arn' => 'acs:resourcemanager:*:{#accountId}:messagecontact/{#MessageContactId}'],
],
],
- [
- 'name' => 'PageSize',
- 'in' => 'query',
- 'schema' => [
- 'description' => 'The number of entries to return on each page.'."\n"
- ."\n"
- .'Valid values: 1 to 100. Default value: 10.'."\n",
- 'type' => 'integer',
- 'format' => 'int64',
- 'required' => false,
- 'example' => '10',
+ ],
+ [
+ 'apiName' => 'InviteAccountToResourceDirectory',
+ 'description' => '',
+ 'operationType' => 'create',
+ 'ramAction' => [
+ 'action' => 'resourcemanager:InviteAccountToResourceDirectory',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ResourceManager', 'resourceType' => 'Handshake', 'arn' => 'acs:resourcemanager:*:{#accountId}:handshake/*'],
+ ['validationType' => 'always', 'product' => 'ResourceManager', 'resourceType' => 'Folder', 'arn' => 'acs:resourcemanager:*:{#accountId}:folder/{#ResourceDirectoryPath}'],
],
],
],
- 'responses' => [
- 200 => [
- 'schema' => [
- 'description' => 'The returned result.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'RequestId' => [
- 'description' => 'The ID of the request.'."\n",
- 'type' => 'string',
- 'example' => '009C3A02-7D4B-416C-9CE7-548C91508F1E',
- ],
- 'TotalCount' => [
- 'description' => 'The total number of entries returned.'."\n",
- 'type' => 'integer',
- 'format' => 'int64',
- 'example' => '2',
- ],
- 'PageSize' => [
- 'description' => 'The number of entries returned per page.'."\n",
- 'type' => 'integer',
- 'format' => 'int64',
- 'example' => '10',
- ],
- 'PageNumber' => [
- 'description' => 'The page number of the returned page.'."\n",
- 'type' => 'integer',
- 'format' => 'int64',
- 'example' => '1',
- ],
- 'Accounts' => [
- 'type' => 'object',
- 'itemNode' => true,
- 'properties' => [
- 'Account' => [
- 'description' => 'The information about the delegated administrator accounts.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The information about a delegated administrator account.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'AccountId' => [
- 'description' => 'The Alibaba Cloud account ID of the member.'."\n",
- 'type' => 'string',
- 'example' => '138660628348****',
- ],
- 'DisplayName' => [
- 'description' => 'The display name of the member.'."\n",
- 'type' => 'string',
- 'example' => 'abc',
- ],
- 'JoinMethod' => [
- 'description' => 'The way in which the member joins the resource directory. Valid values:'."\n"
- ."\n"
- .'* invited: The member is invited to join the resource directory.'."\n"
- .'* created: The member is directly created in the resource directory.'."\n",
- 'type' => 'string',
- 'example' => 'created',
- ],
- 'ServicePrincipal' => [
- 'description' => 'The identifier of the trusted service.'."\n",
- 'type' => 'string',
- 'example' => 'cloudfw.aliyuncs.com',
- ],
- 'DelegationEnabledTime' => [
- 'description' => 'The time when the member was specified as a delegated administrator account.'."\n",
- 'type' => 'string',
- 'example' => '1616652684164',
- ],
- ],
- ],
- ],
- ],
- ],
- ],
+ [
+ 'apiName' => 'UpdateFolder',
+ 'description' => '',
+ 'operationType' => 'update',
+ 'ramAction' => [
+ 'action' => 'resourcemanager:UpdateFolder',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ResourceManager', 'resourceType' => 'Folder', 'arn' => 'acs:resourcemanager::{#accountId}:folder/{#ResourceDirectoryPath}'],
],
],
],
- 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"009C3A02-7D4B-416C-9CE7-548C91508F1E\\",\\n \\"TotalCount\\": 2,\\n \\"PageSize\\": 10,\\n \\"PageNumber\\": 1,\\n \\"Accounts\\": {\\n \\"Account\\": [\\n {\\n \\"AccountId\\": \\"138660628348****\\",\\n \\"DisplayName\\": \\"abc\\",\\n \\"JoinMethod\\": \\"created\\",\\n \\"ServicePrincipal\\": \\"cloudfw.aliyuncs.com\\",\\n \\"DelegationEnabledTime\\": \\"1616652684164\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<?xml version=\\"1.0\\" encoding=\\"UTF-8\\" ?>\\r\\n<ListDelegatedAdministratorsResponse>\\r\\n\\t<RequestId>009C3A02-7D4B-416C-9CE7-548C91508F1E</RequestId>\\r\\n\\t<TotalCount>2</TotalCount>\\r\\n\\t<PageSize>10</PageSize>\\r\\n\\t<PageNumber>1</PageNumber>\\r\\n\\t<Accounts>\\r\\n\\t\\t<Account>\\r\\n\\t\\t\\t<DelegationEnabledTime>1616652684164</DelegationEnabledTime>\\r\\n\\t\\t\\t<JoinMethod>created</JoinMethod>\\r\\n\\t\\t\\t<AccountId>138660628348****</AccountId>\\r\\n\\t\\t\\t<ServicePrincipal>cloudfw.aliyuncs.com</ServicePrincipal>\\r\\n\\t\\t\\t<DisplayName>abc</DisplayName>\\r\\n\\t\\t</Account>\\r\\n\\t\\t<Account>\\r\\n\\t\\t\\t<DelegationEnabledTime>1616489836069</DelegationEnabledTime>\\r\\n\\t\\t\\t<JoinMethod>invited</JoinMethod>\\r\\n\\t\\t\\t<AccountId>177242285274****</AccountId>\\r\\n\\t\\t\\t<ServicePrincipal>cloudfw.aliyuncs.com</ServicePrincipal>\\r\\n\\t\\t\\t<DisplayName>test</DisplayName>\\r\\n\\t\\t</Account>\\r\\n\\t</Accounts>\\r\\n</ListDelegatedAdministratorsResponse>\\t\\r\\n","errorExample":""}]',
- 'title' => 'ListDelegatedAdministrators',
- 'responseParamsDescription' => ' ',
- 'extraInfo' => ' ',
- ],
- 'ListDelegatedServicesForAccount' => [
- 'summary' => 'Queries the trusted services for which a member is specified as a delegated administrator account.',
- 'methods' => [
- 'post',
- 'get',
+ [
+ 'apiName' => 'DeclineHandshake',
+ 'description' => '',
+ 'operationType' => 'update',
+ 'ramAction' => [
+ 'action' => 'resourcemanager:DeclineHandshake',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ResourceManager', 'resourceType' => 'Handshake', 'arn' => 'acs:resourcemanager::{#accountId}:handshake/{#HandshakeId}'],
+ ],
+ ],
],
- 'schemes' => [
- 'http',
- 'https',
+ [
+ 'apiName' => 'GetMessageContactDeletionStatus',
+ 'description' => '',
+ 'operationType' => 'get',
+ 'ramAction' => [
+ 'action' => 'resourcemanager:GetMessageContactDeletionStatus',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ResourceManager', 'resourceType' => 'MessageContact', 'arn' => 'acs:resourcemanager:*:{#accountId}:messagecontact/{#MessageContactId}'],
+ ],
+ ],
],
- 'security' => [
- [
- 'AK' => [],
+ [
+ 'apiName' => 'AcceptHandshake',
+ 'description' => '',
+ 'operationType' => 'update',
+ 'ramAction' => [
+ 'action' => 'resourcemanager:AcceptHandshake',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ResourceManager', 'resourceType' => 'Handshake', 'arn' => 'acs:resourcemanager::{#accountId}:handshake/{#HandshakeId}'],
+ ],
],
],
- 'operationType' => 'read',
- 'deprecated' => false,
- 'systemTags' => [
+ [
+ 'apiName' => 'ListTrustedServiceStatus',
+ 'description' => '',
'operationType' => 'list',
- 'riskType' => 'none',
- 'chargeType' => 'free',
+ 'ramAction' => [
+ 'action' => 'resourcemanager:ListTrustedServiceStatus',
+ 'authLevel' => 'operate',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ResourceManager', 'resourceType' => 'All Resource', 'arn' => '*'],
+ ],
+ ],
],
- 'parameters' => [
- [
- 'name' => 'AccountId',
- 'in' => 'query',
- 'schema' => [
- 'description' => 'The Alibaba Cloud account ID of the member.'."\n",
- 'type' => 'string',
- 'required' => true,
- 'example' => '138660628348****',
+ [
+ 'apiName' => 'SetMemberDisplayNameSyncStatus',
+ 'description' => '',
+ 'operationType' => 'update',
+ 'ramAction' => [
+ 'action' => 'resourcemanager:SetMemberDisplayNameSyncStatus',
+ 'authLevel' => 'operate',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ResourceManager', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
- [
- 'name' => 'NextToken',
- 'in' => 'query',
- 'schema' => [
- 'title' => '当请求的返回结果被截断时,您可以使用NextToken再次发起请求,获取从当前截断位置之后的内容。',
- 'type' => 'string',
- 'required' => false,
- 'example' => 'TGlzdFJlc291cm****',
+ ],
+ [
+ 'apiName' => 'CreateResourceAccount',
+ 'description' => '',
+ 'operationType' => 'create',
+ 'ramAction' => [
+ 'action' => 'resourcemanager:CreateResourceAccount',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ResourceManager', 'resourceType' => 'Folder', 'arn' => 'acs:resourcemanager:*:{#accountId}:folder/{#ResourceDirectoryPath}'],
],
],
- [
- 'name' => 'MaxResults',
- 'in' => 'query',
- 'schema' => [
- 'title' => '单次请求返回结果的最大条数。取值范围:1~100。默认值:10。',
- 'type' => 'integer',
- 'format' => 'int32',
- 'example' => '20',
+ ],
+ [
+ 'apiName' => 'ListTagResources',
+ 'description' => '',
+ 'operationType' => 'list',
+ 'ramAction' => [
+ 'action' => 'resourcemanager:ListTagResources',
+ 'authLevel' => 'operate',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ResourceManager', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
- 'responses' => [
- 200 => [
- 'schema' => [
- 'description' => 'The returned result.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'RequestId' => [
- 'description' => 'The ID of the request.'."\n",
- 'type' => 'string',
- 'example' => 'D9C03B94-9396-4794-A74B-13DC437556A6',
- ],
- 'DelegatedServices' => [
- 'type' => 'object',
- 'itemNode' => true,
- 'properties' => [
- 'DelegatedService' => [
- 'description' => 'The information about the trusted services.'."\n"
- ."\n"
- .'> If the value of this parameter is empty, the member is not specified as a delegated administrator account.'."\n",
- 'type' => 'array',
- 'items' => [
- 'description' => 'The information about a trusted service.'."\n"
- ."\n"
- .'> If the value of this parameter is empty, the member is not specified as a delegated administrator account.'."\n",
- 'type' => 'object',
- 'properties' => [
- 'DelegationEnabledTime' => [
- 'description' => 'The time when the member was specified as a delegated administrator account.'."\n",
- 'type' => 'string',
- 'example' => '1616652684164',
- ],
- 'ServicePrincipal' => [
- 'description' => 'The identifier of the trusted service.'."\n",
- 'type' => 'string',
- 'example' => 'cloudfw.aliyuncs.com',
- ],
- 'Status' => [
- 'description' => 'The status of the trusted service. Valid values:'."\n"
- ."\n"
- .'* ENABLED: enabled'."\n"
- .'* DISABLED: disabled'."\n",
- 'type' => 'string',
- 'example' => 'ENABLED',
- ],
- ],
- ],
- ],
- ],
- ],
- 'NextToken' => [
- 'title' => '当请求的返回结果被截断时,您可以使用NextToken再次发起请求,获取从当前截断位置之后的内容。',
- 'type' => 'string',
- 'example' => 'TGlzdFJlc291cm****',
- ],
- 'MaxResults' => [
- 'title' => '单次请求返回结果的最大条数。',
- 'type' => 'integer',
- 'format' => 'int32',
- 'example' => '20',
- ],
- ],
+ [
+ 'apiName' => 'DeleteMessageContact',
+ 'description' => '',
+ 'operationType' => 'delete',
+ 'ramAction' => [
+ 'action' => 'resourcemanager:DeleteMessageContact',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ResourceManager', 'resourceType' => 'MessageContact', 'arn' => 'acs:resourcemanager:*:{#accountId}:messagecontact/{#MessageContactId}'],
+ ],
+ ],
+ ],
+ [
+ 'apiName' => 'UpdateMessageContact',
+ 'description' => '',
+ 'operationType' => 'update',
+ 'ramAction' => [
+ 'action' => 'resourcemanager:UpdateMessageContact',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ResourceManager', 'resourceType' => 'MessageContact', 'arn' => 'acs:resourcemanager:*:{#accountId}:messagecontact/{#MessageContactId}'],
+ ],
+ ],
+ ],
+ [
+ 'apiName' => 'ListAuthorizedAccounts',
+ 'description' => '',
+ 'operationType' => 'list',
+ 'ramAction' => [
+ 'action' => 'resourcemanager:ListAuthorizedAccounts',
+ 'authLevel' => 'operate',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ResourceManager', 'resourceType' => 'All Resource', 'arn' => '*'],
+ ],
+ ],
+ ],
+ [
+ 'apiName' => 'ListTagValues',
+ 'description' => '',
+ 'operationType' => 'list',
+ 'ramAction' => [
+ 'action' => 'resourcemanager:ListTagValues',
+ 'authLevel' => 'operate',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ResourceManager', 'resourceType' => 'All Resource', 'arn' => '*'],
+ ],
+ ],
+ ],
+ [
+ 'apiName' => 'DisableControlPolicy',
+ 'description' => '',
+ 'operationType' => 'update',
+ 'ramAction' => [
+ 'action' => 'resourcemanager:DisableControlPolicy',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ResourceManager', 'resourceType' => 'ResourceDirectory', 'arn' => 'acs:resourcemanager::{#accountId}:policy/controlpolicy/*'],
+ ],
+ ],
+ ],
+ [
+ 'apiName' => 'GetPayerForAccount',
+ 'description' => '',
+ 'operationType' => 'get',
+ 'ramAction' => [
+ 'action' => 'resourcemanager:GetPayerForAccount',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ResourceManager', 'resourceType' => 'Account', 'arn' => 'acs:resourcemanager::{#accountId}:account/{#ResourceDirectoryPath}'],
+ ],
+ ],
+ ],
+ [
+ 'apiName' => 'ChangeAccountEmail',
+ 'description' => '',
+ 'operationType' => 'update',
+ 'ramAction' => [
+ 'action' => 'resourcemanager:ChangeAccountEmail',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ResourceManager', 'resourceType' => 'All Resource', 'arn' => '*'],
+ ],
+ ],
+ ],
+ [
+ 'apiName' => 'DeleteAccount',
+ 'description' => '',
+ 'operationType' => 'delete',
+ 'ramAction' => [
+ 'action' => 'resourcemanager:DeleteAccount',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ResourceManager', 'resourceType' => 'Account', 'arn' => 'acs:resourcemanager::{#accountId}:account/{#ResourceDirectoryPath}'],
+ ],
+ ],
+ ],
+ [
+ 'apiName' => 'ListControlPolicyAttachmentsForTarget',
+ 'description' => '',
+ 'operationType' => 'list',
+ 'ramAction' => [
+ 'action' => 'resourcemanager:ListControlPolicyAttachmentsForTarget',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ResourceManager', 'resourceType' => 'All Resource', 'arn' => '*'],
+ ],
+ ],
+ ],
+ [
+ 'apiName' => 'DeleteFolder',
+ 'description' => '',
+ 'operationType' => 'delete',
+ 'ramAction' => [
+ 'action' => 'resourcemanager:DeleteFolder',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ResourceManager', 'resourceType' => 'Folder', 'arn' => 'acs:resourcemanager::{#accountId}:folder/{#ResourceDirectoryPath}'],
+ ],
+ ],
+ ],
+ [
+ 'apiName' => 'UpdatePayerForAccount',
+ 'description' => '',
+ 'operationType' => 'update',
+ 'ramAction' => [
+ 'action' => 'resourcemanager:UpdatePayerForAccount',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ResourceManager', 'resourceType' => 'Account', 'arn' => 'acs:resourcemanager::{#accountId}:account/{#ResourceDirectoryPath}'],
+ ],
+ ],
+ ],
+ [
+ 'apiName' => 'ListMessageContacts',
+ 'description' => '',
+ 'operationType' => 'list',
+ 'ramAction' => [
+ 'action' => 'resourcemanager:ListMessageContacts',
+ 'authLevel' => 'resource',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'ResourceManager', 'resourceType' => 'MessageContact', 'arn' => 'acs:resourcemanager:*:{#accountId}:messagecontact/*'],
],
],
],
- 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"D9C03B94-9396-4794-A74B-13DC437556A6\\",\\n \\"DelegatedServices\\": {\\n \\"DelegatedService\\": [\\n {\\n \\"DelegationEnabledTime\\": \\"1616652684164\\",\\n \\"ServicePrincipal\\": \\"cloudfw.aliyuncs.com\\",\\n \\"Status\\": \\"ENABLED\\"\\n }\\n ]\\n },\\n \\"NextToken\\": \\"TGlzdFJlc291cm****\\",\\n \\"MaxResults\\": 20\\n}","errorExample":""},{"type":"xml","example":"<ListDelegatedServicesForAccountResponse>\\n <RequestId>D9C03B94-9396-4794-A74B-13DC437556A6</RequestId>\\n <DelegatedServices>\\n <DelegatedService>\\n <Status>ENABLED</Status>\\n <DelegationEnabledTime>1616652684164</DelegationEnabledTime>\\n <ServicePrincipal>cloudfw.aliyuncs.com</ServicePrincipal>\\n </DelegatedService>\\n </DelegatedServices>\\n</ListDelegatedServicesForAccountResponse>","errorExample":""}]',
- 'title' => 'ListDelegatedServicesForAccount',
- 'responseParamsDescription' => ' ',
- 'extraInfo' => ' ',
- ],
- ],
- 'endpoints' => [
- [
- 'regionId' => 'cn-shanghai',
- 'endpoint' => 'resourcedirectory.aliyuncs.com',
],
- [
- 'regionId' => 'ap-southeast-1',
- 'endpoint' => 'resourcedirectory-intl.aliyuncs.com',
+ 'resourceTypes' => [
+ ['validationType' => 'always', 'resourceType' => 'Account', 'arn' => 'acs:resourcemanager::{#accountId}:account/{#ResourceDirectoryPath}'],
+ ['validationType' => 'always', 'resourceType' => 'ControlPolicy', 'arn' => 'acs:resourcemanager::{#accountId}:policy/controlpolicy/{#PolicyId}'],
+ ['validationType' => 'always', 'resourceType' => 'Folder', 'arn' => 'acs:resourcemanager::{#accountId}:folder/{#ResourceDirectoryPath}'],
+ ['validationType' => 'always', 'resourceType' => 'Account', 'arn' => 'acs:resourcemanager::{#accountId}:account/*'],
+ ['validationType' => 'always', 'resourceType' => 'MessageContact', 'arn' => 'acs:resourcemanager:*:{#accountId}:messagecontact/{#MessageContactId}'],
+ ['validationType' => 'always', 'resourceType' => 'Folder', 'arn' => 'acs:resourcemanager:*:{#accountId}:folder/{#FolderId}'],
+ ['validationType' => 'always', 'resourceType' => 'Account', 'arn' => 'acs:resourcemanager:*:{#accountId}:account/{#AccountId}'],
+ ['validationType' => 'always', 'resourceType' => 'ResourceDirectory', 'arn' => 'acs:resourcemanager::{#accountId}:policy/controlpolicy/*'],
+ ['validationType' => 'always', 'resourceType' => 'ControlPolicy', 'arn' => 'acs:resourcemanager::{#accountId}:policy/controlpolicy/*'],
+ ['validationType' => 'always', 'resourceType' => 'MessageContact', 'arn' => 'acs:resourcemanager:*:{#accountId}:messagecontact/*'],
+ ['validationType' => 'always', 'resourceType' => 'Handshake', 'arn' => 'acs:resourcemanager::{#accountId}:handshake/{#HandshakeId}'],
+ ['validationType' => 'always', 'resourceType' => 'DelegatedAdministrator', 'arn' => 'acs:resourcemanager::{#accountId}:account/{#ResourceDirectoryPath}'],
+ ['validationType' => 'always', 'resourceType' => 'Handshake', 'arn' => 'acs:resourcemanager::{#accountId}:handshake/*'],
+ ['validationType' => 'always', 'resourceType' => 'Folder', 'arn' => 'acs:resourcemanager::{#accountId}:folder/*'],
+ ['validationType' => 'always', 'resourceType' => 'Handshake', 'arn' => 'acs:resourcemanager:*:{#accountId}:handshake/*'],
+ ['validationType' => 'always', 'resourceType' => 'Folder', 'arn' => 'acs:resourcemanager:*:{#accountId}:folder/{#ResourceDirectoryPath}'],
+ ['validationType' => 'always', 'resourceType' => 'Account', 'arn' => 'acs:resourcemanager::{#accountId}:*'],
],
],
];