diff options
| author | Zhineng Li <[email protected]> | 2026-02-13 10:54:11 +0800 |
|---|---|---|
| committer | Zhineng Li <[email protected]> | 2026-02-13 10:54:11 +0800 |
| commit | 7347bac4ab7e136157fc94777e6cf87ef9e08599 (patch) | |
| tree | 0dec367dac6e152161a6f7cc0dba6ebbef1f34a2 /data/en_us/yundun-bastionhost/2019-12-09/api-docs.php | |
| download | acs-metadata-full-7347bac4ab7e136157fc94777e6cf87ef9e08599.tar.gz acs-metadata-full-7347bac4ab7e136157fc94777e6cf87ef9e08599.zip | |
first commitHEADv1.0.0+20260212main
Diffstat (limited to 'data/en_us/yundun-bastionhost/2019-12-09/api-docs.php')
| -rw-r--r-- | data/en_us/yundun-bastionhost/2019-12-09/api-docs.php | 25584 |
1 files changed, 25584 insertions, 0 deletions
diff --git a/data/en_us/yundun-bastionhost/2019-12-09/api-docs.php b/data/en_us/yundun-bastionhost/2019-12-09/api-docs.php new file mode 100644 index 0000000..876ab82 --- /dev/null +++ b/data/en_us/yundun-bastionhost/2019-12-09/api-docs.php @@ -0,0 +1,25584 @@ +<?php return [ + 'version' => '1.0', + 'info' => [ + 'style' => 'RPC', + 'product' => 'Yundun-bastionhost', + 'version' => '2019-12-09', + ], + 'directories' => [ + [ + 'id' => 267520, + 'title' => null, + 'type' => 'directory', + 'children' => [ + 'DescribeInstanceAttribute', + 'DescribeInstances', + 'ConfigInstanceSecurityGroups', + 'ConfigInstanceWhiteList', + 'StartInstance', + 'EnableInstancePublicAccess', + 'DisableInstancePublicAccess', + 'ModifyInstanceAttribute', + 'MoveResourceGroup', + 'AddInstanceRdMember', + 'ListInstanceRdMembers', + 'RemoveInstanceRdMember', + ], + ], + [ + 'id' => 267533, + 'title' => null, + 'type' => 'directory', + 'children' => [ + 'ListTagKeys', + 'ListTagResources', + 'UntagResources', + 'TagResources', + ], + ], + [ + 'id' => 267538, + 'title' => null, + 'type' => 'directory', + 'children' => [ + 'DescribeRegions', + ], + ], + [ + 'id' => 267540, + 'title' => null, + 'type' => 'directory', + 'children' => [ + 'CreateHost', + 'GetHost', + 'ListHosts', + 'DeleteHost', + 'ModifyHostsPort', + 'ModifyHostsActiveAddressType', + 'ModifyHost', + ], + ], + [ + 'id' => 267548, + 'title' => null, + 'type' => 'directory', + 'children' => [ + 'CreateDatabase', + 'ModifyDatabase', + 'GetDatabase', + 'ListDatabases', + 'DeleteDatabase', + ], + ], + [ + 'id' => 267554, + 'title' => null, + 'type' => 'directory', + 'children' => [ + 'CreateNetworkDomain', + 'GetNetworkDomain', + 'ListNetworkDomains', + 'DeleteNetworkDomain', + 'ModifyNetworkDomain', + 'MoveHostsToNetworkDomain', + 'MoveDatabasesToNetworkDomain', + ], + ], + [ + 'id' => 267562, + 'title' => null, + 'type' => 'directory', + 'children' => [ + 'CreateHostAccount', + 'GetHostAccount', + 'ListHostAccounts', + 'ModifyHostAccount', + 'DeleteHostAccount', + 'ResetHostAccountCredential', + ], + ], + [ + 'id' => 267569, + 'title' => null, + 'type' => 'directory', + 'children' => [ + 'CreateDatabaseAccount', + 'ModifyDatabaseAccount', + 'GetDatabaseAccount', + 'ListDatabaseAccounts', + 'ListDatabaseAccountsForUserGroup', + 'DeleteDatabaseAccount', + ], + ], + [ + 'id' => 267576, + 'title' => null, + 'type' => 'directory', + 'children' => [ + 'CreateUser', + 'GetUser', + 'ListUsers', + 'ModifyUser', + 'DeleteUser', + 'CreateUserPublicKey', + 'ListUserPublicKeys', + 'ModifyUserPublicKey', + 'DeleteUserPublicKey', + 'LockUsers', + 'UnlockUsers', + ], + ], + [ + 'id' => 267588, + 'title' => null, + 'type' => 'directory', + 'children' => [ + 'CreateUserGroup', + 'GetUserGroup', + 'ListUserGroups', + 'ModifyUserGroup', + 'DeleteUserGroup', + 'AddUsersToGroup', + 'RemoveUsersFromGroup', + ], + ], + [ + 'id' => 267596, + 'title' => null, + 'type' => 'directory', + 'children' => [ + 'CreateHostGroup', + 'AddDatabasesToGroup', + 'AddHostsToGroup', + 'RemoveDatabasesFromGroup', + 'DeleteHostGroup', + 'RemoveHostsFromGroup', + 'ModifyHostGroup', + 'GetHostGroup', + 'ListHostGroups', + ], + ], + [ + 'id' => 267606, + 'title' => null, + 'type' => 'directory', + 'children' => [ + 'AttachHostAccountsToUser', + 'ListHostsForUser', + 'ListHostAccountsForUser', + 'DetachHostAccountsFromUser', + 'DetachHostAccountsFromUserGroup', + 'DetachHostGroupAccountsFromUser', + 'AttachHostAccountsToUserGroup', + 'DetachHostGroupAccountsFromUserGroup', + 'AttachHostGroupAccountsToUser', + 'AttachHostGroupAccountsToUserGroup', + 'ListHostAccountsForUserGroup', + 'ListHostGroupAccountNamesForUser', + 'ListHostGroupAccountNamesForUserGroup', + 'ListHostGroupsForUser', + 'ListHostGroupsForUserGroup', + 'ListHostsForUserGroup', + ], + ], + [ + 'id' => 267623, + 'title' => null, + 'type' => 'directory', + 'children' => [ + 'AttachDatabaseAccountsToUser', + 'ListDatabasesForUser', + 'DetachDatabaseAccountsFromUserGroup', + 'ListDatabaseAccountsForUser', + 'DetachDatabaseAccountsFromUser', + 'AttachDatabaseAccountsToUserGroup', + 'ListDatabasesForUserGroup', + ], + ], + [ + 'id' => 267631, + 'title' => null, + 'type' => 'directory', + 'children' => [ + 'ListOperationDatabases', + 'ListOperationHosts', + 'ListOperationHostAccounts', + 'ListOperationDatabaseAccounts', + 'GenerateAssetOperationToken', + 'RenewAssetOperationToken', + 'CreateOperationTicket', + ], + ], + [ + 'id' => 267639, + 'title' => null, + 'type' => 'directory', + 'children' => [ + 'CreateRule', + 'ModifyRule', + 'GetRule', + 'ListRules', + 'EnableRule', + 'DisableRule', + 'DeleteRule', + ], + ], + [ + 'id' => 267647, + 'title' => null, + 'type' => 'directory', + 'children' => [ + 'CreatePolicy', + 'ModifyPolicy', + 'GetPolicy', + 'ListPolicies', + 'GetPolicyAssetScope', + 'SetPolicyProtocolConfig', + 'SetPolicyCommandConfig', + 'SetPolicyIPAclConfig', + 'GetPolicyUserScope', + 'SetPolicyAccessTimeRangeConfig', + 'SetPolicyAssetScope', + 'SetPolicyUserScope', + 'SetPolicyApprovalConfig', + 'DeletePolicy', + ], + ], + [ + 'id' => 267662, + 'title' => null, + 'type' => 'directory', + 'children' => [ + 'ListApproveCommands', + 'AcceptApproveCommand', + 'RejectApproveCommand', + 'ListOperationTickets', + 'AcceptOperationTicket', + 'RejectOperationTicket', + ], + ], + [ + 'id' => 267669, + 'title' => null, + 'type' => 'directory', + 'children' => [ + 'CreateHostShareKey', + 'GetHostShareKey', + 'ListHostShareKeys', + 'ListHostAccountsForHostShareKey', + 'ModifyHostShareKey', + 'AttachHostAccountsToHostShareKey', + 'DetachHostAccountsFromHostShareKey', + 'DeleteHostShareKey', + ], + ], + [ + 'id' => 267678, + 'title' => null, + 'type' => 'directory', + 'children' => [ + 'GetInstanceADAuthServer', + 'ModifyInstanceADAuthServer', + 'GetInstanceTwoFactor', + 'ModifyInstanceTwoFactor', + 'ModifyInstanceLDAPAuthServer', + 'GetInstanceLDAPAuthServer', + 'GetInstanceStoreInfo', + 'CreateExportConfigJob', + 'GetExportConfigJob', + ], + ], + [ + 'id' => 267688, + 'title' => null, + 'type' => 'directory', + 'children' => [ + 'VerifyInstanceLDAPAuthServer', + 'VerifyInstanceADAuthServer', + ], + ], + ], + 'components' => [ + 'schemas' => [], + ], + 'apis' => [ + 'DescribeInstanceAttribute' => [ + 'summary' => 'Queries the attribute information about the specified bastion host. The information includes the ID and remarks of the bastion host.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '91488', + 'abilityTreeNodes' => [ + 'FEATUREbastionhostJYERXM', + ], + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the region.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Bastionhost instance.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'bastionhost-cn-78v1ghxxxxx', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'description' => 'The response parameters.'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => '082FAB35-6AB9-4FD5-8750-D36673548E76', + ], + 'InstanceAttribute' => [ + 'description' => 'The attribute information about the bastion host.'."\n", + 'type' => 'object', + 'properties' => [ + 'VpcId' => [ + 'description' => 'The ID of the VPC to which the instance belongs.'."\n", + 'type' => 'string', + 'example' => 'vpc-bp1c85tzgqu1bf5bxxxxx', + ], + 'VswitchId' => [ + 'description' => 'The ID of the vSwitch to which the instance connects.'."\n", + 'type' => 'string', + 'example' => 'vsw-bp1xfwzzfti0kjbfxxxxx', + ], + 'Description' => [ + 'description' => 'The description of the instance.'."\n", + 'type' => 'string', + 'example' => '', + ], + 'ExpireTime' => [ + 'description' => 'The time when the instance expires.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1578326400000', + ], + 'ModifyPasswordModule' => [ + 'description' => 'The status of the automatic password change feature.'."\n" + ."\n" + .'- **Enable**'."\n" + .'- **Disable**', + 'type' => 'string', + 'example' => 'Enable', + ], + 'EniInstanceId' => [ + 'description' => 'The ID of the Elastic Network Interface (ENI).'."\n", + 'type' => 'string', + 'example' => 'eni-bp1455jrzwm7moaxxxxx', + ], + 'InstanceId' => [ + 'description' => 'The ID of the instance.'."\n", + 'type' => 'string', + 'example' => 'bastionhost-cn-78v1ghxxxxx', + ], + 'InternetEndpoint' => [ + 'description' => 'The public endpoint.'."\n", + 'type' => 'string', + 'example' => 'drawvxalwb-public.bastionhost.aliyuncs.com', + ], + 'RegionId' => [ + 'description' => 'The region ID of the instance.'."\n", + 'type' => 'string', + 'example' => 'cn-hangzhou', + ], + 'IntranetEndpoint' => [ + 'description' => 'The private endpoint.'."\n", + 'type' => 'string', + 'example' => 'drawvxalwb.bastionhost.aliyuncs.com', + ], + 'StartTime' => [ + 'description' => 'The time when the instance started.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1577681345000', + ], + 'ResourceGroupId' => [ + 'description' => 'The ID of the resource group to which the instance belongs.'."\n", + 'type' => 'string', + 'example' => 'rg-aekzc427dbl2shy', + ], + 'NetworkProxyModule' => [ + 'description' => 'The status of the network domain feature.'."\n" + ."\n" + .'- **Enable**'."\n" + .'- **Disable**', + 'type' => 'string', + 'example' => 'Enable', + ], + 'WebTerminalModule' => [ + 'description' => 'The status of the web terminal.'."\n" + ."\n" + .'- **Enable**'."\n" + .'- **Disable**', + 'type' => 'string', + 'example' => 'Enable', + ], + 'InstanceStatus' => [ + 'description' => 'The status of the instance. Valid values:'."\n" + ."\n" + .'* PENDING: The instance is not initialized.'."\n" + .'* CREATING: The instance is being created.'."\n" + .'* RUNNING: The instance is running.'."\n" + .'* EXPIRED: The instance expired.'."\n" + .'* CREATE_FAILED: The instance fails to be created.'."\n" + .'* UPGRADING: The configurations of the instance are being changed.'."\n" + .'* UPGRADE_FAILED: The configurations of the instance fail to be changed.'."\n", + 'type' => 'string', + 'example' => 'RUNNING', + ], + 'LicenseCode' => [ + 'description' => 'The license code.'."\n", + 'type' => 'string', + 'example' => 'bhah_ent_50_asset', + ], + 'PublicNetworkAccess' => [ + 'description' => 'Indicates whether the Bastionhost instance can be accessed over the Internet.'."\n", + 'type' => 'boolean', + 'example' => 'true', + ], + 'Storage' => [ + 'description' => 'The storage capacity of the bastion host. Unit: bytes.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '2199023255552', + ], + 'Ports' => [ + 'description' => 'An array that consists of the O&M ports of the bastion host.', + 'type' => 'array', + 'items' => [ + 'description' => 'The O&M port of the bastion host.', + 'type' => 'object', + 'properties' => [ + 'StandardPort' => [ + 'description' => 'The standard port of the bastion host. Valid values:'."\n" + ."\n" + .'* **SSH**: 60022.'."\n" + .'* **RDP**: 63389.'."\n" + .'* **HTTPS**: 443.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '60022', + ], + 'CustomPort' => [ + 'description' => 'The custom port.'."\n" + ."\n" + .'> Only the SSH and RDP ports can be changed. If no custom O\\&M port is specified for the bastion host, the value of StandardPort is returned.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '600xx', + ], + ], + ], + ], + 'PublicExportIps' => [ + 'description' => 'An array that consists of the egress public IP addresses of the bastion host.', + 'type' => 'array', + 'items' => [ + 'description' => 'The egress public IP address of the bastion host.', + 'type' => 'string', + 'example' => '[10.162.168.xx/32]', + ], + ], + 'PublicWhiteList' => [ + 'description' => 'The public IP addresses that are allowed to access the instance.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'An array that consists of public IP addresses in a whitelist for the bastion host.', + 'type' => 'string', + 'example' => '[10.162.168.xx/32]', + ], + ], + 'AuthorizedSecurityGroups' => [ + 'description' => 'The IDs of authorized security groups.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The IDs of authorized security group.', + 'type' => 'string', + 'example' => '[sg-bp14u00sh39jvw5xxxxx]', + ], + ], + 'PrivateExportIps' => [ + 'description' => 'An array that consists of the egress private IP addresses of the bastion host.', + 'type' => 'array', + 'items' => [ + 'description' => 'The egress private IP address of the bastion host.', + 'type' => 'string', + 'example' => '192.168.xx.xx', + ], + ], + 'PublicIps' => [ + 'description' => 'The public IP address.', + 'type' => 'array', + 'items' => [ + 'description' => 'The public IP address.', + 'type' => 'string', + 'example' => '116.62.xx.xx', + ], + ], + 'SecurityGroupIds' => [ + 'description' => 'The IDs of the security groups to which the instance belongs.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The IDs of the security groups.', + 'type' => 'string', + 'example' => 'sg-bp15ed6xe1yxeycg7o****', + ], + ], + 'PrivateWhiteList' => [ + 'description' => 'The private IP addresses that are allowed to access the instance.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The private IP address that is added to the whitelist of the bastion host.', + 'type' => 'string', + 'example' => '192.168.xx.xx', + ], + ], + 'Bandwidth' => [ + 'description' => 'The total bandwidth of the bastion host.', + 'type' => 'string', + 'example' => '30', + ], + 'BandwidthPackage' => [ + 'description' => 'The bandwidth plan ID.'."\n", + 'type' => 'string', + 'example' => '5', + ], + 'DbOperationModule' => [ + 'description' => 'The status of the database O&M feature.', + 'type' => 'string', + 'example' => 'Disable', + ], + 'RouterRules' => [ + 'type' => 'array', + 'items' => [ + 'type' => 'string', + ], + ], + 'IDaaSModule' => [ + 'type' => 'string', + ], + 'SlaveVswitchId' => [ + 'type' => 'string', + ], + 'ScriptDeliverModule' => [ + 'type' => 'string', + ], + 'KmsSecretModule' => [ + 'type' => 'string', + ], + 'RDModule' => [ + 'type' => 'string', + ], + 'HSMModule' => [ + 'type' => 'string', + ], + 'WhiteListPolicies' => [ + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Entry' => [ + 'type' => 'string', + ], + 'Description' => [ + 'type' => 'string', + ], + ], + ], + ], + 'AppOperationModule' => [ + 'type' => 'string', + ], + ], + ], + ], + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"082FAB35-6AB9-4FD5-8750-D36673548E76\\",\\n \\"InstanceAttribute\\": {\\n \\"VpcId\\": \\"vpc-bp1c85tzgqu1bf5bxxxxx\\",\\n \\"VswitchId\\": \\"vsw-bp1xfwzzfti0kjbfxxxxx\\",\\n \\"Description\\": \\"测试API\\",\\n \\"ExpireTime\\": 1578326400000,\\n \\"ModifyPasswordModule\\": \\"Enable\\",\\n \\"EniInstanceId\\": \\"eni-bp1455jrzwm7moaxxxxx\\",\\n \\"InstanceId\\": \\"bastionhost-cn-78v1ghxxxxx\\",\\n \\"InternetEndpoint\\": \\"******lwb-public.bastionhost.aliyuncs.com\\",\\n \\"RegionId\\": \\"cn-hangzhou\\",\\n \\"IntranetEndpoint\\": \\"******xalwb.bastionhost.aliyuncs.com\\",\\n \\"StartTime\\": 1577681345000,\\n \\"ResourceGroupId\\": \\"rg-aekzc427db******\\",\\n \\"NetworkProxyModule\\": \\"Enable\\",\\n \\"WebTerminalModule\\": \\"Enable\\",\\n \\"InstanceStatus\\": \\"RUNNING\\",\\n \\"LicenseCode\\": \\"bhah_ent_50_asset\\",\\n \\"PublicNetworkAccess\\": true,\\n \\"Storage\\": 2199023255552,\\n \\"Ports\\": [\\n {\\n \\"StandardPort\\": 60022,\\n \\"CustomPort\\": 0\\n }\\n ],\\n \\"PublicExportIps\\": [\\n \\"[10.162.168.xx/32]\\"\\n ],\\n \\"PublicWhiteList\\": [\\n \\"[10.162.168.xx/32]\\"\\n ],\\n \\"AuthorizedSecurityGroups\\": [\\n \\"[sg-bp14u00sh39jvw5xxxxx]\\"\\n ],\\n \\"PrivateExportIps\\": [\\n \\"192.168.xx.xx\\"\\n ],\\n \\"PublicIps\\": [\\n \\"116.62.xx.xx\\"\\n ],\\n \\"SecurityGroupIds\\": [\\n \\"sg-bp15ed6xe1yxeycg7o****\\"\\n ],\\n \\"PrivateWhiteList\\": [\\n \\"192.168.xx.xx\\"\\n ],\\n \\"Bandwidth\\": \\"30\\",\\n \\"BandwidthPackage\\": \\"5\\",\\n \\"DbOperationModule\\": \\"Disable\\",\\n \\"RouterRules\\": [\\n \\"\\"\\n ],\\n \\"IDaaSModule\\": \\"\\",\\n \\"SlaveVswitchId\\": \\"\\",\\n \\"ScriptDeliverModule\\": \\"\\",\\n \\"KmsSecretModule\\": \\"\\",\\n \\"RDModule\\": \\"\\",\\n \\"HSMModule\\": \\"\\",\\n \\"WhiteListPolicies\\": [\\n {\\n \\"Entry\\": \\"\\",\\n \\"Description\\": \\"\\"\\n }\\n ],\\n \\"AppOperationModule\\": \\"\\"\\n }\\n}","type":"json"}]', + 'title' => 'DescribeInstanceAttribute', + 'description' => '****'."\n", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'DescribeInstances' => [ + 'summary' => 'Queries bastion hosts.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREbastionhostJYERXM', + ], + 'tenantRelevance' => 'publicInformation', + ], + 'parameters' => [ + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of the page to return. Default value: **1**.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '1', + 'default' => '1', + ], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of entries to return on each page. Default value: **10**.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'maximum' => '100', + 'minimum' => '1', + 'example' => '10', + 'default' => '20', + ], + ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of the page to return. Default value: **1**.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '1', + 'default' => '1', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the bastion host.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'InstanceStatus', + 'in' => 'query', + 'schema' => [ + 'description' => 'The status of the bastion host. Valid values:'."\n" + ."\n" + .'* **PENDING**: The bastion host is not initialized.'."\n" + .'* **CREATING**: The bastion host is being created.'."\n" + .'* **RUNNING**: The bastion host is running.'."\n" + .'* **EXPIRED**: The bastion host expired.'."\n" + .'* **CREATE_FAILED**: The bastion host fails to be created.'."\n" + .'* **UPGRADING**: The configurations of the bastion host are being changed.'."\n" + .'* **UPGRADE_FAILED**: The configurations of the bastion host fail to be changed.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'RUNNING', + ], + ], + [ + 'name' => 'ResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the resource group to which the bastion host belongs.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm26ougi****', + ], + ], + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'style' => 'repeatList', + 'schema' => [ + 'description' => 'An array that consists of the IDs of the bastion hosts.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The ID of the bastion host.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '2', + ], + 'required' => false, + 'example' => 'bastionhost-cn-78v1ghxxxxx', + 'maxItems' => 10, + ], + ], + [ + 'name' => 'Tag', + 'in' => 'query', + 'style' => 'repeatList', + 'schema' => [ + 'description' => 'An array consisting of the tags that are added to the bastion hosts.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The tag that is added to the bastion host.'."\n", + 'type' => 'object', + 'properties' => [ + 'Key' => [ + 'description' => 'The key of the tag.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'test', + ], + 'Value' => [ + 'description' => 'The value of the tag.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'testapi', + ], + ], + 'required' => false, + ], + 'required' => false, + 'maxItems' => 20, + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'TotalCount' => [ + 'description' => 'The total number of bastion hosts that are queried.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '4', + ], + 'RequestId' => [ + 'description' => 'The ID of the request, which is used to locate and troubleshoot issues.'."\n", + 'type' => 'string', + 'example' => '61D36C55-AAFC-4678-8FAD-34FEF9E7182E', + ], + 'Instances' => [ + 'description' => 'An array that consists of the bastion hosts returned.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'VpcId' => [ + 'description' => 'The ID of the virtual private cloud (VPC) to which the bastion host belongs.'."\n", + 'type' => 'string', + 'example' => 'vpc-bp1c85tzgqu1bf5b****', + ], + 'VswitchId' => [ + 'description' => 'The ID of the vSwitch to which the bastion host belongs.'."\n", + 'type' => 'string', + 'example' => 'vsw-bp1xfwzzfti0kjbf****', + ], + 'ImageVersion' => [ + 'description' => 'The image version of the bastion host.'."\n", + 'type' => 'string', + 'example' => '3.0.0', + ], + 'PlanCode' => [ + 'description' => 'The edition of the bastion host. Valid values:'."\n" + ."\n" + .'* **cloudbastion**: Basic Edition.'."\n" + .'* **cloudbastion_ha**: Enterprise Edition.'."\n", + 'type' => 'string', + 'example' => 'cloudbastion_ha', + ], + 'Description' => [ + 'description' => 'The remarks of the bastion host.'."\n", + 'type' => 'string', + 'example' => 'Test API'."\n", + ], + 'ExpireTime' => [ + 'description' => 'The timestamp when the bastion host expires. Unit: milliseconds.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1578326400000', + ], + 'Legacy' => [ + 'description' => 'Indicates whether the bastion host runs an earlier version. Valid values:'."\n" + ."\n" + .'* **true**: The bastion host runs V2 or V3.1.'."\n" + .'* **false**: The bastion host runs V3.2.'."\n", + 'type' => 'boolean', + 'example' => 'false', + ], + 'InstanceId' => [ + 'description' => 'The bastion host ID.'."\n", + 'type' => 'string', + 'example' => 'bastionhost-cn-78v1gh****', + ], + 'InternetEndpoint' => [ + 'description' => 'The public O\\&M address of the bastion host.'."\n", + 'type' => 'string', + 'example' => 'drawvxalwb-public.bastionhost.aliyuncs.com', + ], + 'RegionId' => [ + 'description' => 'The region ID of the bastion host.'."\n", + 'type' => 'string', + 'example' => 'cn-hangzhou', + ], + 'IntranetEndpoint' => [ + 'description' => 'The private O\\&M address of the bastion host.'."\n", + 'type' => 'string', + 'example' => 'drawvxalwb.bastionhost.aliyuncs.com', + ], + 'StartTime' => [ + 'description' => 'The timestamp when the bastion host is purchased or renewed. Unit: milliseconds.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1577681345000', + ], + 'ResourceGroupId' => [ + 'description' => 'The ID of the resource group to which the bastion host belongs.'."\n", + 'type' => 'string', + 'example' => 'g-acfm26ougi****', + ], + 'InstanceStatus' => [ + 'description' => 'The status of the bastion host. Valid values:'."\n" + ."\n" + .'* **PENDING**: The bastion host is not initialized.'."\n" + .'* **CREATING**: The bastion host is being created.'."\n" + .'* **RUNNING**: The bastion host is running.'."\n" + .'* **EXPIRED**: The bastion host expired.'."\n" + .'* **CREATE_FAILED**: The bastion host fails to be created.'."\n" + .'* **UPGRADING**: The configurations of the bastion host are being changed.'."\n" + .'* **UPGRADE_FAILED**: The configurations of the bastion host fail to be changed.'."\n", + 'type' => 'string', + 'example' => 'RUNNING', + ], + 'LicenseCode' => [ + 'description' => 'The license code of the bastion host.'."\n", + 'type' => 'string', + 'example' => 'bhah_ent_50_asset', + ], + 'PublicNetworkAccess' => [ + 'description' => 'Indicates whether the bastion host can be accessed from the Internet. Valid values:'."\n" + ."\n" + .'* **true**'."\n" + .'* **false**'."\n", + 'type' => 'boolean', + 'example' => 'true', + ], + 'SlaveVswitchId' => [ + 'type' => 'string', + ], + 'BandWidth' => [ + 'type' => 'integer', + 'format' => 'int64', + ], + ], + ], + ], + ], + 'description' => '', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"TotalCount\\": 4,\\n \\"RequestId\\": \\"61D36C55-AAFC-4678-8FAD-34FEF9E7182E\\",\\n \\"Instances\\": [\\n {\\n \\"VpcId\\": \\"vpc-bp1c85tzgqu1bf5b****\\",\\n \\"VswitchId\\": \\"vsw-bp1xfwzzfti0kjbf****\\",\\n \\"ImageVersion\\": \\"3.2.41\\",\\n \\"PlanCode\\": \\"cloudbastion_ha\\",\\n \\"Description\\": \\"测试API\\",\\n \\"ExpireTime\\": 1578326400000,\\n \\"Legacy\\": false,\\n \\"InstanceId\\": \\"bastionhost-cn-78v1gh****\\",\\n \\"InternetEndpoint\\": \\"******lwb-public.bastionhost.aliyuncs.com\\",\\n \\"RegionId\\": \\"cn-hangzhou\\",\\n \\"IntranetEndpoint\\": \\"******lwb.bastionhost.aliyuncs.com\\",\\n \\"StartTime\\": 1577681345000,\\n \\"ResourceGroupId\\": \\"g-acfm26ougi****\\",\\n \\"InstanceStatus\\": \\"RUNNING\\",\\n \\"LicenseCode\\": \\"bhah_ent_50_asset\\",\\n \\"PublicNetworkAccess\\": true,\\n \\"SlaveVswitchId\\": \\"\\",\\n \\"BandWidth\\": 0\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"<DescribeInstancesResponse>\\n <TotalCount>4</TotalCount>\\n <RequestId>61D36C55-AAFC-4678-8FAD-34FEF9E7182E</RequestId>\\n <Instances>\\n <VpcId>vpc-bp1c85tzgqu1bf5b****</VpcId>\\n <VswitchId>vsw-bp1xfwzzfti0kjbf****</VswitchId>\\n <ImageVersion>3.0.0</ImageVersion>\\n <PlanCode>cloudbastion_ha</PlanCode>\\n <Description>测试API</Description>\\n <ExpireTime>1578326400000</ExpireTime>\\n <Legacy>false</Legacy>\\n <InstanceId>bastionhost-cn-78v1gh****</InstanceId>\\n <InternetEndpoint>drawvxalwb-public.bastionhost.aliyuncs.com</InternetEndpoint>\\n <RegionId>cn-hangzhou</RegionId>\\n <IntranetEndpoint>drawvxalwb.bastionhost.aliyuncs.com</IntranetEndpoint>\\n <StartTime>1577681345000</StartTime>\\n <ResourceGroupId>g-acfm26ougi****</ResourceGroupId>\\n <InstanceStatus>RUNNING</InstanceStatus>\\n <LicenseCode>bhah_ent_50_asset</LicenseCode>\\n <PublicNetworkAccess>true</PublicNetworkAccess>\\n </Instances>\\n</DescribeInstancesResponse>","errorExample":""}]', + 'title' => 'DescribeInstances', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'ConfigInstanceSecurityGroups' => [ + 'summary' => 'Configures security groups for a bastion host.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'none', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREbastionhostJYERXM', + ], + ], + 'parameters' => [ + [ + 'name' => 'Lang', + 'in' => 'query', + 'schema' => [ + 'description' => 'The language of the content within the request and response. Default value: **zh**. Valid values:'."\n" + ."\n" + .'* **zh**: Chinese'."\n" + .'* **en**: English'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'zh', + ], + ], + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the bastion host.'."\n" + ."\n" + .'> You can call the [DescribeInstances](~~153281~~) operation to query the ID of the bastion host.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'bastionhost-cn-78v1gh****', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the bastion host.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'AuthorizedSecurityGroups', + 'in' => 'query', + 'style' => 'repeatList', + 'schema' => [ + 'description' => 'An array that consists of the IDs of authorized security groups.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The ID of authorized security group N. Valid values of N: 1 to 100.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '2', + ], + 'required' => true, + 'example' => 'sg-bp14u00sh39jvw5****', + 'maxItems' => 100, + ], + ], + ], + 'responses' => [ + 200 => [ + 'headers' => [], + 'schema' => [ + 'description' => 'The data returned.'."\n", + 'type' => 'object', + 'properties' => [ + 'InstanceId' => [ + 'description' => 'The ID of the bastion host for which security groups were configured.'."\n", + 'type' => 'string', + 'example' => 'bastionhost-cn-78v1gh****', + ], + 'RequestId' => [ + 'description' => 'The ID of the request, which is used to locate and troubleshoot issues.'."\n", + 'type' => 'string', + 'example' => '0ECCC399-4D35-48A7-8379-5C6180E66235', + ], + ], + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"InstanceId\\": \\"bastionhost-cn-78v1gh****\\",\\n \\"RequestId\\": \\"0ECCC399-4D35-48A7-8379-5C6180E66235\\"\\n}","errorExample":""},{"type":"xml","example":"<ConfigInstanceSecurityGroupsResponse>\\n <InstanceId>bastionhost-cn-78v1gh****</InstanceId>\\n <RequestId>0ECCC399-4D35-48A7-8379-5C6180E66235</RequestId>\\n</ConfigInstanceSecurityGroupsResponse>","errorExample":""}]', + 'title' => 'ConfigInstanceSecurityGroups', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'ConfigInstanceWhiteList' => [ + 'summary' => 'Configures a whitelist of public IP addresses for a bastion host.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '91477', + 'abilityTreeNodes' => [ + 'FEATUREbastionhostJYERXM', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the bastion host for which you want to configure a whitelist of public IP addresses.'."\n" + ."\n" + .'> You can call the [DescribeInstances](~~153281~~) operation to query the bastion host ID.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'bastionhost-cn-78v1gh****', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the bastion host.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'WhiteList', + 'in' => 'query', + 'style' => 'repeatList', + 'schema' => [ + 'description' => 'The IP address whitelist that you want to configure.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The IP addresses that you want to include in the whitelist. You can specify up to 50 IP addresses. To add multiple IP addresses to the whitelist, separate the IP addresses with commas (,).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '10.162.XX.XX,192.168.XX.XX', + ], + 'required' => false, + 'example' => '10.162.XX.XX', + 'maxItems' => 50, + ], + ], + [ + 'name' => 'WhiteListPolicies', + 'in' => 'query', + 'style' => 'repeatList', + 'schema' => [ + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Entry' => [ + 'type' => 'string', + ], + 'Description' => [ + 'type' => 'string', + ], + ], + ], + 'required' => false, + 'maxItems' => 50, + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'InstanceId' => [ + 'description' => 'The ID of the bastion host for which a whitelist of public IP addresses is configured.'."\n", + 'type' => 'string', + 'example' => 'bastionhost-cn-78v1gh****', + ], + 'RequestId' => [ + 'description' => 'The ID of the request, which is used to locate and troubleshoot issues.'."\n", + 'type' => 'string', + 'example' => '47820E32-5968-45CF-982F-09CB80DC180B', + ], + ], + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"InstanceId\\": \\"bastionhost-cn-78v1gh****\\",\\n \\"RequestId\\": \\"47820E32-5968-45CF-982F-09CB80DC180B\\"\\n}","errorExample":""},{"type":"xml","example":"<ConfigInstanceWhiteListResponse>\\n<RequestId>47820E32-5968-45CF-982F-09CB80DC180B</RequestId>\\n<InstanceId>bastionhost-cn-78v1gh****</InstanceId>\\n</ConfigInstanceWhiteListResponse>","errorExample":""}]', + 'title' => 'ConfigInstanceWhiteList', + 'description' => '## Usage notes'."\n" + ."\n" + .'You can call this operation to configure a whitelist of public IP addresses for a bastion host. By default, a bastion host is accessible from all public IP addresses. If you want to allow the requests from specific public IP addresses, you can call this operation to add trusted IP addresses to the whitelist of the bastion host. '."\n" + ."\n\n" + .'## Limits'."\n" + ."\n" + .'You can call this operation up to 30 times per second per account. If the number of the calls per second exceeds the limit, throttling is triggered. As a result, your business may be affected. We recommend that you take note of the limit when you call this operation.', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'StartInstance' => [ + 'summary' => 'Starts a bastion host.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '91530', + 'abilityTreeNodes' => [ + 'FEATUREbastionhostJYERXM', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the bastion host that you want to enable.'."\n" + ."\n" + .'> You can call the [DescribeInstances](~~153281~~) operation to query the ID of the bastion host.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'bastionhost-cn-78v1gh****', + ], + ], + [ + 'name' => 'VswitchId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the vSwitch to which the bastion host belongs.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'vsw-bp1xfwzzfti0kjbf****', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the bastion host.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'SecurityGroupIds', + 'in' => 'query', + 'style' => 'repeatList', + 'schema' => [ + 'description' => 'An array consisting of the IDs of security groups to which the bastion host is added.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The ID of the security group to which the bastion host is added.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'sg-bp1aiupc4yjqgmm****', + ], + 'required' => true, + 'example' => 'sg-bp1aiupc4yjqgmm****', + 'maxItems' => 100, + ], + ], + [ + 'name' => 'ClientSecurityGroupIds', + 'in' => 'query', + 'style' => 'repeatList', + 'schema' => [ + 'type' => 'array', + 'items' => [ + 'type' => 'string', + ], + 'maxItems' => 5, + 'minItems' => 1, + ], + ], + [ + 'name' => 'SlaveVswitchId', + 'in' => 'query', + 'schema' => [ + 'type' => 'string', + ], + ], + [ + 'name' => 'EnablePortalPrivateAccess', + 'in' => 'query', + 'schema' => [ + 'type' => 'boolean', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'description' => 'The data returned.'."\n", + 'type' => 'object', + 'properties' => [ + 'InstanceId' => [ + 'description' => 'The ID of the bastion host that you enable.'."\n", + 'type' => 'string', + 'example' => 'bastionhost-cn-78v1gh****', + ], + 'RequestId' => [ + 'description' => 'The ID of the request, which is used to locate and troubleshoot issues.'."\n", + 'type' => 'string', + 'example' => '0F85AE0A-6A87-48F3-A0C7-90B998788A36', + ], + ], + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"InstanceId\\": \\"bastionhost-cn-78v1gh****\\",\\n \\"RequestId\\": \\"0F85AE0A-6A87-48F3-A0C7-90B998788A36\\"\\n}","errorExample":""},{"type":"xml","example":"<StartInstanceResponse>\\n <InstanceId>bastionhost-cn-78v1gh****</InstanceId>\\n <RequestId>0F85AE0A-6A87-48F3-A0C7-90B998788A36</RequestId>\\n</StartInstanceResponse>","errorExample":""}]', + 'title' => 'StartInstance', + 'extraInfo' => ' ', + ], + 'EnableInstancePublicAccess' => [ + 'summary' => 'Enables Internet access to a bastion host.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREbastionhostJYERXM', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the bastion host.'."\n" + ."\n" + .'> You can call the [DescribeInstances](~~153281~~) operation to query the ID of the bastion host.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'bastionhost-cn-78v1gh****', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the bastion host.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'InstanceId' => [ + 'description' => 'The ID of the bastion host whose Internet access is enabled.'."\n", + 'type' => 'string', + 'example' => 'bastionhost-cn-78v1gh****', + ], + 'RequestId' => [ + 'description' => 'The ID of the request, which is used to locate and troubleshoot issues.'."\n", + 'type' => 'string', + 'example' => 'D47B5043-FDD6-4FBE-976E-5FC67A23578F', + ], + ], + ], + ], + ], + 'errorCodes' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"InstanceId\\": \\"bastionhost-cn-78v1gh****\\",\\n \\"RequestId\\": \\"D47B5043-FDD6-4FBE-976E-5FC67A23578F\\"\\n}","errorExample":""},{"type":"xml","example":"<EnableInstancePublicAccessResponse>\\n <InstanceId>bastionhost-cn-78v1gh****</InstanceId>\\n <RequestId>D47B5043-FDD6-4FBE-976E-5FC67A23578F</RequestId>\\n</EnableInstancePublicAccessResponse>","errorExample":""}]', + 'title' => 'EnableInstancePublicAccess', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'DisableInstancePublicAccess' => [ + 'summary' => 'Disables Internet access to a bastion host.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREbastionhostJYERXM', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the bastion host whose Internet access you want to disable.'."\n" + ."\n" + .'> You can call the [DescribeInstances](~~153281~~) operation to query the ID of the bastion host.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'bastionhost-cn-78v1gh****', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the bastion host.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + ], + 'responses' => [ + 200 => [ + 'headers' => [], + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'InstanceId' => [ + 'description' => 'The ID of the bastion host whose Internet access is disabled.'."\n", + 'type' => 'string', + 'example' => 'bastionhost-cn-78v1gh****', + ], + 'RequestId' => [ + 'description' => 'The ID of the request, which is used to locate and troubleshoot issues.'."\n", + 'type' => 'string', + 'example' => '76FAAF15-D3A3-4099-9941-FC408D9FDB4C', + ], + ], + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"InstanceId\\": \\"bastionhost-cn-78v1gh****\\",\\n \\"RequestId\\": \\"76FAAF15-D3A3-4099-9941-FC408D9FDB4C\\"\\n}","errorExample":""},{"type":"xml","example":"<DisableInstancePublicAccessResponse>\\n <InstanceId>bastionhost-cn-78v1gh****</InstanceId>\\n <RequestId>76FAAF15-D3A3-4099-9941-FC408D9FDB4C</RequestId>\\n</DisableInstancePublicAccessResponse>","errorExample":""}]', + 'title' => 'DisableInstancePublicAccess', + 'extraInfo' => ' ', + ], + 'ModifyInstanceAttribute' => [ + 'summary' => 'Modifies the information about a bastion host.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREbastionhostJYERXM', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the bastion host.'."\n" + ."\n" + .'> You can call the [DescribeInstances](~~153281~~) operation to query the ID of the bastion host.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'bastionhost-cn-78v1gh****', + ], + ], + [ + 'name' => 'Description', + 'in' => 'query', + 'schema' => [ + 'description' => 'The description of the bastion host.'."\n" + ."\n" + .'> The description must be up to 30 characters in length, and can contain letters, digits, underscores (\\_), and hyphens (-).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'Bastionhost demo', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the bastion host.'."\n" + ."\n" + .'> For more information about the mapping between region IDs and region names, see [Regions and zones](~~40654~~).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + ], + 'responses' => [ + 200 => [ + 'headers' => [], + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request, which is used to locate and troubleshoot issues.'."\n", + 'type' => 'string', + 'example' => 'E07158EA-D1A3-4BAA-84DA-2FE230D03884', + ], + ], + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"E07158EA-D1A3-4BAA-84DA-2FE230D03884\\"\\n}","errorExample":""},{"type":"xml","example":"<ModifyInstanceAttributeResponse>\\n <RequestId>E07158EA-D1A3-4BAA-84DA-2FE230D03884</RequestId>\\n</ModifyInstanceAttributeResponse>","errorExample":""}]', + 'title' => 'ModifyInstanceAttribute', + ], + 'MoveResourceGroup' => [ + 'summary' => 'Moves a bastion host from one resource group to another resource group.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREbastionhostJYERXM', + ], + ], + 'parameters' => [ + [ + 'name' => 'ResourceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the bastion host for which you want to change the resource group.'."\n" + ."\n" + .'> You can call the [DescribeInstances](~~153281~~) operation to query the ID of the bastion host.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'bastionhost-cn-78v1gh****', + ], + ], + [ + 'name' => 'ResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the resource group to which the bastion host is moved.'."\n" + ."\n" + .'> You can call the [DescribeInstances](~~153281~~) operation to query the resource group ID of the bastion host.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'rg-aekznp3oyo****', + ], + ], + [ + 'name' => 'ResourceType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The type of the resource. Set the value to **INSTANCE**, which indicates that the resource is a bastion host.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'INSTANCE', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the bastion host.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'cn-hangzhou', + ], + ], + ], + 'responses' => [ + 200 => [ + 'headers' => [], + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request, which is used to locate and troubleshoot issues.'."\n", + 'type' => 'string', + 'example' => '1DEEC28D-27B1-4358-B6DC-E1285AE655C5', + ], + ], + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"1DEEC28D-27B1-4358-B6DC-E1285AE655C5\\"\\n}","errorExample":""},{"type":"xml","example":"<MoveResourceGroupResponse>\\n <RequestId>1DEEC28D-27B1-4358-B6DC-E1285AE655C5</RequestId>\\n</MoveResourceGroupResponse>","errorExample":""}]', + 'title' => 'MoveResourceGroup', + 'extraInfo' => ' ', + ], + 'AddInstanceRdMember' => [ + 'summary' => '添加RD成员账号', + 'path' => '', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'create', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREbastionhostJYERXM', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => true, + 'example' => 'bastionhost-cn-7mz2ve7h00a', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'MemberId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => true, + 'example' => '1857311509574932', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => 'Schema of Response', + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'title' => 'Id of the request', + 'description' => '', + 'type' => 'string', + 'example' => '4F6C075F-FC86-476E-943B-097BD4E12948', + ], + ], + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"4F6C075F-FC86-476E-943B-097BD4E12948\\"\\n}","type":"json"}]', + ], + 'ListInstanceRdMembers' => [ + 'summary' => '获取RD成员账号列表', + 'path' => '', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'list', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREbastionhostJYERXM', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => true, + 'example' => 'bastionhost-cn-st220aw****', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'NextToken', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => '4ieSWJCwxvW3dk3wF.BqkrZmP72nWu5zJ5NWydMqyEs****', + ], + ], + [ + 'name' => 'MaxResults', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '20', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => 'Schema of Response', + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'Members' => [ + 'description' => '', + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'MemberId' => [ + 'description' => '', + 'type' => 'string', + 'example' => '1197234496852779', + ], + ], + ], + ], + 'RequestId' => [ + 'description' => '', + 'type' => 'string', + 'example' => 'EC9BF0F4-8983-491A-BC8C-1B4DD94976DE', + ], + 'NextToken' => [ + 'description' => '', + 'type' => 'string', + 'example' => '4ieSWJCwxvW3dk3wF.BqkrZmP72nWu5zJ5NWydMqyEs****', + ], + 'MaxResults' => [ + 'description' => '', + 'type' => 'integer', + 'format' => 'int32', + 'example' => '20', + ], + ], + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Members\\": [\\n {\\n \\"MemberId\\": \\"1197234496852779\\"\\n }\\n ],\\n \\"RequestId\\": \\"EC9BF0F4-8983-491A-BC8C-1B4DD94976DE\\",\\n \\"NextToken\\": \\"4ieSWJCwxvW3dk3wF.BqkrZmP72nWu5zJ5NWydMqyEs****\\",\\n \\"MaxResults\\": 20\\n}","type":"json"}]', + ], + 'RemoveInstanceRdMember' => [ + 'summary' => '移除RD成员账号', + 'path' => '', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'create', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREbastionhostJYERXM', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => true, + 'example' => 'bastionhost-cn-st220aw****', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'MemberId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => true, + 'example' => '1597141696147832', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => 'Schema of Response', + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'title' => 'Id of the request', + 'description' => '', + 'type' => 'string', + 'example' => 'EC9BF0F4-8983-491A-BC8C-1B4DD94976DE', + ], + ], + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"EC9BF0F4-8983-491A-BC8C-1B4DD94976DE\\"\\n}","type":"json"}]', + ], + 'ListTagKeys' => [ + 'summary' => 'Queries the tags that are added to a resource.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '91513', + 'abilityTreeNodes' => [ + 'FEATUREbastionhostJYERXM', + ], + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the bastion host.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The type of the resource.'."\n" + ."\n" + .'Set the value to INSTANCE, which indicates that the resource is a bastion host.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'INSTANCE', + ], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of entries to return on each page.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '10', + ], + ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of the page to return.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '1', + ], + ], + [ + 'name' => 'ResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'type' => 'string', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => '50177258-E817-4D2F-A5C6-3FD7BC4806E3', + ], + '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' => '10', + ], + 'TotalCount' => [ + 'description' => 'The total number of tags returned.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '5', + ], + 'TagKeys' => [ + 'description' => 'An array that consists of tags.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'TagCount' => [ + 'description' => 'The total number of tag keys.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '2', + ], + 'TagKey' => [ + 'description' => 'The name of the tag key.'."\n", + 'type' => 'string', + 'example' => 'key2', + ], + ], + ], + ], + ], + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"50177258-E817-4D2F-A5C6-3FD7BC4806E3\\",\\n \\"PageNumber\\": 1,\\n \\"PageSize\\": 10,\\n \\"TotalCount\\": 5,\\n \\"TagKeys\\": [\\n {\\n \\"TagCount\\": 2,\\n \\"TagKey\\": \\"key2\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"<ListTagKeysResponse>\\n <TotalCount>5</TotalCount>\\n <PageSize>10</PageSize>\\n <RequestId>50177258-E817-4D2F-A5C6-3FD7BC4806E3</RequestId>\\n <PageNumber>1</PageNumber>\\n <TagKeys>\\n <TagCount>2</TagCount>\\n <TagKey>1</TagKey>\\n </TagKeys>\\n <TagKeys>\\n <TagCount>2</TagCount>\\n <TagKey>1234567890按时AAAaaa</TagKey>\\n </TagKeys>\\n <TagKeys>\\n <TagCount>1</TagCount>\\n <TagKey>das</TagKey>\\n </TagKeys>\\n <TagKeys>\\n <TagCount>3</TagCount>\\n <TagKey>key1</TagKey>\\n </TagKeys>\\n <TagKeys>\\n <TagCount>2</TagCount>\\n <TagKey>key2</TagKey>\\n </TagKeys>\\n</ListTagKeysResponse>","errorExample":""}]', + 'title' => 'ListTagKeys', + 'extraInfo' => ' ', + ], + 'ListTagResources' => [ + 'summary' => 'Queries the tags that are added for one or more bastion hosts.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '91514', + 'abilityTreeNodes' => [ + 'FEATUREbastionhostJYERXM', + ], + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the Bastionhost instance.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The type of the resource.'."\n" + ."\n" + .'Set the value to INSTANCE, which indicates that the resource is a Bastionhost instance.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'INSTANCE', + ], + ], + [ + 'name' => 'NextToken', + 'in' => 'query', + 'schema' => [ + 'description' => 'The token for starting the next query.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '6EwFJmScBXFFC3nf.9Rq7HzA7APx7GWLbkZbjHrR6Pq39w', + ], + ], + [ + 'name' => 'ResourceId', + 'in' => 'query', + 'style' => 'repeatList', + 'schema' => [ + 'description' => 'The IDs of instances.', + 'type' => 'array', + 'items' => [ + 'description' => 'The ID of instance.The ID is up to 20.'."\n" + ."\n" + .'> You can call the [DescribeInstances](~~153281~~) operation to obtain the ID of the Bastionhost instance.', + 'type' => 'string', + 'required' => false, + 'example' => '2', + ], + 'required' => false, + 'example' => 'bastionhost-cn-78v1gcxxxxx', + 'maxItems' => 51, + ], + ], + [ + 'name' => 'Tag', + 'in' => 'query', + 'style' => 'repeatList', + 'schema' => [ + 'description' => 'The tags.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'Key' => [ + 'description' => 'The key of tag N.'."\n" + ."\n" + .'Valid values of N: 1 to 20.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'test', + ], + 'Value' => [ + 'description' => 'The value of tag N.'."\n" + ."\n" + .'Valid values of N: 1 to 20.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'testapi', + ], + ], + 'required' => false, + ], + 'required' => false, + 'maxItems' => 21, + ], + ], + [ + 'name' => 'ResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'type' => 'string', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'NextToken' => [ + 'description' => 'The token for starting the next query.'."\n", + 'type' => 'string', + 'example' => '4ieSWJCwxvW3dk3wF.BqkrZmP72nWu5zJ5NWydMqyEs****', + ], + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => '134D6018-EB68-4B7C-BABF-4DB09023E014', + ], + 'TagResources' => [ + 'description' => 'The information about Bastionhost instances and the tags bound to Bastionhost instances.'."\n" + ."\n" + .'The following information is included: instance ID, resource type, tag key, and tag value.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'TagValue' => [ + 'description' => 'The value of the tag.'."\n", + 'type' => 'string', + 'example' => 'testapi', + ], + 'ResourceType' => [ + 'description' => 'The type of the resource.'."\n" + ."\n" + .'The returned value is INSTANCE, which indicates that the resource is a Bastionhost instance.'."\n", + 'type' => 'string', + 'example' => 'INSTANCE', + ], + 'ResourceId' => [ + 'description' => 'The ID of the instance.'."\n", + 'type' => 'string', + 'example' => 'bastionhost-cn-78v1gc****', + ], + 'TagKey' => [ + 'description' => 'The key of the tag.'."\n", + 'type' => 'string', + 'example' => 'test', + ], + ], + ], + ], + ], + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"NextToken\\": \\"4ieSWJCwxvW3dk3wF.BqkrZmP72nWu5zJ5NWydMqyEs****\\",\\n \\"RequestId\\": \\"134D6018-EB68-4B7C-BABF-4DB09023E014\\",\\n \\"TagResources\\": [\\n {\\n \\"TagValue\\": \\"testapi\\",\\n \\"ResourceType\\": \\"INSTANCE\\",\\n \\"ResourceId\\": \\"bastionhost-cn-78v1gc****\\",\\n \\"TagKey\\": \\"test\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"<ListTagResourcesResponse>\\n <NextToken>6EwFJmScBXFFC3nf.9Rq7HzA7APx7GWLbkZbjHrR6P****</NextToken>\\n <RequestId>134D6018-EB68-4B7C-BABF-4DB09023E014</RequestId>\\n <TagResources>\\n <ResourceId>bastionhost-cn-78v1gc****</ResourceId>\\n <TagKey>test</TagKey>\\n <ResourceType>INSTANCE</ResourceType>\\n <TagValue>testapi</TagValue>\\n </TagResources>\\n</ListTagResourcesResponse>","errorExample":""}]', + 'title' => 'ListTagResources', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'UntagResources' => [ + 'summary' => 'Removes tags from the specified bastion host and deletes the tags at a time.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '91533', + 'abilityTreeNodes' => [ + 'FEATUREbastionhostJYERXM', + ], + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the bastion host to query.'."\n" + ."\n" + .'> For more information about the mapping between region IDs and region names, see [Regions and zones](~~40654~~).'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The type of the resource.'."\n" + ."\n" + .'Set the value to **INSTANCE**, which indicates that the resource is a bastion host.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'INSTANCE', + ], + ], + [ + 'name' => 'All', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to delete all tags that are added to the bastion host.'."\n" + ."\n" + .'* If you specify TagKey.N, the value of this parameter can only be **false**, which indicates that only a specified tag is deleted.'."\n" + .'* If you do not specify TagKey.N and the value of this parameter is **true**, all tags are deleted. If you do not specify TagKey.N and the value of this parameter is **false**, no tags are deleted.'."\n", + 'type' => 'boolean', + 'required' => false, + 'example' => 'false', + ], + ], + [ + 'name' => 'ResourceId', + 'in' => 'query', + 'style' => 'repeatList', + 'schema' => [ + 'description' => 'An array that consists of IDs of bastion hosts.'."\n" + ."\n" + .'Valid values: 1 to 20.'."\n" + ."\n" + .'> You can call the [DescribeInstances](~~153281~~) operation to query the ID of the bastion host.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The ID of bastion host N.'."\n" + ."\n" + .'Valid values of N: 1 to 20.'."\n" + ."\n" + .'> You can call the [DescribeInstances](~~153281~~) operation to query the ID of the bastion host.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'bastionhost-cn-78v1gc****', + ], + 'required' => true, + 'maxItems' => 51, + ], + ], + [ + 'name' => 'TagKey', + 'in' => 'query', + 'style' => 'repeatList', + 'schema' => [ + 'description' => 'The key of tag N.'."\n" + ."\n" + .'Valid values of N: 1 to 20.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The key of tag N.'."\n" + ."\n" + .'Valid values of N: 1 to 20.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'test', + ], + 'required' => false, + 'maxItems' => 21, + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request, which is used to locate and troubleshoot issues.'."\n", + 'type' => 'string', + 'example' => 'A8A665B9-8550-4942-9DEE-73198051856B', + ], + ], + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"A8A665B9-8550-4942-9DEE-73198051856B\\"\\n}","errorExample":""},{"type":"xml","example":"<UntagResourcesResponse>\\n <RequestId>A8A665B9-8550-4942-9DEE-73198051856B</RequestId>\\n</UntagResourcesResponse>","errorExample":""}]', + 'title' => 'UntagResources', + ], + 'TagResources' => [ + 'summary' => 'Creates and adds tags to specified bastion hosts.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREbastionhostJYERXM', + ], + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the bastion hosts to which you want to create and add tags.'."\n" + ."\n" + .'> For more information about the mapping between region IDs and region names, see [Regions and zones](~~40654~~).'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The type of the resource.'."\n" + ."\n" + .'Set the value to **INSTANCE**, which indicates that the resource is a bastion host.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'INSTANCE', + ], + ], + [ + 'name' => 'ResourceId', + 'in' => 'query', + 'style' => 'repeatList', + 'schema' => [ + 'description' => 'An array that consists of IDs of bastion hosts.'."\n" + ."\n" + .'Valid values: 1 to 20.'."\n" + ."\n" + .'> You can call the [DescribeInstances](~~153281~~) operation to query IDs of bastion hosts.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The ID of the bastion host.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'bastionhost-cn-78v1gc****', + ], + 'required' => true, + 'example' => 'bastionhost-cn-78v1gc****', + 'maxItems' => 51, + ], + ], + [ + 'name' => 'Tag', + 'in' => 'query', + 'style' => 'repeatList', + 'schema' => [ + 'description' => 'The tags.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The tag that you want to create and add.'."\n", + 'type' => 'object', + 'properties' => [ + 'Key' => [ + 'description' => 'The tag key of the bastion host. You can specify up to 20 tags for the bastion host.'."\n" + ."\n" + .'> - Thekey cannot be an empty string. The key can be up to 128 characters in length. '."\n" + .'> - It cannot start with **aliyun** or **acs:**, and cannot contain **http://** or **https://**.', + 'type' => 'string', + 'required' => false, + 'example' => 'operation', + ], + 'Value' => [ + 'description' => 'The tag value of the bastion host.\\'."\n" + .'You can specify up to 20 tags for the bastion host.'."\n" + ."\n" + .'> * The value can be a string of up to 128 characters or an empty string.'."\n" + .'> * It cannot start with **aliyun** or **acs:**, and cannot contain **http://** or **https://**.', + 'type' => 'string', + 'required' => false, + 'example' => 'operation_test', + ], + ], + 'required' => false, + ], + 'required' => false, + 'maxItems' => 21, + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'description' => 'The data returned.'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request, which is used to locate and troubleshoot issues.'."\n", + 'type' => 'string', + 'example' => '2F24F0A8-4C69-4E89-9392-457D107E2D4A', + ], + ], + ], + ], + ], + 'errorCodes' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"2F24F0A8-4C69-4E89-9392-457D107E2D4A\\"\\n}","errorExample":""},{"type":"xml","example":"<TagResourcesResponse>\\n <RequestId>2F24F0A8-4C69-4E89-9392-457D107E2D4A</RequestId>\\n</TagResourcesResponse>","errorExample":""}]', + 'title' => 'TagResources', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'DescribeRegions' => [ + 'summary' => 'Queries available regions where you can create bastion hosts.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'none', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '91490', + 'abilityTreeNodes' => [ + 'FEATUREbastionhostOF2U94', + ], + 'tenantRelevance' => 'publicInformation', + ], + 'parameters' => [ + [ + 'name' => 'AcceptLanguage', + 'in' => 'query', + 'schema' => [ + 'description' => 'The natural language in which responses are returned. Valid values:'."\n" + ."\n" + .'* **zh-CN**: Chinese. This is the default value.'."\n" + .'* **en-US**: English.'."\n" + .'* **ja**: Japanese.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'zh-CN', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the region.', + 'type' => 'string', + 'required' => false, + 'example' => 'cn-shenzhen', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of request.'."\n", + 'type' => 'string', + 'example' => 'B7281856-F27D-4ECE-B4F1-50511E550xxx', + ], + 'Regions' => [ + 'description' => 'The information about regions where you can create bastion hosts.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'RegionEndpoint' => [ + 'description' => 'The endpoint of the region.'."\n", + 'type' => 'string', + 'example' => 'yundun-bastionhost.aliyuncs.com', + ], + 'LocalName' => [ + 'description' => 'The name of the region.'."\n", + 'type' => 'string', + 'example' => 'China (Hangzhou)', + ], + 'RegionId' => [ + 'description' => 'The ID of the region.'."\n", + 'type' => 'string', + 'example' => 'cn-hangzhou', + ], + ], + ], + ], + ], + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"B7281856-F27D-4ECE-B4F1-50511E550xxx\\",\\n \\"Regions\\": [\\n {\\n \\"RegionEndpoint\\": \\"yundun-bastionhost.aliyuncs.com\\",\\n \\"LocalName\\": \\"China (Hangzhou)\\",\\n \\"RegionId\\": \\"cn-hangzhou\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"<DescribeRegionsResponse>\\n <RequestId>B7281856-F27D-4ECE-B4F1-50511E550xxx</RequestId>\\n <Regions>\\n <RegionId>cn-hangzhou</RegionId>\\n <RegionEndpoint>yundun-bastionhost.aliyuncs.com</RegionEndpoint>\\n <LocalName>华东1(杭州)</LocalName>\\n </Regions>\\n <Regions>\\n <RegionId>cn-shanghai</RegionId>\\n <RegionEndpoint>yundun-bastionhost.aliyuncs.com</RegionEndpoint>\\n <LocalName>华东2(上海)</LocalName>\\n </Regions>\\n <Regions>\\n <RegionId>cn-qingdao</RegionId>\\n <RegionEndpoint>yundun-bastionhost.aliyuncs.com</RegionEndpoint>\\n <LocalName>华北1(青岛)</LocalName>\\n </Regions>\\n <Regions>\\n <RegionId>cn-beijing</RegionId>\\n <RegionEndpoint>yundun-bastionhost.aliyuncs.com</RegionEndpoint>\\n <LocalName>华北2(北京)</LocalName>\\n </Regions>\\n <Regions>\\n <RegionId>cn-zhangjiakou</RegionId>\\n <RegionEndpoint>yundun-bastionhost.aliyuncs.com</RegionEndpoint>\\n <LocalName>华北3(张家口)</LocalName>\\n </Regions>\\n <Regions>\\n <RegionId>cn-huhehaote</RegionId>\\n <RegionEndpoint>yundun-bastionhost.aliyuncs.com</RegionEndpoint>\\n <LocalName>华北5(呼和浩特)</LocalName>\\n </Regions>\\n <Regions>\\n <RegionId>cn-shenzhen</RegionId>\\n <RegionEndpoint>yundun-bastionhost.aliyuncs.com</RegionEndpoint>\\n <LocalName>华南1(深圳)</LocalName>\\n </Regions>\\n <Regions>\\n <RegionId>cn-chengdu</RegionId>\\n <RegionEndpoint>yundun-bastionhost.aliyuncs.com</RegionEndpoint>\\n <LocalName>西南1(成都)</LocalName>\\n </Regions>\\n <Regions>\\n <RegionId>cn-hongkong</RegionId>\\n <RegionEndpoint>yundun-bastionhost.aliyuncs.com</RegionEndpoint>\\n <LocalName>中国香港</LocalName>\\n </Regions>\\n <Regions>\\n <RegionId>ap-southeast-1</RegionId>\\n <RegionEndpoint>yundun-bastionhost.aliyuncs.com</RegionEndpoint>\\n <LocalName>新加坡</LocalName>\\n </Regions>\\n <Regions>\\n <RegionId>ap-southeast-2</RegionId>\\n <RegionEndpoint>yundun-bastionhost.aliyuncs.com</RegionEndpoint>\\n <LocalName>澳大利亚(悉尼)</LocalName>\\n </Regions>\\n <Regions>\\n <RegionId>ap-southeast-3</RegionId>\\n <RegionEndpoint>yundun-bastionhost.aliyuncs.com</RegionEndpoint>\\n <LocalName>马来西亚(吉隆坡)</LocalName>\\n </Regions>\\n <Regions>\\n <RegionId>ap-southeast-5</RegionId>\\n <RegionEndpoint>yundun-bastionhost.aliyuncs.com</RegionEndpoint>\\n <LocalName>印度尼西亚(雅加达)</LocalName>\\n </Regions>\\n <Regions>\\n <RegionId>ap-northeast-1</RegionId>\\n <RegionEndpoint>yundun-bastionhost.aliyuncs.com</RegionEndpoint>\\n <LocalName>日本(东京)</LocalName>\\n </Regions>\\n <Regions>\\n <RegionId>ap-south-1</RegionId>\\n <RegionEndpoint>yundun-bastionhost.aliyuncs.com</RegionEndpoint>\\n <LocalName>印度(孟买)</LocalName>\\n </Regions>\\n <Regions>\\n <RegionId>eu-central-1</RegionId>\\n <RegionEndpoint>yundun-bastionhost.aliyuncs.com</RegionEndpoint>\\n <LocalName>德国(法兰克福)</LocalName>\\n </Regions>\\n <Regions>\\n <RegionId>eu-west-1</RegionId>\\n <RegionEndpoint>yundun-bastionhost.aliyuncs.com</RegionEndpoint>\\n <LocalName>英国(伦敦)</LocalName>\\n </Regions>\\n <Regions>\\n <RegionId>us-west-1</RegionId>\\n <RegionEndpoint>yundun-bastionhost.aliyuncs.com</RegionEndpoint>\\n <LocalName>美国(硅谷)</LocalName>\\n </Regions>\\n <Regions>\\n <RegionId>us-east-1</RegionId>\\n <RegionEndpoint>yundun-bastionhost.aliyuncs.com</RegionEndpoint>\\n <LocalName>美国(弗吉尼亚)</LocalName>\\n </Regions>\\n <Regions>\\n <RegionId>me-east-1</RegionId>\\n <RegionEndpoint>yundun-bastionhost.aliyuncs.com</RegionEndpoint>\\n <LocalName>阿联酋(迪拜)</LocalName>\\n </Regions>\\n</DescribeRegionsResponse>","errorExample":""}]', + 'title' => 'DescribeRegions', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'CreateHost' => [ + 'summary' => 'Bastionhost allows you to perform O\\\\\\&M operations on hosts from different sources, such as Alibaba Cloud Elastic Compute Service (ECS) instances, servers in on-premises data centers, and servers on other cloud platforms. Before you perform O\\\\\\&M operations on hosts by using a bastion host, you must import the hosts to the bastion host. You can call this operation to import a host to a bastion host.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'create', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREbastionhostQ6EM52', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the bastion host in which you want to create the host.'."\n" + ."\n" + .'> You can call the [DescribeInstances](~~153281~~) operation to query the ID of the bastion host.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'bastionhost-cn-st220aw****', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the bastion host to which you want to import the host.'."\n" + ."\n" + .'> For information about the mapping between region IDs and region names, see [Regions and zones](~~40654~~).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'HostPrivateAddress', + 'in' => 'query', + 'schema' => [ + 'description' => 'The internal endpoint of the host that you want to create. You can set this parameter to a domain name or an IP address.'."\n" + ."\n" + .'> This parameter is required if the **ActiveAddressType** parameter is set to **Private**.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '192.168.XX.XX', + ], + ], + [ + 'name' => 'HostPublicAddress', + 'in' => 'query', + 'schema' => [ + 'description' => 'The public endpoint of the host that you want to create. You can set this parameter to a domain name or an IP address.'."\n" + ."\n" + .'> This parameter is required if the **ActiveAddressType** parameter is set to **Public**.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '172.16.XX.XX', + ], + ], + [ + 'name' => 'ActiveAddressType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The endpoint type of the host that you want to create. Valid values:'."\n" + ."\n" + .'* **Public**: public endpoint'."\n" + .'* **Private**: internal endpoint'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'Public', + ], + ], + [ + 'name' => 'HostName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the host that you want to create. The name can be up to 128 characters in length.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'host01', + ], + ], + [ + 'name' => 'Source', + 'in' => 'query', + 'schema' => [ + 'description' => 'The source of the host that you want to create. Valid values:'."\n" + ."\n" + .'* **Local**: a host in a data center'."\n" + .'* **Ecs**: an Elastic Compute Service (ECS) instance'."\n" + .'* **Rds**: a host in an ApsaraDB MyBase dedicated cluster'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'Local', + ], + ], + [ + 'name' => 'OSType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The operating system of the host that you want to create. Valid values:'."\n" + ."\n" + .'* **Linux**'."\n" + .'* **Windows**'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'Linux', + ], + ], + [ + 'name' => 'Comment', + 'in' => 'query', + 'schema' => [ + 'description' => 'The description of the host that you want to create. The value can be up to 500 characters in length.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'Local Host', + ], + ], + [ + 'name' => 'SourceInstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the ECS instance or the host in an ApsaraDB MyBase dedicated cluster.'."\n" + ."\n" + .'> This parameter is required if the **Source** parameter is set to **Ecs** or **Rds**.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'i-dfabfda', + ], + ], + [ + 'name' => 'InstanceRegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the region to which the ECS instance or the host in an ApsaraDB MyBase dedicated cluster belongs.'."\n" + ."\n" + .'> This parameter is required if the **Source** parameter is set to **Ecs** or **Rds**.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'NetworkDomainId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the network domain to which the host to be imported belongs.'."\n" + ."\n" + .'> You can call the [ListNetworkDomains](~~2758827~~) operation to query the network domain ID.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '1', + ], + ], + [ + 'name' => 'InstanceMemberId', + 'in' => 'query', + 'schema' => [ + 'title' => '主机实例所属实例成员ID', + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'HostId' => [ + 'description' => 'The ID of the host.'."\n", + 'type' => 'string', + 'example' => '1', + ], + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => 'EC9BF0F4-8983-491A-BC8C-1B4DD94976DE', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The argument is invalid.', + ], + [ + 'errorCode' => 'LicenseOutOfLimit', + 'errorMessage' => 'The host count is out of limit.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'An unknown error occurred.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"HostId\\": \\"1\\",\\n \\"RequestId\\": \\"EC9BF0F4-8983-491A-BC8C-1B4DD94976DE\\"\\n}","errorExample":""},{"type":"xml","example":"<CreateHostResponse>\\n <RequestId>EC9BF0F4-8983-491A-BC8C-1B4DD94976DE</RequestId>\\n <HostId>1</HostId>\\n</CreateHostResponse>","errorExample":""}]', + 'title' => 'CreateHost', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'GetHost' => [ + 'summary' => 'Queries the details of a host, such as the name, source, address, protocol, and service port of the host.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREbastionhostQ6EM52', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the bastion host in which you want to query the host.'."\n" + ."\n" + .'> You can call the [DescribeInstances](~~153281~~) operation to query the ID of the bastion host.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'bastionhost-cn-st220aw****', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the bastion host in which you want to query the host.'."\n" + ."\n" + .'> For more information about the mapping between region IDs and region names, see [Regions and zones](~~40654~~).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'HostId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the host that you want to query. You can specify only one host ID.'."\n" + ."\n" + .'> You can call the [ListHosts](~~200665~~) operation to query the ID of the host.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '1', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'EC9BF0F4-8983-491A-BC8C-1B4DD94976DE', + ], + 'Host' => [ + 'description' => 'The returned information about the host.'."\n", + 'type' => 'object', + 'properties' => [ + 'Comment' => [ + 'description' => 'The description of the host.'."\n", + 'type' => 'string', + 'example' => 'host', + ], + 'ActiveAddressType' => [ + 'description' => 'The address type of the host. Valid values:'."\n" + ."\n" + .'* **Public**: a public address'."\n" + .'* **Private**: a private address'."\n", + 'type' => 'string', + 'example' => 'Public', + ], + 'HostPublicAddress' => [ + 'description' => 'The public address of the host. The value is a domain name or an IP address.'."\n", + 'type' => 'string', + 'example' => '1.1.XX.XX', + ], + 'HostName' => [ + 'description' => 'The hostname.'."\n", + 'type' => 'string', + 'example' => 'host', + ], + 'Source' => [ + 'description' => 'The source of the host. Valid values:'."\n" + ."\n" + .'* **Local**: a host in a data center'."\n" + .'* **Ecs**: an Elastic Compute Service (ECS) instance'."\n" + .'* **Rds**: a host in an ApsaraDB MyBase dedicated cluster'."\n", + 'type' => 'string', + 'example' => 'Local', + ], + 'HostPrivateAddress' => [ + 'description' => 'The internal endpoint of the host. The value is a domain name or an IP address.'."\n", + 'type' => 'string', + 'example' => '192.168.XX.XX', + ], + 'OSType' => [ + 'description' => 'The operating system of the host. Valid values:'."\n" + ."\n" + .'* **Linux**'."\n" + .'* **Windows**'."\n", + 'type' => 'string', + 'example' => 'Linux', + ], + 'HostId' => [ + 'description' => 'The ID of the host.'."\n", + 'type' => 'string', + 'example' => '1', + ], + 'SourceInstanceState' => [ + 'description' => 'The status of the host. Valid values:'."\n" + ."\n" + .'* **Normal**: normal'."\n" + .'* **Release**: released'."\n", + 'type' => 'string', + 'example' => 'Normal', + ], + 'SourceInstanceId' => [ + 'description' => 'The ID of the ECS instance or the host in an ApsaraDB MyBase dedicated cluster.'."\n" + ."\n" + .'> If **Local** is returned for the **Source** parameter, no value is returned for this parameter.'."\n", + 'type' => 'string', + 'example' => 'i-bp19ienyt0yax748****', + ], + 'Protocols' => [ + 'description' => 'The protocol information about the host.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'HostFingerPrint' => [ + 'description' => 'The fingerprint of the host. This parameter uniquely identifies a host. A value is returned for this parameter only if you have performed O\\&M operations on the host by using the bastion host. Otherwise, no value is returned.'."\n", + 'type' => 'string', + 'example' => 'ssh-ed25519|3e:46:5a:e1:1f:0d:39:7e:61:35:d5:fa:7b:2b:**:**', + ], + 'Port' => [ + 'description' => 'The service port of the host.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '22', + ], + 'ProtocolName' => [ + 'description' => 'The protocol that is used to connect to the host. Valid values:'."\n" + ."\n" + .'* **SSH**'."\n" + .'* **RDP**'."\n", + 'type' => 'string', + 'example' => 'SSH', + ], + ], + ], + ], + 'NetworkDomainId' => [ + 'description' => 'The ID of the network domain to which the host belongs.'."\n", + 'type' => 'string', + 'example' => '1', + ], + 'PrefKex' => [ + 'description' => 'The preferred key exchange algorithm of the host. The value of this parameter is returned if OSType is set to Linux. Valid values:'."\n" + ."\n" + .'* **default**'."\n" + .'* **diffie-hellman-group1-sha1**'."\n" + .'* **diffie-hellman-group14-sha1**'."\n" + .'* **diffie-hellman-group-exchange-sha1**'."\n", + 'type' => 'string', + 'example' => 'default', + ], + ], + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The argument is invalid.', + ], + [ + 'errorCode' => 'HostNotFound', + 'errorMessage' => 'The host is not found.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'An unknown error occurred.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"EC9BF0F4-8983-491A-BC8C-1B4DD94976DE\\",\\n \\"Host\\": {\\n \\"Comment\\": \\"host\\",\\n \\"ActiveAddressType\\": \\"Public\\",\\n \\"HostPublicAddress\\": \\"1.1.XX.XX\\",\\n \\"HostName\\": \\"host\\",\\n \\"Source\\": \\"Local\\",\\n \\"HostPrivateAddress\\": \\"192.168.XX.XX\\",\\n \\"OSType\\": \\"Linux\\",\\n \\"HostId\\": \\"1\\",\\n \\"SourceInstanceState\\": \\"Normal\\",\\n \\"SourceInstanceId\\": \\"i-bp19ienyt0yax748****\\",\\n \\"Protocols\\": [\\n {\\n \\"HostFingerPrint\\": \\"ssh-ed25519|3e:46:5a:e1:1f:0d:39:7e:61:35:d5:fa:7b:2b:**:**\\",\\n \\"Port\\": 22,\\n \\"ProtocolName\\": \\"SSH\\"\\n }\\n ],\\n \\"NetworkDomainId\\": \\"1\\",\\n \\"PrefKex\\": \\"default\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"<GetHostResponse>\\n <RequestId>EC9BF0F4-8983-491A-BC8C-1B4DD94976DE</RequestId>\\n <Host>\\n <Comment>host</Comment>\\n <Protocols>\\n <ProtocolName>SSH</ProtocolName>\\n <HostFingerPrint/>\\n <Port>22</Port>\\n </Protocols>\\n <ActiveAddressType>Public</ActiveAddressType>\\n <HostPrivateAddress>192.168.XX.XX</HostPrivateAddress>\\n <HostPublicAddress>1.1.XX.XX</HostPublicAddress>\\n <OSType>Linux</OSType>\\n <HostId>1</HostId>\\n <SourceInstanceId>i-bp19ienyt0yax748****</SourceInstanceId>\\n <HostName>host</HostName>\\n <SourceInstanceState>Normal</SourceInstanceState>\\n <Source>Local</Source>\\n </Host>\\n</GetHostResponse>","errorExample":""}]', + 'title' => 'GetHost', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'ListHosts' => [ + 'summary' => 'Queries the hosts in a bastion host.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREbastionhostQ6EM52', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the bastion host on which you want to query hosts.'."\n" + ."\n" + .'> You can call the [DescribeInstances](~~153281~~) operation to query the ID of the bastion host.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'bastionhost-cn-st220aw****', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the bastion host on which you want to query hosts.'."\n" + ."\n" + .'> For more information about the mapping between region IDs and region names, see [Regions and zones](~~40654~~).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of the page to return. Default value: **1**.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '1', + ], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of entries to return on each page. Default value: **10**.'."\n" + ."\n" + .'> We recommend that you do not leave this parameter empty.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '20', + ], + ], + [ + 'name' => 'OSType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The operating system of the host that you want to query. Valid values:'."\n" + ."\n" + .'* **Linux**'."\n" + .'* **Windows**'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'Linux', + ], + ], + [ + 'name' => 'HostName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the host that you want to query. Only exact match is supported.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'host', + ], + ], + [ + 'name' => 'HostAddress', + 'in' => 'query', + 'schema' => [ + 'description' => 'The address of the host that you want to query. You can set this parameter to a domain name or an IP address. Only exact match is supported.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '1.1.XX.XX', + ], + ], + [ + 'name' => 'Source', + 'in' => 'query', + 'schema' => [ + 'description' => 'The source of the host that you want to query. Valid values:'."\n" + ."\n" + .'* **Local**: a host in a data center'."\n" + .'* **Ecs**: an Elastic Compute Service (ECS) instance'."\n" + .'* **Rds**: a host in an ApsaraDB MyBase dedicated cluster'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'Local', + ], + ], + [ + 'name' => 'SourceInstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the ECS instance or the host in an ApsaraDB MyBase dedicated cluster that you want to query. Only exact match is supported.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'i-bp19ienyt0yax748****', + ], + ], + [ + 'name' => 'SourceInstanceState', + 'in' => 'query', + 'schema' => [ + 'description' => 'The status of the host that you want to query. Valid values:'."\n" + ."\n" + .'* **Normal**: normal'."\n" + .'* **Release**: released'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'Normal', + ], + ], + [ + 'name' => 'HostGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the host group to which the host to be queried belongs.'."\n" + ."\n" + .'> You can call the [ListHostGroups](~~201307~~) operation to query the ID of the host group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '1', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'TotalCount' => [ + 'description' => 'The total number of hosts returned.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '1', + ], + 'RequestId' => [ + 'description' => 'The ID of the request, which is used to locate and troubleshoot issues.'."\n", + 'type' => 'string', + 'example' => 'EC9BF0F4-8983-491A-BC8C-1B4DD94976DE', + ], + 'Hosts' => [ + 'description' => 'An array that consists of the hosts returned.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Comment' => [ + 'description' => 'The description of the host.'."\n", + 'type' => 'string', + 'example' => 'host', + ], + 'ActiveAddressType' => [ + 'description' => 'The address type of the host. Valid values:'."\n" + ."\n" + .'* **Public**: a public address'."\n" + .'* **Private**: a private address'."\n", + 'type' => 'string', + 'example' => 'Public', + ], + 'HostPublicAddress' => [ + 'description' => 'The public address of the host. The value is a domain name or an IP address.'."\n", + 'type' => 'string', + 'example' => '1.1.XX.XX', + ], + 'HostName' => [ + 'description' => 'The name of the host.'."\n", + 'type' => 'string', + 'example' => 'name', + ], + 'HostAccountCount' => [ + 'description' => 'The number of host accounts.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '1', + ], + 'Source' => [ + 'description' => 'The source of the host. Valid values:'."\n" + ."\n" + .'* **Local**: a host in a data center'."\n" + .'* **Ecs**: an ECS instance'."\n" + .'* **Rds**: a host in an ApsaraDB MyBase dedicated cluster'."\n", + 'type' => 'string', + 'example' => 'Local', + ], + 'HostPrivateAddress' => [ + 'description' => 'The private address of the host. The value is a domain name or an IP address.'."\n", + 'type' => 'string', + 'example' => '192.168.XX.XX', + ], + 'OSType' => [ + 'description' => 'The operating system of the host. Valid values:'."\n" + ."\n" + .'* **Linux**'."\n" + .'* **Windows**'."\n", + 'type' => 'string', + 'example' => 'Linux', + ], + 'HostId' => [ + 'description' => 'The ID of the host.'."\n", + 'type' => 'string', + 'example' => '1', + ], + 'SourceInstanceState' => [ + 'description' => 'The status of the host. Valid values:'."\n" + ."\n" + .'* **Normal**: normal'."\n" + .'* **Release**: released'."\n", + 'type' => 'string', + 'example' => 'Normal', + ], + 'SourceInstanceId' => [ + 'description' => 'The ID of the ECS instance or the host in an ApsaraDB MyBase dedicated cluster.'."\n" + ."\n" + .'> No value is returned for this parameter if the **Source** parameter is set to **Local**.'."\n", + 'type' => 'string', + 'example' => 'i-bp19ienyt0yax748****', + ], + ], + ], + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The argument is invalid.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'An unknown error occurred.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"TotalCount\\": 1,\\n \\"RequestId\\": \\"EC9BF0F4-8983-491A-BC8C-1B4DD94976DE\\",\\n \\"Hosts\\": [\\n {\\n \\"Comment\\": \\"host\\",\\n \\"ActiveAddressType\\": \\"Public\\",\\n \\"HostPublicAddress\\": \\"1.1.XX.XX\\",\\n \\"HostName\\": \\"name\\",\\n \\"HostAccountCount\\": 1,\\n \\"Source\\": \\"Local\\",\\n \\"HostPrivateAddress\\": \\"192.168.XX.XX\\",\\n \\"OSType\\": \\"Linux\\",\\n \\"HostId\\": \\"1\\",\\n \\"SourceInstanceState\\": \\"Normal\\",\\n \\"SourceInstanceId\\": \\"i-bp19ienyt0yax748****\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"<ListHostsResponse>\\n <TotalCount>1</TotalCount>\\n <RequestId>EC9BF0F4-8983-491A-BC8C-1B4DD94976DE</RequestId>\\n <Hosts>\\n <Comment>host</Comment>\\n <ActiveAddressType>Public</ActiveAddressType>\\n <HostPublicAddress>1.1.XX.XX</HostPublicAddress>\\n <HostName>name</HostName>\\n <HostAccountCount>1</HostAccountCount>\\n <Source>Local</Source>\\n <HostPrivateAddress>192.168.XX.XX</HostPrivateAddress>\\n <OSType>Linux</OSType>\\n <HostId>1</HostId>\\n <SourceInstanceState>Normal</SourceInstanceState>\\n <SourceInstanceId>i-bp19ienyt0yax748****</SourceInstanceId>\\n </Hosts>\\n</ListHostsResponse>","errorExample":""}]', + 'title' => 'ListHosts', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'DeleteHost' => [ + 'summary' => 'Deletes a host.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'delete', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREbastionhostQ6EM52', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the bastion host on which you want to delete the host.'."\n" + ."\n" + .'> You can call the [DescribeInstances](~~153281~~) operation to query the ID of the bastion host.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'bastionhost-cn-st220aw****', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the bastion host on which you want to delete the host.'."\n" + ."\n" + .'> For more information about the mapping between region IDs and region names, see [Regions and zones](~~40654~~).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'HostId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the host that you want to delete.'."\n" + ."\n" + .'> You can call the [ListHosts](~~200665~~) operation to query the ID of the host.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '1', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => 'EC9BF0F4-8983-491A-BC8C-1B4DD94976DE', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The argument is invalid.', + ], + [ + 'errorCode' => 'HostNotFound', + 'errorMessage' => 'The host is not found.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'An unknown error occurred.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"EC9BF0F4-8983-491A-BC8C-1B4DD94976DE\\"\\n}","errorExample":""},{"type":"xml","example":"<DeleteHostResponse>\\n <RequestId>EC9BF0F4-8983-491A-BC8C-1B4DD94976DE</RequestId>\\n</DeleteHostResponse>","errorExample":""}]', + 'title' => 'DeleteHost', + 'extraInfo' => ' ', + ], + 'ModifyHostsPort' => [ + 'summary' => 'Changes the port for the O\\\\\\\\\\\\&M protocol on one or more hosts.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREbastionhostQ6EM52', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the bastion host for which you want to change the port of the host.'."\n" + ."\n" + .'> You can call the [DescribeInstances](~~153281~~) operation to query the ID of the bastion host.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'bastionhost-cn-st220aw****', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the bastion host for which you want to change the port of the host.'."\n" + ."\n" + .'> For more information about the mapping between region IDs and region names, see [Regions and zones](~~40654~~).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'HostIds', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the host for which you want to change the port. The value is a JSON string. You can add up to 100 host IDs. If you specify multiple IDs, separate the IDs with commas (,).'."\n" + ."\n" + .'> You can call the [ListHosts](~~200665~~) operation to query the IDs of hosts.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '["1","2","3"]', + ], + ], + [ + 'name' => 'ProtocolName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The protocol that is used to connect to the host. Valid values:'."\n" + ."\n" + .'* **SSH**'."\n" + .'* **RDP**'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'SSH', + ], + ], + [ + 'name' => 'Port', + 'in' => 'query', + 'schema' => [ + 'description' => 'The new port of the host. The port number must be an integer. Valid values: 22 to 65535.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '22', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request, which is used to locate and troubleshoot issues.'."\n", + 'type' => 'string', + 'example' => 'EC9BF0F4-8983-491A-BC8C-1B4DD94976DE', + ], + 'Results' => [ + 'description' => 'The result of the call.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Code' => [ + 'description' => 'The return code that indicates whether the call was successful. Valid values:'."\n" + ."\n" + .'* **OK**: The call was successful.'."\n" + .'* **UNEXPECTED**: An unknown error occurred.'."\n" + .'* **INVALID_ARGUMENT**: A request parameter is invalid.'."\n" + .' > Make sure that the request parameters are valid and call the operation again.'."\n" + ."\n" + .'* **OBJECT_NOT_FOUND**: The specified object on which you want to perform the operation does not exist.'."\n" + ."\n" + .' > Check whether the specified ID of the bastion host exists, whether the specified hosts exist, and whether the specified host IDs are valid. Then, call the operation again.'."\n" + ."\n" + .'* **OBJECT\\_AlREADY\\_EXISTS**: The specified object on which you want to perform the operation already exists.', + 'type' => 'string', + 'example' => 'OK', + ], + 'Message' => [ + 'description' => 'This parameter is deprecated.'."\n", + 'type' => 'string', + 'example' => '-', + ], + 'HostId' => [ + 'description' => 'The ID of the host.'."\n", + 'type' => 'string', + 'example' => '1', + ], + ], + ], + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The argument is invalid.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'An unknown error occurred.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"EC9BF0F4-8983-491A-BC8C-1B4DD94976DE\\",\\n \\"Results\\": [\\n {\\n \\"Code\\": \\"OK\\",\\n \\"Message\\": \\"None\\",\\n \\"HostId\\": \\"1\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"<ModifyHostsPortResponse>\\n<RequestId>EC9BF0F4-8983-491A-BC8C-1B4DD94976DE</RequestId>\\n<Results>\\n <Message>无</Message>\\n <HostId>1</HostId>\\n <Code>OK</Code>\\n</Results>\\n</ModifyHostsPortResponse>","errorExample":""}]', + 'title' => 'ModifyHostsPort', + 'description' => '## Usage notes'."\n" + ."\n" + .'You can call this operation to change the port for the O&M protocol on one or more hosts. If the standard port for the O&M protocol on your host is vulnerable to attacks, you can call this operation to specify a custom port. For example, the standard port for SSH is port 22. '."\n" + ."\n" + .'> Ports 0 to 1024 are reserved for Bastionhost. Do not change the port for the O&M protocol to a reserved port. '."\n" + ."\n" + .'## QPS limit'."\n" + ."\n" + .'You can call this operation up to 10 times per second per account. If the number of the calls per second exceeds the limit, throttling is triggered. As a result, your business may be affected. We recommend that you take note of the limit when you call this operation.', + 'requestParamsDescription' => 'All Alibaba Cloud API operations must include common request parameters. For more information about common request parameters, see [Common parameters](~~315526~~).'."\n" + ."\n" + .'For more information about sample requests, see the "Examples" section of this topic.', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'ModifyHostsActiveAddressType' => [ + 'summary' => 'Changes the endpoint type of one or more hosts for O\\\\\\&M. Public and private IP addresses are supported.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREbastionhostQ6EM52', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the bastion host for which you want to change the portal type of the host.'."\n" + ."\n" + .'> You can call the [DescribeInstances](~~153281~~) operation to query the ID of the bastion host.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'bastionhost-cn-st220aw***', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the bastion host for which you want to change the portal type of the host.'."\n" + ."\n" + .'> For more information about the mapping between region IDs and region names, see [Regions and zones](~~40654~~).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'HostIds', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the host for which you want to change the portal type. The value is a JSON string. You can add up to 100 host IDs.'."\n" + ."\n" + .'> You can call the [ListHosts](~~200665~~) operation to query the ID of the host.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '["1","2"]', + ], + ], + [ + 'name' => 'ActiveAddressType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The new portal type of the host. Valid values:'."\n" + ."\n" + .'* **Public**: public portal'."\n" + .'* **Private**: internal portal'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'Private', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request, which is used to locate and troubleshoot issues.'."\n", + 'type' => 'string', + 'example' => 'EC9BF0F4-8983-491A-BC8C-1B4DD94976DE', + ], + 'Results' => [ + 'description' => 'The result of the call.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Code' => [ + 'description' => 'The return code that indicates whether the call was successful. Valid values:'."\n" + ."\n" + .'* **OK**: The call was successful.'."\n" + .'* **UNEXPECTED**: An unknown error occurred.'."\n" + .'* **INVALID_ARGUMENT**: A request parameter is invalid.'."\n" + .'* **OBJECT_NOT_FOUND**: The specified object on which you want to perform the operation does not exist.'."\n" + .'* **OBJECT_AlREADY_EXISTS**: The specified object on which you want to perform the operation already exists.'."\n", + 'type' => 'string', + 'example' => 'OK', + ], + 'Message' => [ + 'description' => 'This parameter is deprecated.'."\n", + 'type' => 'string', + 'example' => '', + ], + 'HostId' => [ + 'description' => 'The ID of the host.'."\n", + 'type' => 'string', + 'example' => '1', + ], + ], + ], + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The argument is invalid.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'An unknown error occurred.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"EC9BF0F4-8983-491A-BC8C-1B4DD94976DE\\",\\n \\"Results\\": [\\n {\\n \\"Code\\": \\"OK\\",\\n \\"Message\\": \\"None\\",\\n \\"HostId\\": \\"1\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"<ModifyHostsActiveAddressTypeResponse>\\n <RequestId>EC9BF0F4-8983-491A-BC8C-1B4DD94976DE</RequestId>\\n <Results>\\n <Message/>\\n <HostId>1</HostId>\\n <Code>OK</Code>\\n </Results>\\n</ModifyHostsActiveAddressTypeResponse>","errorExample":""}]', + 'title' => 'ModifyHostsActiveAddressType', + 'requestParamsDescription' => 'All Alibaba Cloud API operations must include common request parameters. For more information about common request parameters, see [Common parameters](~~148139~~).'."\n" + ."\n" + .'For more information about sample requests, see the "Examples" section of this topic.'."\n", + ], + 'ModifyHost' => [ + 'summary' => 'Modifies information about a host. The information includes the address, name, and description of the host and the operating system that the host runs.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'readAndWrite', + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREbastionhostQ6EM52', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the bastion host on which you want to modify the information about the host.'."\n" + ."\n" + .'> You can call the [DescribeInstances](~~153281~~) operation to query the ID of the bastion host.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'bastionhost-cn-st220aw****', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the bastion host on which you want to modify the information about the host.'."\n" + ."\n" + .'> For more information about the mapping between region IDs and region names, see [Regions and zones](~~40654~~).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'HostId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the host.'."\n" + ."\n" + .'> You can call the [ListHosts](~~200665~~) operation to query the ID of the host.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '1', + ], + ], + [ + 'name' => 'HostPrivateAddress', + 'in' => 'query', + 'schema' => [ + 'description' => 'The new internal endpoint of the host. You can set this parameter to a domain name or an IP address.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '193.168.XX.XX', + ], + ], + [ + 'name' => 'HostPublicAddress', + 'in' => 'query', + 'schema' => [ + 'description' => 'The new public endpoint of the host. You can set this parameter to a domain name or an IP address.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '200.1.XX.XX', + ], + ], + [ + 'name' => 'OSType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The new operating system of the host. Valid values:'."\n" + ."\n" + .'* **Linux**'."\n" + .'* **Windows**'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'Linux', + ], + ], + [ + 'name' => 'HostName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The new name of the host. The name can be up to 128 characters.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'TestHost', + ], + ], + [ + 'name' => 'Comment', + 'in' => 'query', + 'schema' => [ + 'description' => 'The new description of the host. The description can be up to 500 characters in length.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'Host for test.', + ], + ], + [ + 'name' => 'NetworkDomainId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the new network domain to which the host belongs.'."\n" + ."\n" + .'> You can call the [ListNetworkDomains](~~2758827~~) operation to query the network domain ID.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '1', + ], + ], + [ + 'name' => 'PrefKex', + 'in' => 'query', + 'schema' => [ + 'description' => 'The preferred key exchange algorithm of the host. If you set OSType to Linux, you can modify this parameter. Valid values:'."\n" + ."\n" + .'* **default**'."\n" + .'* **diffie-hellman-group1-sha1**'."\n" + .'* **diffie-hellman-group14-sha1**'."\n" + .'* **diffie-hellman-group-exchange-sha1**'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'default', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => 'EC9BF0F4-8983-491A-BC8C-1B4DD94976DE', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The argument is invalid.', + ], + [ + 'errorCode' => 'HostNotFound', + 'errorMessage' => 'The host is not found.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'An unknown error occurred.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"EC9BF0F4-8983-491A-BC8C-1B4DD94976DE\\"\\n}","errorExample":""},{"type":"xml","example":"<ModifyHostResponse>\\n <RequestId>EC9BF0F4-8983-491A-BC8C-1B4DD94976DE</RequestId>\\n</ModifyHostResponse>","errorExample":""}]', + 'title' => 'ModifyHost', + 'description' => 'You can call the ModifyHost operation to modify the basic information about a host in a data center, an Elastic Compute Service (ECS) instance, or a host in an ApsaraDB MyBase dedicated cluster.'."\n" + ."\n" + .'> The basic information about ECS instances and hosts in ApsaraDB MyBase dedicated clusters within your Alibaba Cloud account is synchronized to Bastionhost on a regular basis. After you modify the basic information about an ECS instance or a host in an ApsaraDB MyBase dedicated cluster, the modification result may be overwritten by the synchronized information.'."\n", + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'CreateDatabase' => [ + 'summary' => 'Imports an ApsaraDB RDS for MySQL instance, ApsaraDB RDS for SQL Server instance, ApsaraDB RDS for PostgreSQL instance, PolarDB for MySQL cluster, PolarDB for PostgreSQL cluster, PolarDB for PostgreSQL (Compatible with Oracle) cluster, self-managed MySQL database, self-managed SQL Server database, self-managed PostgreSQL database, or self-managed Oracle database to a bastion host.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'create', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREbastionhostXV4JIF', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The bastion host ID.'."\n" + ."\n" + .'> You can call the [DescribeInstances](~~153281~~) operation to query the bastion host ID.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'bastionhost-cn-7mz2g5hu20e', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the bastion host.'."\n" + ."\n" + .'> For more information about the mapping between region IDs and region names, see [Regions and zones](~~40654~~).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-shanghai', + ], + ], + [ + 'name' => 'NetworkDomainId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the network domain to which the database to add belongs.'."\n" + ."\n" + .'> You can call the [ListNetworkDomains](~~2758827~~) operation to query the network domain ID.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '1', + ], + ], + [ + 'name' => 'DatabaseType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The type of the database engine. Valid values:'."\n" + ."\n" + .'* **MySQL**'."\n" + .'* **Oracle**'."\n" + .'* **PostgreSQL**'."\n" + .'* **SQLServer**'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'MySQL', + ], + ], + [ + 'name' => 'ActiveAddressType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The address type of the database to add. Valid values:'."\n" + ."\n" + .'* Public'."\n" + .'* Private'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'Public', + ], + ], + [ + 'name' => 'DatabasePrivateAddress', + 'in' => 'query', + 'schema' => [ + 'description' => 'The internal IP address of the database. Specify an IPv4 address or a domain name.'."\n" + ."\n" + .'> This parameter is required if ActiveAddressType is set to Private.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'pgm-uf6o******', + ], + ], + [ + 'name' => 'DatabasePublicAddress', + 'in' => 'query', + 'schema' => [ + 'description' => 'The public IP address of the database. Specify an IPv4 address or a domain name.'."\n" + ."\n" + .'> This parameter is required if ActiveAddressType is set to Public.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rm-uf65251k51******', + ], + ], + [ + 'name' => 'DatabasePort', + 'in' => 'query', + 'schema' => [ + 'description' => 'The port of the database. This parameter is required if Source is set to **Local**.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '5433', + ], + ], + [ + 'name' => 'DatabaseName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the database to add. This parameter is required if Source is set to **Local**.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'Oracle', + ], + ], + [ + 'name' => 'SourceInstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The instance ID of the database to add.'."\n" + ."\n" + .'> This parameter is required if **Source** is set to **Rds** or **PolarDB**.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'i-bp19ienyt0yax748****', + ], + ], + [ + 'name' => 'Source', + 'in' => 'query', + 'schema' => [ + 'description' => 'The type of the database to add. Valid values:'."\n" + ."\n" + .'* Local: on-premises database.'."\n" + .'* Rds: ApsaraDB RDS instance.'."\n" + .'* PolarDB: PolarDB cluster.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'Local', + ], + ], + [ + 'name' => 'Comment', + 'in' => 'query', + 'schema' => [ + 'description' => 'The remarks of the database to add. The remarks can be up to 500 characters in length.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cpp', + ], + ], + [ + 'name' => 'SourceInstanceRegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the database to add.'."\n" + ."\n" + .'> This parameter is required if **Source** is set to **Rds** or **PolarDB**.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-shanghai', + ], + ], + [ + 'name' => 'PolarDBEndpointType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The endpoint type of the PolarDB database. This parameter is required if Source is set to PolarDB. Valid values:'."\n" + ."\n" + .'* Cluster'."\n" + .'* Primary'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'Cluster', + ], + ], + [ + 'name' => 'InstanceMemberId', + 'in' => 'query', + 'schema' => [ + 'title' => '数据库实例所属成员ID', + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'DatabaseId' => [ + 'description' => 'The database ID.'."\n", + 'type' => 'string', + 'example' => '334', + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '98EDD923-236C-5A88-88E7-4979A91B9325', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The argument is invalid.', + ], + [ + 'errorCode' => 'LicenseOutOfLimit', + 'errorMessage' => 'The maximum number of hosts exceeds the license limit.', + ], + [ + 'errorCode' => 'DatabaseAlreadyExists', + 'errorMessage' => 'The database already exists.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'An unknown error occurred.', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"DatabaseId\\": \\"334\\",\\n \\"RequestId\\": \\"98EDD923-236C-5A88-88E7-4979A91B9325\\"\\n}","type":"json"}]', + 'title' => 'CreateDatabase', + ], + 'ModifyDatabase' => [ + 'summary' => 'Modifies the basic information about a database.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREbastionhostXV4JIF', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the bastion host that manages the database to modify.'."\n" + ."\n" + .'> You can call the [DescribeInstances](~~153281~~) operation to query the bastion host ID.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'bastionhost-cn-72137xe5n01', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the bastion host that manages the database to modify.'."\n" + ."\n" + .'> For more information about the mapping between region IDs and region names, see [Regions and zones](~~40654~~).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'DatabaseId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the database to modify.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '11', + ], + ], + [ + 'name' => 'NetworkDomainId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the new network domain for the database.'."\n" + ."\n" + .'> You can call the [ListNetworkDomains](~~2758827~~) operation to query the network domain ID.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '2', + ], + ], + [ + 'name' => 'ActiveAddressType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The new address type of the database. Valid values:'."\n" + ."\n" + .'* **Public**'."\n" + .'* **Private**'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'Public', + ], + ], + [ + 'name' => 'DatabasePrivateAddress', + 'in' => 'query', + 'schema' => [ + 'description' => 'The new internal address of the database. Specify an IPv4 address or a domain name.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'pc-bp169******', + ], + ], + [ + 'name' => 'DatabasePublicAddress', + 'in' => 'query', + 'schema' => [ + 'description' => 'The new public address of the database. Specify an IPv4 address or a domain name.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'pgm-uf6c******', + ], + ], + [ + 'name' => 'DatabasePort', + 'in' => 'query', + 'schema' => [ + 'description' => 'The new port of the database.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '5433', + ], + ], + [ + 'name' => 'DatabaseName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The new name of the database.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'pgsql', + ], + ], + [ + 'name' => 'SourceInstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the ApsaraDB for RDS instance or PolarDB cluster to modify.'."\n" + ."\n" + .'> This parameter is required if **Source** is set to **Rds** or **PolarDB**.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'i-wz99nexqd62z3bvuvpz5', + ], + ], + [ + 'name' => 'Comment', + 'in' => 'query', + 'schema' => [ + 'description' => 'The new remarks of the database.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'tttttttt', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '162088A7-7D47-56A3-9D04-93DE7B6DBE1C', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The argument is invalid.', + ], + [ + 'errorCode' => 'DatabaseAlreadyExists', + 'errorMessage' => 'The database already exists.', + ], + ], + 404 => [ + [ + 'errorCode' => 'DatabaseNotFound', + 'errorMessage' => 'The database is not found.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'An unknown error occurred.', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"162088A7-7D47-56A3-9D04-93DE7B6DBE1C\\"\\n}","type":"json"}]', + 'title' => 'ModifyDatabase', + ], + 'GetDatabase' => [ + 'summary' => 'Queries the detailed information about a database.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREbastionhostXV4JIF', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the bastion host that manages the database to query.'."\n" + ."\n" + .'> You can call the [DescribeInstances](~~153281~~) operation to query the ID of the bastion host.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'bastionhost-cn-wwo36qbv601', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the bastion host that manages the database to query.'."\n" + ."\n" + .'> For more information about the mapping between region IDs and region names, see [Regions and zones](~~40654~~).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'DatabaseId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the database to query.'."\n" + ."\n" + .'> You can call the [ListDatabases](~~2758822~~) operation to query the database ID.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '21', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'Database' => [ + 'description' => 'The returned detailed information about the database.'."\n", + 'type' => 'object', + 'properties' => [ + 'ActiveAddressType' => [ + 'description' => 'The address type of the database. Valid values:'."\n" + ."\n" + .'* Public'."\n" + .'* Private'."\n", + 'type' => 'string', + 'example' => 'Public', + ], + 'Comment' => [ + 'description' => 'The remarks of the database.'."\n", + 'type' => 'string', + 'example' => 'comment', + ], + 'DatabaseId' => [ + 'description' => 'The database ID.'."\n", + 'type' => 'string', + 'example' => '22', + ], + 'DatabaseName' => [ + 'description' => 'The name of the database.'."\n", + 'type' => 'string', + 'example' => 'test', + ], + 'DatabasePort' => [ + 'description' => 'The port of the database.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '3306', + ], + 'DatabasePrivateAddress' => [ + 'description' => 'The internal endpoint of the database.'."\n", + 'type' => 'string', + 'example' => 'rm-bp1zq******', + ], + 'DatabasePublicAddress' => [ + 'description' => 'The public endpoint of the database.'."\n", + 'type' => 'string', + 'example' => 'rm-uf65******', + ], + 'DatabaseType' => [ + 'description' => 'The database engine. Valid values:'."\n" + ."\n" + .'* **mysql**'."\n" + .'* **sqlserver**'."\n" + .'* **postgresql**'."\n" + .'* **oracle**'."\n", + 'type' => 'string', + 'example' => 'MySQL', + ], + 'NetworkDomainId' => [ + 'description' => 'The ID of the network domain to which the database belongs.'."\n", + 'type' => 'string', + 'example' => '45', + ], + 'Source' => [ + 'description' => 'The database type. Valid values:'."\n" + ."\n" + .'* **Local**: on-premises database.'."\n" + .'* **Rds**: ApsaraDB RDS instance.'."\n" + .'* **PolarDB**: PolarDB cluster.'."\n", + 'type' => 'string', + 'example' => 'Local', + ], + 'SourceInstanceId' => [ + 'description' => 'The ID of the ApsaraDB RDS instance or PolarDB cluster.'."\n" + ."\n" + .'> If **Source** is set to **Local**, this parameter is empty.'."\n", + 'type' => 'string', + 'example' => 'i-wz9527ob0e0nftcsffke', + ], + 'SourceInstanceRegionId' => [ + 'description' => 'The region ID of the ApsaraDB RDS instance or PolarDB cluster.'."\n", + 'type' => 'string', + 'example' => 'cn-hangzhou', + ], + 'SourceInstanceState' => [ + 'description' => 'The status of the database. Valid values:'."\n" + ."\n" + .'* **Normal**'."\n" + .'* **Release**'."\n", + 'type' => 'string', + 'example' => 'Normal', + ], + ], + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '4D72B883-9D15-5B05-B987-DFD10EB1FFB4', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The argument is invalid.', + ], + ], + 404 => [ + [ + 'errorCode' => 'DatabaseNotFound', + 'errorMessage' => 'The database is not found.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'An unknown error occurred.', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Database\\": {\\n \\"ActiveAddressType\\": \\"Public\\",\\n \\"Comment\\": \\"comment\\",\\n \\"DatabaseId\\": \\"22\\",\\n \\"DatabaseName\\": \\"test\\",\\n \\"DatabasePort\\": 3306,\\n \\"DatabasePrivateAddress\\": \\"rm-bp1zq******\\",\\n \\"DatabasePublicAddress\\": \\"rm-uf65******\\",\\n \\"DatabaseType\\": \\"MySQL\\",\\n \\"NetworkDomainId\\": \\"45\\",\\n \\"Source\\": \\"Local\\",\\n \\"SourceInstanceId\\": \\"i-wz9527ob0e0nftcsffke\\",\\n \\"SourceInstanceRegionId\\": \\"cn-hangzhou\\",\\n \\"SourceInstanceState\\": \\"Normal\\"\\n },\\n \\"RequestId\\": \\"4D72B883-9D15-5B05-B987-DFD10EB1FFB4\\"\\n}","type":"json"}]', + 'title' => 'GetDatabase', + ], + 'ListDatabases' => [ + 'summary' => 'Queries the databases that are managed by a bastion host.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'list', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREbastionhostXV4JIF', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the bastion host to query.'."\n" + ."\n" + .'> You can call the [DescribeInstances](~~153281~~) operation to query the ID of the bastion host.', + 'type' => 'string', + 'required' => true, + 'example' => 'bastionhost-cn-7mz28f5tk0o', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the bastion host to query.'."\n" + ."\n" + .'> For more information about the mapping between region IDs and region names, see [Regions and zones](~~40654~~).', + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of the page to return. Default value: 1.', + 'type' => 'string', + 'required' => false, + 'example' => '1', + ], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of entries per page.'."\n" + .'Valid values: 1 to100. Default value: 20. If you leave this parameter empty, 20 entries are returned on each page.'."\n" + ."\n" + .'> We recommend that you do not leave this parameter empty.', + 'type' => 'string', + 'required' => false, + 'example' => '20', + ], + ], + [ + 'name' => 'DatabaseType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The engine of the database to query. Valid values:'."\n" + ."\n" + .'* **MySQL**'."\n" + .'* **Oracle**'."\n" + .'* **PostgreSQL**'."\n" + .'* **SQLServer**', + 'type' => 'string', + 'required' => false, + 'example' => 'MySQL', + ], + ], + [ + 'name' => 'NetworkDomainId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the network domain where the database to query resides.', + 'type' => 'string', + 'required' => false, + 'example' => '2', + ], + ], + [ + 'name' => 'Source', + 'in' => 'query', + 'schema' => [ + 'description' => 'The type of the database to query. Valid values:'."\n" + ."\n" + .'* **Local**: on-premises database.'."\n" + .'* **Rds**: ApsaraDB for RDS instance.'."\n" + .'* **PolarDB**: PolarDB cluster', + 'type' => 'string', + 'required' => false, + 'example' => 'Local', + ], + ], + [ + 'name' => 'HostGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the asset group to query. This operation returns the databases in the asset group.'."\n" + ."\n" + .'> You can call the [ListHostGroups](~~201307~~) operation to query the ID of the asset group.', + 'type' => 'string', + 'required' => false, + 'example' => '20', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'Databases' => [ + 'description' => 'The databases returned.', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'ActiveAddressType' => [ + 'description' => 'The address type of the database. Valid values:'."\n" + ."\n" + .'* **Public**'."\n" + .'* **Private**', + 'type' => 'string', + 'example' => 'Public', + ], + 'Comment' => [ + 'description' => 'The remarks of the database.', + 'type' => 'string', + 'example' => 'comment', + ], + 'DatabaseId' => [ + 'description' => 'The database ID.', + 'type' => 'string', + 'example' => '9', + ], + 'DatabaseName' => [ + 'description' => 'The name of the database.', + 'type' => 'string', + 'example' => 'MySQL0', + ], + 'DatabasePort' => [ + 'description' => 'The port of the database.', + 'type' => 'integer', + 'format' => 'int32', + 'example' => '3306', + ], + 'DatabasePrivateAddress' => [ + 'description' => 'The internal address of the database. The value is a domain name or an IP address.', + 'type' => 'string', + 'example' => 'rm-wz973w7******', + ], + 'DatabasePublicAddress' => [ + 'description' => 'The public address of the database. The value is a domain name or an IP address.', + 'type' => 'string', + 'example' => 'rm-uf65n2******', + ], + 'DatabaseType' => [ + 'description' => 'The database engine. Valid values:'."\n" + .'* **MySQL**'."\n" + .'* **Oracle**'."\n" + .'* **PostgreSQL**'."\n" + .'* **SQLServer**', + 'type' => 'string', + 'example' => 'MySQL', + ], + 'NetworkDomainId' => [ + 'description' => 'The ID of the network domain where the database resides.', + 'type' => 'string', + 'example' => '8', + ], + 'Source' => [ + 'description' => 'The type of the database. Valid values:'."\n" + ."\n" + .'* **Local**: on-premises database.'."\n" + .'* **Rds**: ApsaraDB for RDS instance.'."\n" + .'* **PolarDB**: PolarDB cluster', + 'type' => 'string', + 'example' => 'Local', + ], + 'SourceInstanceId' => [ + 'description' => 'The ID of the ApsaraDB for RDS instance or PolarDB cluster.'."\n" + .'> No value is returned for this parameter if **Source** is set to **Local**.', + 'type' => 'string', + 'example' => 'i-wz9ejupczf41******', + ], + 'SourceInstanceRegionId' => [ + 'description' => 'The region ID of the ApsaraDB for RDS instance or PolarDB cluster.', + 'type' => 'string', + 'example' => 'cn-hangzhou', + ], + 'SourceInstanceState' => [ + 'description' => 'The status of the database. Valid values:'."\n" + ."\n" + .'* **Normal**'."\n" + .'* **Release**', + 'type' => 'string', + 'example' => 'Normal', + ], + ], + ], + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'EC9BF0F4-8983-491A-BC8C-1B4DD94976DE', + ], + 'TotalCount' => [ + 'description' => 'The total number of databases returned.', + 'type' => 'integer', + 'format' => 'int64', + 'example' => '4', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The argument is invalid.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'An unknown error occurred.', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Databases\\": [\\n {\\n \\"ActiveAddressType\\": \\"Public\\",\\n \\"Comment\\": \\"comment\\",\\n \\"DatabaseId\\": \\"9\\",\\n \\"DatabaseName\\": \\"MySQL0\\",\\n \\"DatabasePort\\": 3306,\\n \\"DatabasePrivateAddress\\": \\"rm-wz973w7******\\",\\n \\"DatabasePublicAddress\\": \\"rm-uf65n2******\\",\\n \\"DatabaseType\\": \\"MySQL\\",\\n \\"NetworkDomainId\\": \\"8\\",\\n \\"Source\\": \\"Local\\",\\n \\"SourceInstanceId\\": \\"i-wz9ejupczf41******\\",\\n \\"SourceInstanceRegionId\\": \\"cn-hangzhou\\",\\n \\"SourceInstanceState\\": \\"Normal\\"\\n }\\n ],\\n \\"RequestId\\": \\"EC9BF0F4-8983-491A-BC8C-1B4DD94976DE\\",\\n \\"TotalCount\\": 4\\n}","type":"json"}]', + 'title' => 'ListDatabases', + ], + 'DeleteDatabase' => [ + 'summary' => 'Deletes a database.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'delete', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREbastionhostXV4JIF', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the bastion host from which you want to delete the database.'."\n" + ."\n" + .'> You can call the [DescribeInstances](~~153281~~) operation to query the ID of the bastion host.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'bastionhost-cn-78v1ghxxxxx', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the bastion host.'."\n" + ."\n" + .'> For more information about the mapping between region IDs and region names, see [Regions and zones](~~40654~~).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'DatabaseId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the database that you want to delete.'."\n" + ."\n" + .'> You can call the [ListDatabases](~~2758822~~) operation to query the database ID.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '11', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '81500666-d7f5-4143-8329-0223cc738105', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The argument is invalid.', + ], + ], + 404 => [ + [ + 'errorCode' => 'DatabaseNotFound', + 'errorMessage' => 'The database is not found.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'An unknown error occurred.', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"81500666-d7f5-4143-8329-0223cc738105\\"\\n}","type":"json"}]', + 'title' => 'DeleteDatabase', + ], + 'CreateNetworkDomain' => [ + 'summary' => 'If you want to perform O\\\\\\&M operations on assets that reside in different networks or assets that cannot communicate with the virtual private cloud (VPC) of your bastion host in a centralized manner, we recommend that you use the network domain feature of Bastionhost. You can configure a proxy server for these assets, create a network domain for a bastion host, and then connect the network domain to the proxy server. This way, you can perform O\\\\\\&M operations on the assets by using the bastion host.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'create', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREbastionhostKFH6IG', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the bastion host for which you want to create a network domain.'."\n" + ."\n" + .'> You can call the [DescribeInstances](~~153281~~) operation to query the ID of the bastion host.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'bastionhost-cn-lbj3bw4ma02', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the bastion host for which you want to create a network domain.'."\n" + ."\n" + .'> For more information about the mapping between region IDs and region names, see [Regions and zones](~~40654~~).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'NetworkDomainName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the network domain that you want to create. The name can be up to 128 characters in length.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '', + ], + ], + [ + 'name' => 'NetworkDomainType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The connection mode of the network domain to be created. Valid values:'."\n" + ."\n" + .'* Direct'."\n" + .'* Proxy'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'Proxy', + ], + ], + [ + 'name' => 'Comment', + 'in' => 'query', + 'schema' => [ + 'description' => 'The remarks of the network domain. The remarks can be up to 500 characters in length.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'comment', + ], + ], + [ + 'name' => 'Proxies', + 'in' => 'query', + 'style' => 'flat', + 'schema' => [ + 'description' => 'The information about the proxy servers.', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'User' => [ + 'description' => 'The username of the proxy server.', + 'type' => 'string', + 'required' => false, + 'example' => 'root', + ], + 'Address' => [ + 'description' => 'The IP address of the proxy server.', + 'type' => 'string', + 'required' => false, + 'example' => '47.104.**.**', + ], + 'ProxyType' => [ + 'description' => 'The proxy type. Valid values:'."\n" + ."\n" + .'- **SSHProxy**'."\n" + .'- **HTTPProxy**'."\n" + .'- **Socks5Proxy**', + 'type' => 'string', + 'required' => false, + 'example' => 'SSHProxy', + ], + 'NodeType' => [ + 'description' => 'The node type of the proxy server. Valid values:'."\n" + ."\n" + .'- **Master**: primary proxy server.'."\n" + .'- **Slave**: secondary proxy server.', + 'type' => 'string', + 'required' => false, + 'example' => 'Master', + ], + 'Password' => [ + 'description' => 'The Base64-encoded password of the proxy server.', + 'type' => 'string', + 'required' => false, + 'example' => '***', + ], + 'Port' => [ + 'description' => 'The port of the proxy server.', + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '22', + ], + ], + 'required' => false, + ], + 'required' => false, + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'NetworkDomainId' => [ + 'description' => 'The ID of the network domain.'."\n", + 'type' => 'string', + 'example' => '31', + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'A2873E9C-A7EA-5735-845C-65D3792623D2', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The argument is invalid.', + ], + [ + 'errorCode' => 'NetworkDomainAlreadyExists', + 'errorMessage' => 'The network domain already exists.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'An unknown error occurred.', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"NetworkDomainId\\": \\"31\\",\\n \\"RequestId\\": \\"A2873E9C-A7EA-5735-845C-65D3792623D2\\"\\n}","type":"json"}]', + 'title' => 'CreateNetworkDomain', + ], + 'GetNetworkDomain' => [ + 'summary' => 'Queries the detailed information about a network domain.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREbastionhostKFH6IG', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The bastion host ID.'."\n" + .'> You can call the [DescribeInstances ](~~153281~~)operation to query the bastion host ID.', + 'type' => 'string', + 'required' => true, + 'example' => 'bastionhost-cn-i7m2btk6g48', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the bastion host.'."\n" + ."\n" + .'> For more information about the mapping between region IDs and region names, see [Regions and zones](~~40654~~).', + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'NetworkDomainId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the network domain to query.'."\n" + .'> You can call the [ListNetworkDomains ](~~2758827~~)operation to query the network domain ID.', + 'type' => 'string', + 'required' => true, + 'example' => '3', + ], + ], + [ + 'name' => 'CheckProxyState', + 'in' => 'query', + 'schema' => [ + 'type' => 'string', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'NetworkDomain' => [ + 'description' => 'The detailed information about the network domain.', + 'type' => 'object', + 'properties' => [ + 'Comment' => [ + 'description' => 'The remarks of the network domain.', + 'type' => 'string', + 'example' => 'comment', + ], + 'Default' => [ + 'description' => 'Indicates whether the network domain is a built-in network domain.'."\n" + ."\n" + .'* **true**'."\n" + .'* **false**', + 'type' => 'boolean', + 'example' => 'false', + ], + 'NetworkDomainId' => [ + 'description' => 'The network domain ID.', + 'type' => 'string', + 'example' => '2', + ], + 'NetworkDomainName' => [ + 'description' => 'The name of the network domain.', + 'type' => 'string', + 'example' => 'SSH Proxy', + ], + 'NetworkDomainType' => [ + 'description' => 'The connection mode of the network domain. Valid values:'."\n" + ."\n" + .'* Direct'."\n" + .'* Proxy', + 'type' => 'string', + 'example' => 'Proxy', + ], + 'Proxies' => [ + 'description' => 'The information about the proxy servers.', + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'ProxyType' => [ + 'description' => 'The proxy type. Valid values:'."\n" + ."\n" + .'- **SSHProxy**'."\n" + .'- **HTTPProxy**'."\n" + .'- **Socks5Proxy**', + 'type' => 'string', + 'example' => 'HTTPProxy', + ], + 'NodeType' => [ + 'description' => 'The node type of the proxy server. Valid values:'."\n" + .'- **Master**: primary proxy server.'."\n" + .'- **Slave**: secondary proxy server.', + 'type' => 'string', + 'example' => 'Master', + ], + 'Address' => [ + 'description' => 'The IP address of the proxy server.', + 'type' => 'string', + 'example' => '47.102.**.**', + ], + 'Port' => [ + 'description' => 'The port of the proxy server.', + 'type' => 'integer', + 'format' => 'int32', + 'example' => '22', + ], + 'User' => [ + 'description' => 'The username of the proxy server.', + 'type' => 'string', + 'example' => 'root', + ], + 'HasPassword' => [ + 'description' => 'Indicates whether the proxy server has a password. Valid values:'."\n" + ."\n" + .'- **true**'."\n" + .'- **false**', + 'type' => 'boolean', + 'example' => 'true', + ], + 'ProxyState' => [ + 'description' => 'The status of the proxy server.'."\n" + ."\n" + .'- **Available**'."\n" + .'- **Unavailable**', + 'type' => 'string', + 'example' => 'Unavailable', + ], + 'ProxyStateErrorCode' => [ + 'description' => 'The error code that indicates the status of the proxy server.'."\n" + ."\n" + .'- **CHECK_PWD_FAILED**: The password is invalid.'."\n" + .'- **CHECK_PWD_TIMEOUT**: The password verification session timed out.'."\n" + .'- **CHECK_PWD_NETWORK_ERR**: A network error occurred.'."\n" + .'- **UNEXPECTED**: An unknown error occurred.', + 'type' => 'string', + 'example' => 'CHECK_PWD_TIMEOUT', + ], + ], + ], + ], + ], + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '05F59944-2E24-595C-B21A-8C9955E60FAF', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The argument is invalid.', + ], + ], + 404 => [ + [ + 'errorCode' => 'NetworkDomainNotFound', + 'errorMessage' => 'The network domain is not found.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'An unknown error occurred.', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"NetworkDomain\\": {\\n \\"Comment\\": \\"comment\\",\\n \\"Default\\": false,\\n \\"NetworkDomainId\\": \\"2\\",\\n \\"NetworkDomainName\\": \\"SSH Proxy\\",\\n \\"NetworkDomainType\\": \\"Proxy\\",\\n \\"Proxies\\": [\\n {\\n \\"ProxyType\\": \\"HTTPProxy\\",\\n \\"NodeType\\": \\"Master\\",\\n \\"Address\\": \\"47.102.**.**\\",\\n \\"Port\\": 22,\\n \\"User\\": \\"root\\",\\n \\"HasPassword\\": true,\\n \\"ProxyState\\": \\"Unavailable\\",\\n \\"ProxyStateErrorCode\\": \\"CHECK_PWD_TIMEOUT\\"\\n }\\n ]\\n },\\n \\"RequestId\\": \\"05F59944-2E24-595C-B21A-8C9955E60FAF\\"\\n}","type":"json"}]', + 'title' => 'GetNetworkDomain', + ], + 'ListNetworkDomains' => [ + 'summary' => 'Queries the network domains created in a bastion host.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'list', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREbastionhostKFH6IG', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The bastion host ID.'."\n" + ."\n" + .'> You can call the [DescribeInstances](~~153281~~) operation to query the bastion host ID.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'bastionhost-cn-tl329pvu70x', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the bastion host.'."\n" + ."\n" + .'> For more information about the mapping between region IDs and region names, see [Regions and zones](~~40654~~).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => [ + 'description' => 'The page number. Default value: **1**.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '1', + ], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of entries per page.\\'."\n" + .'Valid values: 1 to 100. Default value: 20. If you leave this parameter empty, 20 entries are returned on each page.'."\n" + ."\n" + .'> We recommend that you do not leave this parameter empty.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '20', + ], + ], + [ + 'name' => 'NetworkDomainName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the network domain.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '', + ], + ], + [ + 'name' => 'NetworkDomainType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The connection mode of the network domain. Valid values:'."\n" + ."\n" + .'* **Direct**'."\n" + .'* **Proxy**'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'Proxy', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'NetworkDomains' => [ + 'description' => 'The network domains that are returned.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Comment' => [ + 'description' => 'The remarks of the network domain.'."\n", + 'type' => 'string', + 'example' => 'comment', + ], + 'Default' => [ + 'description' => 'Indicates whether the network domain is built-in.'."\n" + ."\n" + .'* **true**'."\n" + .'* **false**'."\n", + 'type' => 'boolean', + 'example' => 'true', + ], + 'NetworkDomainId' => [ + 'description' => 'The network domain ID.'."\n", + 'type' => 'string', + 'example' => '2', + ], + 'NetworkDomainName' => [ + 'description' => 'The name of the network domain.'."\n", + 'type' => 'string', + 'example' => 'test', + ], + 'NetworkDomainType' => [ + 'description' => 'The connection mode of the network domain. Valid values:'."\n" + ."\n" + .'* **Direct**'."\n" + .'* **Proxy**'."\n", + 'type' => 'string', + 'example' => 'Proxy', + ], + 'ProxiesState' => [ + 'description' => '', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'NodeType' => [ + 'description' => 'The node type of the proxy server. Valid values:'."\n" + ."\n" + .'* **Master**: primary proxy server.'."\n" + .'* **Slave**: secondary proxy server.'."\n", + 'type' => 'string', + 'example' => 'Master', + ], + 'ProxyState' => [ + 'description' => 'The status of the proxy server.'."\n" + ."\n" + .'* **Available**'."\n" + .'* **Unavailable**'."\n", + 'type' => 'string', + 'example' => 'Available', + ], + ], + ], + ], + ], + ], + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'EC9BF0F4-8983-491A-BC8C-1B4DD94976DE', + ], + 'TotalCount' => [ + 'description' => 'The total number of network domains that are returned.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '5', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The argument is invalid.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'An unknown error occurred.', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"NetworkDomains\\": [\\n {\\n \\"Comment\\": \\"comment\\",\\n \\"Default\\": true,\\n \\"NetworkDomainId\\": \\"2\\",\\n \\"NetworkDomainName\\": \\"test\\",\\n \\"NetworkDomainType\\": \\"Proxy\\",\\n \\"ProxiesState\\": [\\n {\\n \\"NodeType\\": \\"Master\\",\\n \\"ProxyState\\": \\"Available\\"\\n }\\n ]\\n }\\n ],\\n \\"RequestId\\": \\"EC9BF0F4-8983-491A-BC8C-1B4DD94976DE\\",\\n \\"TotalCount\\": 5\\n}","type":"json"}]', + 'title' => 'ListNetworkDomains', + ], + 'DeleteNetworkDomain' => [ + 'summary' => 'Deletes a network domain.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'delete', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREbastionhostKFH6IG', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the bastion host whose network domain you want to delete.'."\n" + ."\n" + .'> You can call the [DescribeInstances](~~153281~~) operation to query the ID of the bastion host.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'bastionhost_std_intl-sg-uq833e2dz02', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the bastion host whose network domain you want to delete.'."\n" + ."\n" + .'> For more information about the mapping between region IDs and region names, see [Regions and zones](~~40654~~).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'NetworkDomainId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the network domain to be deleted.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '2', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '66B9D942-E3C8-5068-A479-5A7B7BF3DE35', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The argument is invalid.', + ], + ], + 404 => [ + [ + 'errorCode' => 'NetworkDomainNotFound', + 'errorMessage' => 'The network domain is not found.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'An unknown error occurred.', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"66B9D942-E3C8-5068-A479-5A7B7BF3DE35\\"\\n}","type":"json"}]', + 'title' => 'DeleteNetworkDomain', + ], + 'ModifyNetworkDomain' => [ + 'summary' => 'Modifies the basic information about a network domain.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREbastionhostKFH6IG', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the bastion host to which the network domain to modify belongs.'."\n" + ."\n" + .'> You can call the [DescribeInstances](~~153281~~) operation to query the bastion host ID.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'bastionhost-cn-x0r3hyr3f09', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the bastion host to which the network domain to modify belongs.'."\n" + ."\n" + .'> For more information about the mapping between region IDs and region names, see [Regions and zones](~~40654~~).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'NetworkDomainId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the network domain to modify.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '3', + ], + ], + [ + 'name' => 'NetworkDomainName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The new name of the network domain.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'test', + ], + ], + [ + 'name' => 'NetworkDomainType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The new connection mode of the network domain. Valid values:'."\n" + ."\n" + .'* **Direct**'."\n" + .'* **Proxy**'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'Proxy', + ], + ], + [ + 'name' => 'Comment', + 'in' => 'query', + 'schema' => [ + 'description' => 'The new remarks of the network domain.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'xxx', + ], + ], + [ + 'name' => 'Proxies', + 'in' => 'query', + 'style' => 'flat', + 'schema' => [ + 'description' => 'The information about the proxy servers in the network domain.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'User' => [ + 'description' => 'The new username of the proxy server account.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'test', + ], + 'NodeType' => [ + 'description' => 'The node type of the proxy server to modify. Valid values:'."\n" + ."\n" + .'* **Master**: primary proxy server.'."\n" + .'* **Slave**: secondary proxy server.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'Slave', + ], + 'ProxyType' => [ + 'description' => 'The new proxy mode. Valid values:'."\n" + ."\n" + .'* **SSHProxy**'."\n" + .'* **HTTPProxy**'."\n" + .'* **Socks5Proxy**'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'HTTPProxy', + ], + 'Address' => [ + 'description' => 'The new IP address of the proxy server.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '114.21**.**', + ], + 'Password' => [ + 'description' => 'The new password of the proxy server account.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '***', + ], + 'Port' => [ + 'description' => 'The new port of the proxy server.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '22', + ], + ], + 'required' => false, + ], + 'required' => false, + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'ED49CD1E-3510-5E5C-9133-E2067B656501', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The argument is invalid.', + ], + [ + 'errorCode' => 'NetworkDomainAlreadyExists', + 'errorMessage' => 'The network domain already exists.', + ], + ], + 404 => [ + [ + 'errorCode' => 'NetworkDomainNotFound', + 'errorMessage' => 'The network domain is not found.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'An unknown error occurred.', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"ED49CD1E-3510-5E5C-9133-E2067B656501\\"\\n}","type":"json"}]', + 'title' => 'ModifyNetworkDomain', + ], + 'MoveHostsToNetworkDomain' => [ + 'summary' => 'Adds multiple hosts to a network domain at a time.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREbastionhostKFH6IG', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The bastion host ID.'."\n" + ."\n" + .'> You can call the [DescribeInstances](~~153281~~) operation to query the bastion host ID.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'bastionhost-cn-uax2zmx8005', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the bastion host.'."\n" + ."\n" + .'> For more information about the mapping between region IDs and region names, see [Regions and zones](~~40654~~).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'NetworkDomainId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the network domain to which you want to add hosts.'."\n" + ."\n" + .'> You can call the [ListNetworkDomains](~~2758827~~) operation to query the network domain ID.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '2', + ], + ], + [ + 'name' => 'HostIds', + 'in' => 'query', + 'style' => 'flat', + 'schema' => [ + 'description' => 'The IDs of the hosts that you want to add to the network domain.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The host ID.'."\n" + ."\n" + .'> You can call the [ListHosts](~~200665~~) operation to query the host ID.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '["1", "2", "3"]', + ], + 'required' => true, + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'F9B9E190-9C8E-5FEE-B963-7E9F1FD7FB4E', + ], + 'Results' => [ + 'description' => 'The result of the call.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Code' => [ + 'description' => 'The return code that indicates whether the host is added to the network domain.'."\n" + ."\n" + .'> The code LICENSE_OUT_OF_LIMIT indicates that the network domain feature is not supported by the current Bastionhost edition.'."\n", + 'type' => 'string', + 'example' => 'OK', + ], + 'HostId' => [ + 'description' => 'The host ID.'."\n", + 'type' => 'string', + 'example' => '1', + ], + 'Message' => [ + 'description' => 'The error message that is returned.'."\n", + 'type' => 'string', + 'example' => '', + ], + ], + ], + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The argument is invalid.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'An unknown error occurred.', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"F9B9E190-9C8E-5FEE-B963-7E9F1FD7FB4E\\",\\n \\"Results\\": [\\n {\\n \\"Code\\": \\"OK\\",\\n \\"HostId\\": \\"1\\",\\n \\"Message\\": \\"None\\"\\n }\\n ]\\n}","type":"json"}]', + 'title' => 'MoveHostsToNetworkDomain', + ], + 'MoveDatabasesToNetworkDomain' => [ + 'summary' => 'Adds multiple databases to a network domain at a time.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREbastionhostKFH6IG', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The bastion host ID.'."\n" + ."\n" + .'> You can call the [DescribeInstances](~~153281~~) operation to query the bastion host ID.', + 'type' => 'string', + 'required' => true, + 'example' => 'bastionhost-cn-zpr3h2zo60l', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the bastion host.'."\n" + .'> For more information about the mapping between region IDs and region names, see [Regions and zones](~~40654~~).', + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'NetworkDomainId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the network domain to which you want to add databases.'."\n" + ."\n" + .'> You can call the [ListNetworkDomains](~~2758827~~) operation to query the network domain ID.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '3', + ], + ], + [ + 'name' => 'DatabaseIds', + 'in' => 'query', + 'style' => 'flat', + 'schema' => [ + 'description' => 'The IDs of the databases that you want to add to the network domain.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The database ID.'."\n" + ."\n" + .'> You can call the [ListDatabases](~~2758822~~) operation to query the database ID.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '["1", "2", "3"]', + ], + 'required' => true, + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'E5B1BC32-72B2-5BFD-BF75-5D38261264D1', + ], + 'Results' => [ + 'description' => 'The results of the call.', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Code' => [ + 'description' => 'Indicates whether the database is added to the network domain.'."\n" + ."\n" + .'> The code LICENSE_OUT_OF_LIMIT indicates that the network domain feature is not supported by the current Bastionhost edition.', + 'type' => 'string', + 'example' => 'OK', + ], + 'DatabaseId' => [ + 'description' => 'The database ID.', + 'type' => 'string', + 'example' => '45', + ], + 'Message' => [ + 'description' => 'The error message that is returned.', + 'type' => 'string', + 'example' => 'N/A', + ], + ], + ], + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The argument is invalid.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'An unknown error occurred.', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"E5B1BC32-72B2-5BFD-BF75-5D38261264D1\\",\\n \\"Results\\": [\\n {\\n \\"Code\\": \\"OK\\",\\n \\"DatabaseId\\": \\"45\\",\\n \\"Message\\": \\"None\\"\\n }\\n ]\\n}","type":"json"}]', + 'title' => 'MoveDatabasesToNetworkDomain', + ], + 'CreateHostAccount' => [ + 'summary' => 'After you import a host to a bastion host, you must add an account of the host to the bastion host. This way, O\\\\\\&M engineers can use the account to log on to and perform O\\\\\\&M operations on the host by using the bastion host.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'create', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREbastionhostQ6EM52', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the bastion host in which you want to add a host account to the host.'."\n" + ."\n" + .'> You can call the [DescribeInstances](~~153281~~) operation to query the ID of the bastion host.', + 'type' => 'string', + 'required' => true, + 'example' => 'bastionhost-cn-st220aw****', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the bastion host in which you want to add a host account to the host.'."\n" + ."\n" + .'> For more information about the mapping between region IDs and region names, see [Regions and zones](~~40654~~).', + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'HostId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the host to which you want to add a host account.'."\n" + ."\n" + .'> You can call the [ListHosts](~~200665~~) operation to query the ID of the host.', + 'type' => 'string', + 'required' => true, + 'example' => '1', + ], + ], + [ + 'name' => 'ProtocolName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The protocol of the host to which you want to add a host account.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'* SSH'."\n" + .'* RDP', + 'type' => 'string', + 'required' => true, + 'example' => 'SSH', + ], + ], + [ + 'name' => 'HostAccountName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the host account. The name can be up to 128 characters in length.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'abc', + ], + ], + [ + 'name' => 'Password', + 'in' => 'query', + 'schema' => [ + 'description' => 'The password of the host account.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '****', + ], + ], + [ + 'name' => 'PrivateKey', + 'in' => 'query', + 'schema' => [ + 'description' => 'The private key of the host account. Specify a Base64-encoded string.'."\n" + ."\n" + .'> This parameter is valid only if ProtocolName is set to SSH. You do not need to configure this parameter if ProtocolName is set to RDP. You can configure a password and a private key for the host account at the same time. If both a password and a private key are configured for the host account, Bastionhost preferentially uses the private key for logon.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '****', + ], + ], + [ + 'name' => 'PassPhrase', + 'in' => 'query', + 'schema' => [ + 'description' => 'The passphrase for the private key of the host account.'."\n" + ."\n" + .'> You can configure this parameter only if ProtocolName is set to SSH. You do not need to configure this parameter if ProtocolName is set to RDP.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '****', + ], + ], + [ + 'name' => 'HostShareKeyId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the shared key.', + 'type' => 'string', + 'required' => false, + 'example' => '1', + ], + ], + [ + 'name' => 'PrivilegeType', + 'in' => 'query', + 'schema' => [ + 'type' => 'string', + ], + ], + [ + 'name' => 'RotationMode', + 'in' => 'query', + 'schema' => [ + 'type' => 'string', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'HostAccountId' => [ + 'description' => 'The operation that you want to perform. Set the value to **CreateHostAccount**.', + 'type' => 'string', + 'example' => '1', + ], + 'RequestId' => [ + 'description' => 'The ID of the request.', + 'type' => 'string', + 'example' => 'EC9BF0F4-8983-491A-BC8C-1B4DD94976DE', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The argument is invalid.', + ], + [ + 'errorCode' => 'HostAccountAlreadyExists', + 'errorMessage' => 'The host account already exists.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'An unknown error occurred.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"HostAccountId\\": \\"1\\",\\n \\"RequestId\\": \\"EC9BF0F4-8983-491A-BC8C-1B4DD94976DE\\"\\n}","errorExample":""},{"type":"xml","example":"<CreateHostAccountResponse>\\n <HostAccountId>1</HostAccountId>\\n <RequestId>EC9BF0F4-8983-491A-BC8C-1B4DD94976DE</RequestId>\\n</CreateHostAccountResponse>","errorExample":""}]', + 'title' => 'CreateHostAccount', + ], + 'GetHostAccount' => [ + 'summary' => 'Queries the details of a specified host account.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREbastionhostQ6EM52', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the bastion host in which you want to query the details of the host account.'."\n" + ."\n" + .'> You can call the [DescribeInstances](~~153281~~) operation to query the ID of the bastion host.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'bastionhost-cn-st220aw****', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the bastion host in which you want to query the details of the host account.'."\n" + ."\n" + .'> For more information about the mapping between region IDs and region names, see [Regions and zones](~~40654~~).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'HostAccountId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the host account that you want to query.'."\n" + ."\n" + .'> You can call the [ListHostAccounts](~~204372~~) operation to query the ID of the host account.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '1', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'description' => 'The data returned.'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => 'EC9BF0F4-8983-491A-BC8C-1B4DD94976DE', + ], + 'HostAccount' => [ + 'description' => 'The details of the host account that was queried.'."\n", + 'type' => 'object', + 'properties' => [ + 'HasPassword' => [ + 'description' => 'Indicates whether a password is configured for the host account. Valid values:'."\n" + ."\n" + .'* **true**: yes'."\n" + .'* **false**: no'."\n", + 'type' => 'boolean', + 'example' => 'true', + ], + 'PrivateKeyFingerprint' => [ + 'description' => 'The fingerprint of the private key.'."\n", + 'type' => 'string', + 'example' => 'fe:ca:37:42:30:00:9d:95:e6:73:e5:b0:32:0a:**:**', + ], + 'ProtocolName' => [ + 'description' => 'The protocol that is used by the host. Valid values:'."\n" + ."\n" + .'* **SSH**'."\n" + .'* **RDP**'."\n", + 'type' => 'string', + 'example' => 'SSH', + ], + 'HostAccountName' => [ + 'description' => 'The name of the host account.'."\n", + 'type' => 'string', + 'example' => 'abc', + ], + 'HostAccountId' => [ + 'description' => 'The ID of the host account.'."\n", + 'type' => 'string', + 'example' => '1', + ], + 'HostId' => [ + 'description' => 'The ID of the host to which the host account belongs.'."\n", + 'type' => 'string', + 'example' => '1', + ], + 'HostShareKeyId' => [ + 'description' => 'The ID of the shared key.'."\n", + 'type' => 'string', + 'example' => '1', + ], + 'RotationMode' => [ + 'type' => 'string', + ], + 'HostShareKeyName' => [ + 'description' => 'The name of the shared key.'."\n", + 'type' => 'string', + 'example' => 'name', + ], + 'PrivilegeType' => [ + 'type' => 'string', + ], + ], + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The argument is invalid.', + ], + ], + 404 => [ + [ + 'errorCode' => 'HostAccountNotFound', + 'errorMessage' => 'The host account is not found.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'An unknown error occurred.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"EC9BF0F4-8983-491A-BC8C-1B4DD94976DE\\",\\n \\"HostAccount\\": {\\n \\"HasPassword\\": true,\\n \\"PrivateKeyFingerprint\\": \\"fe:ca:37:42:30:00:9d:95:e6:73:e5:b0:32:0a:**:**\\",\\n \\"ProtocolName\\": \\"SSH\\",\\n \\"HostAccountName\\": \\"abc\\",\\n \\"HostAccountId\\": \\"1\\",\\n \\"HostId\\": \\"1\\",\\n \\"HostShareKeyId\\": \\"1\\",\\n \\"RotationMode\\": \\"Privileged\\",\\n \\"HostShareKeyName\\": \\"name\\",\\n \\"PrivilegeType\\": \\"Normal\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"<GetHostAccountResponse>\\n <RequestId>EC9BF0F4-8983-491A-BC8C-1B4DD94976DE</RequestId>\\n <HostAccount>\\n <HostAccountName>abc</HostAccountName>\\n <ProtocolName>SSH</ProtocolName>\\n <PrivateKeyFingerprint>fe:ca:37:42:30:00:9d:95:e6:73:e5:b0:32:0a:**:**</PrivateKeyFingerprint>\\n <HostId>1</HostId>\\n <HasPassword>true</HasPassword>\\n <HostAccountId>1</HostAccountId>\\n </HostAccount>\\n</GetHostAccountResponse>","errorExample":""}]', + 'title' => 'GetHostAccount', + ], + 'ListHostAccounts' => [ + 'summary' => 'Queries a list of host accounts.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'list', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREbastionhostQ6EM52', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the bastion host in which you want to query accounts of the specified host.'."\n" + ."\n" + .'> You can call the DescribeInstances operation to query the ID of the bastion host.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'bastionhost-cn-st220aw****', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the bastion host in which you want to query accounts of the specified host.'."\n" + ."\n" + .'> For more information about the mapping between region IDs and region names, see [Regions and zones](~~40654~~).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'HostId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the specified host whose accounts you want to query.'."\n" + ."\n" + .'> You can call the [ListHosts](~~200665~~) operation to query the ID of the host.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '1', + ], + ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of the page to return. Default value: **1**.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '1', + ], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of entries to return on each page.'."\n" + ."\n" + .'Maximum value: 100. Default value: 20. If you leave this parameter empty, 20 entries are returned on each page.'."\n" + ."\n" + .'> We recommend that you do not leave this parameter empty.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '20', + ], + ], + [ + 'name' => 'HostAccountName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the host account that you want to query. The name can be up to 128 characters in length. Only exact match is supported.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'abc', + ], + ], + [ + 'name' => 'ProtocolName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The protocol used by the host whose accounts you want to query.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'* SSH'."\n" + .'* RDP'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'SSH', + ], + ], + [ + 'name' => 'HostIds', + 'in' => 'query', + 'schema' => [ + 'type' => 'string', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'TotalCount' => [ + 'description' => 'The total number of host accounts that are queried.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '1', + ], + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => 'EC9BF0F4-8983-491A-BC8C-1B4DD94976DE', + ], + 'HostAccounts' => [ + 'description' => 'An array that consists of the queried host accounts.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'HasPassword' => [ + 'description' => 'Indicates whether a password is configured for the host account.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'* true: A password is configured for the host account.'."\n" + .'* false: No passwords are configured for the host account.'."\n", + 'type' => 'boolean', + 'example' => 'true', + ], + 'PrivateKeyFingerprint' => [ + 'description' => 'The fingerprint of the private key for the host account.'."\n", + 'type' => 'string', + 'example' => 'fe:ca:37:42:30:00:9d:95:e6:73:e5:b0:32:0a:**:**', + ], + 'ProtocolName' => [ + 'description' => 'The protocol that is used by the host.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'* SSH'."\n" + .'* RDP'."\n", + 'type' => 'string', + 'example' => 'SSH', + ], + 'HostAccountName' => [ + 'description' => 'The name of the host account.'."\n", + 'type' => 'string', + 'example' => 'abc', + ], + 'HostAccountId' => [ + 'description' => 'The ID of the host account.'."\n", + 'type' => 'string', + 'example' => '1', + ], + 'HostId' => [ + 'description' => 'The ID of the host.'."\n", + 'type' => 'string', + 'example' => '1', + ], + 'HostShareKeyId' => [ + 'description' => 'The ID of the shared key.'."\n", + 'type' => 'string', + 'example' => '1', + ], + 'RotationMode' => [ + 'type' => 'string', + ], + 'HostShareKeyName' => [ + 'description' => 'The name of the shared key.'."\n", + 'type' => 'string', + 'example' => 'name', + ], + 'PrivilegeType' => [ + 'type' => 'string', + ], + ], + ], + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The argument is invalid.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'An unknown error occurred.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"TotalCount\\": 1,\\n \\"RequestId\\": \\"EC9BF0F4-8983-491A-BC8C-1B4DD94976DE\\",\\n \\"HostAccounts\\": [\\n {\\n \\"HasPassword\\": true,\\n \\"PrivateKeyFingerprint\\": \\"fe:ca:37:42:30:00:9d:95:e6:73:e5:b0:32:0a:**:**\\",\\n \\"ProtocolName\\": \\"SSH\\",\\n \\"HostAccountName\\": \\"abc\\",\\n \\"HostAccountId\\": \\"1\\",\\n \\"HostId\\": \\"1\\",\\n \\"HostShareKeyId\\": \\"1\\",\\n \\"RotationMode\\": \\"Privileged\\",\\n \\"HostShareKeyName\\": \\"name\\",\\n \\"PrivilegeType\\": \\"Normal\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"<ListHostAccountsResponse>\\n <TotalCount>1</TotalCount>\\n <RequestId>EC9BF0F4-8983-491A-BC8C-1B4DD94976DE</RequestId>\\n <HostAccounts>\\n <HasPassword>true</HasPassword>\\n <PrivateKeyFingerprint>fe:ca:37:42:30:00:9d:95:e6:73:e5:b0:32:0a:**:**</PrivateKeyFingerprint>\\n <ProtocolName>SSH</ProtocolName>\\n <HostAccountName>abc</HostAccountName>\\n <HostAccountId>1</HostAccountId>\\n <HostId>1</HostId>\\n <HostShareKeyId>1</HostShareKeyId>\\n <HostShareKeyName>name</HostShareKeyName>\\n </HostAccounts>\\n</ListHostAccountsResponse>","errorExample":""}]', + 'title' => 'ListHostAccounts', + ], + 'ModifyHostAccount' => [ + 'summary' => 'Modifies the information about a host account, such as the username, password, and private key of the host account.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREbastionhostQ6EM52', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the bastion host in which you want to modify the information about the host account.'."\n" + ."\n" + .'> You can call the [DescribeInstances](~~153281~~) operation to query the ID of the bastion host.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'bastionhost-cn-st220aw****', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the bastion host in which you want to query the details of the host account.'."\n" + ."\n" + .'> For more information about the mapping between region IDs and region names, see [Regions and zones](~~40654~~).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'HostAccountId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the host account whose information you want to modify.'."\n" + ."\n" + .'> You can call the [ListHostAccounts](~~204372~~) operation to query the ID of the host account.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '1', + ], + ], + [ + 'name' => 'HostAccountName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The new name of the host account. The name can be up to 128 characters in length.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'abc', + ], + ], + [ + 'name' => 'Password', + 'in' => 'query', + 'schema' => [ + 'description' => 'The new password of the host account.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '****', + ], + ], + [ + 'name' => 'PrivateKey', + 'in' => 'query', + 'schema' => [ + 'description' => 'The new private key of the host account. Specify a Base64-encoded string.'."\n" + ."\n" + .'> This parameter takes effect only if the protocol used by the host is SSH. You do not need to configure this parameter if the protocol used by the host is Remote Desktop Protocol (RDP). You can call the [GetHostAccount](~~204391~~) operation to query the protocol used by the host. You can configure a password and a private key for the host account at the same time. If both a password and a private key are configured for the host account, Bastionhost preferentially uses the private key for logon.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '****', + ], + ], + [ + 'name' => 'PassPhrase', + 'in' => 'query', + 'schema' => [ + 'description' => 'The passphrase for the new private key of the host account.'."\n" + ."\n" + .'> This parameter is valid only if the protocol used by the host is SSH. You do not need to configure this parameter if the protocol used by the host is Remote Desktop Protocol (RDP).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '****', + ], + ], + [ + 'name' => 'HostShareKeyId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the shared key that is associated with the host.'."\n" + ."\n" + .'> You can call the [ListHostShareKeys](~~462973~~) operation to query the shared key ID.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '1', + ], + ], + [ + 'name' => 'PrivilegeType', + 'in' => 'query', + 'schema' => [ + 'type' => 'string', + ], + ], + [ + 'name' => 'RotationMode', + 'in' => 'query', + 'schema' => [ + 'type' => 'string', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => 'EC9BF0F4-8983-491A-BC8C-1B4DD94976DE', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The argument is invalid.', + ], + ], + 404 => [ + [ + 'errorCode' => 'HostAccountNotFound', + 'errorMessage' => 'The host account is not found.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'An unknown error occurred.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"EC9BF0F4-8983-491A-BC8C-1B4DD94976DE\\"\\n}","errorExample":""},{"type":"xml","example":"<ModifyHostAccountResponse>\\n <RequestId>EC9BF0F4-8983-491A-BC8C-1B4DD94976DE</RequestId>\\n</ModifyHostAccountResponse>","errorExample":""}]', + 'title' => 'ModifyHostAccount', + ], + 'DeleteHostAccount' => [ + 'summary' => 'Removes a host account.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'delete', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREbastionhostQ6EM52', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the bastion host from which you want to remove the host account.'."\n" + ."\n" + .'> You can call the [DescribeInstances](~~153281~~) operation to query the ID of the bastion host.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'bastionhost-cn-st220aw****', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the bastion host from which you want to remove the host account.'."\n" + ."\n" + .'> For more information about the mapping between region IDs and region names, see [Regions and zones](~~40654~~).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'HostAccountId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the host account that you want to remove.'."\n" + ."\n" + .'> You can call the [ListHostAccounts](~~204372~~) operation to query the ID of the host account.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '1', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request, which is used to locate and troubleshoot issues.'."\n", + 'type' => 'string', + 'example' => 'EC9BF0F4-8983-491A-BC8C-1B4DD94976DE', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The argument is invalid.', + ], + ], + 404 => [ + [ + 'errorCode' => 'HostAccountNotFound', + 'errorMessage' => 'The host account is not found.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'An unknown error occurred.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"EC9BF0F4-8983-491A-BC8C-1B4DD94976DE\\"\\n}","errorExample":""},{"type":"xml","example":"<DeleteHostAccountResponse>\\n <RequestId>EC9BF0F4-8983-491A-BC8C-1B4DD94976DE</RequestId>\\n</DeleteHostAccountResponse>","errorExample":""}]', + 'title' => 'DeleteHostAccount', + 'description' => '## Usage notes'."\n" + ."\n" + .'This interface is used to delete individual host accounts. If a host account is no longer in use, you can invoke this interface to delete the host account for that host that has been configured on the bastion.'."\n" + ."\n" + .'> After you remove the host account, you must enter the username and password of the host when you log on to the host in Bastionhost. '."\n" + ."\n" + .'## QPS Limit'."\n" + ."\n" + .'The single-user QPS limit of this interface is 10 times/second. If the limit is exceeded, the API call will be stream-limited, which may affect your business, please call reasonably.', + 'requestParamsDescription' => 'All Alibaba Cloud API operations must include common request parameters. For more information about common request parameters, see [Common parameters](~~315526~~).'."\n" + ."\n" + .'For more information about sample requests, see the "Examples" section of this topic.', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'ResetHostAccountCredential' => [ + 'summary' => 'Deletes the logon credential of a specified host account. The logon credential can be the password or Secure Shell (SSH) private key.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREbastionhost4PMV5G', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the bastion host from which you want to delete the logon credential for the host account.'."\n" + ."\n" + .'> You can call the [DescribeInstances](~~153281~~) operation to query the ID of the bastion host.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'bastionhost-cn-st220aw****', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the bastion host from which you want to delete the logon credential for the host account.'."\n" + ."\n" + .'> For more information about the mapping between region IDs and region names, see [Regions and zones](~~40654~~).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'HostAccountId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the host account for which the logon credential is to be deleted.'."\n" + ."\n" + .'> You can call the [ListHostAccounts](~~204372~~) operation to query the ID of the host account.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '1', + ], + ], + [ + 'name' => 'CredentialType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The type of the logon credential that you want to delete. Valid values:'."\n" + ."\n" + .'* **Password**'."\n" + .'* **PrivateKey**'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'Password', + ], + ], + ], + 'responses' => [ + 200 => [ + 'headers' => [], + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'EC9BF0F4-8783-491A-BC8C-1B4DD94976DE', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The argument is invalid.', + ], + ], + 404 => [ + [ + 'errorCode' => 'HostAccountNotFound', + 'errorMessage' => 'The host account is not found.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'An unknown error occurred.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"EC9BF0F4-8983-491A-BC8C-1B4DD94976DE\\"\\n}","errorExample":""},{"type":"xml","example":"<ResetHostAccountCredentialResponse>\\r\\n <RequestId>EC9BF0F4-8983-491A-BC8C-1B4DD94976DE</RequestId>\\r\\n</ResetHostAccountCredentialResponse>","errorExample":""}]', + 'title' => 'ResetHostAccountCredential', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'CreateDatabaseAccount' => [ + 'summary' => 'After a database is created, you can create a database account for the database. After the account is created, O\\\\\\&M engineers can use the account to log on to and perform O\\\\\\&M operations on the database.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'create', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREbastionhostXV4JIF', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the bastion host for which you want to create a database account.'."\n" + ."\n" + .'> You can call the [DescribeInstances](~~153281~~) operation to query the ID of the bastion host.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'bastionhost-cn-5yd34ol020a', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the bastion host for which you want to create a database account.'."\n" + ."\n" + .'> For more information about the mapping between region IDs and region names, see [Regions and zones](~~40654~~).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-shanghai', + ], + ], + [ + 'name' => 'DatabaseId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the database for which you want to create a database account.'."\n" + ."\n" + .'> You can call the [ListDatabaseAccounts](~~2758839~~) operation to query the database account ID.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '3', + ], + ], + [ + 'name' => 'DatabaseAccountName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The username of the database account to be created. The username can be up to 128 characters in length.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'root', + ], + ], + [ + 'name' => 'Password', + 'in' => 'query', + 'schema' => [ + 'description' => 'The password of the database account to be created.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'MCQ******', + ], + ], + [ + 'name' => 'DatabaseSchema', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the database. This parameter is required for PostgreSQL and Oracle databases.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'orcl', + ], + ], + [ + 'name' => 'LoginAttribute', + 'in' => 'query', + 'schema' => [ + 'description' => 'The logon attribute. This parameter is required for Oracle databases. Valid values:'."\n" + ."\n" + .'* SERVICENAME'."\n" + .'* SID'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'SID', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'DatabaseAccountId' => [ + 'description' => 'The ID of the database account.'."\n", + 'type' => 'string', + 'example' => '40', + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'B07C465D-B09F-54DD-8FEC-90788BEABAFC', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The argument is invalid.', + ], + [ + 'errorCode' => 'DatabaseAccountAlreadyExists', + 'errorMessage' => 'The database account already exists.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'An unknown error occurred.', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"DatabaseAccountId\\": \\"40\\",\\n \\"RequestId\\": \\"B07C465D-B09F-54DD-8FEC-90788BEABAFC\\"\\n}","type":"json"}]', + 'title' => 'CreateDatabaseAccount', + 'requestParamsDescription' => 'Extend structure'."\n" + ."\n" + .'|Parameter|Type|Description|'."\n" + .'|---|---|---|'."\n" + .'|LoginAttribute|string|The logon attribute. This parameter is required for Oracle databases. Valid values:\\- SERVICENAME\\- SID|'."\n" + .'|Role|string|The role used to connect to Oracle databases. Valid values:\\- NORMAL\\- SYSDBA\\- SYSOPRE\\- SYSASM|', + ], + 'ModifyDatabaseAccount' => [ + 'summary' => 'Modifies the basic information about a database account.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREbastionhostXV4JIF', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the bastion host that manages the database account to modify.'."\n" + ."\n" + .'> You can call the [DescribeInstances](~~153281~~) operation to query the bastion host ID.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'bastionhost-cn-zpr2zyqx603', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the bastion host that manages the database account to modify.'."\n" + ."\n" + .'> For more information about the mapping between region IDs and region names, see [Regions and zones](~~40654~~).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'DatabaseAccountId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the database account to modify.'."\n" + ."\n" + .'> You can call the [ListDatabaseAccounts](~~2758839~~) operation to query the database account ID.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '2', + ], + ], + [ + 'name' => 'Password', + 'in' => 'query', + 'schema' => [ + 'description' => 'The new password of the database account.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '14SZ!******', + ], + ], + [ + 'name' => 'DatabaseAccountName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The new username of the database account. The username can be up to 128 characters in length.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'aaa', + ], + ], + [ + 'name' => 'DatabaseSchema', + 'in' => 'query', + 'schema' => [ + 'description' => 'The new name of the database. This parameter is required if the database engine is PostgreSQL or Oracle.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'orcl', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '850FA4B4-5BD2-5269-903E-3B7E07E6C975', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The argument is invalid.', + ], + [ + 'errorCode' => 'DatabaseAccountAlreadyExists', + 'errorMessage' => 'The database account already exists.', + ], + ], + 404 => [ + [ + 'errorCode' => 'DatabaseAccountNotFound', + 'errorMessage' => 'The database account is not found.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'An unknown error occurred.', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"850FA4B4-5BD2-5269-903E-3B7E07E6C975\\"\\n}","type":"json"}]', + 'title' => 'ModifyDatabaseAccount', + ], + 'GetDatabaseAccount' => [ + 'summary' => 'Queries the detailed information about a database account.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREbastionhostXV4JIF', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The bastion host ID.'."\n" + .'> You can call the [DescribeInstances](~~153281~~) operation to query the bastion host ID.', + 'type' => 'string', + 'required' => true, + 'example' => 'bastionhost-cn-i7m2d7zrw11', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the bastion host.'."\n" + .'> For more information about the mapping between region IDs and region names, see [Regions and zones](~~40654~~).', + 'type' => 'string', + 'required' => false, + 'example' => 'cn-beijing', + ], + ], + [ + 'name' => 'DatabaseAccountId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the database account to query.'."\n" + ."\n" + .'> You can call the [ListDatabaseAccounts](~~2758839~~) operation to query the database account ID.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '9', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'DatabaseAccount' => [ + 'description' => 'The returned information about the database account.'."\n", + 'type' => 'object', + 'properties' => [ + 'DatabaseAccountId' => [ + 'description' => 'The database account ID.', + 'type' => 'string', + 'example' => '9', + ], + 'DatabaseAccountName' => [ + 'description' => 'The name of the database account.', + 'type' => 'string', + 'example' => 'uac', + ], + 'DatabaseSchema' => [ + 'description' => 'The database name. A value is returned for this parameter if the database engine is PostgreSQL or Oracle.'."\n", + 'type' => 'string', + 'example' => 'orcl', + ], + 'HasPassword' => [ + 'description' => 'Indicates whether the database account has a password.'."\n" + .'Valid values:'."\n" + .'* true'."\n" + .'* false', + 'type' => 'boolean', + 'example' => 'true', + ], + 'LoginAttribute' => [ + 'description' => 'The logon attribute. A value is returned for this parameter if the database engine is Oracle. Valid values:'."\n" + ."\n" + .'* SERVICENAME'."\n" + .'* SID', + 'type' => 'string', + 'example' => 'SID', + ], + ], + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'FA06D274-8D0A-59FB-8B7E-584C0EEBBFFF', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The argument is invalid.', + ], + ], + 404 => [ + [ + 'errorCode' => 'DatabaseAccountNotFound', + 'errorMessage' => 'The database account is not found.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'An unknown error occurred.', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"DatabaseAccount\\": {\\n \\"DatabaseAccountId\\": \\"9\\",\\n \\"DatabaseAccountName\\": \\"uac\\",\\n \\"DatabaseSchema\\": \\"orcl\\",\\n \\"HasPassword\\": true,\\n \\"LoginAttribute\\": \\"SID\\"\\n },\\n \\"RequestId\\": \\"FA06D274-8D0A-59FB-8B7E-584C0EEBBFFF\\"\\n}","type":"json"}]', + 'title' => 'GetDatabaseAccount', + ], + 'ListDatabaseAccounts' => [ + 'summary' => 'Queries the database accounts of a database.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREbastionhostXV4JIF', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The bastion host ID.'."\n" + ."\n" + .'> You can call the DescribeInstances operation to query the bastion host ID.[](~~153281~~)'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'bastionhost-cn-7mz2za0ro06', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the bastion host.'."\n" + ."\n" + .'> For more information about the mapping between region IDs and region names, see [Regions and zones](~~40654~~).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-shanghai', + ], + ], + [ + 'name' => 'DatabaseId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the database whose database accounts you want to query.'."\n" + ."\n" + .'> You can call the [ListDatabases](~~2758822~~) operation to query the database ID.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '3', + ], + ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => [ + 'description' => 'The page number. Default value: 1.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '1', + ], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of entries per page.\\'."\n" + .'Valid values: 1 to 100. Default value: 20. If you leave this parameter empty, 20 entries are returned on each page.'."\n" + ."\n" + .'> We recommend that you do not leave this parameter empty.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '20', + ], + ], + [ + 'name' => 'DatabaseAccountName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the database account to query. The name can be up to 128 characters in length. Only exact match is supported.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'test', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'DatabaseAccounts' => [ + 'description' => 'The returned database accounts.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'DatabaseAccountId' => [ + 'description' => 'The database account ID.'."\n", + 'type' => 'string', + 'example' => '59', + ], + 'DatabaseAccountName' => [ + 'description' => 'The name of the database account.'."\n", + 'type' => 'string', + 'example' => 'test', + ], + 'DatabaseId' => [ + 'description' => 'The database ID.'."\n", + 'type' => 'string', + 'example' => '4', + ], + 'DatabaseSchema' => [ + 'description' => 'The name of the database. A value is returned for this parameter if the engine of the database with the specified database ID is PostgreSQL or Oracle.'."\n", + 'type' => 'string', + 'example' => 'orcl', + ], + 'HasPassword' => [ + 'description' => 'Indicates whether the database account has a password. Valid values:'."\n" + ."\n" + .'* **true**'."\n" + .'* **false**'."\n", + 'type' => 'string', + 'example' => 'true', + ], + ], + ], + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '4F6C075F-FC86-476E-943B-097BD4E12948', + ], + 'TotalCount' => [ + 'description' => 'The total number of database accounts returned.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '10', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The argument is invalid.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'An unknown error occurred.', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"DatabaseAccounts\\": [\\n {\\n \\"DatabaseAccountId\\": \\"59\\",\\n \\"DatabaseAccountName\\": \\"test\\",\\n \\"DatabaseId\\": \\"4\\",\\n \\"DatabaseSchema\\": \\"orcl\\",\\n \\"HasPassword\\": \\"true\\"\\n }\\n ],\\n \\"RequestId\\": \\"4F6C075F-FC86-476E-943B-097BD4E12948\\",\\n \\"TotalCount\\": 10\\n}","type":"json"}]', + 'title' => 'ListDatabaseAccounts', + ], + 'ListDatabaseAccountsForUserGroup' => [ + 'summary' => 'Queries the database accounts of a database and whether a user group is authorized to manage each database account.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREbastionhost19BKK2', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The bastion host ID.'."\n" + ."\n" + .'> You can call the [DescribeInstances](~~153281~~) operation to query the bastion host ID.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'bastionhost-cn-pe334a03o0h', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the bastion host.'."\n" + ."\n" + .'> For more information about the mapping between region IDs and region names, see [Regions and zones](~~40654~~).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'UserGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the user group to query. This operation returns whether the user group is authorized to manage each database account.'."\n" + ."\n" + .'> You can call the [ListUserGroups](~~204509~~) operation to query the user group ID.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '3', + ], + ], + [ + 'name' => 'DatabaseId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the database whose database accounts you want to query.'."\n" + ."\n" + .'> You can call the [ListDatabaseAccounts](~~2758839~~) operation to query the database account ID.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '36', + ], + ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => [ + 'description' => 'The page number. Default value: **1**.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '1', + ], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of entries per page.\\'."\n" + .'Valid values: 1 to 100. Default value: 20. If you leave this parameter empty, 20 entries are returned on each page.'."\n" + ."\n" + .'> We recommend that you do not leave this parameter empty.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '20', + ], + ], + [ + 'name' => 'DatabaseAccountName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the database account to query. The name can be up to 128 characters in length. Only exact match is supported.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'test', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'DatabaseAccounts' => [ + 'description' => 'The database accounts returned.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'DatabaseAccountId' => [ + 'description' => 'The ID of the database account.'."\n", + 'type' => 'string', + 'example' => '4', + ], + 'DatabaseAccountName' => [ + 'description' => 'The name of the database account.'."\n", + 'type' => 'string', + 'example' => 'root', + ], + 'DatabaseId' => [ + 'description' => 'The ID of the database to which the database account belongs.'."\n", + 'type' => 'string', + 'example' => '11', + ], + 'IsAuthorized' => [ + 'description' => 'Indicates whether the user group is authorized to manage the database account. Valid values:'."\n" + ."\n" + .'* **true**'."\n" + .'* **false**'."\n", + 'type' => 'boolean', + 'example' => 'true', + ], + 'ProtocolName' => [ + 'description' => 'The protocol used by the database account. Valid values:'."\n" + ."\n" + .'* **MySQL**'."\n" + .'* **Oracle**'."\n" + .'* **PostgreSQL**'."\n" + .'* **SQLServer**'."\n", + 'type' => 'string', + 'example' => 'MySQL', + ], + ], + ], + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'EC9BF0F4-8983-491A-BC8C-1B4DD94976DE', + ], + 'TotalCount' => [ + 'description' => 'The total number of database accounts returned.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '10', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The argument is invalid.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'An unknown error occurred.', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"DatabaseAccounts\\": [\\n {\\n \\"DatabaseAccountId\\": \\"4\\",\\n \\"DatabaseAccountName\\": \\"root\\",\\n \\"DatabaseId\\": \\"11\\",\\n \\"IsAuthorized\\": true,\\n \\"ProtocolName\\": \\"MySQL\\"\\n }\\n ],\\n \\"RequestId\\": \\"EC9BF0F4-8983-491A-BC8C-1B4DD94976DE\\",\\n \\"TotalCount\\": 10\\n}","type":"json"}]', + 'title' => 'ListDatabaseAccountsForUserGroup', + ], + 'DeleteDatabaseAccount' => [ + 'summary' => 'Deletes a database account.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'delete', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREbastionhostXV4JIF', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the bastion host from which you want to delete the database account.'."\n" + ."\n" + .'> You can call the DescribeInstances operation to query the ID of the bastion host.', + 'type' => 'string', + 'required' => true, + 'example' => 'bastionhost-cn-st220aw****', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the bastion host from which you want to delete the database account.'."\n" + ."\n" + .'> For more information about the mapping between region IDs and region names, [see Regions and zones](~~40654~~).', + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'DatabaseAccountId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the database account that you want to delete.'."\n" + ."\n" + .'> You can call the [ListDatabaseAccounts](~~2758839~~) operation to query the database account ID.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '9', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '81500666-d7f5-4143-8329-0223cc738105', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The argument is invalid.', + ], + ], + 404 => [ + [ + 'errorCode' => 'DatabaseAccountNotFound', + 'errorMessage' => 'The database account is not found.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'An unknown error occurred.', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"81500666-d7f5-4143-8329-0223cc738105\\"\\n}","type":"json"}]', + 'title' => 'DeleteDatabaseAccount', + ], + 'CreateUser' => [ + 'summary' => 'Adds a user to a bastion host.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'create', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREbastionhostE6GSFF', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the bastion host to which you want to add a user.'."\n" + ."\n" + .'> You can call the [DescribeInstances](~~153281~~) operation to query the bastion host ID.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'bastionhost-cn-st220aw****', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the bastion host to which you want to add a user.'."\n" + ."\n" + .'> For more information about the mapping between region IDs and region names, see [Regions and zones](~~40654~~).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'Source', + 'in' => 'query', + 'schema' => [ + 'description' => 'The type of the user that you want to add. Valid values:'."\n" + ."\n" + .'* **Local**: a local user.'."\n" + .'* **Ram**: a RAM user.'."\n" + .'* **AD**: an AD-authenticated user.'."\n" + .'* **LDAP**: an LDAP-authenticated user.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'local', + ], + ], + [ + 'name' => 'UserName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The logon name of the user that you want to add. The logon name must be 1 to 128 characters in length and can contain only letters, digits, and underscores (\\_).'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'abc_def', + ], + ], + [ + 'name' => 'Password', + 'in' => 'query', + 'schema' => [ + 'description' => 'The logon password of the user that you want to add. The logon password must be 8 to 128 characters in length. It must contain uppercase letters, lowercase letters, digits, and special characters.'."\n" + ."\n" + .'> This parameter is required if Source is set to Local.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '213****', + ], + ], + [ + 'name' => 'DisplayName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The display name of the user that you want to add. The display name can be up to 128 characters in length.'."\n" + ."\n" + .'> If you leave this parameter empty, the logon name is used as the display name.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'Bob', + ], + ], + [ + 'name' => 'Comment', + 'in' => 'query', + 'schema' => [ + 'description' => 'The remarks of the user that you want to add. The remarks can be up to 500 characters in length.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'comment', + ], + ], + [ + 'name' => 'Email', + 'in' => 'query', + 'schema' => [ + 'description' => 'The email address of the user that you want to add.'."\n" + ."\n" + .'> '."\n" + ."\n" + .'* This parameter is required if TwoFactorStatus is set to Enable and TwoFactorMethods is set to email, or if TwoFactorStatus is set to Global and TwoFactorMethods is set to email in the global two-factor authentication settings.'."\n" + ."\n" + .'* You can call the [GetInstanceTwoFactor](~~462968~~) operation to query the global two-factor authentication settings.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '[email protected]', + ], + ], + [ + 'name' => 'Mobile', + 'in' => 'query', + 'schema' => [ + 'description' => 'The mobile phone number of the user that you want to add.'."\n" + ."\n" + .'> '."\n" + ."\n" + .'* This parameter is required if TwoFactorStatus is set to Enable and TwoFactorMethods is set to sms or dingtalk, or if TwoFactorStatus is set to Global and TwoFactorMethods is set to sms or dingtalk in the global two-factor authentication settings.'."\n" + ."\n" + .'* You can call the [GetInstanceTwoFactor](~~462968~~) operation to query the global two-factor authentication settings.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '1359999****', + ], + ], + [ + 'name' => 'SourceUserId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The unique ID of the user that you want to add.'."\n" + ."\n" + .'> '."\n" + ."\n" + .'* This parameter uniquely identifies a RAM user of the bastion host. This parameter is required if Source is set to Ram. You can call the [ListUsers](~~28684~~) operation in RAM to obtain the unique ID of the user from the UserId response parameter.'."\n" + ."\n" + .'* This parameter is required if Source is set to AD or LDAP. Specify the distinguished name (DN) of the Active Directory (AD)-authenticated user or Lightweight Directory Access Protocol (LDAP)-authenticated user that you want to add.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '122748924538****', + ], + ], + [ + 'name' => 'MobileCountryCode', + 'in' => 'query', + 'schema' => [ + 'description' => 'The location where the mobile phone number of the user is registered. Default value: CN. Valid values:'."\n" + ."\n" + .'* **CN**: the Chinese mainland, whose international dialing code is +86.'."\n" + .'* **HK**: Hong Kong (China), whose international dialing code is +852.'."\n" + .'* **MO**: Macao (China), whose international dialing code is +853.'."\n" + .'* **TW**: Taiwan (China), whose international dialing code is +886.'."\n" + .'* **RU**: Russia, whose international dialing code is +7.'."\n" + .'* **SG**: Singapore, whose international dialing code is +65.'."\n" + .'* **MY**: Malaysia, whose international dialing code is +60.'."\n" + .'* **ID**: Indonesia, whose international dialing code is +62.'."\n" + .'* **DE**: Germany, whose international dialing code is +49.'."\n" + .'* **AU**: Australia, whose international dialing code is +61.'."\n" + .'* **US**: US, whose international dialing code is +1.'."\n" + .'* **AE**: United Arab Emirates, whose international dialing code is +971.'."\n" + .'* **JP**: Japan, whose international dialing code is +81.'."\n" + .'* **GB**: UK, whose international dialing code is +44.'."\n" + .'* **IN**: India, whose international dialing code is +91.'."\n" + .'* **KR**: Republic of Korea, whose international dialing code is +82.'."\n" + .'* **PH**: Philippines, whose international dialing code is +63.'."\n" + .'* **CH**: Switzerland, whose international dialing code is +41.'."\n" + .'* **SE:** Sweden, whose international dialing code is +46.'."\n" + .'* **SA:** Saudi Arabia, whose international dialing code is +966.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'CN', + ], + ], + [ + 'name' => 'EffectiveStartTime', + 'in' => 'query', + 'schema' => [ + 'title' => '开始生效时间戳,单位秒', + 'description' => 'The start time of the validity period of the user. Specify a UNIX timestamp. Unit: seconds.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'example' => '1669630029', + ], + ], + [ + 'name' => 'EffectiveEndTime', + 'in' => 'query', + 'schema' => [ + 'title' => '有效期结束时间戳。单位秒', + 'description' => 'The end time of the validity period of the user. Specify a UNIX timestamp. Unit: seconds.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'example' => '1672502400', + ], + ], + [ + 'name' => 'NeedResetPassword', + 'in' => 'query', + 'schema' => [ + 'title' => '下次登录是否需要重置密码', + 'description' => 'Specifies whether password reset is required upon the next logon. Valid values:'."\n" + ."\n" + .'* **true**'."\n" + .'* **false**'."\n" + ."\n" + .'> If you leave this parameter empty, the default value false is used.'."\n", + 'type' => 'boolean', + 'required' => false, + 'example' => 'true', + ], + ], + [ + 'name' => 'TwoFactorStatus', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether two-factor authentication is enabled for the user. Valid values:'."\n" + ."\n" + .'* **Global**: The global settings apply.'."\n" + .'* **Disable**: Two-factor authentication is disabled.'."\n" + .'* **Enable**: Two-factor authentication is enabled and user-specific settings apply.'."\n" + ."\n" + .'> If you leave this parameter empty, the default value Global is used.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'Enable', + ], + ], + [ + 'name' => 'TwoFactorMethods', + 'in' => 'query', + 'schema' => [ + 'description' => 'The two-factor authentication method. You can select only one method. Valid values:'."\n" + ."\n" + .'* **sms**: text message-based two-factor authentication.'."\n" + .'* **email**: email-based two-factor authentication.'."\n" + .'* **dingtalk**: DingTalk-based two-factor authentication.'."\n" + .'* **totp OTP**: one-time password (OTP) token-based two-factor authentication.'."\n" + ."\n" + .'> If TwoFactorStatus is set to Enable, you must select one of the preceding values for TwoFactorMethods.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '["sms"]', + ], + ], + [ + 'name' => 'LanguageStatus', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to send notifications in the language specified in the global settings or a custom language.'."\n" + ."\n" + .'* **Global**'."\n" + .'* **Custom**'."\n" + ."\n" + .'> If you leave this parameter empty, the default value Global is used.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'Custom', + ], + ], + [ + 'name' => 'Language', + 'in' => 'query', + 'schema' => [ + 'description' => 'This parameter is required if LanguageStatus is set to Custom. Valid values:'."\n" + ."\n" + .'* **zh-cn**: simplified Chinese.'."\n" + .'* **en**: English.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'en', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'description' => 'The response data.'."\n", + 'type' => 'object', + 'properties' => [ + 'UserId' => [ + 'description' => 'The ID of the user that is added.'."\n", + 'type' => 'string', + 'example' => '1', + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'EC9BF0F4-8983-491A-BC8C-1B4DD94976DE', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The argument is invalid.', + ], + [ + 'errorCode' => 'UserAlreadyExists', + 'errorMessage' => 'The user already exists.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'An unknown error occurred.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"UserId\\": \\"1\\",\\n \\"RequestId\\": \\"EC9BF0F4-8983-491A-BC8C-1B4DD94976DE\\"\\n}","errorExample":""},{"type":"xml","example":"<CreateUserResponse>\\n <RequestId>EC9BF0F4-8983-491A-BC8C-1B4DD94976DE</RequestId>\\n <UserId>1</UserId>\\n</CreateUserResponse>","errorExample":""}]', + 'title' => 'CreateUser', + 'description' => 'You can call the CreateUser operation to add local users, Resource Access Management (RAM) users, Active Directory (AD)-authenticated users, or Lightweight Directory Access Protocol (LDAP)-authenticated users to a bastion host. After a Bastionhost administrator adds a user to a bastion host, O\\&M engineers can log on to the bastion host as the user to perform O\\&M operations on the hosts that the user is authorized to manage.'."\n" + ."\n" + .'You can call this operation up to 10 times per second per account. If the number of the calls per second exceeds a limit, throttling is triggered. As a result, your business may be affected. We recommend that you take note of the limits when you call this operation.'."\n", + 'requestParamsDescription' => 'All Alibaba Cloud API operations must include common request parameters. For more information about common request parameters, see [Common request parameters](~~148139~~).'."\n" + ."\n" + .'For more information about sample requests, see Sample requests.'."\n", + ], + 'GetUser' => [ + 'summary' => 'Queries the details of a user of the specified bastion host.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREbastionhostE6GSFF', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the bastion host on which you want to query the user.'."\n" + ."\n" + .'> You can call the [DescribeInstances](~~153281~~) operation to query the ID of the bastion host.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'bastionhost-cn-st220aw****', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the bastion host on which you want to query the user.'."\n" + ."\n" + .'> For more information about the mapping between region IDs and region names, see [Regions and zones](~~40654~~).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'UserId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the user.'."\n" + ."\n" + .'> You can call the [ListUsers](~~204522~~) operation to query the ID of the user.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '1', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'description' => 'The response data.'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => 'EC9BF0F4-8983-491A-BC8C-1B4DD94976DE', + ], + 'User' => [ + 'description' => 'The detailed information about the queried user.'."\n", + 'type' => 'object', + 'properties' => [ + 'DisplayName' => [ + 'description' => 'The display name of the user.'."\n", + 'type' => 'string', + 'example' => 'Bob', + ], + 'Comment' => [ + 'description' => 'The description of the user.'."\n", + 'type' => 'string', + 'example' => 'comment', + ], + 'Email' => [ + 'description' => 'The email address of the user.'."\n", + 'type' => 'string', + 'example' => '1099**@qq.com', + ], + 'Mobile' => [ + 'description' => 'The mobile phone number of the user.'."\n", + 'type' => 'string', + 'example' => '1359999****', + ], + 'MobileCountryCode' => [ + 'description' => 'The location in which the mobile number of the user is registered. Valid values:'."\n" + ."\n" + .'* **CN**: the Chinese mainland, whose country calling code is +86'."\n" + .'* **HK**: Hong Kong (China), whose country calling code is +852'."\n" + .'* **MO**: Macao (China), whose country calling code is +853'."\n" + .'* **TW**: Taiwan (China), whose country calling code is +886'."\n" + .'* **RU**: Russia, whose country calling code is +7'."\n" + .'* **SG**: Singapore, whose country calling code is +65'."\n" + .'* **MY**: Malaysia, whose country calling code is +60'."\n" + .'* **ID**: Indonesia, whose country calling code is +62'."\n" + .'* **DE**: Germany, whose country calling code is +49'."\n" + .'* **AU**: Australia, whose country calling code is +61'."\n" + .'* **US**: US, whose country calling code is +1'."\n" + .'* **AE**: United Arab Emirates, whose country calling code is +971'."\n" + .'* **JP:** Japan, whose country calling code is +81'."\n" + .'* **GB**: UK, whose country calling code is +44'."\n" + .'* **IN**: India, whose country calling code is +91'."\n" + .'* **KR**: Republic of Korea, whose country calling code is +82'."\n" + .'* **PH**: Philippines, whose country calling code is +63'."\n" + .'* **CH**: Switzerland, whose country calling code is +41'."\n" + .'* **SE**: Sweden, whose country calling code is +46'."\n", + 'type' => 'string', + 'example' => 'CN', + ], + 'UserId' => [ + 'description' => 'The ID of the user.'."\n", + 'type' => 'string', + 'example' => '1', + ], + 'Source' => [ + 'description' => 'The source of the user. Valid values:'."\n" + ."\n" + .'* **Local**: a local user'."\n" + .'* **Ram**: a RAM user'."\n", + 'type' => 'string', + 'example' => 'Local', + ], + 'UserName' => [ + 'description' => 'The logon name of the user.'."\n", + 'type' => 'string', + 'example' => 'abcabc_def', + ], + 'SourceUserId' => [ + 'description' => 'The unique ID of the user.'."\n" + ."\n" + .'> This parameter uniquely identifies a RAM user of the bastion host. A value is returned for this parameter if the **Source** parameter is set to **Ram**. No value is returned for this parameter if the **Source** parameter is set to **Local**.'."\n", + 'type' => 'string', + 'example' => '122748924538****', + ], + 'UserState' => [ + 'description' => 'An array that consists of the details of the user status.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The status of the user. Valid values:'."\n" + ."\n" + .'* **Normal**: active'."\n" + .'* **Frozen**: locked'."\n" + .'* **Expired**: expired'."\n", + 'type' => 'string', + 'example' => '["Normal"]', + ], + ], + 'EffectiveStartTime' => [ + 'description' => 'The beginning of the validity period of the user. The value is a UNIX timestamp. Unit: seconds.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1669630029', + ], + 'EffectiveEndTime' => [ + 'description' => 'The end of the validity period of the user. The value is a UNIX timestamp. Unit: seconds.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1672502400', + ], + 'NeedResetPassword' => [ + 'description' => 'Specifies whether password reset is required upon the next logon. Valid values:'."\n" + ."\n" + .'* **true**: yes'."\n" + .'* **false**: no'."\n", + 'type' => 'boolean', + 'example' => 'true', + ], + 'TwoFactorMethods' => [ + 'description' => 'An array that consists of the details of the two-factor authentication method.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The two-factor authentication method. You can select only one method. Valid values:'."\n" + ."\n" + .'* **sms:** text message'."\n" + .'* **email:** email'."\n" + .'* **dingtalk:** DingTalk'."\n" + .'* **totp OTP:** time-based one-time password (TOTP) app'."\n", + 'type' => 'string', + 'example' => '['."\n" + .' "sms"'."\n" + .']', + ], + ], + 'TwoFactorStatus' => [ + 'description' => 'The two-factor authentication status of the user. Valid values:'."\n" + ."\n" + .'* **Global**: The global settings are used.'."\n" + .'* **Disable**: The two-factor authentication is disabled.'."\n" + .'* **Enable**: The two-factor authentication is enabled and the user-specific setting is used.'."\n", + 'type' => 'string', + 'example' => 'Enable', + ], + 'LanguageStatus' => [ + 'description' => 'Indicates whether notifications are sent in the language specified in the global settings or a custom language.'."\n" + ."\n" + .'* **Global**: Global'."\n" + .'* **Custom**: Custom', + 'type' => 'string', + 'example' => 'Custom', + ], + 'Language' => [ + 'description' => 'This parameter is required if LanguageStatus is set to Custom.'."\n" + ."\n" + .'- **zh-cn**: simplified Chinese.'."\n" + .'- **en**: English.', + 'type' => 'string', + 'example' => 'en', + ], + ], + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The argument is invalid.', + ], + ], + 404 => [ + [ + 'errorCode' => 'UserNotFound', + 'errorMessage' => 'The user is not found.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'An unknown error occurred.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"EC9BF0F4-8983-491A-BC8C-1B4DD94976DE\\",\\n \\"User\\": {\\n \\"DisplayName\\": \\"Bob\\",\\n \\"Comment\\": \\"commet\\",\\n \\"Email\\": \\"1099**@qq.com\\",\\n \\"Mobile\\": \\"1359999****\\",\\n \\"MobileCountryCode\\": \\"CN\\",\\n \\"UserId\\": \\"1\\",\\n \\"Source\\": \\"Local\\",\\n \\"UserName\\": \\"abcabc_def\\",\\n \\"SourceUserId\\": \\"122748924538****\\",\\n \\"UserState\\": [\\n \\"[\\\\\\"Normal\\\\\\"]\\"\\n ],\\n \\"EffectiveStartTime\\": 1669630029,\\n \\"EffectiveEndTime\\": 1672502400,\\n \\"NeedResetPassword\\": true,\\n \\"TwoFactorMethods\\": [\\n \\"[\\\\n \\\\\\"sms\\\\\\"\\\\n]\\"\\n ],\\n \\"TwoFactorStatus\\": \\"Enable\\",\\n \\"LanguageStatus\\": \\"Custom\\",\\n \\"Language\\": \\"en\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"<GetUserResponse>\\n <User>\\n <Comment>commet</Comment>\\n <Email>1099**@qq.com</Email>\\n <UserName>abcabc_def</UserName>\\n <UserId>1</UserId>\\n <SourceUserId>122748924538****</SourceUserId>\\n <DisplayName>Bob</DisplayName>\\n <MobileCountryCode>CN</MobileCountryCode>\\n <Mobile>1359999****</Mobile>\\n <Source>Local</Source>\\n <UserState>Normal</UserState>\\n </User>\\n <RequestId>EC9BF0F4-8983-491A-BC8C-1B4DD94976DE</RequestId>\\n</GetUserResponse>","errorExample":""}]', + 'title' => 'GetUser', + 'requestParamsDescription' => 'All Alibaba Cloud API operations must include common request parameters. For more information about common request parameters, see [Common parameters](~~148139~~). For more information about sample requests, see the "Examples" section of this topic.'."\n", + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'ListUsers' => [ + 'summary' => 'Queries a list of users of a bastion host.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREbastionhostE6GSFF', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the bastion host whose users you want to query.'."\n" + ."\n" + .'> You can call the [DescribeInstances](~~153281~~) operation to query the bastion host ID.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'bastionhost-cn-st220aw****', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the bastion host whose users you want to query.'."\n" + ."\n" + .'> For more information about the mapping between region IDs and region names, see [Regions and zones](~~40654~~).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => [ + 'description' => 'The page number. Default value: **1**.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '1', + ], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of entries per page.\\'."\n" + .'Valid values: 1 to 100. Default value: 20. If you leave this parameter empty, 20 entries are returned on each page.'."\n" + ."\n" + .'> We recommend that you do not leave this parameter empty.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '20', + ], + ], + [ + 'name' => 'UserName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The logon name of the user that you want to query. Only exact match is supported.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'abc', + ], + ], + [ + 'name' => 'DisplayName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The display name of the user that you want to query. Only exact match is supported.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'abc', + ], + ], + [ + 'name' => 'Source', + 'in' => 'query', + 'schema' => [ + 'description' => 'The type of the user that you want to query. Valid values:'."\n" + ."\n" + .'* **Local**: a local user.'."\n" + .'* **Ram**: a Resource Access Management (RAM) user.'."\n" + .'* **AD**: an Active Directory (AD)-authenticated user.'."\n" + .'* **LDAP**: a Lightweight Directory Access Protocol (LDAP)-authenticated user.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'Local', + ], + ], + [ + 'name' => 'Mobile', + 'in' => 'query', + 'schema' => [ + 'description' => 'The mobile phone number of the user that you want to query. Only exact match is supported.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '1359999****', + ], + ], + [ + 'name' => 'UserState', + 'in' => 'query', + 'schema' => [ + 'description' => 'The state of the user that you want to query. Valid values:'."\n" + ."\n" + .'* **Normal**: The user is in normal state.'."\n" + .'* **Frozen**: The user is locked.'."\n" + .'* **Expired**: The user has expired.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'Normal', + ], + ], + [ + 'name' => 'SourceUserId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The unique ID of the user that you want to query. Only exact match is supported.'."\n" + ."\n" + .'> This parameter uniquely identifies a RAM user of the bastion host. This parameter is valid if **Source** is set to **Ram**. You can call the [ListUsers](~~28684~~) operation in RAM to obtain the unique ID of the user from the **UserId** response parameter.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '122748924538****', + ], + ], + [ + 'name' => 'UserGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the user group to which the user you want to query belongs.'."\n" + ."\n" + .'> You can call the [ListUserGroups](~~204509~~) operation to query the user group ID.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '1', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'description' => 'The returned data.'."\n", + 'type' => 'object', + 'properties' => [ + 'TotalCount' => [ + 'description' => 'The total number of users returned.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '1', + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'EC9BF0F4-8983-491A-BC8C-1B4DD94976DE', + ], + 'Users' => [ + 'description' => 'The users returned.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'DisplayName' => [ + 'description' => 'The display name of the user.'."\n", + 'type' => 'string', + 'example' => 'Bob', + ], + 'Email' => [ + 'description' => 'The email address of the user.'."\n", + 'type' => 'string', + 'example' => '1099**@qq.com', + ], + 'Comment' => [ + 'description' => 'The remarks of the user.'."\n", + 'type' => 'string', + 'example' => 'comment', + ], + 'MobileCountryCode' => [ + 'description' => 'The location where the mobile phone number of the user is registered. Valid values:'."\n" + ."\n" + .'* **CN**: the Chinese mainland, whose international dialing code is +86.'."\n" + .'* **HK**: Hong Kong (China), whose international dialing code is +852.'."\n" + .'* **MO**: Macao (China), whose international dialing code is +853.'."\n" + .'* **TW**: Taiwan (China), whose international dialing code is +886.'."\n" + .'* **RU**: Russia, whose international dialing code is +7.'."\n" + .'* **SG**: Singapore, whose international dialing code is +65.'."\n" + .'* **MY**: Malaysia, whose international dialing code is +60.'."\n" + .'* **ID**: Indonesia, whose international dialing code is +62.'."\n" + .'* **DE**: Germany, whose international dialing code is +49.'."\n" + .'* **AU**: Australia, whose international dialing code is +61.'."\n" + .'* **US**: US, whose international dialing code is +1.'."\n" + .'* **AE**: United Arab Emirates, whose international dialing code is +971.'."\n" + .'* **JP:** Japan, whose international dialing code is +81.'."\n" + .'* **GB**: UK, whose international dialing code is +44.'."\n" + .'* **IN**: India, whose international dialing code is +91.'."\n" + .'* **KR**: Republic of Korea, whose international dialing code is +82.'."\n" + .'* **PH**: Philippines, whose international dialing code is +63.'."\n" + .'* **CH**: Switzerland, whose international dialing code is +41.'."\n" + .'* **SE**: Sweden, whose international dialing code is +46.'."\n", + 'type' => 'string', + 'example' => 'CN', + ], + 'Mobile' => [ + 'description' => 'The mobile phone number of the user.'."\n", + 'type' => 'string', + 'example' => '1359999****', + ], + 'UserId' => [ + 'description' => 'The user ID.'."\n", + 'type' => 'string', + 'example' => '1', + ], + 'Source' => [ + 'description' => 'The type of the user. Valid values:'."\n" + ."\n" + .'* **Local**: a local user.'."\n" + .'* **Ram**: a RAM user.'."\n" + .'* **AD**: an AD-authenticated user.'."\n" + .'* **LDAP**: an LDAP-authenticated user.'."\n", + 'type' => 'string', + 'example' => 'Local', + ], + 'UserName' => [ + 'description' => 'The logon name of the user.'."\n", + 'type' => 'string', + 'example' => 'abc_def', + ], + 'SourceUserId' => [ + 'description' => 'The unique ID of the user.'."\n" + ."\n" + .'> This parameter uniquely identifies a RAM user of the bastion host. A value is returned for this parameter if **Source** is set to **Ram**. No value is returned for this parameter if **Source** is set to **Local**.'."\n", + 'type' => 'string', + 'example' => '122748924538****', + ], + 'UserState' => [ + 'description' => 'An array that lists the states of users.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The state of the user. Valid values:'."\n" + ."\n" + .'* **Normal**: The user is in normal state.'."\n" + .'* **Frozen**: The user is locked.'."\n" + .'* **Expired**: The user has expired.'."\n", + 'type' => 'string', + 'example' => '["Normal"]', + ], + ], + 'EffectiveStartTime' => [ + 'title' => '', + 'description' => 'The start time of the validity period of the user. The value is a UNIX timestamp. Unit: seconds.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1669630029', + ], + 'EffectiveEndTime' => [ + 'description' => 'The end time of the validity period of the user. The value is a UNIX timestamp. Unit: seconds.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1672502400', + ], + 'NeedResetPassword' => [ + 'description' => 'Indicates whether password reset is required upon the next logon. Valid values:'."\n" + ."\n" + .'* **true**'."\n" + .'* **false**'."\n", + 'type' => 'boolean', + 'example' => 'true', + ], + 'TwoFactorStatus' => [ + 'description' => 'Indicates whether two-factor authentication is enabled for the user. Valid values:'."\n" + ."\n" + .'* **Global**: The global setting applies.'."\n" + .'* **Disable**: Two-factor authentication is disabled.'."\n" + .'* **Enable**: Two-factor authentication is enabled. The user-specific setting for the authentication method applies.'."\n", + 'type' => 'string', + 'example' => 'Enable', + ], + 'TwoFactorMethods' => [ + 'description' => 'An array of the enabled two-factor authentication methods.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The enabled two-factor authentication method. Only one method is supported for each user. Valid values:'."\n" + ."\n" + .'* **sms:** text message-based two-factor authentication.'."\n" + .'* **email:** email-based two-factor authentication.'."\n" + .'* **dingtalk**: DingTalk-based two-factor authentication.'."\n" + .'* **totp**: one-time password (OTP) token-based two-factor authentication.'."\n" + .'* **gmusbkey**: two-factor authentication based on the SM-based USB key.'."\n", + 'type' => 'string', + 'example' => '['."\n" + .' "sms"'."\n" + .']', + ], + ], + 'LanguageStatus' => [ + 'description' => 'Indicates whether notifications are sent in the language specified in the global settings or a custom language.'."\n" + ."\n" + .'* **Global**'."\n" + .'* **Custom**'."\n", + 'type' => 'string', + 'example' => 'Custom', + ], + 'Language' => [ + 'description' => 'This parameter is required if LanguageStatus is set to Custom. Valid values:'."\n" + ."\n" + .'* **zh-cn**: simplified Chinese.'."\n" + .'* **en**: English.'."\n", + 'type' => 'string', + 'example' => 'en', + ], + ], + 'description' => '', + ], + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The argument is invalid.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'An unknown error occurred.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"TotalCount\\": 1,\\n \\"RequestId\\": \\"EC9BF0F4-8983-491A-BC8C-1B4DD94976DE\\",\\n \\"Users\\": [\\n {\\n \\"DisplayName\\": \\"Bob\\",\\n \\"Email\\": \\"1099**@qq.com\\",\\n \\"Comment\\": \\"comment\\",\\n \\"MobileCountryCode\\": \\"CN\\",\\n \\"Mobile\\": \\"1359999****\\",\\n \\"UserId\\": \\"1\\",\\n \\"Source\\": \\"Local\\",\\n \\"UserName\\": \\"abc_def\\",\\n \\"SourceUserId\\": \\"122748924538****\\",\\n \\"UserState\\": [\\n \\"[\\\\\\"Normal\\\\\\"]\\"\\n ],\\n \\"EffectiveStartTime\\": 1669630029,\\n \\"EffectiveEndTime\\": 1672502400,\\n \\"NeedResetPassword\\": true,\\n \\"TwoFactorStatus\\": \\"Enable\\",\\n \\"TwoFactorMethods\\": [\\n \\"[\\\\n \\\\\\"sms\\\\\\"\\\\n]\\"\\n ],\\n \\"LanguageStatus\\": \\"Custom\\",\\n \\"Language\\": \\"en\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"<ListUsersResponse>\\n <TotalCount>1</TotalCount>\\n <RequestId>EC9BF0F4-8983-491A-BC8C-1B4DD94976DE</RequestId>\\n <Users>\\n <Comment>comment</Comment>\\n <UserName>abc_def</UserName>\\n <Email>1099**@qq.com</Email>\\n <UserId>1</UserId>\\n <SourceUserId>122748924538****</SourceUserId>\\n <MobileCountryCode>CN</MobileCountryCode>\\n <DisplayName>Bob</DisplayName>\\n <Mobile>1359999****</Mobile>\\n <Source>Local</Source>\\n <UserState>Normal</UserState>\\n </Users>\\n</ListUsersResponse>","errorExample":""}]', + 'title' => 'ListUsers', + 'requestParamsDescription' => 'All Alibaba Cloud API operations must include common request parameters. For more information about common request parameters, see [Common request parameters](~~315526~~). For more information about sample requests, see Sample requests.'."\n", + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'ModifyUser' => [ + 'summary' => 'Modifies the information about a user of a bastion host.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREbastionhostE6GSFF', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the bastion host on which you want to modify the information about the user.'."\n" + ."\n" + .'> You can call the [DescribeInstances](~~153281~~) operation to query the bastion host ID.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'bastionhost-cn-st220aw****', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the bastion host on which you want to modify the information about the user.'."\n" + ."\n" + .'> For more information about the mapping between region IDs and region names, see [Regions and zones](~~40654~~).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'UserId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the user whose information you want to modify.'."\n" + ."\n" + .'> You can call the [ListUsers](~~204522~~) operation to query the user ID.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '1', + ], + ], + [ + 'name' => 'Password', + 'in' => 'query', + 'schema' => [ + 'description' => 'The new password of the user. The password must be 8 to 128 characters in length. It must contain uppercase letters, lowercase letters, digits, and special characters.'."\n" + ."\n" + .'> Leave this parameter empty if you do not want to change the password of the user.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '321****', + ], + ], + [ + 'name' => 'DisplayName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The new display name of the user. The display name can be up to 128 characters in length.'."\n" + ."\n" + .'> Leave this parameter empty if you do not want to change the display name of the user.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'Bob', + ], + ], + [ + 'name' => 'Comment', + 'in' => 'query', + 'schema' => [ + 'description' => 'The new remarks of the user. The remarks can be up to 500 characters in length.'."\n" + ."\n" + .'> Leave this parameter empty if you do not want to change the remarks of the user.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'comment', + ], + ], + [ + 'name' => 'Email', + 'in' => 'query', + 'schema' => [ + 'description' => 'The new email address of the user.'."\n" + ."\n" + .'> '."\n" + ."\n" + .'* This parameter is required if TwoFactorStatus is set to Enable and TwoFactorMethods is set to email, or if TwoFactorStatus is set to Global and TwoFactorMethods is set to email in the global two-factor authentication settings.'."\n" + ."\n" + .'* You can call the [GetInstanceTwoFactor](~~462968~~) operation to query the global two-factor authentication settings.'."\n" + ."\n" + .'* Leave this parameter empty if you do not want to change the email address of the user.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '[email protected]', + ], + ], + [ + 'name' => 'Mobile', + 'in' => 'query', + 'schema' => [ + 'description' => 'The new mobile phone number of the user.'."\n" + ."\n" + .'> '."\n" + ."\n" + .'* This parameter is required if TwoFactorStatus is set to Enable and TwoFactorMethods is set to sms or dingtalk, or if TwoFactorStatus is set to Global and TwoFactorMethods is set to sms or dingtalk in the global two-factor authentication settings.'."\n" + ."\n" + .'* You can call the [GetInstanceTwoFactor](~~462968~~) operation to query the global two-factor authentication settings.'."\n" + ."\n" + .'* Leave this parameter empty if you do not want to change the mobile phone number of the user.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '1358888****', + ], + ], + [ + 'name' => 'MobileCountryCode', + 'in' => 'query', + 'schema' => [ + 'description' => 'The country where the new mobile number of the user is registered. Valid values:'."\n" + ."\n" + .'* **CN:** the Chinese mainland, whose country calling code is +86'."\n" + .'* **HK:** Hong Kong (China), whose country calling code is +852'."\n" + .'* **MO:** Macao (China), whose country calling code is +853'."\n" + .'* **TW:** Taiwan (China), whose country calling code is +886'."\n" + .'* **RU:** Russia, whose country calling code is +7'."\n" + .'* **SG:** Singapore, whose country calling code is +65'."\n" + .'* **MY:** Malaysia, whose country calling code is +60'."\n" + .'* **ID:** Indonesia, whose country calling code is +62'."\n" + .'* **DE:** Germany, whose country calling code is +49'."\n" + .'* **AU:** Australia, whose country calling code is +61'."\n" + .'* **US:** US, whose country calling code is +1'."\n" + .'* **AE:** United Arab Emirates, whose country calling code is +971'."\n" + .'* **JP:** Japan, whose country calling code is +81'."\n" + .'* **GB:** UK, whose country calling code is +44'."\n" + .'* **IN:** India, whose country calling code is +91'."\n" + .'* **KR:** Republic of Korea, whose country calling code is +82'."\n" + .'* **PH:** Philippines, whose country calling code is +63'."\n" + .'* **CH:** Switzerland, whose country calling code is +41'."\n" + .'* **SE:** Sweden, whose country calling code is +46'."\n" + .'* **SA:** Saudi Arabia, whose country calling code is +966'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'CN', + ], + ], + [ + 'name' => 'EffectiveStartTime', + 'in' => 'query', + 'schema' => [ + 'title' => '用户开始生效时间戳,单位秒', + 'description' => 'The start time of the validity period of the user. Specify a UNIX timestamp. Unit: seconds.'."\n" + ."\n" + .'> Leave this parameter empty if you do not want to change the start time of the validity period.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'example' => '1669630029', + ], + ], + [ + 'name' => 'EffectiveEndTime', + 'in' => 'query', + 'schema' => [ + 'title' => '用户结束生效时间戳,单位秒', + 'description' => 'The end time of the validity period of the user. Specify a UNIX timestamp. Unit: seconds.'."\n" + ."\n" + .'> Leave this parameter empty if you do not want to change the end time of the validity period.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'example' => '1672502400', + ], + ], + [ + 'name' => 'NeedResetPassword', + 'in' => 'query', + 'schema' => [ + 'title' => '用户下次登录强制修改密码', + 'description' => 'Specifies whether password reset is required upon the next logon. Valid values:'."\n" + ."\n" + .'* **true**'."\n" + .'* **false**'."\n" + ."\n" + .'> Leave this parameter empty if you do not want to change the password reset settings for the user.'."\n", + 'type' => 'boolean', + 'required' => false, + 'example' => 'true', + ], + ], + [ + 'name' => 'TwoFactorStatus', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether two-factor authentication is enabled for the user. Valid values:'."\n" + ."\n" + .'* **Global**: The global settings apply.'."\n" + .'* **Disable**: Two-factor authentication is disabled.'."\n" + .'* **Enable**: Two-factor authentication is enabled and user-specific settings apply.'."\n" + ."\n" + .'> Leave this parameter empty if you do not want to change the two-factory authentication settings for the user.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'Enable', + ], + ], + [ + 'name' => 'TwoFactorMethods', + 'in' => 'query', + 'schema' => [ + 'description' => 'The two-factor authentication method. You can select only one method. Valid values:'."\n" + ."\n" + .'* **sms**: text message-based two-factor authentication.'."\n" + .'* **email**: email-based two-factor authentication.'."\n" + .'* **dingtalk**: DingTalk-based two-factor authentication.'."\n" + .'* **totp OTP:** one-time password (OTP) token-based two-factor authentication.'."\n" + ."\n" + .'> If TwoFactorStatus is set to Enable, you must specify one of the valid values as TwoFactorMethods.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'sms', + ], + ], + [ + 'name' => 'LanguageStatus', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to send notifications in the language specified in the global settings or a custom language.'."\n" + ."\n" + .'* **Global**'."\n" + .'* **Custom**'."\n" + ."\n" + .'> Leave this parameter empty if you do not want to change the natural language used to notify the user.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'Custom', + ], + ], + [ + 'name' => 'Language', + 'in' => 'query', + 'schema' => [ + 'description' => 'This parameter is required if LanguageStatus is set to Custom.'."\n" + ."\n" + .'- **zh-cn**: simplified Chinese'."\n" + .'- **en**: English', + 'type' => 'string', + 'required' => false, + 'example' => 'en', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'description' => 'The response data.'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request, which is used to locate and troubleshoot issues.'."\n", + 'type' => 'string', + 'example' => 'EC9BF0F4-8983-491A-BC8C-1B4DD94976DE', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The argument is invalid.', + ], + ], + 404 => [ + [ + 'errorCode' => 'UserNotFound', + 'errorMessage' => 'The user is not found.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'An unknown error occurred.', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"EC9BF0F4-8983-491A-BC8C-1B4DD94976DE\\"\\n}","type":"json"}]', + 'title' => 'ModifyUser', + ], + 'DeleteUser' => [ + 'summary' => 'Deletes a bastion host user.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'delete', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREbastionhostE6GSFF', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the bastion host to which the user to be deleted belongs.'."\n" + ."\n" + .'> You can call the [DescribeInstances](~~153281~~) operation to query the bastion host ID.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'bastionhost-cn-st220aw****', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the bastion host to which the user to be deleted belongs.'."\n" + ."\n" + .'> For more information about the mapping between region IDs and region names, see [Regions and zones](~~40654~~).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'UserId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the user to be deleted.'."\n" + ."\n" + .'> You can call the [ListUsers](~~204522~~) operation to query the user ID.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '1', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'description' => 'The data returned.'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request, which is used to locate and troubleshoot issues.'."\n", + 'type' => 'string', + 'example' => 'EC9BF0F4-8983-491A-BC8C-1B4DD94976DE', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The argument is invalid.', + ], + ], + 404 => [ + [ + 'errorCode' => 'UserNotFound', + 'errorMessage' => 'The user is not found.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'An unknown error occurred.', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"EC9BF0F4-8983-491A-BC8C-1B4DD94976DE\\"\\n}","type":"json"}]', + 'title' => 'DeleteUser', + ], + 'CreateUserPublicKey' => [ + 'summary' => 'Creates a public key for a bastion host user and hosts the public key in the bastion host. This way, O\\\\\\&M engineers can use the private key that corresponds to the public key to log on to the bastion host from an O\\\\\\&M client.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'create', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREbastionhost4PMV5G', + ], + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies the region ID of the bastion host on which you want to create a public key for the user.'."\n" + ."\n" + .'> For more information about the mapping between region IDs and region names, see [Regions and zones](~~40654~~).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the bastion host on which you want to create a public key for the user.'."\n" + ."\n" + .'> You can call the [listinstances](~~204522~~) operation to query the ID of the bastion host.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'bastionhost-cn-st220aw****', + ], + ], + [ + 'name' => 'UserId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the user for whom you want to create a public key.'."\n" + ."\n" + .'> You can call the [ListUsers](~~204522~~) operation to query the user ID.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '1', + ], + ], + [ + 'name' => 'PublicKeyName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the public key.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'Public key of a user'."\n", + ], + ], + [ + 'name' => 'PublicKey', + 'in' => 'query', + 'schema' => [ + 'description' => 'The public key. Encode the value by using the Base64 algorithm.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'c3NoLWVkMjU1MTkgQUFBQUMzTnphQzFsWkRJMU5URTVBQUFBSUxGQnQxUUpyT3IxK2hTTGRkbERMZUx4WGRIZ3hBalBxWHJIbWNFNWxqSk8gbm93Y29kZXJAbm93Y29kZXJkZU1hY0Jvb2stUHJvLmxvY2Fs', + ], + ], + [ + 'name' => 'Comment', + 'in' => 'query', + 'schema' => [ + 'description' => 'The description of the public key. The description can be up to 500 characters in length.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'comment', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'description' => 'The data returned.'."\n", + 'type' => 'object', + 'properties' => [ + 'PublicKeyId' => [ + 'description' => 'The ID of the public key.'."\n", + 'type' => 'string', + 'example' => '1', + ], + 'RequestId' => [ + 'description' => 'The ID of the request, which is used to locate and troubleshoot issues.'."\n", + 'type' => 'string', + 'example' => '5EAB922E-F476-5DFA-9290-313C608E724B', + ], + ], + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"PublicKeyId\\": \\"1\\",\\n \\"RequestId\\": \\"5EAB922E-F476-5DFA-9290-313C608E724B\\"\\n}","type":"json"}]', + 'title' => 'CreateUserPublicKey', + 'description' => 'You can call the CreateUserPublicKey operation to create a public key for the specified user of a bastion host.'."\n", + ], + 'ListUserPublicKeys' => [ + 'summary' => 'Queries all public keys of the specified user.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREbastionhost4PMV5G', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the bastion host on which you want to query all public keys of the user.'."\n" + ."\n" + .'> You can call the [DescribeInstances](~~153281~~) operation to query the ID of the bastion host.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'bastionhost-cn-st220aw****'."\n", + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the bastion host on which you want to query all public keys of the user.'."\n" + ."\n" + .'> For more information about the mapping between region IDs and region names, see [Regions and zones](~~40654~~).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-shanghai', + ], + ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of the page to return. Default value: 1.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '1', + ], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of entries to return on each page.\\'."\n" + .'Maximum value: 100. Default value: 20. If you leave this parameter empty, 20 entries are returned on each page.'."\n" + ."\n" + .'> We recommend that you do not leave this parameter empty.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '50', + ], + ], + [ + 'name' => 'UserId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the user whose public keys you want to query.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '2', + ], + ], + ], + 'responses' => [ + 200 => [ + 'headers' => [], + 'schema' => [ + 'description' => 'The response data.'."\n", + 'type' => 'object', + 'properties' => [ + 'PublicKeys' => [ + 'description' => 'An array that consists of the public keys of the user.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The public keys of the user.'."\n", + 'type' => 'object', + 'properties' => [ + 'FingerPrint' => [ + 'description' => 'The fingerprint of the public key.'."\n", + 'type' => 'string', + 'example' => 'd8:7d:b6:27:70:2d:07:fb:c6:b6:66:0a:86:7b:0f:9a', + ], + 'PublicKeyId' => [ + 'description' => 'The ID of the public key.'."\n", + 'type' => 'string', + 'example' => '1', + ], + 'PublicKeyName' => [ + 'description' => 'The name of the public key.'."\n", + 'type' => 'string', + 'example' => 'Keyname', + ], + 'UserId' => [ + 'description' => 'The ID of the user to which the public key belongs.'."\n", + 'type' => 'string', + 'example' => '1', + ], + 'Comment' => [ + 'description' => 'The description of the public key.'."\n", + 'type' => 'string', + 'example' => 'comment', + ], + ], + ], + ], + 'RequestId' => [ + 'description' => 'The ID of the request, which is used to locate and troubleshoot issues.'."\n", + 'type' => 'string', + 'example' => 'EC9BF0F4-8983-491A-BC8C-1B4DD94976DE', + ], + 'TotalCount' => [ + 'description' => 'The total number of public keys.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '5', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The argument is invalid.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'An unknown error occurred.', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"PublicKeys\\": [\\n {\\n \\"FingerPrint\\": \\"d8:7d:b6:27:70:2d:07:fb:c6:b6:66:0a:86:7b:0f:9a\\",\\n \\"PublicKeyId\\": \\"1\\",\\n \\"PublicKeyName\\": \\"Keyname\\",\\n \\"UserId\\": \\"1\\",\\n \\"Comment\\": \\"comment\\"\\n }\\n ],\\n \\"RequestId\\": \\"EC9BF0F4-8983-491A-BC8C-1B4DD94976DE\\",\\n \\"TotalCount\\": 5\\n}","type":"json"}]', + ], + 'ModifyUserPublicKey' => [ + 'summary' => 'Modifies the public key of the user.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREbastionhost4PMV5G', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the bastion host on which you want to modify the public key of a user.'."\n" + ."\n" + .'> You can call the [DescribeInstances](~~153281~~) operation to query the bastion host ID.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'bastionhost-cn-nif236pmc1u', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the bastion host that is used to modify the public key of the user.'."\n" + ."\n" + .'> For more information about the mapping between region IDs and region names, see [Regions and zones](~~40654~~).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'PublicKeyId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the public key that you want to modify.'."\n" + ."\n" + .'> You can call the [ListUserPublicKeys](~~477555~~) operation to query the public key ID.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '2', + ], + ], + [ + 'name' => 'PublicKeyName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the public key that you want to modify. This name can be up to 128 characters in length.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'name', + ], + ], + [ + 'name' => 'PublicKey', + 'in' => 'query', + 'schema' => [ + 'description' => 'The new public key.'."\n" + ."\n" + .'> Specify a Base64-encoded string.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'c3NoLWVkMjU1MTkgQUFBQUMzTnphQzFsWkRJMU5URTVBQUFBSUhVcjY4UENFYWFzZjFYRVpNYTVsMlNBQytHV3FpeXVsRVpndkV4dmlPM28gcm9vdEA5NjBkMmNhOTcwYjU=', + ], + ], + [ + 'name' => 'Comment', + 'in' => 'query', + 'schema' => [ + 'description' => 'The new description of the user group. The description can be up to 500 characters in length.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'comment', + ], + ], + ], + 'responses' => [ + 200 => [ + 'headers' => [], + 'schema' => [ + 'description' => 'The response data.'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request, which is used to locate and troubleshoot issues.'."\n", + 'type' => 'string', + 'example' => 'AAB631FB-ABD0-5783-99F3-F29573B129E4', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The argument is invalid.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'An unknown error occurred.', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"AAB631FB-ABD0-5783-99F3-F29573B129E4\\"\\n}","type":"json"}]', + 'title' => 'ModifyUserPublicKey', + ], + 'DeleteUserPublicKey' => [ + 'summary' => 'Deletes a public key from the specified user.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'delete', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREbastionhost4PMV5G', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Bastionhost instance to which the users to be queried belong.'."\n" + ."\n" + .'> You can call the [DescribeInstances](~~153281~~) operation to query the ID of the Bastionhost instance.', + 'type' => 'string', + 'required' => true, + 'example' => 'bastionhost-cn-st220aw****', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the bastion host. For more information about the mapping between region IDs and region names, see [Regions and zones](~~40654~~).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'PublicKeyId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The public key ID.'."\n" + ."\n" + .'> You can call the [ListUserPublicKeys](~~477555~~) operation to query the public key ID.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '11', + ], + ], + ], + 'responses' => [ + 200 => [ + 'headers' => [], + 'schema' => [ + 'description' => 'The data returned.'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request, which is used to locate and troubleshoot issues.'."\n", + 'type' => 'string', + 'example' => 'EC9BF0F4-8983-491A-BC8C-1B4DD94976DE', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The argument is invalid.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'An unknown error occurred.', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"EC9BF0F4-8983-491A-BC8C-1B4DD94976DE\\"\\n}","type":"json"}]', + 'title' => 'DeleteUserPublicKey', + 'description' => 'You can call the DeleteUserPublicKey operation to delete a public key from the specified user of a bastion host.'."\n", + ], + 'LockUsers' => [ + 'summary' => 'Locks one or more users of a bastion host.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREbastionhostE6GSFF', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the bastion host to which the users to be locked belong.'."\n" + ."\n" + .'> You can call the [DescribeInstances](~~153281~~) operation to query the ID of the bastion host.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'bastionhost-cn-st220aw****', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the bastion host to which the users to be locked belong.'."\n" + ."\n" + .'> For more information about the mapping between region IDs and region names, see [Regions and zones](~~40654~~).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'UserIds', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the user to be locked. The value is a JSON string. You can add up to 100 user IDs. If you specify multiple IDs, separate the IDs with commas (,).'."\n" + ."\n" + .'> You can call the [ListUsers](~~204522~~) operation to query the ID of the user.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => ' ["1","2","3"]', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request, which is used to locate and troubleshoot issues.'."\n", + 'type' => 'string', + 'example' => 'EC9BF0F4-8983-491A-BC8C-1B4DD94976DE', + ], + 'Results' => [ + 'description' => 'The result of the call.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Code' => [ + 'description' => 'The return code that indicates whether the call was successful. Valid values:'."\n" + ."\n" + .'* **OK**: The call was successful.'."\n" + ."\n" + .'* **UNEXPECTED**: An unknown error occurred.'."\n" + ."\n" + .'* **INVALID_ARGUMENT**: A request parameter is invalid.'."\n" + ."\n" + .'>Make sure that the request parameters are valid and call the operation again.'."\n" + ."\n" + .'* **OBJECT_NOT_FOUND**: The specified object on which you want to perform the operation does not exist.'."\n" + ."\n" + .'>Check whether the specified ID of the bastion host exists, whether the specified hosts exist, and whether the specified host IDs are valid. Then, call the operation again.'."\n" + ."\n" + .'* **OBJECT_AlREADY_EXISTS**: The specified object on which you want to perform the operation already exists.', + 'type' => 'string', + 'example' => 'OK', + ], + 'Message' => [ + 'description' => 'This parameter is deprecated.'."\n", + 'type' => 'string', + 'example' => 'N/A'."\n", + ], + 'UserId' => [ + 'description' => 'The ID of the user.'."\n", + 'type' => 'string', + 'example' => '1', + ], + ], + ], + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The argument is invalid.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'An unknown error occurred.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"EC9BF0F4-8983-491A-BC8C-1B4DD94976DE\\",\\n \\"Results\\": [\\n {\\n \\"Code\\": \\"OK\\",\\n \\"Message\\": \\"None\\",\\n \\"UserId\\": \\"1\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"<LockUsersResponse>\\n <RequestId>EC9BF0F4-8983-491A-BC8C-1B4DD94976DE</RequestId>\\n <Results>\\n <Message/>\\n <UserId>1</UserId>\\n <Code>OK</Code>\\n </Results>\\n</LockUsersResponse>","errorExample":""}]', + 'title' => 'LockUsers', + 'description' => '# Description'."\n" + ."\n" + .'You can call this operation to lock one or more users of a bastion host. If a user does not need to use a bastion host to perform O\\&M operations within a specific period of time, you can lock the user. The locked user can no longer log on to or perform O\\&M operations on the hosts on which the user is granted permissions. If you want to unlock the user later, you can call the [UnlockUsers](~~204590~~) operation.'."\n" + ."\n" + .'# Limits'."\n" + ."\n" + .'You can call this operation up to 10 times per second per account. If the number of the calls per second exceeds the limit, throttling is triggered. As a result, your business may be affected. We recommend that you take note of the limit when you call this operation.'."\n", + 'requestParamsDescription' => 'All Alibaba Cloud API requests must include common request parameters. For more information about common request parameters, see [Common parameters](~~148139~~). For more information about sample requests, see the "Examples" section of this topic.'."\n", + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'UnlockUsers' => [ + 'summary' => 'Unlocks one or more users of a bastion host.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREbastionhostE6GSFF', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the bastion host to which the users to be unlocked belong.'."\n" + ."\n" + .'> You can call the [DescribeInstances](~~153281~~) operation to query the ID of the bastion host.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'bastionhost-cn-st220aw****', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the bastion host to which the users to be unlocked belong.'."\n" + ."\n" + .'> For more information about the mapping between region IDs and region names, see [Regions and zones](~~40654~~).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'UserIds', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the user that you want to unlock. The value is a JSON string. You can add up to 100 user IDs. If you specify multiple IDs, separate the IDs with commas (,).'."\n" + ."\n" + .'> You can call the [ListUsers](~~204522~~) operation to query the ID of the user.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '["1","2"]', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request, which is used to locate and troubleshoot issues.'."\n", + 'type' => 'string', + 'example' => 'EC9BF0F4-8983-491A-BC8C-1B4DD94976DE', + ], + 'Results' => [ + 'description' => 'An array that consists of information about the result of the call.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Code' => [ + 'description' => 'The result of the call. Valid values:'."\n" + ."\n" + .'* **OK**: The call was successful.'."\n" + ."\n" + .'* **UNEXPECTED**: An unknown error occurred.'."\n" + ."\n" + .'* **INVALID_ARGUMENT**: A request parameter is invalid.'."\n" + ."\n" + .' **'."\n" + ."\n" + .' **Note**Make sure that the request parameters are valid and call the operation again.'."\n" + ."\n" + .'* **OBJECT_NOT_FOUND**: The specified object on which you want to perform the operation does not exist.'."\n" + ."\n" + .' **'."\n" + ."\n" + .' **Note**Check whether the specified ID of the bastion host exists, whether the specified hosts exist, and whether the specified host IDs are valid. Then, call the operation again.'."\n" + ."\n" + .'* **OBJECT_AlREADY_EXISTS**: The specified object on which you want to perform the operation already exists.'."\n", + 'type' => 'string', + 'example' => 'OK', + ], + 'Message' => [ + 'description' => 'This parameter is deprecated.'."\n", + 'type' => 'string', + 'example' => 'N/A'."\n", + ], + 'UserId' => [ + 'description' => 'The ID of the user.'."\n", + 'type' => 'string', + 'example' => '1', + ], + ], + ], + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The argument is invalid.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'An unknown error occurred.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"EC9BF0F4-8983-491A-BC8C-1B4DD94976DE\\",\\n \\"Results\\": [\\n {\\n \\"Code\\": \\"OK\\",\\n \\"Message\\": \\"None\\",\\n \\"UserId\\": \\"1\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"<UnlockUsersResponse>\\n <RequestId>EC9BF0F4-8983-491A-BC8C-1B4DD94976DE</RequestId>\\n <Results>\\n <Message></Message>\\n <UserId>1</UserId>\\n <Code>OK</Code>\\n </Results>\\n</UnlockUsersResponse>","errorExample":""}]', + 'title' => 'UnlockUsers', + 'description' => 'After you call the [LockUsers](~~204591~~) operation to lock one or more users of a bastion host, you can call this operation to unlock the users. After the users are unlocked, the users can perform O\\&M operations by using the bastion host.'."\n" + ."\n" + .'# Limits'."\n" + ."\n" + .'You can call this operation up to 10 times per second per account. If the number of the calls per second exceeds the limit, throttling is triggered. As a result, your business may be affected. We recommend that you take note of the limit when you call this operation.'."\n", + 'requestParamsDescription' => 'All Alibaba Cloud API requests must include common request parameters. For more information about common request parameters, see [Common parameters](~~148139~~). For more information about sample requests, see the "Examples" section of this topic.'."\n", + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'CreateUserGroup' => [ + 'summary' => 'Creates a user group for a bastion host.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'create', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREbastionhost8REEA2', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the bastion host for which you want to create a user group.'."\n" + ."\n" + .'> You can call the [DescribeInstances](~~153281~~) operation to query the ID of the bastion host.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'bastionhost-cn-st220aw****', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the bastion host for which you want to create a user group.'."\n" + ."\n" + .'> For more information about the mapping between region IDs and region names, see [Regions and zones](~~40654~~).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'UserGroupName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the user group that you want to create. This name can be a up to 128 characters in length.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'group', + ], + ], + [ + 'name' => 'Comment', + 'in' => 'query', + 'schema' => [ + 'description' => 'The description of the user group. The description can be up to 500 characters in length.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'comment', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'description' => 'The data returned.'."\n", + 'type' => 'object', + 'properties' => [ + 'UserGroupId' => [ + 'description' => 'The ID of the user group.'."\n", + 'type' => 'string', + 'example' => '1', + ], + 'RequestId' => [ + 'description' => 'The ID of the request, which is used to locate and troubleshoot issues.'."\n", + 'type' => 'string', + 'example' => 'EC9BF0F4-8983-491A-BC8C-1B4DD94976DE', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The argument is invalid.', + ], + [ + 'errorCode' => 'UserGroupAlreadyExists', + 'errorMessage' => 'The user group already exists.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'An unknown error occurred.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"UserGroupId\\": \\"1\\",\\n \\"RequestId\\": \\"EC9BF0F4-8983-491A-BC8C-1B4DD94976DE\\"\\n}","errorExample":""},{"type":"xml","example":"<CreateUserGroupResponse>\\n <RequestId>EC9BF0F4-8983-491A-BC8C-1B4DD94976DE</RequestId>\\n <UserGroupId>1</UserGroupId>\\n</CreateUserGroupResponse>","errorExample":""}]', + 'title' => 'CreateUserGroup', + 'description' => 'You can call this operation to create a user group for a bastion host as an administrator. Then, you can call the [AddUsersToGroup](~~204600~~) operation to add users to the user group at a time. After you add the users to the user group, you can authorize and manage the users in a centralized manner.'."\n" + ."\n" + .'You can call this operation up to 10 times per second per account. If the number of the calls per second exceeds the limit, throttling is triggered. As a result, your business may be affected. We recommend that you take note of the limit when you call this operation.'."\n", + 'requestParamsDescription' => 'All Alibaba Cloud API requests must include common request parameters. For more information about common request parameters, see [Common parameters](~~148139~~). For more information about sample requests, see the "Examples" section of this topic.'."\n", + 'extraInfo' => ' ', + ], + 'GetUserGroup' => [ + 'summary' => 'Queries the details of a user group in a bastion host.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREbastionhost8REEA2', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the bastion host in which you want to query the details of the user group.'."\n" + ."\n" + .'> You can call the [DescribeInstances](~~153281~~) operation to query the ID of the bastion host.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'bastionhost-cn-st220aw****', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the bastion host in which you want to query the details of the user group.'."\n" + ."\n" + .'> For more information about the mapping between region IDs and region names, see [Regions and zones](~~40654~~).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'UserGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the user group.'."\n" + ."\n" + .'> You can call the [ListUserGroups](~~204509~~) operation to query the ID of the user group.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '1', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'description' => 'The response parameters.'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'EC9BF0F4-8983-491A-BC8C-1B4DD94976DE', + ], + 'UserGroup' => [ + 'description' => 'The details of the user group returned.'."\n", + 'type' => 'object', + 'properties' => [ + 'UserGroupName' => [ + 'description' => 'The name of the user group.'."\n", + 'type' => 'string', + 'example' => 'UserGroup01', + ], + 'Comment' => [ + 'description' => 'The description of the user group.'."\n", + 'type' => 'string', + 'example' => 'comment', + ], + 'UserGroupId' => [ + 'description' => 'The ID of the group.'."\n", + 'type' => 'string', + 'example' => '1', + ], + ], + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The argument is invalid.', + ], + ], + 404 => [ + [ + 'errorCode' => 'UserGroupNotFound', + 'errorMessage' => 'The user group is not found.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'An unknown error occurred.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"EC9BF0F4-8983-491A-BC8C-1B4DD94976DE\\",\\n \\"UserGroup\\": {\\n \\"UserGroupName\\": \\"UserGroup01\\",\\n \\"Comment\\": \\"comment\\",\\n \\"UserGroupId\\": \\"1\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"<GetUserGroupResponse>\\n <RequestId>EC9BF0F4-8983-491A-BC8C-1B4DD94976DE</RequestId>\\n <UserGroup>\\n <Comment>comment</Comment>\\n <UserGroupName>UserGroup01</UserGroupName>\\n <UserGroupId>1</UserGroupId>\\n </UserGroup>\\n</GetUserGroupResponse>","errorExample":""}]', + 'title' => 'GetUserGroup', + 'requestParamsDescription' => 'All Alibaba Cloud API operations must include common request parameters. For more information about common request parameters, see [Common parameters](~~148139~~). For more information about sample requests, see the "Examples" section of this topic.'."\n", + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'ListUserGroups' => [ + 'summary' => 'Queries a list of user groups on a bastion host.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREbastionhost8REEA2', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the bastion host on which you want to query user groups.'."\n" + .' >You can call the [DescribeInstances ](~~462953~~)operation to query the ID of the bastion host.', + 'type' => 'string', + 'required' => true, + 'example' => 'bastionhost-cn-st220aw****', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the bastion host on which you want to query user groups.'."\n" + .'> For more information about the mapping between region IDs and region names, see [Regions and zones](~~462924~~).', + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of the page to return. Default value: 1.', + 'type' => 'string', + 'required' => false, + 'example' => '1', + ], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of entries to return on each page.'."\n" + .'Maximum value: 100. Default value: 20. If you leave this parameter empty, 20 entries are returned on each page.', + 'type' => 'string', + 'required' => false, + 'example' => '20', + ], + ], + [ + 'name' => 'UserGroupName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the user group that you want to query. Only exact match is supported.', + 'type' => 'string', + 'required' => false, + 'example' => 'TestGroup01', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'description' => 'The response data.', + 'type' => 'object', + 'properties' => [ + 'TotalCount' => [ + 'description' => 'The total number of user groups returned.', + 'type' => 'integer', + 'format' => 'int32', + 'example' => '1', + ], + 'RequestId' => [ + 'description' => 'The ID of the request.', + 'type' => 'string', + 'example' => 'EC9BF0F4-8983-491A-BC8C-1B4DD94976DE', + ], + 'UserGroups' => [ + 'description' => 'The user groups returned.', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'UserGroupName' => [ + 'description' => 'The name of the user group.', + 'type' => 'string', + 'example' => 'TestGroup01', + ], + 'MemberCount' => [ + 'description' => 'The number of users in the user group.', + 'type' => 'integer', + 'format' => 'int32', + 'example' => '5', + ], + 'Comment' => [ + 'description' => 'The description of the user group.', + 'type' => 'string', + 'example' => 'comment', + ], + 'UserGroupId' => [ + 'description' => 'The ID of the user group.', + 'type' => 'string', + 'example' => '1', + ], + ], + ], + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The argument is invalid.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'An unknown error occurred.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"TotalCount\\": 1,\\n \\"RequestId\\": \\"EC9BF0F4-8983-491A-BC8C-1B4DD94976DE\\",\\n \\"UserGroups\\": [\\n {\\n \\"UserGroupName\\": \\"TestGroup01\\",\\n \\"MemberCount\\": 6,\\n \\"Comment\\": \\"comment\\",\\n \\"UserGroupId\\": \\"1\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"<ListUserGroupsResponse>\\n <TotalCount>1</TotalCount>\\n <RequestId>EC9BF0F4-8983-491A-BC8C-1B4DD94976DE</RequestId>\\n <UserGroups>\\n <Comment>comment</Comment>\\n <UserGroupName>TestGroup01</UserGroupName>\\n <UserGroupId>1</UserGroupId>\\n <MemberCount>5</MemberCount>\\n </UserGroups>\\n</ListUserGroupsResponse>","errorExample":""}]', + 'title' => 'ListUserGroups', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'ModifyUserGroup' => [ + 'summary' => 'Modifies the information about a user group.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREbastionhost8REEA2', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the bastion host in which you want to modify the information about the user group.'."\n" + ."\n" + .'> You can call the [DescribeInstances](~~153281~~) operation to query the ID of the bastion host.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'bastionhost-cn-st220aw****', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the bastion host in which you want to modify the information about the user group.'."\n" + ."\n" + .'> For more information about the mapping between region IDs and region names, see [Regions and zones](~~40654~~).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'UserGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the user group that you want to modify.'."\n" + ."\n" + .'> You can call the [ListUserGroups](~~204509~~) operation to query the ID of the user group.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '1', + ], + ], + [ + 'name' => 'UserGroupName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The new name of the user group. This name can be up to 128 characters in length.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'TestUserGroup', + ], + ], + [ + 'name' => 'Comment', + 'in' => 'query', + 'schema' => [ + 'description' => 'The new description of the user group. The description can be up to 500 characters in length.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'comment', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'description' => 'The data returned.'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => 'EC9BF0F4-8983-491A-BC8C-1B4DD94976DE', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The argument is invalid.', + ], + ], + 404 => [ + [ + 'errorCode' => 'UserGroupNotFound', + 'errorMessage' => 'The user group is not found.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'An unknown error occurred.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"EC9BF0F4-8983-491A-BC8C-1B4DD94976DE\\"\\n}","errorExample":""},{"type":"xml","example":"<ModifyUserGroupResponse>\\n <RequestId>EC9BF0F4-8983-491A-BC8C-1B4DD94976DE</RequestId>\\n</ModifyUserGroupResponse>","errorExample":""}]', + 'title' => 'ModifyUserGroup', + 'requestParamsDescription' => 'All Alibaba Cloud API requests must include common request parameters. For more information about common request parameters, see [Common parameters](~~148139~~). For more information about sample requests, see the "Examples" section of this topic.'."\n", + 'extraInfo' => ' ', + ], + 'DeleteUserGroup' => [ + 'summary' => 'Deletes a user group from a bastion host.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'delete', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREbastionhost8REEA2', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the bastion host on which you want to delete the user group.'."\n" + ."\n" + .'> You can call the [DescribeInstances](~~153281~~) operation to query the ID of the bastion host.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'bastionhost-cn-st220aw****', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the bastion host on which you want to delete the user group.'."\n" + ."\n" + .'> For more information about the mapping between region IDs and region names, see [Regions and zones](~~40654~~).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'UserGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the user group that you want to delete.'."\n" + ."\n" + .'> You can call the [ListUserGroups](~~204509~~) operation to query the ID of the user group.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '1', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'description' => 'The data returned.'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => 'EC9BF0F4-8983-491A-BC8C-1B4DD94976DE', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The argument is invalid.', + ], + ], + 404 => [ + [ + 'errorCode' => 'UserGroupNotFound', + 'errorMessage' => 'The user group is not found.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'An unknown error occurred.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"EC9BF0F4-8983-491A-BC8C-1B4DD94976DE\\"\\n}","errorExample":""},{"type":"xml","example":"<DeleteUserGroupResponse>\\r\\n <RequestId>EC9BF0F4-8983-491A-BC8C-1B4DD94976DE</RequestId>\\r\\n</DeleteUserGroupResponse>","errorExample":""}]', + 'title' => 'DeleteUserGroup', + 'requestParamsDescription' => 'All Alibaba Cloud API requests must include common request parameters. For more information about common request parameters, see [Common parameters](~~148139~~). For more information about sample requests, see the "Examples" section of this topic.'."\n", + 'extraInfo' => ' ', + ], + 'AddUsersToGroup' => [ + 'summary' => 'Add one or more users to a user group.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'create', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREbastionhost8REEA2', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the bastion host for which you want to add users to the user group.'."\n" + ."\n" + .'> You can call the [DescribeInstances](~~153281~~) operation to query the ID of the bastion host.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'bastionhost-cn-st220aw****', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the bastion host for which you want to add users to the user group.'."\n" + ."\n" + .'> For more information about the mapping between region IDs and region names, see [Regions and zones](~~40654~~).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'UserGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the user group to which you want to add users.'."\n" + ."\n" + .'> You can call the [ListUserGroups](~~204509~~) operation to query the ID of the user group.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '1', + ], + ], + [ + 'name' => 'UserIds', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the user that you want to add to the user group. The value is a JSON string. You can add up to 100 user IDs. If you specify multiple IDs, separate the IDs with commas (,).'."\n" + ."\n" + .'> You can call the [ListUsers](~~204522~~) operation to query the ID of the user.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => ' ["1","2","3"]', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'description' => 'The response data.'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request, which is used to locate and troubleshoot issues.'."\n", + 'type' => 'string', + 'example' => 'EC9BF0F4-8983-491A-BC8C-1B4DD94976DE', + ], + 'Results' => [ + 'description' => 'The result of the call.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Code' => [ + 'description' => 'The return code that indicates whether the call was successful. Valid values:'."\n" + ."\n" + .'* **OK**: The call was successful.'."\n" + ."\n" + .'* **UNEXPECTED**: An unknown error occurred.'."\n" + ."\n" + .'* **INVALID_ARGUMENT**: A request parameter is invalid.'."\n" + ."\n" + .'> Make sure that the request parameters are valid and call the operation again.'."\n" + ."\n" + .'* **OBJECT_NOT_FOUND**: The specified object on which you want to perform the operation does not exist.'."\n" + ."\n" + .'> Check whether the specified ID of the bastion host exists, whether the specified hosts exist, and whether the specified host IDs are valid. Then, call the operation again.'."\n" + ."\n" + .'* **OBJECT_AlREADY_EXISTS**: The specified object on which you want to perform the operation already exists.', + 'type' => 'string', + 'example' => 'OK', + ], + 'Message' => [ + 'description' => 'This parameter is deprecated.'."\n", + 'type' => 'string', + 'example' => '', + ], + 'UserGroupId' => [ + 'description' => 'The ID of the group.'."\n", + 'type' => 'string', + 'example' => '1', + ], + 'UserId' => [ + 'description' => 'The ID of the user.'."\n", + 'type' => 'string', + 'example' => '1', + ], + ], + ], + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The argument is invalid.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'An unknown error occurred.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"EC9BF0F4-8983-491A-BC8C-1B4DD94976DE\\",\\n \\"Results\\": [\\n {\\n \\"Code\\": \\"OK\\",\\n \\"Message\\": \\"None\\",\\n \\"UserGroupId\\": \\"1\\",\\n \\"UserId\\": \\"1\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"<AddUsersToGroupResponse>\\n <RequestId>EC9BF0F4-8983-491A-BC8C-1B4DD94976DE</RequestId>\\n <Results>\\n <Message/>\\n <Code>OK</Code>\\n <UserId>1</UserId>\\n <UserGroupId>1</UserGroupId>\\n </Results>\\n</AddUsersToGroupResponse>","errorExample":""}]', + 'title' => 'AddUsersToGroup', + 'description' => '#'."\n" + ."\n" + .'You can call this operation to add one or more users to a user group. After you call the [CreateUserGroup](~~204596~~) operation to create a user group, you can call the AddUsersToGroup operation to add multiple users to the user group. Then, you can manage and grant permissions to the users at a time.'."\n" + ."\n" + .'# Limit'."\n" + ."\n" + .'You can call this operation up to 10 times per second per account. If the number of the calls per second exceeds the limit, throttling is triggered. As a result, your business may be affected. We recommend that you take note of the limit when you call this operation.'."\n", + 'requestParamsDescription' => 'All Alibaba Cloud API operations must include common request parameters. For more information about common request parameters, see [Common parameters](~~148139~~). For more information about sample requests, see the "Examples" section of this topic.'."\n", + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'RemoveUsersFromGroup' => [ + 'summary' => 'Removes one or more users from a user group.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'delete', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREbastionhost8REEA2', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the bastion host for which you want to remove users from the user group.'."\n" + ."\n" + .'> You can call the [DescribeInstances](~~153281~~) operation to query the ID of the bastion host.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'bastionhost-cn-st220aw****', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the bastion host for which you want to remove users from the user group.'."\n" + ."\n" + .'> For more information about the mapping between region IDs and region names, see [Regions and zones](~~40654~~).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'UserGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the user group from which you want to remove users.'."\n" + ."\n" + .'> You can call the [ListUserGroups](~~204509~~) operation to query the ID of the user group.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '1', + ], + ], + [ + 'name' => 'UserIds', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the user who you want to remove. The value is a JSON string. You can add up to 100 user IDs. If you specify multiple IDs, separate the IDs with commas (,).'."\n" + ."\n" + .'> You can call the [ListUsers](~~204522~~) operation to query the IDs of users.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '["1","2","3"]', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request, which is used to locate and troubleshoot issues.'."\n", + 'type' => 'string', + 'example' => 'EC9BF0F4-8983-491A-BC8C-1B4DD94976DE', + ], + 'Results' => [ + 'description' => 'The result of the call.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Code' => [ + 'description' => 'The return code that indicates whether the call was successful. Valid values:'."\n" + ."\n" + .'* **OK**: The call was successful.'."\n" + ."\n" + .'* **UNEXPECTED**: An unknown error occurred.'."\n" + ."\n" + .'* **INVALID_ARGUMENT**: A request parameter is invalid.'."\n" + ."\n" + .'> Make sure that the request parameters are valid and call the operation again.'."\n" + ."\n" + .'* **OBJECT_NOT_FOUND**: The specified object on which you want to perform the operation does not exist.'."\n" + ."\n" + .'> Check whether the specified ID of the bastion host exists, whether the specified hosts exist, and whether the specified host IDs are valid. Then, call the operation again.'."\n" + ."\n" + .'* **OBJECT_AlREADY_EXISTS**: The specified object on which you want to perform the operation already exists.', + 'type' => 'string', + 'example' => 'OK', + ], + 'Message' => [ + 'description' => 'This parameter is deprecated.'."\n", + 'type' => 'string', + 'example' => 'success', + ], + 'UserGroupId' => [ + 'description' => 'The ID of the group.'."\n", + 'type' => 'string', + 'example' => '1', + ], + 'UserId' => [ + 'description' => 'The ID of the user.'."\n", + 'type' => 'string', + 'example' => '1', + ], + ], + ], + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The argument is invalid.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'An unknown error occurred.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"EC9BF0F4-8983-491A-BC8C-1B4DD94976DE\\",\\n \\"Results\\": [\\n {\\n \\"Code\\": \\"OK\\",\\n \\"Message\\": \\"None\\",\\n \\"UserGroupId\\": \\"1\\",\\n \\"UserId\\": \\"1\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"<RemoveUsersFromGroupResponse>\\n <RequestId>EC9BF0F4-8983-491A-BC8C-1B4DD94976DE</RequestId>\\n <Results>\\n <Message/>\\n <Code>OK</Code>\\n <UserId>1</UserId>\\n <UserGroupId>1</UserGroupId>\\n </Results>\\n</RemoveUsersFromGroupResponse>","errorExample":""}]', + 'title' => 'RemoveUsersFromGroup', + 'description' => 'You can call this operation to remove one or more users from a user group. When users in a user group are transferred to a new position, resign, or are switched to another user group, you can call this operation to remove the users from the current user group at a time. '."\n" + ."\n\n" + .'## QPS limit'."\n" + ."\n" + .'You can call this operation up to 10 times per second per account. If the number of the calls per second exceeds the limit, throttling is triggered. As a result, your business may be affected. We recommend that you take note of the limit when you call this operation.', + 'requestParamsDescription' => 'All Alibaba Cloud API operations must include common request parameters. For more information about common request parameters, see [Common parameters](~~315526~~).'."\n" + ."\n" + .'For more information about sample requests, see the "Examples" section of this topic.', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'CreateHostGroup' => [ + 'summary' => 'You can create asset groups based on your business requirements and add assets of the same type to an asset group. This allows you to classify assets and manage multiple assets at a time.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'create', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREbastionhostN06FHS', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the bastion host on which you want to create an asset group.'."\n" + ."\n" + .'> You can call the [DescribeInstances](~~153281~~) operation to query the bastion host ID.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'bastionhost-cn-st220aw****', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the bastion host on which you want to create an asset group.'."\n" + ."\n" + .'> For more information about the mapping between region IDs and region names, see [Regions and zones](~~40654~~).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'HostGroupName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the asset group. The name can be up to 128 characters in length.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'HostGroup01', + ], + ], + [ + 'name' => 'Comment', + 'in' => 'query', + 'schema' => [ + 'description' => 'The remarks of the asset group. The remarks can be up to 500 characters in length.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'Local host group.', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'HostGroupId' => [ + 'description' => 'The asset group ID.'."\n", + 'type' => 'string', + 'example' => '1', + ], + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => 'EC9BF0F4-8983-491A-BC8C-1B4DD94976DE', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The argument is invalid.', + ], + [ + 'errorCode' => 'HostGroupAlreadyExists', + 'errorMessage' => 'The host group already exists.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'An unknown error occurred.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"HostGroupId\\": \\"1\\",\\n \\"RequestId\\": \\"EC9BF0F4-8983-491A-BC8C-1B4DD94976DE\\"\\n}","errorExample":""},{"type":"xml","example":"<CreateHostGroupResponse>\\n <HostGroupId>1</HostGroupId>\\n <RequestId>EC9BF0F4-8983-491A-BC8C-1B4DD94976DE</RequestId>\\n</CreateHostGroupResponse>","errorExample":""}]', + 'title' => 'CreateHostGroup', + 'requestParamsDescription' => 'All Alibaba Cloud API requests must include common request parameters. For more information about common request parameters, see [Common parameters](~~148139~~). For more information about sample requests, see the "Examples" section of this topic.'."\n", + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'AddDatabasesToGroup' => [ + 'summary' => 'Adds multiple databases to a specified asset group.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREbastionhostN06FHS', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The bastion host ID.'."\n" + ."\n" + .'> You can call the [DescribeInstances](~~153281~~) operation to query the bastion host ID.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'bastionhost-cn-st220aw****', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the bastion host.'."\n" + ."\n" + .'> For more information about the mapping between region IDs and region names, see [Regions and zones](~~40654~~).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'HostGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the asset group to which you want to add the databases.'."\n" + ."\n" + .'> You can call the [ListHostGroups](~~201307~~) operation to query the ID of the asset group.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '1', + ], + ], + [ + 'name' => 'DatabaseIds', + 'in' => 'query', + 'style' => 'flat', + 'schema' => [ + 'description' => 'An array that consists of the database IDs.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The IDs of the databases that you want to add to the asset group. You can specify up to 100 IDs. You can call the [ListDatabases](~~2758822~~) operation to query the database IDs.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '["1","2","3"]', + ], + 'required' => true, + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'EC9BF0F4-8983-491A-BC8C-1B4DD94976DE', + ], + 'Results' => [ + 'description' => 'The data returned.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Code' => [ + 'description' => 'The error code returned. If **OK** is returned, the operation was successful. If another error code is returned, the operation failed.'."\n", + 'type' => 'string', + 'example' => 'OK', + ], + 'DatabaseId' => [ + 'description' => 'The database ID.'."\n", + 'type' => 'string', + 'example' => '9', + ], + 'HostGroupId' => [ + 'description' => 'The asset group ID.'."\n", + 'type' => 'string', + 'example' => '1', + ], + 'Message' => [ + 'description' => 'The error message returned.'."\n", + 'type' => 'string', + 'example' => '', + ], + ], + ], + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The argument is invalid.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'An unknown error occurred.', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"EC9BF0F4-8983-491A-BC8C-1B4DD94976DE\\",\\n \\"Results\\": [\\n {\\n \\"Code\\": \\"OK\\",\\n \\"DatabaseId\\": \\"9\\",\\n \\"HostGroupId\\": \\"1\\",\\n \\"Message\\": \\"None\\"\\n }\\n ]\\n}","type":"json"}]', + 'title' => 'AddDatabasesToGroup', + ], + 'AddHostsToGroup' => [ + 'summary' => 'Adds one or more hosts to the specified host group.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREbastionhostN06FHS', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the bastion host whose asset group you want to add hosts to.'."\n" + ."\n" + .'> You can call the [DescribeInstances](~~153281~~) operation to query the bastion host ID.', + 'type' => 'string', + 'required' => true, + 'example' => 'bastionhost-cn-st220aw****', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the bastion host whose asset group you want to add hosts to.'."\n" + ."\n" + .'> For more information about the mapping between region IDs and region names, see [Regions and zones](~~40654~~).', + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'HostGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the asset group to which you want to add hosts.'."\n" + ."\n" + .'>You can call the [ListHostGroups](~~201307~~) operation to query the asset group ID.', + 'type' => 'string', + 'required' => true, + 'example' => '1', + ], + ], + [ + 'name' => 'HostIds', + 'in' => 'query', + 'schema' => [ + 'description' => 'The IDs of the hosts that you want to add to the asset group. Specify a JSON string. You can specify up to 100 host IDs.'."\n" + ."\n" + .'> You can call the [ListHosts](~~200665~~) operation to query the host IDs.', + 'type' => 'string', + 'required' => true, + 'example' => '["1","2","3"]', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => '81500666-d7f5-4143-8329-0223cc738105', + ], + 'Results' => [ + 'description' => 'The result of the call.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The result of the call.'."\n", + 'type' => 'object', + 'properties' => [ + 'Code' => [ + 'description' => 'The return code that indicates whether the call was successful. Valid values:'."\n" + ."\n" + .'* **OK**: The call was successful.'."\n" + ."\n" + .'* **UNEXPECTED**: An unknown error occurred.'."\n" + ."\n" + .'* **INVALID_ARGUMENT**: A request parameter is invalid.'."\n" + .' >Make sure that the request parameters are valid and call the operation again.'."\n" + ."\n" + .'* **OBJECT_NOT_FOUND**: The specified object on which you want to perform the operation does not exist.'."\n" + .' > Make sure that the specified bastion host ID and host IDs are valid. Then, call the operation again.'."\n" + ."\n" + .'* **OBJECT_AlREADY_EXISTS**: The specified object on which you want to perform the operation already exists.', + 'type' => 'string', + 'example' => 'OK', + ], + 'Message' => [ + 'description' => 'This parameter is deprecated.'."\n", + 'type' => 'string', + 'example' => 'N/A'."\n", + ], + 'HostGroupId' => [ + 'description' => 'The asset group ID.'."\n", + 'type' => 'string', + 'example' => '1', + ], + 'HostId' => [ + 'description' => 'The host ID.'."\n", + 'type' => 'string', + 'example' => '1', + ], + ], + ], + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The argument is invalid.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'An unknown error occurred.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"81500666-d7f5-4143-8329-0223cc738105\\",\\n \\"Results\\": [\\n {\\n \\"Code\\": \\"OK\\",\\n \\"Message\\": \\"None\\",\\n \\"HostGroupId\\": \\"1\\",\\n \\"HostId\\": \\"1\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"<AddHostsToGroupResponse>\\n <RequestId>81500666-d7f5-4143-8329-0223cc738105</RequestId>\\n <Results>\\n <HostGroupId>1</HostGroupId>\\n <HostId>1</HostId>\\n <Code>OK</Code>\\n </Results>\\n</AddHostsToGroupResponse>","errorExample":""}]', + 'title' => 'AddHostsToGroup', + 'description' => 'You can call this operation to add one or more hosts to a host group. You can add multiple hosts to a host group to manage and grant permissions on the hosts in a centralized manner.'."\n" + ."\n" + .'# Limits'."\n" + ."\n" + .'You can call this operation up to 10 times per second per account. If the number of the calls per second exceeds a limit, throttling is triggered. As a result, your business may be affected. We recommend that you take note of the limits when you call this operation.'."\n", + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'RemoveDatabasesFromGroup' => [ + 'summary' => 'Removes multiple databases from an asset group at a time.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREbastionhostN06FHS', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the bastion host whose asset group you want to manage.'."\n" + ."\n" + .'> You can call the [DescribeInstances](~~153281~~) operation to query the bastion host ID.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'bastionhost-cn-78v1ghxxxxx', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the bastion host whose asset group you want to manage.'."\n" + ."\n" + .'> For more information about the mapping between region IDs and region names, see [Regions and zones](~~40654~~).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'HostGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the asset group from which you want to remove databases.'."\n" + ."\n" + .'> You can call the [ListHostGroups](~~201307~~) operation to query the asset group ID.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '1', + ], + ], + [ + 'name' => 'DatabaseIds', + 'in' => 'query', + 'style' => 'flat', + 'schema' => [ + 'description' => 'The IDs of the databases that you want to remove.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The ID of the database that you want to remove. Specify a JSON string. You can specify up to 100 database IDs.'."\n" + ."\n" + .'> You can call the [ListHostGroups](~~475822~~) operation to query the assets in an asset group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '["1","2","3"]'."\n", + ], + 'required' => true, + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'EC9BF0F4-8983-491A-BC8C-1B4DD94976DE', + ], + 'Results' => [ + 'description' => 'The result of the call.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Code' => [ + 'description' => 'The error code that is returned. If OK is returned, the operation was successful. If another error code is returned, the operation failed.'."\n", + 'type' => 'string', + 'example' => 'OK', + ], + 'DatabaseId' => [ + 'description' => 'The database ID.'."\n", + 'type' => 'string', + 'example' => '20', + ], + 'HostGroupId' => [ + 'description' => 'The asset group ID.'."\n", + 'type' => 'string', + 'example' => '1', + ], + 'Message' => [ + 'description' => 'The error message that is returned.'."\n", + 'type' => 'string', + 'example' => '', + ], + ], + ], + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The argument is invalid.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'An unknown error occurred.', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"EC9BF0F4-8983-491A-BC8C-1B4DD94976DE\\",\\n \\"Results\\": [\\n {\\n \\"Code\\": \\"OK\\",\\n \\"DatabaseId\\": \\"20\\",\\n \\"HostGroupId\\": \\"1\\",\\n \\"Message\\": \\"None\\"\\n }\\n ]\\n}","type":"json"}]', + 'title' => 'RemoveDatabasesFromGroup', + ], + 'DeleteHostGroup' => [ + 'summary' => 'Deletes a host group.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'delete', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREbastionhostN06FHS', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the bastion host whose asset group you want to delete.'."\n" + ."\n" + .'> You can call the [DescribeInstances](~~153281~~) operation to query the bastion host ID.', + 'type' => 'string', + 'required' => true, + 'example' => 'bastionhost-cn-st220aw****', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the bastion host whose asset group you want to delete.'."\n" + ."\n" + .'> For more information about the mapping between region IDs and region names, see [Regions and zones](~~40654~~).', + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'HostGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the asset group that you want to delete.'."\n" + ."\n" + .'> You can call the [ListHostGroups](~~201307~~) operation to query the asset group ID.', + 'type' => 'string', + 'required' => true, + 'example' => '1', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request, which is used to locate and troubleshoot issues.'."\n", + 'type' => 'string', + 'example' => 'EC9BF0F4-8983-491A-BC8C-1B4DD94976DE', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The argument is invalid.', + ], + ], + 404 => [ + [ + 'errorCode' => 'HostGroupNotFound', + 'errorMessage' => 'The host group is not found.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'An unknown error occurred.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"EC9BF0F4-8983-491A-BC8C-1B4DD94976DE\\"\\n}","errorExample":""},{"type":"xml","example":"<DeleteHostGroupResponse>\\n <RequestId>EC9BF0F4-8983-491A-BC8C-1B4DD94976DE</RequestId>\\n</DeleteHostGroupResponse>","errorExample":""}]', + 'title' => 'DeleteHostGroup', + 'description' => 'You can call this operation to delete a single host group. If you no longer need to perform O\\&M operations on all hosts in a host group, you can call this operation to delete the host group.'."\n" + ."\n" + .'### Limits'."\n" + ."\n" + .'You can call this operation up to 10 times per second per account. If the number of the calls per second exceeds the limit, throttling is triggered. As a result, your business may be affected. We recommend that you take note of the limit when you call this operation.'."\n", + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'RemoveHostsFromGroup' => [ + 'summary' => 'Removes multiple hosts from an asset group at a time.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'delete', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREbastionhostN06FHS', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the bastion host whose asset group you want to manage.'."\n" + ."\n" + .'> You can call the [DescribeInstances](~~153281~~) operation to query the bastion host ID.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'bastionhost-cn-st220aw****', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the bastion host whose asset group you want to manage.'."\n" + ."\n" + .'> For more information about the mapping between region IDs and region names, see [Regions and zones](~~40654~~).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'HostGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the asset group from which you want to remove hosts.'."\n" + ."\n" + .'> You can call the [ListHostGroups](~~201307~~) operation to query the asset group ID.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '1', + ], + ], + [ + 'name' => 'HostIds', + 'in' => 'query', + 'schema' => [ + 'description' => 'The IDs of the hosts that you want to remove from the host group. Specify a JSON string. You can specify up to 100 host IDs.'."\n" + ."\n" + .'> You can call the [ListHosts](~~200665~~) operation to query the host IDs.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '["1","2","3"]', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'EC9BF0F4-8983-491A-BC8C-1B4DD94976DE', + ], + 'Results' => [ + 'description' => 'The result of the call.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Code' => [ + 'description' => 'The return code that indicates whether the call was successful. Valid values:'."\n" + ."\n" + .'* **OK**: The call was successful.'."\n" + ."\n" + .'* **UNEXPECTED**: An unknown error occurred.'."\n" + ."\n" + .'* **INVALID_ARGUMENT**: A request parameter is invalid.'."\n" + .' > Make sure that the request parameters are valid and call the operation again.'."\n" + ."\n" + .'* **OBJECT_NOT_FOUND**: The specified object on which you want to perform the operation does not exist.'."\n" + .' > Make sure that the specified bastion host ID and host IDs are valid and call the operation again.'."\n" + ."\n" + .'* **OBJECT_AlREADY_EXISTS**: The specified object on which you want to perform the operation already exists.', + 'type' => 'string', + 'example' => 'OK', + ], + 'Message' => [ + 'description' => 'This parameter is deprecated.'."\n", + 'type' => 'string', + 'example' => '无', + ], + 'HostGroupId' => [ + 'description' => 'The ID of the asset group.'."\n", + 'type' => 'string', + 'example' => '1', + ], + 'HostId' => [ + 'description' => 'The ID of the host.'."\n", + 'type' => 'string', + 'example' => '1', + ], + ], + ], + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The argument is invalid.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'An unknown error occurred.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"EC9BF0F4-8983-491A-BC8C-1B4DD94976DE\\",\\n \\"Results\\": [\\n {\\n \\"Code\\": \\"OK\\",\\n \\"Message\\": \\"None\\",\\n \\"HostGroupId\\": \\"1\\",\\n \\"HostId\\": \\"1\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"<RemoveHostsFromGroupResponse>\\n <RequestId>EC9BF0F4-8983-491A-BC8C-1B4DD94976DE</RequestId>\\n <Results>\\n <HostGroupId>1</HostGroupId>\\n <Message/>\\n <HostId>1</HostId>\\n <Code>OK</Code>\\n </Results>\\n</RemoveHostsFromGroupResponse>","errorExample":""}]', + 'title' => 'RemoveHostsFromGroup', + 'description' => 'You can call the RemoveHostsFromGroup operation to remove multiple hosts from an asset group at a time. If you no longer need to manage some hosts in an asset group, you can call this operation to remove the hosts from the asset group.'."\n" + ."\n" + .'# [](#qps-)QPS limit'."\n" + ."\n" + .'You can call this API operation up to 10 times per second per account. Requests that exceed this limit are dropped and you will experience service interruptions. We recommend that you take note of this limit when you call this operation.'."\n", + 'requestParamsDescription' => 'All Alibaba Cloud API operations must include common request parameters. For more information about common request parameters, see [Common parameters](~~315526~~).'."\n" + ."\n" + .'For more information about sample requests, see the "Examples" section of this topic.', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'ModifyHostGroup' => [ + 'summary' => 'Modifies the name or description of the specified host group.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREbastionhostN06FHS', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the bastion host whose asset group you want to modify.'."\n" + ."\n" + .'> You can call the [DescribeInstances](~~153281~~) operation to query the bastion host ID.', + 'type' => 'string', + 'required' => true, + 'example' => 'bastionhost-cn-st220aw****', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the bastion host whose asset group you want to modify.'."\n" + ."\n" + .'> For more information about the mapping between region IDs and region names, see [Regions and zones](~~40654~~).', + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'HostGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the asset group that you want to modify.'."\n" + ."\n" + .'> You can call the [ListHostGroups](~~201307~~) operation to query the ID of the host group.', + 'type' => 'string', + 'required' => true, + 'example' => '1', + ], + ], + [ + 'name' => 'HostGroupName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The new name of the asset group. The name can be up to 128 characters in length.', + 'type' => 'string', + 'required' => false, + 'example' => 'Group01', + ], + ], + [ + 'name' => 'Comment', + 'in' => 'query', + 'schema' => [ + 'description' => 'The new remarks of the asset group. The remarks can be up to 500 characters in length.', + 'type' => 'string', + 'required' => false, + 'example' => 'comment', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => 'EC9BF0F4-8983-491A-BC8C-1B4DD94976DE', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The argument is invalid.', + ], + ], + 404 => [ + [ + 'errorCode' => 'HostGroupNotFound', + 'errorMessage' => 'The host group is not found.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'An unknown error occurred.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"EC9BF0F4-8983-491A-BC8C-1B4DD94976DE\\"\\n}","errorExample":""},{"type":"xml","example":"<ModifyHostGroupResponse>\\n <RequestId>EC9BF0F4-8983-491A-BC8C-1B4DD94976DE</RequestId>\\n</ModifyHostGroupResponse>","errorExample":""}]', + 'title' => 'ModifyHostGroup', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'GetHostGroup' => [ + 'summary' => 'Queries the details of a specified host group.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREbastionhostQ6EM52', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the bastion host whose asset group you want to query.'."\n" + ."\n" + .'> You can call the [DescribeInstances](~~153281~~) operation to query the bastion host ID.', + 'type' => 'string', + 'required' => true, + 'example' => 'bastionhost-cn-st220aw****', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the bastion host whose asset group you want to query.'."\n" + ."\n" + .'> For more information about the mapping between region IDs and region names, [see Regions and zones](~~40654~~).', + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'HostGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the asset group to query.'."\n" + ."\n" + .'> You can call the [ListHostGroups](~~204509~~) operation to query the asset group ID.', + 'type' => 'string', + 'required' => true, + 'example' => '1', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => 'EC9BF0F4-8983-491A-BC8C-1B4DD94976DE', + ], + 'HostGroup' => [ + 'description' => 'The returned detailed information about the asset group.', + 'type' => 'object', + 'properties' => [ + 'HostGroupId' => [ + 'description' => 'The asset group ID.', + 'type' => 'string', + 'example' => '1', + ], + 'Comment' => [ + 'description' => 'The remarks of the asset group.', + 'type' => 'string', + 'example' => 'Description'."\n", + ], + 'HostGroupName' => [ + 'description' => 'The name of the asset group.', + 'type' => 'string', + 'example' => 'Host group 1'."\n", + ], + ], + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The argument is invalid.', + ], + ], + 404 => [ + [ + 'errorCode' => 'HostGroupNotFound', + 'errorMessage' => 'The host group is not found.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'An unknown error occurred.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"EC9BF0F4-8983-491A-BC8C-1B4DD94976DE\\",\\n \\"HostGroup\\": {\\n \\"HostGroupId\\": \\"1\\",\\n \\"Comment\\": \\"Comment\\",\\n \\"HostGroupName\\": \\"Group1\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"<GetHostGroupResponse>\\n <RequestId>EC9BF0F4-8983-491A-BC8C-1B4DD94976DE</RequestId>\\n <HostGroup>\\n <Comment>备注</Comment>\\n <HostGroupId>1</HostGroupId>\\n <HostGroupName>主机组1</HostGroupName>\\n </HostGroup>\\n</GetHostGroupResponse>","errorExample":""}]', + 'title' => 'GetHostGroup', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'ListHostGroups' => [ + 'summary' => 'Queries a list of asset groups that are managed by a bastion host.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREbastionhostN06FHS', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the bastion host to query.'."\n" + ."\n" + .'> You can call the [DescribeInstances](~~462953~~) operation to query the bastion host ID.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'bastionhost-cn-st220aw****', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the bastion host in which you want to query the host group.'."\n" + ."\n" + .'> For more information about the mapping between region IDs and region names, see [Regions and zones](~~40654~~).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => [ + 'description' => 'The page number. Default value: **1**.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '1', + ], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of entries per page. Valid values: 1 to 100. Default value: 20. If you leave this parameter empty, 20 entries are returned on each page.'."\n" + ."\n" + .'> We recommend that you do not leave this parameter empty.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '20', + ], + ], + [ + 'name' => 'HostGroupName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the host group that you want to query. Only exact match is supported.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'Host group 1'."\n", + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'TotalCount' => [ + 'description' => 'The total number of asset groups returned.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '1', + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'EC9BF0F4-8983-491A-BC8C-1B4DD94976DE', + ], + 'HostGroups' => [ + 'description' => 'The asset groups returned.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'MemberCount' => [ + 'description' => 'The number of hosts in the asset group.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '1', + ], + 'HostGroupId' => [ + 'description' => 'The asset group ID.'."\n", + 'type' => 'string', + 'example' => '1', + ], + 'Comment' => [ + 'description' => 'The remarks of the asset group.'."\n", + 'type' => 'string', + 'example' => 'Description'."\n", + ], + 'HostGroupName' => [ + 'description' => 'The name of the asset group.'."\n", + 'type' => 'string', + 'example' => 'Host group 1'."\n", + ], + ], + ], + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The argument is invalid.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'An unknown error occurred.', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"TotalCount\\": 1,\\n \\"RequestId\\": \\"EC9BF0F4-8983-491A-BC8C-1B4DD94976DE\\",\\n \\"HostGroups\\": [\\n {\\n \\"MemberCount\\": 1,\\n \\"HostGroupId\\": \\"1\\",\\n \\"Comment\\": \\"Comment\\",\\n \\"HostGroupName\\": \\"HostGroup1\\"\\n }\\n ]\\n}","type":"json"}]', + 'title' => 'ListHostGroups', + ], + 'AttachHostAccountsToUser' => [ + 'summary' => 'After you add a user to your bastion host, you must authorize the user to manage assets. Only authorized users can log on to the bastion host to perform O\\\\\\&M operations on the assets.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREbastionhost19BKK2', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the bastion host for which you want to authorize the user to manage the hosts and host accounts.'."\n" + ."\n" + .'> You can call the [DescribeInstances](~~153281~~) operation to query the ID of the bastion host.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'bastionhost-cn-st220aw****', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the bastion host for which you want to authorize the user to manage the hosts and host accounts.'."\n" + ."\n" + .'> For more information about the mapping between region IDs and region names, see [Regions and zones](~~40654~~).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'UserId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the user that you want to authorize to manage the hosts and host accounts.'."\n" + ."\n" + .'> You can call the [ListUsers](~~204522~~) operation to query the ID of the user.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '1', + ], + ], + [ + 'name' => 'Hosts', + 'in' => 'query', + 'schema' => [ + 'description' => 'The IDs of the hosts and host accounts that you want to authorize the user to manage. You can specify up to 10 host IDs and up to 10 host account IDs for each host. You can specify only host IDs. In this case, the user is authorized to manage only the specified hosts. For more information about this parameter, see the "Description of the Hosts parameter" section of this topic.'."\n" + ."\n" + .'> You can call the [ListHosts](~~200665~~) operation to query the ID of the host and the [ListHostAccounts](~~204372~~) operation to query the ID of the host account.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '[ {"HostId":"1"}, {"HostId":"2","HostAccountIds":["1","2","3"]}, {"HostId":"3","HostAccountIds":["4","5","6"]}, {"HostId":"4","HostAccountIds":["9","8","7"]} ]', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'EC9BF0F4-8983-491A-BC8C-1B4DD94976DE', + ], + 'Results' => [ + 'description' => 'The result of the call.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Code' => [ + 'description' => 'The return code that indicates whether the call was successful. Valid values:'."\n" + ."\n" + .'* **OK**: The call was successful.'."\n" + ."\n" + .'* **UNEXPECTED**: An unknown error occurred.'."\n" + ."\n" + .'* **INVALID_ARGUMENT**: A request parameter is invalid.'."\n" + ."\n" + .'> Make sure that the request parameters are valid and call the operation again.'."\n" + ."\n" + .'* **OBJECT_NOT_FOUND**: The specified object on which you want to perform the operation does not exist.'."\n" + ."\n" + .'> Check whether the specified ID of the bastion host exists, whether the specified hosts exist, and whether the specified host IDs are valid. Then, call the operation again.'."\n" + ."\n" + .'* **OBJECT_AlREADY_EXISTS**: The specified object on which you want to perform the operation already exists.', + 'type' => 'string', + 'example' => 'OK', + ], + 'Message' => [ + 'description' => 'This parameter is deprecated.'."\n", + 'type' => 'string', + 'example' => '', + ], + 'HostId' => [ + 'description' => 'The ID of the host.'."\n", + 'type' => 'string', + 'example' => '1', + ], + 'UserId' => [ + 'description' => 'The ID of the user.'."\n", + 'type' => 'string', + 'example' => '1', + ], + 'HostAccounts' => [ + 'description' => 'The result of authorizing the user to manage the host accounts.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Code' => [ + 'description' => 'The return code that indicates whether the user was authorized to manage the host accounts. Valid values:'."\n" + ."\n" + .'* **OK**: The call was successful.'."\n" + .'* **UNEXPECTED**: An unknown error occurred.'."\n" + .'* **INVALID_ARGUMENT**: A request parameter is invalid.'."\n" + .'* **OBJECT_NOT_FOUND**: The specified object on which you want to perform the operation does not exist.'."\n" + .'* **OBJECT_AlREADY_EXISTS**: The specified object on which you want to perform the operation already exists.'."\n", + 'type' => 'string', + 'example' => 'OK', + ], + 'Message' => [ + 'description' => 'This parameter is deprecated.'."\n", + 'type' => 'string', + 'example' => '', + ], + 'HostAccountId' => [ + 'description' => 'The ID of the host account.'."\n", + 'type' => 'string', + 'example' => '1', + ], + ], + ], + ], + ], + ], + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The argument is invalid.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'An unknown error occurred.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"EC9BF0F4-8983-491A-BC8C-1B4DD94976DE\\",\\n \\"Results\\": [\\n {\\n \\"Code\\": \\"OK\\",\\n \\"Message\\": \\"None\\",\\n \\"HostId\\": \\"1\\",\\n \\"UserId\\": \\"1\\",\\n \\"HostAccounts\\": [\\n {\\n \\"Code\\": \\"OK\\",\\n \\"Message\\": \\"None\\",\\n \\"HostAccountId\\": \\"1\\"\\n }\\n ]\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"<AttachHostAccountsToUserResponse>\\n <RequestId>EC9BF0F4-8983-491A-BC8C-1B4DD94976DE</RequestId>\\n <Results>\\n <Message/>\\n <HostId>1</HostId>\\n <Code>OK</Code>\\n <UserId>1</UserId>\\n </Results>\\n <Results>\\n <HostAccounts>\\n <Message/>\\n <Code>OK</Code>\\n <HostAccountId>1</HostAccountId>\\n </HostAccounts>\\n </Results>\\n</AttachHostAccountsToUserResponse>","errorExample":""}]', + 'title' => 'AttachHostAccountsToUser', + 'requestParamsDescription' => 'Description of Hosts'."\n" + ."\n" + .'|Field|Type|Example|Description|'."\n" + .'|---|---|---|---|'."\n" + .'|HostId|string|1|The ID of the host.|'."\n" + .'|HostAccountIds|array\\[string\\]|\\["9","8","7"\\]|The ID of the host account. The value is a JSON string. You can specify up to 10 host account IDs for each host.|'."\n" + ."\n" + .'The following code provides an example on the settings of the Hosts parameter:'."\n" + ."\n" + .' ['."\n" + .' {"HostId":"1"},'."\n" + .' {"HostId":"2","HostAccountIds":["1","2","3",...]},'."\n" + .' {"HostId":"3","HostAccountIds":["4","5","6",...]},'."\n" + .' {"HostId":"4","HostAccountIds":["9","8","7",...]}'."\n" + .' ]```', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'ListHostsForUser' => [ + 'summary' => 'Queries the hosts that a user group is authorized or not authorized to manage.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'list', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREbastionhostQ6EM52', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the bastion host on which you want to query the hosts that the user is authorized or not authorized to manage.'."\n" + ."\n" + .'> You can call the [DescribeInstances](~~153281~~) operation to query the ID of the bastion host.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'bastionhost-cn-st220aw****', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the bastion host on which you want to query the hosts that the user is authorized or not authorized to manage.'."\n" + ."\n" + .'> For more information about the mapping between region IDs and region names, see [Regions and zones](~~40654~~).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'Mode', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies the category of the hosts that you want to query. Valid values:'."\n" + ."\n" + .'* **Authorized**: queries the hosts that the user is authorized to manage. This is the default value.'."\n" + .'* **Unauthorized**: queries the hosts that the user is not authorized to manage.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'Authorized', + ], + ], + [ + 'name' => 'UserId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the user.'."\n" + ."\n" + .'> You can call the [ListUsers](~~204522~~) operation to query the ID of the user.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '1', + ], + ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of the page. Default value: 1.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '1', + ], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of entries per page.\\'."\n" + .'Maximum value: 100. Default value: 20. If you leave this parameter empty, 20 entries are returned per page.'."\n" + ."\n" + .'> We recommend that you do not leave this parameter empty.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '20', + ], + ], + [ + 'name' => 'HostAddress', + 'in' => 'query', + 'schema' => [ + 'description' => 'The endpoint of the host that you want to query. You can set this parameter to a domain name or an IP address. Only exact match is supported.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '192.168.XX.XX', + ], + ], + [ + 'name' => 'HostName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the host that you want to query. Only exact match is supported.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'abc', + ], + ], + [ + 'name' => 'OSType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The operating system of the host that you want to query. Valid values:'."\n" + ."\n" + .'* **Linux**'."\n" + .'* **Windows**'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'Linux', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'TotalCount' => [ + 'description' => 'The total number of hosts returned.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '1', + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'EC9BF0F4-8983-491A-BC8C-1B4DD94976DE ', + ], + 'Hosts' => [ + 'description' => 'The hosts returned.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Comment' => [ + 'description' => 'The description of the host.'."\n", + 'type' => 'string', + 'example' => 'comment', + ], + 'ActiveAddressType' => [ + 'description' => 'The endpoint type of the host. Valid values:'."\n" + ."\n" + .'* **Public**: public endpoint'."\n" + .'* **Private**: internal endpoint'."\n", + 'type' => 'string', + 'example' => 'Public', + ], + 'HostPublicAddress' => [ + 'description' => 'The public endpoint of the host. The value is a domain name or an IP address.'."\n", + 'type' => 'string', + 'example' => '10.158.XX.XX', + ], + 'HostName' => [ + 'description' => 'The name of the host.'."\n", + 'type' => 'string', + 'example' => 'host01', + ], + 'HostPrivateAddress' => [ + 'description' => 'The internal endpoint of the host. The value is a domain name or an IP address.'."\n", + 'type' => 'string', + 'example' => '192.168.XX.XX', + ], + 'OSType' => [ + 'description' => 'The operating system of the host. Valid values:'."\n" + ."\n" + .'* **Linux**'."\n" + .'* **Windows**'."\n", + 'type' => 'string', + 'example' => 'Linux', + ], + 'HostId' => [ + 'description' => 'The ID of the host.'."\n", + 'type' => 'string', + 'example' => '1', + ], + ], + ], + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The argument is invalid.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'An unknown error occurred.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"TotalCount\\": 1,\\n \\"RequestId\\": \\"EC9BF0F4-8983-491A-BC8C-1B4DD94976DE \\",\\n \\"Hosts\\": [\\n {\\n \\"Comment\\": \\"comment\\",\\n \\"ActiveAddressType\\": \\"Public\\",\\n \\"HostPublicAddress\\": \\"10.158.XX.XX\\",\\n \\"HostName\\": \\"host01\\",\\n \\"HostPrivateAddress\\": \\"192.168.XX.XX\\",\\n \\"OSType\\": \\"Linux\\",\\n \\"HostId\\": \\"1\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"<ListHostsForUserResponse>\\n <Hosts>\\n <Comment>comment</Comment>\\n <ActiveAddressType>Public</ActiveAddressType>\\n <HostPrivateAddress>192.168.XX.XX</HostPrivateAddress>\\n <HostPublicAddress>10.158.XX.XX</HostPublicAddress>\\n <OSType>Linux</OSType>\\n <HostId>1</HostId>\\n <HostName>host01</HostName>\\n </Hosts>\\n <TotalCount>1</TotalCount>\\n <RequestId>EC9BF0F4-8983-491A-BC8C-1B4DD94976DE </RequestId>\\n</ListHostsForUserResponse>","errorExample":""}]', + 'title' => 'ListHostsForUser', + 'requestParamsDescription' => 'All Alibaba Cloud API operations must include common request parameters. For more information about common request parameters, see [Common parameters](~~148139~~). For more information about sample requests, see the "Examples" section of this topic.'."\n", + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'ListHostAccountsForUser' => [ + 'summary' => 'Queries the host accounts of a host and whether a user is authorized to manage each host account.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'list', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREbastionhost19BKK2', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the bastion host on which you want to perform the query. The host accounts that the specified user is authorized to manage on the specified host are queried.'."\n" + ."\n" + .'> You can call the [DescribeInstances](~~153281~~) operation to query the ID of the bastion host.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'bastionhost-cn-st220aw****', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the bastion host on which you want to perform the query. The host accounts that the specified user is authorized to manage on the specified host are queried.'."\n" + ."\n" + .'> For more information about the mapping between region IDs and region names, see [Regions and zones](~~40654~~).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'UserId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the user for which you want to query authorized host accounts.'."\n" + ."\n" + .'> You can call the [ListUsers](~~204522~~) operation to query the ID of the user.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '1', + ], + ], + [ + 'name' => 'HostId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the host to query.'."\n" + ."\n" + .'> You can call the [ListHosts](~~200665~~) operation to query the ID of the host.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '1', + ], + ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of the page to return. Default value: **1**.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '1', + ], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of entries to return on each page.\\'."\n" + .'Maximum value: 100. Default value: 20. If you leave this parameter empty, 20 entries are returned on each page.'."\n" + ."\n" + .'> We recommend that you do not leave this parameter empty.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '20', + ], + ], + [ + 'name' => 'HostAccountName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the host account that you want to query. Exact match is supported.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'root', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'TotalCount' => [ + 'description' => 'The total number of host accounts that were queried.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '1', + ], + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => 'EC9BF0F4-8983-491A-BC8C-1B4DD94976DE ', + ], + 'HostAccounts' => [ + 'description' => 'An array that consists of the queried host accounts.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'HostAccountName' => [ + 'description' => 'The name of the host account.'."\n", + 'type' => 'string', + 'example' => 'root', + ], + 'HostAccountId' => [ + 'description' => 'The ID of the host account.'."\n", + 'type' => 'string', + 'example' => '1', + ], + 'IsAuthorized' => [ + 'description' => 'Indicates whether the user is authorized to manage the host account. Valid values:'."\n" + ."\n" + .'* **true**: yes'."\n" + .'* **false**: no'."\n", + 'type' => 'boolean', + 'example' => 'true', + ], + 'ProtocolName' => [ + 'description' => 'The protocol that is used by the host. Valid values:'."\n" + ."\n" + .'* **SSH**'."\n" + .'* **RDP**'."\n", + 'type' => 'string', + 'example' => 'SSH', + ], + 'HostId' => [ + 'description' => 'The ID of the host for which the host accounts were queried.'."\n", + 'type' => 'string', + 'example' => '1', + ], + ], + ], + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The argument is invalid.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'An unknown error occurred.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"TotalCount\\": 1,\\n \\"RequestId\\": \\"EC9BF0F4-8983-491A-BC8C-1B4DD94976DE \\",\\n \\"HostAccounts\\": [\\n {\\n \\"HostAccountName\\": \\"root\\",\\n \\"HostAccountId\\": \\"1\\",\\n \\"IsAuthorized\\": true,\\n \\"ProtocolName\\": \\"SSH\\",\\n \\"HostId\\": \\"1\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"<ListHostAccountsForUserResponse>\\n <TotalCount>1</TotalCount>\\n <RequestId>EC9BF0F4-8983-491A-BC8C-1B4DD94976DE </RequestId>\\n <HostAccounts>\\n <HostAccountName>root</HostAccountName>\\n <ProtocolName>SSH</ProtocolName>\\n <HostId>1</HostId>\\n <IsAuthorized>true</IsAuthorized>\\n <HostAccountId>1</HostAccountId>\\n </HostAccounts>\\n</ListHostAccountsForUserResponse>","errorExample":""}]', + 'title' => 'ListHostAccountsForUser', + 'requestParamsDescription' => 'All Alibaba Cloud API requests must include common request parameters. For more information about common request parameters, see [Common parameters](~~148139~~). For more information about sample requests, see the "Examples" section of this topic.'."\n", + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'DetachHostAccountsFromUser' => [ + 'summary' => 'Revokes permissions on hosts and host accounts from a user.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREbastionhost19BKK2', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the bastion host on which you want to revoke permissions on the specified hosts and host accounts from the user.'."\n" + ."\n" + .'> You can call the [DescribeInstances](~~153281~~) operation to query the bastion host ID.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'bastionhost-cn-st220aw****', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the bastion host on which you want to revoke permissions on the specified hosts and host accounts from the user.'."\n" + ."\n" + .'> For more information about the mapping between region IDs and region names, see [Regions and zones](~~40654~~).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'UserId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the user from whom you want to revoke permissions on the specified hosts and host accounts.'."\n" + ."\n" + .'> You can call the [ListUsers](~~204522~~) operation to query the user ID.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '1', + ], + ], + [ + 'name' => 'Hosts', + 'in' => 'query', + 'schema' => [ + 'description' => 'The IDs of the hosts and host accounts on which you want to revoke permissions from the user. You can specify up to 10 host IDs and up to 10 host account IDs for each host. You can specify only host IDs. In this case, the permissions on the specified hosts and all accounts of the hosts are revoked from the user. For more information about this parameter, see the Description of the Hosts parameter section of this topic.'."\n" + ."\n" + .'> You can call the [ListHosts](~~200665~~) operation to query the host IDs and the [ListHostAccountsForUser](~~466581~~) operation to query the host account IDs.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '[ {"HostId":"1"}, {"HostId":"2","HostAccountIds":["1","2","3"]}, {"HostId":"3","HostAccountIds":["4","5","6"]}, {"HostId":"4","HostAccountIds":["9","8","7"]} ]', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'EC9BF0F4-8983-491A-BC8C-1B4DD94976DE', + ], + 'Results' => [ + 'description' => 'The result of the call.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Code' => [ + 'description' => 'The return code that indicates whether the call was successful. Valid values:'."\n" + ."\n" + .'* **OK**: The call was successful.'."\n" + .'* **UNEXPECTED**: An unknown error occurred.'."\n" + .'* **INVALID_ARGUMENT**: A request parameter is invalid.'."\n" + .'* **OBJECT_NOT_FOUND**: The specified object on which you want to perform the operation does not exist.'."\n" + .'* **OBJECT_AlREADY_EXISTS**: The specified object on which you want to perform the operation already exists.'."\n", + 'type' => 'string', + 'example' => 'OK', + ], + 'Message' => [ + 'description' => 'This parameter is deprecated.'."\n", + 'type' => 'string', + 'example' => '', + ], + 'HostId' => [ + 'description' => 'The host ID.'."\n", + 'type' => 'string', + 'example' => '1', + ], + 'UserId' => [ + 'description' => 'The user ID.'."\n", + 'type' => 'string', + 'example' => '1', + ], + 'HostAccounts' => [ + 'description' => 'The result of revoking permissions on the specified host accounts from the user.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Code' => [ + 'description' => 'The return code that indicates whether permissions on the specified host accounts were revoked from the user. Valid values:'."\n" + ."\n" + .'* **OK**: The call was successful.'."\n" + .'* **UNEXPECTED**: An unknown error occurred.'."\n" + .'* **INVALID_ARGUMENT**: A request parameter is invalid.'."\n" + .'* **OBJECT_NOT_FOUND**: The specified object on which you want to perform the operation does not exist.'."\n" + .'* **OBJECT_AlREADY_EXISTS**: The specified object on which you want to perform the operation already exists.'."\n", + 'type' => 'string', + 'example' => 'OK', + ], + 'Message' => [ + 'description' => 'This parameter is deprecated.'."\n", + 'type' => 'string', + 'example' => '', + ], + 'HostAccountId' => [ + 'description' => 'The host account ID.'."\n", + 'type' => 'string', + 'example' => '1', + ], + ], + ], + ], + ], + ], + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The argument is invalid.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'An unknown error occurred.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"EC9BF0F4-8983-491A-BC8C-1B4DD94976DE\\",\\n \\"Results\\": [\\n {\\n \\"Code\\": \\"OK\\",\\n \\"Message\\": \\"None\\",\\n \\"HostId\\": \\"1\\",\\n \\"UserId\\": \\"1\\",\\n \\"HostAccounts\\": [\\n {\\n \\"Code\\": \\"OK\\",\\n \\"Message\\": \\"None\\",\\n \\"HostAccountId\\": \\"1\\"\\n }\\n ]\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"<DetachHostAccountsFromUserResponse>\\n <RequestId>EC9BF0F4-8983-491A-BC8C-1B4DD94976DE</RequestId>\\n <Results>\\n <Message/>\\n <HostId>1</HostId>\\n <Code>OK</Code>\\n <UserId>1</UserId>\\n </Results>\\n <Results>\\n <HostAccounts>\\n <Message/>\\n <Code>OK</Code>\\n <HostAccountId>1</HostAccountId>\\n </HostAccounts>\\n </Results>\\n</DetachHostAccountsFromUserResponse>","errorExample":""}]', + 'title' => 'DetachHostAccountsFromUser', + 'requestParamsDescription' => 'Description of the Hosts parameter'."\n" + ."\n" + .'|Field|Type|Example|Description|'."\n" + .'|---|---|---|---|'."\n" + .'|HostId|string|1|The host ID.|'."\n" + .'|HostAccountIds|array\\[string\\]|\\["9","8","7"\\]|The host account ID. The value is a JSON string. You can specify up to 10 host account IDs for each host.|'."\n" + ."\n" + .'The following code provides an example value of the Hosts parameter:'."\n" + ."\n" + .'```'."\n" + .'['."\n" + .'{"HostId":"1"},'."\n" + .'{"HostId":"2","HostAccountIds":["1","2","3",...]},'."\n" + .'{"HostId":"3","HostAccountIds":["4","5","6",...]},'."\n" + .'{"HostId":"4","HostAccountIds":["9","8","7",...]}'."\n" + .']'."\n" + .'```'."\n" + ."\n" + .'All Alibaba Cloud API operations must include common request parameters. For more information about common request parameters, see [Common request parameters](~~148139~~). For more information about sample requests, see Sample requests.', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'DetachHostAccountsFromUserGroup' => [ + 'summary' => 'Revokes the permissions on one or more hosts and host accounts from a user group.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREbastionhost4PMV5G', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the bastion host in which you want to revoke permissions on the specified hosts and host accounts from the user group.'."\n" + ."\n" + .'> You can call the [DescribeInstances](~~153281~~) operation to query the ID of the bastion host.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'bastionhost-cn-st220aw****', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the bastion host in which you want to revoke permissions on the specified hosts and host accounts from the user group.'."\n" + ."\n" + .'> For more information about the mapping between region IDs and region names, see [Regions and zones](~~40654~~).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'UserGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the user group from which you want to revoke permissions on the specified hosts and host accounts.'."\n" + ."\n" + .'> You can call the [ListUserGroups](~~204509~~) operation to query the ID of the user group.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '1', + ], + ], + [ + 'name' => 'Hosts', + 'in' => 'query', + 'schema' => [ + 'description' => 'The IDs of the host and host account on which you want to revoke permissions from the user group.'."\n" + ."\n" + .'You can specify up to 10 host IDs and up to 10 host account IDs for each host. You can specify only host IDs. In this case, the permissions on both the specified hosts and all host accounts of the hosts are revoked from the user group. For more information about this parameter, see the "Description of the Hosts parameter" section of this topic.'."\n" + ."\n" + .'> You can call the [ListHosts](~~200665~~) operation to query the ID of the host and the [ListHostAccounts](~~204372~~) operation to query the ID of the host account.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '[ {"HostId":"1"}, {"HostId":"2","HostAccountIds":["1","2","3",...]}, {"HostId":"3","HostAccountIds":["4","5","6"]}, {"HostId":"4","HostAccountIds":["9","8","7"]} ]', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => 'EC9BF0F4-8983-491A-BC8C-1B4DD94976DE', + ], + 'Results' => [ + 'description' => 'The result of the call.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Code' => [ + 'description' => 'The return code that indicates whether the call was successful. Valid values:'."\n" + ."\n" + .'* **OK**: The call was successful.'."\n" + .'* **UNEXPECTED**: An unknown error occurred.'."\n" + .'* **INVALID_ARGUMENT**: A request parameter is invalid.'."\n" + .'* **OBJECT_NOT_FOUND**: The specified object on which you want to perform the operation does not exist.'."\n" + .'* **OBJECT_AlREADY_EXISTS**: The specified object on which you want to perform the operation already exists.'."\n", + 'type' => 'string', + 'example' => 'OK', + ], + 'Message' => [ + 'description' => 'This parameter is deprecated.'."\n", + 'type' => 'string', + 'example' => '', + ], + 'HostId' => [ + 'description' => 'The ID of the host.'."\n", + 'type' => 'string', + 'example' => '1', + ], + 'UserGroupId' => [ + 'description' => 'The ID of the group.'."\n", + 'type' => 'string', + 'example' => '1', + ], + 'HostAccounts' => [ + 'description' => 'The result of revoking permissions on the specified host accounts from the user group.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Code' => [ + 'description' => 'The return code that indicates whether permissions on the specified host account were revoked from the user group. Valid values:'."\n" + ."\n" + .'* **OK**: The call was successful.'."\n" + .'* **UNEXPECTED**: An unknown error occurred.'."\n" + .'* **INVALID_ARGUMENT**: A request parameter is invalid.'."\n" + .'* **OBJECT_NOT_FOUND**: The specified object on which you want to perform the operation does not exist.'."\n" + .'* **OBJECT_AlREADY_EXISTS**: The specified object on which you want to perform the operation already exists.'."\n", + 'type' => 'string', + 'example' => 'OK', + ], + 'Message' => [ + 'description' => 'This parameter is deprecated.'."\n", + 'type' => 'string', + 'example' => '', + ], + 'HostAccountId' => [ + 'description' => 'The ID of the host account.'."\n", + 'type' => 'string', + 'example' => '1', + ], + ], + ], + ], + ], + ], + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The argument is invalid.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'An unknown error occurred.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"EC9BF0F4-8983-491A-BC8C-1B4DD94976DE\\",\\n \\"Results\\": [\\n {\\n \\"Code\\": \\"OK\\",\\n \\"Message\\": \\"None\\",\\n \\"HostId\\": \\"1\\",\\n \\"UserGroupId\\": \\"1\\",\\n \\"HostAccounts\\": [\\n {\\n \\"Code\\": \\"OK\\",\\n \\"Message\\": \\"None\\",\\n \\"HostAccountId\\": \\"1\\"\\n }\\n ]\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"<DetachHostAccountsFromUserGroupResponse>\\n <RequestId>EC9BF0F4-8983-491A-BC8C-1B4DD94976DE</RequestId>\\n <Results>\\n <Message/>\\n <HostId>1</HostId>\\n <Code>OK</Code>\\n <UserGroupId>1</UserGroupId>\\n </Results>\\n <Results>\\n <HostAccounts>\\n <Message/>\\n <Code>OK</Code>\\n <HostAccountId>1</HostAccountId>\\n </HostAccounts>\\n </Results>\\n</DetachHostAccountsFromUserGroupResponse>","errorExample":""}]', + 'title' => 'DetachHostAccountsFromUserGroup', + 'requestParamsDescription' => 'Description of the Hosts parameter'."\n" + ."\n" + .'| Field | Type | Example | Description |'."\n" + .'| ----- | ---- | ------- | ----------- |'."\n" + .'| HostId | string | 1 | The ID of the host. |'."\n" + .'| HostAccountIds | array[string] | ["9","8","7"] | The ID of the host account. The value is a JSON string. You can specify up to 10 host account IDs for each host. |'."\n" + .'The following code provides an example on the settings of the Hosts parameter: '."\n" + ."\n" + .'```'."\n" + .'['."\n" + .'{"HostId":"1"},'."\n" + .'{"HostId":"2","HostAccountIds":["1","2","3",...]},'."\n" + .'{"HostId":"3","HostAccountIds":["4","5","6",...]},'."\n" + .'{"HostId":"4","HostAccountIds":["9","8","7",...]}'."\n" + .']'."\n" + .'```'."\n" + .'All Alibaba Cloud API operations must include common request parameters. For more information about common request parameters, see [Common parameters](~~315526~~). '."\n" + ."\n" + .'For more information about sample requests, see the "Examples" section of this topic.', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'DetachHostGroupAccountsFromUser' => [ + 'summary' => 'Removes host groups and host accounts from the list of host groups and host accounts that a user is authorized to manage.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREbastionhostN06FHS', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the bastion host for which you want to revoke permissions on the specified host groups and host accounts from the user.'."\n" + ."\n" + .'> You can call the [DescribeInstances](~~153281~~) operation to query the ID of the bastion host.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'bastionhost-cn-st220aw****', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the bastion host for which you want to revoke permissions on the specified host groups and host accounts from the user.'."\n" + ."\n" + .'> For more information about the mapping between region IDs and region names, see [Regions and zones](~~40654~~).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'UserId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the user from which you want to revoke permissions on the specified host groups and host accounts.'."\n" + ."\n" + .'> You can call the [ListUsers](~~204522~~) operation to query the ID of the user.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '1', + ], + ], + [ + 'name' => 'HostGroups', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the host group and the name of the host account on which you want to revoke permissions from the user. You can specify up to 10 host group IDs and up to 10 host account names for each host group. You can specify only host group IDs. In this case, the permissions on the specified host groups and all host accounts in the host groups are revoked from the user. For more information about this parameter, see the "Description of the HostGroups parameter" section of this topic.'."\n" + ."\n" + .'> You can call the [ListHostGroups](~~201307~~) operation to query the ID of the host group and the [ListHostAccounts](~~204372~~) operation to query the name of the host account.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '[ {"HostGroupId":"1"}, {"HostGroupId":"2","HostAccountNames":["root","111","abc"]}]', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => 'EC9BF0F4-8983-491A-BC8C-1B4DD94976DE', + ], + 'Results' => [ + 'description' => 'The result of the call.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Code' => [ + 'description' => 'The return code that indicates whether the call was successful. Valid values:'."\n" + ."\n" + .'* **OK**: The call was successful.'."\n" + .'* **UNEXPECTED**: An unknown error occurred.'."\n" + .'* **INVALID_ARGUMENT**: A request parameter is invalid.'."\n" + .'* **OBJECT_NOT_FOUND**: The specified object on which you want to perform the operation does not exist.'."\n" + .'* **OBJECT_AlREADY_EXISTS**: The specified object on which you want to perform the operation already exists.'."\n", + 'type' => 'string', + 'example' => 'OK', + ], + 'Message' => [ + 'description' => 'This parameter is deprecated.'."\n", + 'type' => 'string', + 'example' => 'N/A'."\n", + ], + 'HostGroupId' => [ + 'description' => 'The ID of the host group.'."\n", + 'type' => 'string', + 'example' => '1', + ], + 'UserId' => [ + 'description' => 'The ID of the user.'."\n", + 'type' => 'string', + 'example' => '1', + ], + 'HostAccountNames' => [ + 'description' => 'The result of revoking permissions on the specified host accounts from the user.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Code' => [ + 'description' => 'The return code that indicates whether permissions on the specified host account were revoked from the user. Valid values:'."\n" + ."\n" + .'* **OK**: The call was successful.'."\n" + .'* **UNEXPECTED**: An unknown error occurred.'."\n" + .'* **INVALID_ARGUMENT**: A request parameter is invalid.'."\n" + .'* **OBJECT_NOT_FOUND**: The specified object on which you want to perform the operation does not exist.'."\n" + .'* **OBJECT_AlREADY_EXISTS**: The specified object on which you want to perform the operation already exists.'."\n", + 'type' => 'string', + 'example' => 'OK', + ], + 'Message' => [ + 'description' => 'This parameter is deprecated.'."\n", + 'type' => 'string', + 'example' => 'N/A'."\n", + ], + 'HostAccountName' => [ + 'description' => 'The name of the host account.'."\n", + 'type' => 'string', + 'example' => 'root', + ], + ], + ], + ], + ], + ], + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The argument is invalid.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'An unknown error occurred.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"EC9BF0F4-8983-491A-BC8C-1B4DD94976DE\\",\\n \\"Results\\": [\\n {\\n \\"Code\\": \\"OK\\",\\n \\"Message\\": \\"None\\",\\n \\"HostGroupId\\": \\"1\\",\\n \\"UserId\\": \\"1\\",\\n \\"HostAccountNames\\": [\\n {\\n \\"Code\\": \\"OK\\",\\n \\"Message\\": \\"None\\",\\n \\"HostAccountName\\": \\"root\\"\\n }\\n ]\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"<DetachHostGroupAccountsFromUserResponse>\\n <RequestId>EC9BF0F4-8983-491A-BC8C-1B4DD94976DE</RequestId>\\n <Results>\\n <HostGroupId>1</HostGroupId>\\n <Message/>\\n <Code>OK</Code>\\n <UserId>1</UserId>\\n </Results>\\n <Results>\\n <HostAccountNames>\\n <HostAccountName>root</HostAccountName>\\n <Message/>\\n <Code>OK</Code>\\n </HostAccountNames>\\n </Results>\\n</DetachHostGroupAccountsFromUserResponse>","errorExample":""}]', + 'title' => 'DetachHostGroupAccountsFromUser', + 'requestParamsDescription' => 'Structure of the HostGroups parameter'."\n" + ."\n" + .'|Parameter|Type|Example|Description|'."\n" + .'|---|---|---|---|'."\n" + .'|HostGroupId|string|1|The host group ID.|'."\n" + .'|HostAccountNames|array\\[string\\]|\\["root","111","abc"\\]|The names of the host accounts. Specify a JSON string. You can specify up to 10 host account names.|'."\n" + ."\n" + .'The following code provides an example:'."\n" + ."\n" + .'```'."\n" + .'['."\n" + .'{"HostGroupId":"1"}, '."\n" + .'{"HostGroupId":"2","HostAccountNames":["root","111","abc"]}, '."\n" + .'{"HostGroupId":"3","HostAccountNames":["root","111","abc"]}, '."\n" + .'{"HostGroupId":"4","HostAccountNames":["root","111","abc"]} '."\n" + .']'."\n" + .'```'."\n" + ."\n" + .'All Alibaba Cloud API operations must include common request parameters. For more information about common request parameters, see [Common parameters](~~148139~~). For more information about sample requests, see the Sample requests section of this topic.', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'AttachHostAccountsToUserGroup' => [ + 'summary' => 'Authorizes a user group to manage one or more hosts and host accounts.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREbastionhost4PMV5G', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the bastion host in which you want to authorize the user group to manage the specified hosts and host accounts.'."\n" + ."\n" + .'> You can call the [DescribeInstances](~~153281~~) operation to query the ID of the bastion host.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'bastionhost-cn-st220aw****', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the bastion host in which you want to authorize the user group to manage the specified hosts and host accounts.'."\n" + ."\n" + .'> For more information about the mapping between region IDs and region names, see [Regions and zones](~~40654~~).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'UserGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the user group that you want to authorize to manage the specified hosts and host accounts.'."\n" + ."\n" + .'> You can call the [ListUserGroups](~~204509~~) operation to query the ID of the user group.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '1', + ], + ], + [ + 'name' => 'Hosts', + 'in' => 'query', + 'schema' => [ + 'description' => 'The IDs of the host and host account that you want to authorize the user group to manage. You can specify up to 10 host IDs and up to 10 host account IDs for each host. You can specify only host IDs. In this case, the user group is authorized to manage only the specified hosts. For more information about this parameter, see the "Description of the Hosts parameter" section of this topic.'."\n" + ."\n" + .'> You can call the [ListHosts](~~200665~~) operation to query the ID of the host and the [ListHostAccounts](~~204372~~) operation to query the ID of the host account.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '[ {"HostId":"1"}, {"HostId":"2","HostAccountIds":["1","2","3",...]}, {"HostId":"3","HostAccountIds":["4","5","6",...]}, {"HostId":"4","HostAccountIds":["9","8","7",...]} ... ]', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => 'EC9BF0F4-8983-491A-BC8C-1B4DD94976DE', + ], + 'Results' => [ + 'description' => 'The result of the call.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Code' => [ + 'description' => 'The return code that indicates whether the call was successful. Valid values:'."\n" + ."\n" + .'* **OK**: The call was successful.'."\n" + .'* **UNEXPECTED**: An unknown error occurred.'."\n" + .'* **INVALID_ARGUMENT**: A request parameter is invalid.'."\n" + .'* **OBJECT_NOT_FOUND**: The specified object on which you want to perform the operation does not exist.'."\n" + .'* **OBJECT_AlREADY_EXISTS**: The specified object on which you want to perform the operation already exists.'."\n", + 'type' => 'string', + 'example' => 'OK', + ], + 'Message' => [ + 'description' => 'This parameter is deprecated.'."\n", + 'type' => 'string', + 'example' => 'N/A'."\n", + ], + 'HostId' => [ + 'description' => 'The ID of the host.'."\n", + 'type' => 'string', + 'example' => '1', + ], + 'UserGroupId' => [ + 'description' => 'The ID of the user group.'."\n", + 'type' => 'string', + 'example' => '1', + ], + 'HostAccounts' => [ + 'description' => 'The result of authorizing the specified user group to manage the specified host accounts.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Code' => [ + 'description' => 'The return code that indicates whether the user group was authorized to manage the specified host account. Valid values:'."\n" + ."\n" + .'* **OK**: The call was successful.'."\n" + .'* **UNEXPECTED**: An unknown error occurred.'."\n" + .'* **INVALID_ARGUMENT**: A request parameter is invalid.'."\n" + .'* **OBJECT_NOT_FOUND**: The specified object on which you want to perform the operation does not exist.'."\n" + .'* **OBJECT_AlREADY_EXISTS**: The specified object on which you want to perform the operation already exists.'."\n", + 'type' => 'string', + 'example' => 'OK', + ], + 'Message' => [ + 'description' => 'This parameter is deprecated.'."\n", + 'type' => 'string', + 'example' => 'N/A'."\n", + ], + 'HostAccountId' => [ + 'description' => 'The ID of the host account.'."\n", + 'type' => 'string', + 'example' => '1', + ], + ], + ], + ], + ], + ], + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The argument is invalid.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'An unknown error occurred.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"EC9BF0F4-8983-491A-BC8C-1B4DD94976DE\\",\\n \\"Results\\": [\\n {\\n \\"Code\\": \\"OK\\",\\n \\"Message\\": \\"None\\",\\n \\"HostId\\": \\"1\\",\\n \\"UserGroupId\\": \\"1\\",\\n \\"HostAccounts\\": [\\n {\\n \\"Code\\": \\"OK\\",\\n \\"Message\\": \\"None\\",\\n \\"HostAccountId\\": \\"1\\"\\n }\\n ]\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"<AttachHostAccountsToUserGroupResponse>\\n <RequestId>EC9BF0F4-8983-491A-BC8C-1B4DD94976DE</RequestId>\\n <Results>\\n <Message/>\\n <HostId>1</HostId>\\n <Code>OK</Code>\\n <UserGroupId>1</UserGroupId>\\n </Results>\\n <Results>\\n <HostAccounts>\\n <Message/>\\n <Code>OK</Code>\\n <HostAccountId>1</HostAccountId>\\n </HostAccounts>\\n </Results>\\n</AttachHostAccountsToUserGroupResponse>","errorExample":""}]', + 'title' => 'AttachHostAccountsToUserGroup', + 'description' => 'After you authorize a user group to manage specific hosts and host accounts, all the users in the user group have access to the authorized hosts and host accounts.'."\n", + 'requestParamsDescription' => 'Description of the Hosts parameter'."\n" + ."\n" + .'|Field|Type|Example|Description|'."\n" + .'|---|---|---|---|'."\n" + .'|HostId|string|1|The ID of the host.|'."\n" + .'|HostAccountIds|array\\[string\\]|\\["9","8","7"\\]|The ID of the host account. The value is a JSON string. You can specify up to 10 host account IDs for each host.|'."\n" + ."\n\n" + .'The following code provides an example on the settings of the Hosts parameter:'."\n" + ."\n" + .'```'."\n" + .'['."\n" + .'{"HostId":"1"},'."\n" + .'{"HostId":"2","HostAccountIds":["1","2","3",...]},'."\n" + .'{"HostId":"3","HostAccountIds":["4","5","6",...]},'."\n" + .'{"HostId":"4","HostAccountIds":["9","8","7",...]}'."\n" + .']'."\n" + .'```'."\n" + ."\n" + .'All Alibaba Cloud API requests must include common request parameters. For more information about common request parameters, see [Common parameters](~~315526~~). For more information about sample requests, see the "Examples" section of this topic.', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'DetachHostGroupAccountsFromUserGroup' => [ + 'summary' => 'Revokes permissions on one or more host groups and host accounts from a user group.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREbastionhost19BKK2', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the bastion host for which you want to revoke permissions on the specified host groups and host accounts from the user group.'."\n" + ."\n" + .'> You can call the [DescribeInstances](~~153281~~) operation to query the ID of the bastion host.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'bastionhost-cn-st220aw****', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the bastion host for which you want to revoke permissions on the specified host groups and host accounts from the user group.'."\n" + ."\n" + .'> For more information about the mapping between region IDs and region names, see [Regions and zones](~~40654~~).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'UserGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the user group from which you want to revoke permissions on the specified host groups and host accounts.'."\n" + ."\n" + .'> You can call the [ListUserGroups](~~204509~~) operation to query the ID of the user group.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '1', + ], + ], + [ + 'name' => 'HostGroups', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the host group and the name of host account on which you want to revoke permissions from the user group. You can specify up to 10 host group IDs and up to 10 host account names for each host group. You can specify only host group IDs. In this case, the permissions on the specified host groups and all host accounts in the host groups are revoked from the user group. For more information about this parameter, see the "Description of the HostGroups parameter" section of this topic.'."\n" + ."\n" + .'> You can call the [ListHostGroups](~~201307~~) operation to query the ID of the host group and the [ListHostAccounts](~~204372~~) operation to query the name of the host account.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '[ {"HostGroupId":"1"}, {"HostGroupId":"2","HostAccountNames":["root","111","abc"]}, {"HostGroupId":"3","HostAccountNames":["root","111","abc"]}, {"HostGroupId":"4","HostAccountNames":["root","111","abc"]}]', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => 'EC9BF0F4-8983-491A-BC8C-1B4DD94976DE', + ], + 'Results' => [ + 'description' => 'The result of the call.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Code' => [ + 'description' => 'The return code that indicates whether the call was successful. Valid values:'."\n" + ."\n" + .'* **OK**: The call was successful.'."\n" + .'* **UNEXPECTED**: An unknown error occurred.'."\n" + .'* **INVALID_ARGUMENT**: A request parameter is invalid.'."\n" + .'* **OBJECT_NOT_FOUND**: The specified object on which you want to perform the operation does not exist.'."\n" + .'* **OBJECT_AlREADY_EXISTS**: The specified object on which you want to perform the operation already exists.'."\n", + 'type' => 'string', + 'example' => 'OK', + ], + 'Message' => [ + 'description' => 'This parameter is deprecated.'."\n", + 'type' => 'string', + 'example' => '', + ], + 'HostGroupId' => [ + 'description' => 'The ID of the host group.'."\n", + 'type' => 'string', + 'example' => '1', + ], + 'UserGroupId' => [ + 'description' => 'The ID of the group.'."\n", + 'type' => 'string', + 'example' => '1', + ], + 'HostAccountNames' => [ + 'description' => 'The result of revoking permissions on the specified host accounts from the user group.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Code' => [ + 'description' => 'The return code that indicates whether permissions on the specified host account were revoked from the specified user group. Valid values:'."\n" + ."\n" + .'* **OK**: The call was successful.'."\n" + .'* **UNEXPECTED**: An unknown error occurred.'."\n" + .'* **INVALID_ARGUMENT**: A request parameter is invalid.'."\n" + .'* **OBJECT_NOT_FOUND**: The specified object on which you want to perform the operation does not exist.'."\n" + .'* **OBJECT_AlREADY_EXISTS**: The specified object on which you want to perform the operation already exists.'."\n", + 'type' => 'string', + 'example' => 'OK', + ], + 'Message' => [ + 'description' => 'This parameter is deprecated.'."\n", + 'type' => 'string', + 'example' => '', + ], + 'HostAccountName' => [ + 'description' => 'The name of the host account.'."\n", + 'type' => 'string', + 'example' => 'root', + ], + ], + ], + ], + ], + ], + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The argument is invalid.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'An unknown error occurred.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"EC9BF0F4-8983-491A-BC8C-1B4DD94976DE\\",\\n \\"Results\\": [\\n {\\n \\"Code\\": \\"OK\\",\\n \\"Message\\": \\"None\\",\\n \\"HostGroupId\\": \\"1\\",\\n \\"UserGroupId\\": \\"1\\",\\n \\"HostAccountNames\\": [\\n {\\n \\"Code\\": \\"OK\\",\\n \\"Message\\": \\"None\\",\\n \\"HostAccountName\\": \\"root\\"\\n }\\n ]\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"<DetachHostGroupAccountsFromUserGroupResponse>\\n <RequestId>EC9BF0F4-8983-491A-BC8C-1B4DD94976DE</RequestId>\\n <Results>\\n <Message/>\\n <HostGroupId>1</HostGroupId>\\n <Code>OK</Code>\\n <UserGroupId>1</UserGroupId>\\n </Results>\\n <Results>\\n <HostAccountNames>\\n <HostAccountName>root</HostAccountName>\\n <Message/>\\n <Code>OK</Code>\\n </HostAccountNames>\\n </Results>\\n</DetachHostGroupAccountsFromUserGroupResponse>","errorExample":""}]', + 'title' => 'DetachHostGroupAccountsFromUserGroup', + 'description' => '****', + 'requestParamsDescription' => 'Description of the HostGroups parameter'."\n" + ."\n" + .'| Field | Type | Example | Description |'."\n" + .'| ----- | ---- | ------- | ----------- |'."\n" + .'| HostGroupId | string | 1 | The ID of the host group. |'."\n" + .'| HostAccountNames | array[string] | ["root","111","abc"] | The name of the host account. The value is a JSON string. You can specify up to 10 host account names for each host group. |'."\n" + .'The following code provides an example on the settings of the HostGroups parameter: '."\n" + ."\n" + .'```'."\n" + .'['."\n" + .'{"HostGroupId":"1"}, '."\n" + .'{"HostGroupId":"2","HostAccountNames":["root","111","abc"]}, '."\n" + .'{"HostGroupId":"3","HostAccountNames":["root","111","abc"]}, '."\n" + .'{"HostGroupId":"4","HostAccountNames":["root","111","abc"]} '."\n" + .']'."\n" + .'```'."\n" + .'All Alibaba Cloud API operations must include common request parameters. For more information about common request parameters, see [Common parameters](~~315526~~). '."\n" + ."\n" + .'For more information about sample requests, see the "Examples" section of this topic.', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'AttachHostGroupAccountsToUser' => [ + 'summary' => 'Authorizes a user to manage one or more host groups and host accounts.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREbastionhostN06FHS', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the bastion host for which you want to authorize the user to manage the host groups and host accounts.'."\n" + ."\n" + .'> You can call the [DescribeInstances](~~153281~~) operation to query the ID of the bastion host.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'bastionhost-cn-st220aw****', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the bastion host for which you want to authorize the user to manage the host groups and host accounts.'."\n" + ."\n" + .'> For more information about the mapping between region IDs and region names, see [Regions and zones](~~40654~~).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'UserId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the user that you want to authorize to manage the host groups and host accounts.'."\n" + ."\n" + .'> You can call the [ListUsers](~~204522~~) operation to query the ID of the user.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '1', + ], + ], + [ + 'name' => 'HostGroups', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the host group and the name of the host account that you want to authorize the user to manage. You can specify up to 10 host group IDs and up to 10 host account names for each host group. You can specify only host group IDs. In this case, the user is authorized to manage only the specified host groups. For more information about this parameter, see the "Description of the HostGroups parameter" section of this topic.'."\n" + ."\n" + .'> You can call the [ListHostGroups](~~201307~~) operation to query the ID of the host group and the [ListHostAccounts](~~204372~~) operation to query the name of the host account.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '[ {"HostGroupId":"1"}, {"HostGroupId":"2","HostAccountNames":["root","111","abc"]}, {"HostGroupId":"3","HostAccountNames":["root","111","abc"]}, {"HostGroupId":"4","HostAccountNames":["root","111","abc"]} ]', + 'pattern' => '^[^\';<>=|\\(\\)]+$', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'EC9BF0F4-8983-491A-BC8C-1B4DD94976DE', + ], + 'Results' => [ + 'description' => 'The result of the call.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Code' => [ + 'description' => 'The return code that indicates whether the call was successful. Valid values:'."\n" + ."\n" + .'* **OK**: The call was successful.'."\n" + .'* **UNEXPECTED**: An unknown error occurred.'."\n" + .'* **INVALID_ARGUMENT**: A request parameter is invalid.'."\n" + .'* **OBJECT_NOT_FOUND**: The specified object on which you want to perform the operation does not exist.'."\n" + .'* **OBJECT_AlREADY_EXISTS**: The specified object on which you want to perform the operation already exists.'."\n", + 'type' => 'string', + 'example' => 'OK', + ], + 'Message' => [ + 'description' => 'This parameter is deprecated.'."\n", + 'type' => 'string', + 'example' => '', + ], + 'HostGroupId' => [ + 'description' => 'The ID of the host group.'."\n", + 'type' => 'string', + 'example' => '1', + ], + 'UserId' => [ + 'description' => 'The ID of the user.'."\n", + 'type' => 'string', + 'example' => '1', + ], + 'HostAccountNames' => [ + 'description' => 'The result of authorizing the user to manage the host accounts.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Code' => [ + 'description' => 'The return code that indicates whether the user was authorized to manage the host account. Valid values:'."\n" + ."\n" + .'* **OK**: The call was successful.'."\n" + .'* **UNEXPECTED**: An unknown error occurred.'."\n" + .'* **INVALID_ARGUMENT**: A request parameter is invalid.'."\n" + .'* **OBJECT_NOT_FOUND**: The specified object on which you want to perform the operation does not exist.'."\n" + .'* **OBJECT_AlREADY_EXISTS**: The specified object on which you want to perform the operation already exists.'."\n", + 'type' => 'string', + 'example' => 'OK', + ], + 'Message' => [ + 'description' => 'This parameter is deprecated.'."\n", + 'type' => 'string', + 'example' => '', + ], + 'HostAccountName' => [ + 'description' => 'The name of the host account.'."\n", + 'type' => 'string', + 'example' => 'root', + ], + ], + ], + ], + ], + ], + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The argument is invalid.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'An unknown error occurred.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"EC9BF0F4-8983-491A-BC8C-1B4DD94976DE\\",\\n \\"Results\\": [\\n {\\n \\"Code\\": \\"OK\\",\\n \\"Message\\": \\"None\\",\\n \\"HostGroupId\\": \\"1\\",\\n \\"UserId\\": \\"1\\",\\n \\"HostAccountNames\\": [\\n {\\n \\"Code\\": \\"OK\\",\\n \\"Message\\": \\"None\\",\\n \\"HostAccountName\\": \\"root\\"\\n }\\n ]\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"<AttachHostGroupAccountsToUserResponse>\\n <RequestId>EC9BF0F4-8983-491A-BC8C-1B4DD94976DE</RequestId>\\n <Results>\\n <HostGroupId>1</HostGroupId>\\n <Message/>\\n <Code>OK</Code>\\n <UserId>1</UserId>\\n </Results>\\n <Results>\\n <HostAccountNames>\\n <HostAccountName>root</HostAccountName>\\n <Message/>\\n <Code>OK</Code>\\n </HostAccountNames>\\n </Results>\\n</AttachHostGroupAccountsToUserResponse>","errorExample":""}]', + 'title' => 'AttachHostGroupAccountsToUser', + 'requestParamsDescription' => 'Description of HostGroups'."\n" + ."\n" + .'|Field|Type|Example|Description|'."\n" + .'|---|---|---|---|'."\n" + .'|HostGroupId|string|1|The ID of the host group.|'."\n" + .'|HostAccountNames|array\\[string\\]|\\["root","111","abc"\\]|The name of the host account. The value is a JSON string. You can specify up to 10 host account names for each host group.|'."\n" + ."\n" + .'The following code provides an example on the settings of the HostGroups parameter:'."\n" + ."\n" + .'```'."\n" + .'['."\n" + .'{"HostGroupId":"1"}, '."\n" + .'{"HostGroupId":"2","HostAccountNames":["root","111","abc"]}, '."\n" + .'{"HostGroupId":"3","HostAccountNames":["root","111","abc"]}, '."\n" + .'{"HostGroupId":"4","HostAccountNames":["root","111","abc"]} '."\n" + .']'."\n" + .'```'."\n" + ."\n" + .'All Alibaba Cloud API operations must include common request parameters. For more information about common request parameters, see [Common parameters](~~148139~~). For more information about sample requests, see the "Examples" section of this topic.', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'AttachHostGroupAccountsToUserGroup' => [ + 'summary' => 'Authorizes a user to manage one or more host groups and host accounts.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREbastionhost19BKK2', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the bastion host for which you want to authorize the user group to manage the specified host groups and host accounts.'."\n" + ."\n" + .'> You can call the [DescribeInstances](~~153281~~) operation to query the ID of the bastion host.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'bastionhost-cn-st220aw****', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the bastion host for which you want to authorize the user group to manage the specified host groups and host accounts.'."\n" + ."\n" + .'> For more information about the mapping between region IDs and region names, see [Regions and zones](~~40654~~).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'UserGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the user group that you want to authorize to manage the specified host groups and host accounts.'."\n" + ."\n" + .'> You can call the [ListUserGroups](~~204509~~) operation to query the ID of the user group.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '1', + ], + ], + [ + 'name' => 'HostGroups', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the host group and the name of the host account that you want to authorize the user group to manage. You can specify up to 10 host group IDs and up to 10 host account names for each host group. You can specify only host group IDs. In this case, the user group is authorized to manage only the specified host groups. For more information about this parameter, see the "Description of the HostGroups parameter" section of this topic.'."\n" + ."\n" + .'> You can call the [ListHostGroups](~~201307~~) operation to query the ID of the host group and the [ListHostAccounts](~~204372~~) operation to query the name of the host account.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '[ {"HostGroupId":"1"}, {"HostGroupId":"2","HostAccountNames":["root","111","abc"]}, {"HostGroupId":"3","HostAccountNames":["root","111","abc"]}, {"HostGroupId":"4","HostAccountNames":["root","111","abc"]}]', + 'pattern' => '^[^\';<>=|\\(\\)]+$', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'EC9BF0F4-8983-491A-BC8C-1B4DD94976DE', + ], + 'Results' => [ + 'description' => 'The result of the call.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Code' => [ + 'description' => 'The return code that indicates whether the call was successful. Valid values:'."\n" + ."\n" + .'* **OK**: The call was successful.'."\n" + .'* **UNEXPECTED**: An unknown error occurred.'."\n" + .'* **INVALID_ARGUMENT**: A request parameter is invalid.'."\n" + .'* **OBJECT_NOT_FOUND**: The specified object on which you want to perform the operation does not exist.'."\n" + .'* **OBJECT_AlREADY_EXISTS**: The specified object on which you want to perform the operation already exists.'."\n", + 'type' => 'string', + 'example' => 'OK', + ], + 'Message' => [ + 'description' => 'This parameter is deprecated.'."\n", + 'type' => 'string', + 'example' => '', + ], + 'HostGroupId' => [ + 'description' => 'The ID of the host group.'."\n", + 'type' => 'string', + 'example' => '1', + ], + 'UserGroupId' => [ + 'description' => 'The ID of the user group.'."\n", + 'type' => 'string', + 'example' => '1', + ], + 'HostAccountNames' => [ + 'description' => 'The result of authorizing the user group to manage the specified host accounts.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Code' => [ + 'description' => 'The return code that indicates whether the user group was authorized to manage the specified host account. Valid values:'."\n" + ."\n" + .'* **OK**: The call was successful.'."\n" + .'* **UNEXPECTED**: An unknown error occurred.'."\n" + .'* **INVALID_ARGUMENT**: A request parameter is invalid.'."\n" + .'* **OBJECT_NOT_FOUND**: The specified object on which you want to perform the operation does not exist.'."\n" + .'* **OBJECT_AlREADY_EXISTS**: The specified object on which you want to perform the operation already exists.'."\n", + 'type' => 'string', + 'example' => 'OK', + ], + 'Message' => [ + 'description' => 'This parameter is deprecated.'."\n", + 'type' => 'string', + 'example' => '', + ], + 'HostAccountName' => [ + 'description' => 'The name of the host account.'."\n", + 'type' => 'string', + 'example' => 'abc', + ], + ], + ], + ], + ], + ], + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The argument is invalid.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'An unknown error occurred.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"EC9BF0F4-8983-491A-BC8C-1B4DD94976DE\\",\\n \\"Results\\": [\\n {\\n \\"Code\\": \\"OK\\",\\n \\"Message\\": \\"None\\",\\n \\"HostGroupId\\": \\"1\\",\\n \\"UserGroupId\\": \\"1\\",\\n \\"HostAccountNames\\": [\\n {\\n \\"Code\\": \\"OK\\",\\n \\"Message\\": \\"None\\",\\n \\"HostAccountName\\": \\"abc\\"\\n }\\n ]\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"<AttachHostGroupAccountsToUserGroupResponse>\\n <RequestId>EC9BF0F4-8983-491A-BC8C-1B4DD94976DE</RequestId>\\n <Results>\\n <Message/>\\n <HostGroupId>1</HostGroupId>\\n <Code>OK</Code>\\n <UserGroupId>1</UserGroupId>\\n </Results>\\n <Results>\\n <HostAccountNames>\\n <HostAccountName>abc</HostAccountName>\\n <Message/>\\n <Code>OK</Code>\\n </HostAccountNames>\\n </Results>\\n</AttachHostGroupAccountsToUserGroupResponse>","errorExample":""}]', + 'title' => 'AttachHostGroupAccountsToUserGroup', + 'requestParamsDescription' => 'Description of HostGroups'."\n" + ."\n" + .'|Field|Type|Example|Description|'."\n" + .'|---|---|---|---|'."\n" + .'|HostGroupId|string|1|The ID of the host group.|'."\n" + .'|HostAccountNames|array\\[string\\]|\\["root","111","abc"\\]|The name of the host account. The value is a JSON string. You can specify up to 10 host account names for each host group.|'."\n" + ."\n" + .'The following code provides an example on the settings of HostGroups:'."\n" + ."\n" + .'```'."\n" + .'['."\n" + .'{"HostGroupId":"1"}, '."\n" + .'{"HostGroupId":"2","HostAccountNames":["root","111","abc"]}, '."\n" + .'{"HostGroupId":"3","HostAccountNames":["root","111","abc"]}, '."\n" + .'{"HostGroupId":"4","HostAccountNames":["root","111","abc"]} '."\n" + .']'."\n" + .'```'."\n" + ."\n" + .'All Alibaba Cloud API operations must include common request parameters. For more information about common request parameters, see [Common parameters](~~148139~~). For more information about sample requests, see the "Examples" section of this topic.', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'ListHostAccountsForUserGroup' => [ + 'summary' => 'Queries the host accounts of a host and whether a user group is authorized to manage each host account.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREbastionhost4PMV5G', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the bastion host on which you want to query the host accounts to be managed by the specified user group on the specified host.'."\n" + ."\n" + .'> You can call the [DescribeInstances](~~153281~~) operation to query the ID of the bastion host.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'bastionhost-cn-st220aw****', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the bastion host on which you want to query the host accounts to be managed by the specified user group on the specified host.'."\n" + ."\n" + .'> For more information about the mapping between region IDs and region names, see [Regions and zones](~~40654~~).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'UserGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the user group for which you want to query authorized host accounts.'."\n" + ."\n" + .'> You can call the [ListUserGroups](~~204509~~) operation to query the ID of the user group.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '1', + ], + ], + [ + 'name' => 'HostId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the host to query.'."\n" + ."\n" + .'> You can call the [ListHosts](~~200665~~) operation to query the ID of the host.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '1', + ], + ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of the page to return. Default value: **1**.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '1', + ], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of entries to return on each page.\\'."\n" + .'Maximum value: 100. Default value: 20. If you leave this parameter empty, 20 entries are returned on each page.'."\n" + ."\n" + .'> We recommend that you do not leave this parameter empty.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '20', + ], + ], + [ + 'name' => 'HostAccountName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the host account that you want to query. Exact match is supported.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'root', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'TotalCount' => [ + 'description' => 'The total number of host accounts that were queried.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '1', + ], + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => 'EC9BF0F4-8983-491A-BC8C-1B4DD94976DE', + ], + 'HostAccounts' => [ + 'description' => 'An array that consists of the queried host accounts.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'HostAccountName' => [ + 'description' => 'The name of the host account.'."\n", + 'type' => 'string', + 'example' => 'host1', + ], + 'HostAccountId' => [ + 'description' => 'The ID of the host account.'."\n", + 'type' => 'string', + 'example' => '1', + ], + 'IsAuthorized' => [ + 'description' => 'Indicates whether the user group is authorized to manage the host account. Valid values:'."\n" + ."\n" + .'* **true**: yes'."\n" + .'* **false**: no'."\n", + 'type' => 'boolean', + 'example' => 'true', + ], + 'ProtocolName' => [ + 'description' => 'The protocol that is used by the host. Valid values:'."\n" + ."\n" + .'* **SSH**'."\n" + .'* **RDP**'."\n", + 'type' => 'string', + 'example' => 'SSH', + ], + 'HostId' => [ + 'description' => 'The ID of the host for which the host accounts were queried.'."\n", + 'type' => 'string', + 'example' => '1', + ], + ], + ], + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The argument is invalid.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'An unknown error occurred.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"TotalCount\\": 1,\\n \\"RequestId\\": \\"EC9BF0F4-8983-491A-BC8C-1B4DD94976DE\\",\\n \\"HostAccounts\\": [\\n {\\n \\"HostAccountName\\": \\"host1\\",\\n \\"HostAccountId\\": \\"1\\",\\n \\"IsAuthorized\\": true,\\n \\"ProtocolName\\": \\"SSH\\",\\n \\"HostId\\": \\"1\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"<ListHostAccountsForUserGroupResponse>\\n <TotalCount>1</TotalCount>\\n <RequestId>EC9BF0F4-8983-491A-BC8C-1B4DD94976DE</RequestId>\\n <HostAccounts>\\n <HostAccountName>host1</HostAccountName>\\n <ProtocolName>SSH</ProtocolName>\\n <IsAuthorized>true</IsAuthorized>\\n <HostId>1</HostId>\\n <HostAccountId>1</HostAccountId>\\n </HostAccounts>\\n</ListHostAccountsForUserGroupResponse>","errorExample":""}]', + 'title' => 'ListHostAccountsForUserGroup', + 'requestParamsDescription' => 'All Alibaba Cloud API requests must include common request parameters. For more information about common request parameters, see [Common parameters](~~148139~~). For more information about sample requests, see the "Examples" section of this topic.'."\n", + 'extraInfo' => ' ', + ], + 'ListHostGroupAccountNamesForUser' => [ + 'summary' => 'Queries the names of the host accounts that a specified user is authorized to manage in a specified host group.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREbastionhostQ6EM52', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the bastion host to which the user belongs.'."\n" + ."\n" + .'> You can call the [DescribeInstances](~~153281~~) operation to query the ID of the bastion host.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'bastionhost-cn-st220aw****', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the bastion host to which the user belongs.'."\n" + ."\n" + .'> For more information about the mapping between region IDs and region names, see [Regions and zones](~~40654~~).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'UserId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the user.'."\n" + ."\n" + .'> You can call the [ListUsers](~~204522~~) operation to query the ID of the user.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '1', + ], + ], + [ + 'name' => 'HostGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the host group.'."\n" + ."\n" + .'> You can call the [ListHostGroups](~~201307~~) operation to query the ID of the host group.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '1', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => 'EC9BF0F4-8983-491A-BC8C-1B4DD94976DE', + ], + 'HostAccountNames' => [ + 'description' => 'An array that consists of the names of host accounts.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The name of the host account.'."\n", + 'type' => 'string', + 'example' => 'abc', + ], + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The argument is invalid.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'An unknown error occurred.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"EC9BF0F4-8983-491A-BC8C-1B4DD94976DE\\",\\n \\"HostAccountNames\\": [\\n \\"abc\\"\\n ]\\n}","errorExample":""},{"type":"xml","example":"<ListHostGroupAccountNamesForUserResponse>\\n <RequestId>EC9BF0F4-8983-491A-BC8C-1B4DD94976DE</RequestId>\\n <HostAccountNames>abc</HostAccountNames>\\n</ListHostGroupAccountNamesForUserResponse>","errorExample":""}]', + 'title' => 'ListHostGroupAccountNamesForUser', + 'requestParamsDescription' => 'All Alibaba Cloud API requests must include common request parameters. For more information about common request parameters, see [Common parameters](~~148139~~). For more information about sample requests, see the "Examples" section of this topic.'."\n", + 'extraInfo' => ' ', + ], + 'ListHostGroupAccountNamesForUserGroup' => [ + 'summary' => 'Queries the names of the host accounts that a user group is authorized to manage in a host group.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREbastionhost19BKK2', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the bastion host on which you want to query the host account names the user group is authorized to manage in a host group.'."\n" + ."\n" + .'> You can call the [DescribeInstances](~~153281~~) operation to query the ID of the bastion host.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'bastionhost-cn-st220aw****', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the bastion host on which you want to query the host account names the user group is authorized to manage in a host group.'."\n" + ."\n" + .'> For more information about the mapping between region IDs and region names, see [Regions and zones](~~40654~~).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'UserGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the user group.'."\n" + ."\n" + .'> You can call the [ListUserGroups](~~204509~~) operation to query the ID of the user group.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '1', + ], + ], + [ + 'name' => 'HostGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the host group.'."\n" + ."\n" + .'> You can call the [ListHostGroups](~~201307~~) operation to query the ID of the host group.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '1', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'description' => 'The response parameters.'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'EC9BF0F4-8983-491A-BC8C-1B4DD94976DE', + ], + 'HostAccountNames' => [ + 'description' => 'The names of host accounts returned.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The name of host account returned.'."\n", + 'type' => 'string', + 'example' => '["root","abc"]', + ], + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The argument is invalid.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'An unknown error occurred.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"EC9BF0F4-8983-491A-BC8C-1B4DD94976DE\\",\\n \\"HostAccountNames\\": [\\n \\"[\\\\\\"root\\\\\\",\\\\\\"abc\\\\\\"]\\"\\n ]\\n}","errorExample":""},{"type":"xml","example":"<ListHostGroupAccountNamesForUserGroupResponse>\\n <RequestId>EC9BF0F4-8983-491A-BC8C-1B4DD94976DE</RequestId>\\n <HostAccountNames>root</HostAccountNames>\\n <HostAccountNames>abc</HostAccountNames>\\n</ListHostGroupAccountNamesForUserGroupResponse>","errorExample":""}]', + 'title' => 'ListHostGroupAccountNamesForUserGroup', + 'requestParamsDescription' => 'All Alibaba Cloud API operations must include common request parameters. For more information about common request parameters, see [Common parameters](~~148139~~). For more information about sample requests, see the "Examples" section of this topic.'."\n", + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'ListHostGroupsForUser' => [ + 'summary' => 'Queries a list of host groups that a bastion host user is authorized or is not authorized to manage.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREbastionhostN06FHS', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the bastion host whose user you want to query.'."\n" + ."\n" + .'> You can call the [DescribeInstances](~~153281~~) operation to query the bastion host ID.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'bastionhost-cn-st220aw****', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the bastion host whose user you want to query.'."\n" + ."\n" + .'> For more information about the mapping between region IDs and region names, see [Regions and zones](~~40654~~).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'Mode', + 'in' => 'query', + 'schema' => [ + 'description' => 'The category of the host groups to query. Valid values:'."\n" + ."\n" + .'* **Authorized** (default): queries the host groups that the user is authorized to manage.'."\n" + .'* **Unauthorized**: queries the host groups that the user is not authorized to manage.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'Authorized', + ], + ], + [ + 'name' => 'UserId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The user ID.'."\n" + ."\n" + .'> You can call the [ListUsers](~~204522~~) operation to query the user ID.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '1', + ], + ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => [ + 'description' => 'The page number. Default value: **1**.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '1', + ], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of entries per page.\\'."\n" + .'Valid values: 1 to 100. Default value: 20. If you leave this parameter empty, 20 entries are returned on each page.'."\n" + ."\n" + .'> We recommend that you do not leave this parameter empty.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '20', + ], + ], + [ + 'name' => 'HostGroupName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the host group to query. The name can be up to 128 characters in length. Only exact match is supported.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'group', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'TotalCount' => [ + 'description' => 'The total number of host groups returned.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '1', + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'EC9BF0F4-8983-491A-BC8C-1B4DD94976DE', + ], + 'HostGroups' => [ + 'description' => 'The host groups returned.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'HostGroupId' => [ + 'description' => 'The host group ID.'."\n", + 'type' => 'string', + 'example' => '1', + ], + 'Comment' => [ + 'description' => 'The remarks of the host group.'."\n", + 'type' => 'string', + 'example' => 'comment', + ], + 'HostGroupName' => [ + 'description' => 'The name of the host group.'."\n", + 'type' => 'string', + 'example' => 'group', + ], + ], + ], + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The argument is invalid.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'An unknown error occurred.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"TotalCount\\": 1,\\n \\"RequestId\\": \\"EC9BF0F4-8983-491A-BC8C-1B4DD94976DE\\",\\n \\"HostGroups\\": [\\n {\\n \\"HostGroupId\\": \\"1\\",\\n \\"Comment\\": \\"comment\\",\\n \\"HostGroupName\\": \\"group\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"<ListHostGroupsForUserResponse>\\n <TotalCount>1</TotalCount>\\n <RequestId>EC9BF0F4-8983-491A-BC8C-1B4DD94976DE</RequestId>\\n <HostGroups>\\n <Comment>comment</Comment>\\n <HostGroupId>1</HostGroupId>\\n <HostGroupName>group</HostGroupName>\\n </HostGroups>\\n</ListHostGroupsForUserResponse>","errorExample":""}]', + 'title' => 'ListHostGroupsForUser', + 'requestParamsDescription' => 'All Alibaba Cloud API operations must include common request parameters. For more information about common request parameters, see [Common request parameters](~~148139~~). For more information about sample requests, see Sample requests.'."\n", + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'ListHostGroupsForUserGroup' => [ + 'summary' => 'Queries the hosts that a specified user group is authorized or not authorized to manage.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREbastionhost8REEA2', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the bastion host to which the user group belongs.'."\n" + ."\n" + .'> You can call the [DescribeInstances](~~153281~~) operation to query the ID of the bastion host.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'bastionhost-cn-st220aw****', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the bastion host to which the user group belongs.'."\n" + ."\n" + .'> For more information about the mapping between region IDs and region names, see [Regions and zones](~~40654~~).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'Mode', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies the category of the host group that you want to query. Valid values:'."\n" + ."\n" + .'* **Authorized**: queries the host groups that the user group is authorized to manage. This is the default value.'."\n" + .'* **Unauthorized**: queries the host groups that the user group is not authorized to manage.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'Authorized', + ], + ], + [ + 'name' => 'UserGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the user group.'."\n" + ."\n" + .'> You can call the [ListUserGroups](~~204509~~) operation to query the ID of the user group.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '1', + ], + ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of the page to return. Default value: **1**.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '1', + ], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of entries to return on each page.\\'."\n" + .'Maximum value: 100. Default value: 20. If you leave this parameter empty, 20 entries are returned on each page.'."\n" + ."\n" + .'> We recommend that you do not leave this parameter empty.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '20', + ], + ], + [ + 'name' => 'HostGroupName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the host group that you want to query. Only exact match is supported.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'group', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'TotalCount' => [ + 'description' => 'The total number of host groups returned.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '1', + ], + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => 'EC9BF0F4-8983-491A-BC8C-1B4DD94976DE', + ], + 'HostGroups' => [ + 'description' => 'The host groups returned.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'HostGroupId' => [ + 'description' => 'The ID of the host group.'."\n", + 'type' => 'string', + 'example' => '1', + ], + 'Comment' => [ + 'description' => 'The description of the host group.'."\n", + 'type' => 'string', + 'example' => 'comment', + ], + 'HostGroupName' => [ + 'description' => 'The name of the host group.'."\n", + 'type' => 'string', + 'example' => 'group', + ], + ], + ], + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The argument is invalid.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'An unknown error occurred.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"TotalCount\\": 1,\\n \\"RequestId\\": \\"EC9BF0F4-8983-491A-BC8C-1B4DD94976DE\\",\\n \\"HostGroups\\": [\\n {\\n \\"HostGroupId\\": \\"1\\",\\n \\"Comment\\": \\"comment\\",\\n \\"HostGroupName\\": \\"group\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"<ListHostGroupsForUserGroupResponse>\\n <TotalCount>1</TotalCount>\\n <RequestId>EC9BF0F4-8983-491A-BC8C-1B4DD94976DE</RequestId>\\n <HostGroups>\\n <Comment>comment</Comment>\\n <HostGroupId>1</HostGroupId>\\n <HostGroupName>group</HostGroupName>\\n </HostGroups>\\n</ListHostGroupsForUserGroupResponse>","errorExample":""}]', + 'title' => 'ListHostGroupsForUserGroup', + 'requestParamsDescription' => 'All Alibaba Cloud API operations must include common request parameters. For more information about common request parameters, see [Common parameters](~~148139~~). For more information about sample requests, see the "Examples" section of this topic.'."\n", + 'extraInfo' => ' ', + ], + 'ListHostsForUserGroup' => [ + 'summary' => 'Queries the hosts that a user group is authorized or not authorized to manage.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREbastionhostQ6EM52', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the bastion host on which you want to query the hosts that the user group is authorized or not authorized to manage.'."\n" + ."\n" + .'> You can call the [DescribeInstances](~~153281~~) operation to query the ID of the bastion host.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'bastionhost-cn-st220aw****', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the bastion host on which you want to query the hosts that the user group is authorized or not authorized to manage.'."\n" + ."\n" + .'> For more information about the mapping between region IDs and region names, see [Regions and zones](~~40654~~).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'Mode', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies the category of the hosts that you want to query. Valid values:'."\n" + ."\n" + .'* **Authorized**: queries the hosts that the user group is authorized to manage. This is the default value.'."\n" + .'* **Unauthorized**: queries the hosts that the user group is not authorized to manage.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'Authorized', + ], + ], + [ + 'name' => 'UserGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the user group for which you want to query hosts.'."\n" + ."\n" + .'> You can call the [ListUserGroups](~~204509~~) operation to query the ID of the user group.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '1', + ], + ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of the page. Default value: 1.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '1', + ], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of entries per page.\\'."\n" + .'Maximum value: 100. Default value: 20. If you leave this parameter empty, 20 entries are returned per page.'."\n" + ."\n" + .'> We recommend that you do not leave this parameter empty.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '20', + ], + ], + [ + 'name' => 'HostAddress', + 'in' => 'query', + 'schema' => [ + 'description' => 'The endpoint of the host that you want to query. You can set this parameter to a domain name or an IP address. Only exact match is supported.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '192.168.XX.XX', + ], + ], + [ + 'name' => 'HostName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the host that you want to query. Only exact match is supported.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'abc', + ], + ], + [ + 'name' => 'OSType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The operating system of the host that you want to query. Valid values:'."\n" + ."\n" + .'* **Linux**'."\n" + .'* **Windows**'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'Linux', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'TotalCount' => [ + 'description' => 'The total number of hosts returned.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '10', + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'EC9BF0F4-8983-491A-BC8C-1B4DD94976DE', + ], + 'Hosts' => [ + 'description' => 'The hosts returned.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Comment' => [ + 'description' => 'The description of the host.'."\n", + 'type' => 'string', + 'example' => 'comment', + ], + 'ActiveAddressType' => [ + 'description' => 'The address type of the host. Valid values:'."\n" + ."\n" + .'* **Public**: public endpoint'."\n" + .'* **Private**: internal endpoint'."\n", + 'type' => 'string', + 'example' => 'Public', + ], + 'HostPublicAddress' => [ + 'description' => 'The public endpoint of the host. The value is a domain name or an IP address.'."\n", + 'type' => 'string', + 'example' => '10.158.XX.XX', + ], + 'HostName' => [ + 'description' => 'The name of the host.'."\n", + 'type' => 'string', + 'example' => 'host1', + ], + 'HostPrivateAddress' => [ + 'description' => 'The internal endpoint of the host. The value is a domain name or an IP address.'."\n", + 'type' => 'string', + 'example' => '192.168.XX.XX', + ], + 'OSType' => [ + 'description' => 'The operating system of the host. Valid values:'."\n" + ."\n" + .'* **Linux**'."\n" + .'* **Windows**'."\n", + 'type' => 'string', + 'example' => 'Linux', + ], + 'HostId' => [ + 'description' => 'The ID of the host.'."\n", + 'type' => 'string', + 'example' => '1', + ], + ], + ], + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The argument is invalid.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'An unknown error occurred.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"TotalCount\\": 10,\\n \\"RequestId\\": \\"EC9BF0F4-8983-491A-BC8C-1B4DD94976DE\\",\\n \\"Hosts\\": [\\n {\\n \\"Comment\\": \\"comment\\",\\n \\"ActiveAddressType\\": \\"Public\\",\\n \\"HostPublicAddress\\": \\"10.158.XX.XX\\",\\n \\"HostName\\": \\"host1\\",\\n \\"HostPrivateAddress\\": \\"192.168.XX.XX\\",\\n \\"OSType\\": \\"Linux\\",\\n \\"HostId\\": \\"1\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"<ListHostsForUserGroupResponse>\\n <Hosts>\\n <Comment>comment</Comment>\\n <ActiveAddressType>Public</ActiveAddressType>\\n <HostPrivateAddress>192.168.XX.XX</HostPrivateAddress>\\n <HostPublicAddress>10.158.XX.XX</HostPublicAddress>\\n <OSType>Linux</OSType>\\n <HostId>1</HostId>\\n <HostName>host1</HostName>\\n </Hosts>\\n <TotalCount>10</TotalCount>\\n <RequestId>EC9BF0F4-8983-491A-BC8C-1B4DD94976DE</RequestId>\\n</ListHostsForUserGroupResponse>","errorExample":""}]', + 'title' => 'ListHostsForUserGroup', + 'requestParamsDescription' => 'All Alibaba Cloud API operations must include common request parameters. For more information about common request parameters, see [Common parameters](~~148139~~). For more information about sample requests, see the "Examples" section of this topic.'."\n", + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'AttachDatabaseAccountsToUser' => [ + 'summary' => 'Authorizes a user to manage databases and database accounts.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREbastionhost19BKK2', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the bastion host whose user you want to grant permissions.'."\n" + ."\n" + .'> You can call the [DescribeInstances](~~153281~~) operation to query the ID of the bastion host.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'bastionhost-cn-wwo36qbv601', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the bastion host.'."\n" + ."\n" + .'> For more information about the mapping between region IDs and region names, see [Regions and zones](~~40654~~).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'UserId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the user to be authorized.'."\n" + ."\n" + .'> You can call the [ListUsers](~~204522~~) operation to query the user ID.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '1', + ], + ], + [ + 'name' => 'Databases', + 'in' => 'query', + 'style' => 'flat', + 'schema' => [ + 'description' => 'An array that consists of database objects.'."\n" + ."\n" + .'> You can specify up to 10 databases and 10 database accounts. The database accounts are not required. If you do not specify a database account, the user is authorized to manage only the databases.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'DatabaseId' => [ + 'description' => 'The ID of the database that you want to authorize the user to manage.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '22', + ], + 'DatabaseAccountIds' => [ + 'description' => 'An array that consists of database account IDs.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The database account ID.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '["1","2","3"]', + ], + 'required' => false, + ], + ], + 'required' => false, + ], + 'required' => false, + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '23120B8E-8737-50BD-A3A3-902A7821F04D', + ], + 'Results' => [ + 'description' => 'The result of the call.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Code' => [ + 'description' => 'The error code that is returned. If **OK** is returned, the authorization was successful. If another error code is returned, the authorization failed.'."\n", + 'type' => 'string', + 'example' => 'OK', + ], + 'DatabaseAccounts' => [ + 'description' => 'A list that shows the authorization results of the database accounts.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Code' => [ + 'description' => 'The error code that is returned. If OK is returned, the authorization was successful. If another error code is returned, the authorization failed.'."\n", + 'type' => 'string', + 'example' => 'OK', + ], + 'DatabaseAccountId' => [ + 'description' => 'The database account ID.'."\n", + 'type' => 'string', + 'example' => '6', + ], + 'Message' => [ + 'description' => 'The error message that is returned.'."\n", + 'type' => 'string', + 'example' => 'success', + ], + ], + ], + ], + 'DatabaseId' => [ + 'description' => 'The database ID.'."\n", + 'type' => 'string', + 'example' => '22', + ], + 'Message' => [ + 'description' => 'The error message that is returned.'."\n", + 'type' => 'string', + 'example' => '', + ], + 'UserId' => [ + 'description' => 'The user ID.'."\n", + 'type' => 'string', + 'example' => '1', + ], + ], + ], + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The argument is invalid.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'An unknown error occurred.', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"23120B8E-8737-50BD-A3A3-902A7821F04D\\",\\n \\"Results\\": [\\n {\\n \\"Code\\": \\"OK\\",\\n \\"DatabaseAccounts\\": [\\n {\\n \\"Code\\": \\"OK\\",\\n \\"DatabaseAccountId\\": \\"6\\",\\n \\"Message\\": \\"success\\"\\n }\\n ],\\n \\"DatabaseId\\": \\"22\\",\\n \\"Message\\": \\"None\\",\\n \\"UserId\\": \\"1\\"\\n }\\n ]\\n}","type":"json"}]', + 'title' => 'AttachDatabaseAccountsToUser', + 'requestParamsDescription' => 'Data structures of request parameters'."\n" + ."\n" + .'Databases'."\n" + ."\n" + .'|Field|Type|Description|'."\n" + .'|---|---|---|'."\n" + .'|DatabaseId|string|The database ID.|'."\n" + .'|DatabaseAccountIds|array\\[string\\]|An array that consists of database account IDs. You can specify up to 10 IDs.|'."\n" + ."\n" + .'The following code provides example values of the Databases parameter:'."\n" + ."\n" + .'```'."\n" + .'['."\n" + .'{"DatabaseId":"1"} // Authorize the user to manage only the database.{"DatabaseId":"2","DatabaseAccountIds":["1","2","3",...]}, // Authorize the user to manage the database and database accounts.{"DatabaseId":"5","DatabaseAccountIds":[]} // Not supported.]'."\n" + .'```', + ], + 'ListDatabasesForUser' => [ + 'summary' => 'Queries the databases that a user is authorized to manage.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREbastionhost19BKK2', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The bastion host ID.'."\n" + ."\n" + .'> You can call the [DescribeInstances](~~153281~~) operation to query the bastion host ID.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'bastionhost-cn-tl32swayw7o', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the bastion host.'."\n" + ."\n" + .'> For more information about the mapping between region IDs and region names, see [Regions and zones](~~40654~~).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'UserId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the user to query.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '3', + ], + ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => [ + 'description' => 'The page number. Default value: **1**. Pages start from page 1.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '1', + ], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of entries per page.\\'."\n" + .'Valid values: 1 to 100. Default value: 20. If you leave this parameter empty, 20 entries are returned on each page.'."\n" + ."\n" + .'> We recommend that you do not leave this parameter empty.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '20', + ], + ], + [ + 'name' => 'DatabaseName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the database to query.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'MySQL-8.0', + ], + ], + [ + 'name' => 'DatabaseAddress', + 'in' => 'query', + 'schema' => [ + 'description' => 'The address of the database to query. Only exact match is supported.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '47.101.**.**', + ], + ], + [ + 'name' => 'DatabaseType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The engine of the database to query. Valid values:'."\n" + ."\n" + .'* **MySQL**'."\n" + .'* **Oracle**'."\n" + .'* **PostgreSQL**'."\n" + .'* **SQLServer**'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'MySQL', + ], + ], + [ + 'name' => 'NetworkDomainId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the network domain where the database to query resides.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '5', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'Databases' => [ + 'description' => 'The databases returned.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'ActiveAddressType' => [ + 'description' => 'The address type of the database. Valid values:'."\n" + ."\n" + .'* **Public**'."\n" + .'* **Private**'."\n", + 'type' => 'string', + 'example' => 'Private', + ], + 'Comment' => [ + 'description' => 'The remarks of the database.'."\n", + 'type' => 'string', + 'example' => 'comment', + ], + 'DatabaseId' => [ + 'description' => 'The database ID.'."\n", + 'type' => 'string', + 'example' => '36', + ], + 'DatabaseName' => [ + 'description' => 'The database name.'."\n", + 'type' => 'string', + 'example' => 'MySQL56', + ], + 'DatabasePort' => [ + 'description' => 'The database port.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '3306', + ], + 'DatabasePrivateAddress' => [ + 'description' => 'The internal endpoint of the database. The value is a domain name or an IP address.'."\n", + 'type' => 'string', + 'example' => 'rm-wz97******', + ], + 'DatabasePublicAddress' => [ + 'description' => 'The public endpoint of the database. The value is a domain name or an IP address.'."\n", + 'type' => 'string', + 'example' => 'rm-uf65******', + ], + 'DatabaseType' => [ + 'description' => 'The database engine. Valid values:'."\n" + ."\n" + .'* **MySQL**'."\n" + .'* **Oracle**'."\n" + .'* **PostgreSQL**'."\n" + .'* **SQLServer**'."\n", + 'type' => 'string', + 'example' => 'MySQL', + ], + 'NetworkDomainId' => [ + 'description' => 'The ID of the network domain where the database resides.'."\n", + 'type' => 'string', + 'example' => '2', + ], + 'Source' => [ + 'description' => 'The database type. Valid values:'."\n" + ."\n" + .'* **Local**: on-premises database.'."\n" + .'* **Rds**: ApsaraDB RDS instance.'."\n" + .'* **PolarDB**: PolarDB cluster.'."\n", + 'type' => 'string', + 'example' => 'Local', + ], + 'SourceInstanceId' => [ + 'description' => 'The ID of the ApsaraDB RDS instance or PolarDB cluster.'."\n" + ."\n" + .'> No value is returned for this parameter if **Source** is set to **Local**.'."\n", + 'type' => 'string', + 'example' => 'i-wz9fv2hwux78x9h1pmje', + ], + ], + ], + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'A8A665B9-8550-4942-9DEE-73198051856B', + ], + 'TotalCount' => [ + 'description' => 'The total number of databases returned.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '15', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The argument is invalid.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'An unknown error occurred.', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Databases\\": [\\n {\\n \\"ActiveAddressType\\": \\"Private\\",\\n \\"Comment\\": \\"comment\\",\\n \\"DatabaseId\\": \\"36\\",\\n \\"DatabaseName\\": \\"MySQL56\\",\\n \\"DatabasePort\\": 3306,\\n \\"DatabasePrivateAddress\\": \\"192.168.XX.XX\\",\\n \\"DatabasePublicAddress\\": \\"www.example.com\\",\\n \\"DatabaseType\\": \\"MySQL\\",\\n \\"NetworkDomainId\\": \\"2\\",\\n \\"Source\\": \\"Local\\",\\n \\"SourceInstanceId\\": \\"i-wz9fv2hwux78x9******\\"\\n }\\n ],\\n \\"RequestId\\": \\"A8A665B9-8550-4942-9DEE-73198051856B\\",\\n \\"TotalCount\\": 15\\n}","type":"json"}]', + 'title' => 'ListDatabasesForUser', + ], + 'DetachDatabaseAccountsFromUserGroup' => [ + 'summary' => 'Revokes permissions on databases and database accounts from a user group.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREbastionhost19BKK2', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The bastion host ID.'."\n" + ."\n" + .'> You can call the [DescribeInstances](~~153281~~) operation to query the bastion host ID.', + 'type' => 'string', + 'required' => true, + 'example' => 'bastionhost-cn-7mz2v120f0y', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the bastion host.'."\n" + ."\n" + .'> For more information about the mapping between region IDs and region names, see [Regions and zones](~~40654~~).', + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'UserGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the user group from which you want to revoke permissions on databases and database accounts.'."\n" + ."\n" + .'> You can call the [ListUserGroups](~~204509~~) operation to query the ID of the user group.', + 'type' => 'string', + 'required' => true, + 'example' => '1', + ], + ], + [ + 'name' => 'Databases', + 'in' => 'query', + 'style' => 'flat', + 'schema' => [ + 'description' => 'The information about the database.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'DatabaseId' => [ + 'description' => 'The ID of the database on which the permissions are to be revoked.', + 'type' => 'string', + 'required' => false, + 'example' => '4', + ], + 'DatabaseAccountIds' => [ + 'description' => 'An array that consists of database account IDs.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The IDs of the database accounts on which the permissions are to be revoked.', + 'type' => 'string', + 'required' => false, + 'example' => '["1","2","3"]', + ], + 'required' => false, + ], + ], + 'required' => false, + ], + 'required' => false, + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'AC528ED1-C302-56E5-9CB5-ADA625D64FF9', + ], + 'Results' => [ + 'description' => 'The result of the call.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Code' => [ + 'description' => 'The error code that is returned. If OK is returned, the operation was successful. If other error codes are returned, the operation failed.', + 'type' => 'string', + 'example' => 'OK', + ], + 'DatabaseAccounts' => [ + 'description' => 'A list that shows the authorization results of the database accounts.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Code' => [ + 'description' => 'The error code that is returned. If OK is returned, the operation was successful. If other error codes are returned, the operation failed.', + 'type' => 'string', + 'example' => 'OK', + ], + 'DatabaseAccountId' => [ + 'description' => 'The ID of the database account on which the permissions are revoked.', + 'type' => 'string', + 'example' => '5', + ], + 'Message' => [ + 'description' => 'The error message that is returned.', + 'type' => 'string', + 'example' => 'N/A', + ], + ], + ], + ], + 'DatabaseId' => [ + 'description' => 'The ID of the database on which the permissions are revoked.', + 'type' => 'string', + 'example' => '27', + ], + 'Message' => [ + 'description' => 'The error message that is returned.', + 'type' => 'string', + 'example' => 'N/A', + ], + 'UserGroupId' => [ + 'description' => 'The user group ID.', + 'type' => 'string', + 'example' => '3', + ], + ], + ], + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The argument is invalid.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'An unknown error occurred.', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"AC528ED1-C302-56E5-9CB5-ADA625D64FF9\\",\\n \\"Results\\": [\\n {\\n \\"Code\\": \\"OK\\",\\n \\"DatabaseAccounts\\": [\\n {\\n \\"Code\\": \\"OK\\",\\n \\"DatabaseAccountId\\": \\"5\\",\\n \\"Message\\": \\"None\\"\\n }\\n ],\\n \\"DatabaseId\\": \\"27\\",\\n \\"Message\\": \\"None\\",\\n \\"UserGroupId\\": \\"3\\"\\n }\\n ]\\n}","type":"json"}]', + 'title' => 'DetachDatabaseAccountsFromUserGroup', + 'requestParamsDescription' => 'Data structures of request parameters'."\n" + ."\n" + .'| Parameter | Type | Description |'."\n" + .'|-------|-------|-------|'."\n" + .'| DatabaseId | string | The database ID.|'."\n" + .'| DatabaseAccountIds | array[string] | An array of database account IDs. Specify a JSON string. You can specify up to 10 database account IDs. |'."\n" + ."\n" + .'The following code provides example values of the Databases parameter:'."\n" + ."\n" + .'```'."\n" + .'['."\n" + .'{"DatabaseId":"1"} // Revoke the permissions on the database and database accounts.'."\n" + .'{"DatabaseId":"2","DatabaseAccountIds":["1","2","3",...]}, // Revoke the permissions on only database accounts.'."\n" + .'{"DatabaseId":"5","DatabaseAccountIds":[]} // Not supported.'."\n" + .'...'."\n" + .']'."\n" + .'```', + ], + 'ListDatabaseAccountsForUser' => [ + 'summary' => 'Queries the database accounts of a database and whether a user is authorized to manage each database account.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREbastionhost19BKK2', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The bastion host ID.'."\n" + ."\n" + .'> You can call the [DescribeInstances](~~153281~~) operation to query the bastion host ID.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'bastionhost-cn-zz42zoqql01', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the bastion host.'."\n" + ."\n" + .'> For more information about the mapping between region IDs and region names, see [Regions and zones](~~40654~~).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-shanghai', + ], + ], + [ + 'name' => 'UserId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the user to query. This operation returns whether the user is authorized to manage each database account.'."\n" + ."\n" + .'> You can call the ListUsers operation to query the ID of the user.[](~~204522~~)'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '2', + ], + ], + [ + 'name' => 'DatabaseId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the database whose accounts you want to query.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '89', + ], + ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => [ + 'description' => 'The page number. Default value: **1**.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '1', + ], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of entries per page.\\'."\n" + .'Valid values: 1 to 100. Default value: 20. If you leave this parameter empty, 20 entries are returned on each page.'."\n" + ."\n" + .'> We recommend that you do not leave this parameter empty.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '20', + ], + ], + [ + 'name' => 'DatabaseAccountName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the database account to query. The name can be up to 128 characters in length. Only exact match is supported.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'test', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'DatabaseAccounts' => [ + 'description' => 'The database accounts returned.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'DatabaseAccountId' => [ + 'description' => 'The database account ID.'."\n", + 'type' => 'string', + 'example' => '6', + ], + 'DatabaseAccountName' => [ + 'description' => 'The name of the database account.'."\n", + 'type' => 'string', + 'example' => 'test', + ], + 'DatabaseId' => [ + 'description' => 'The ID of the database to which the database account belongs.'."\n", + 'type' => 'string', + 'example' => '70', + ], + 'IsAuthorized' => [ + 'description' => 'Indicates whether the user is authorized to manage the database account. Valid values:'."\n" + ."\n" + .'* **true**'."\n" + .'* **false**'."\n", + 'type' => 'boolean', + 'example' => 'true', + ], + 'ProtocolName' => [ + 'description' => 'The protocol used by the database account. Valid values:'."\n" + ."\n" + .'* **MySQL**'."\n" + .'* **Oracle**'."\n" + .'* **PostgreSQL**'."\n" + .'* **SQLServer**'."\n", + 'type' => 'string', + 'example' => 'MySQL', + ], + ], + ], + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '00E3701B-3616-55FE-93EC-E7CF5480B654', + ], + 'TotalCount' => [ + 'description' => 'The total number of database accounts that are returned.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '3', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The argument is invalid.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'An unknown error occurred.', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"DatabaseAccounts\\": [\\n {\\n \\"DatabaseAccountId\\": \\"6\\",\\n \\"DatabaseAccountName\\": \\"test\\",\\n \\"DatabaseId\\": \\"70\\",\\n \\"IsAuthorized\\": true,\\n \\"ProtocolName\\": \\"MySQL\\"\\n }\\n ],\\n \\"RequestId\\": \\"00E3701B-3616-55FE-93EC-E7CF5480B654\\",\\n \\"TotalCount\\": 3\\n}","type":"json"}]', + 'title' => 'ListDatabaseAccountsForUser', + ], + 'DetachDatabaseAccountsFromUser' => [ + 'summary' => 'Revokes permissions on databases and database accounts from a user.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'delete', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREbastionhost19BKK2', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The bastion host ID.'."\n" + ."\n" + .'> You can call the DescribeInstances operation to query the bastion host ID.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'bastionhost-cn-pe335ipfk01', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the bastion host.'."\n" + ."\n" + .'> For more information about the mapping between region IDs and region names, see [Regions and zones](~~40654~~).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-shanghai', + ], + ], + [ + 'name' => 'UserId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the user from whom you want to revoke the permissions on databases and database accounts.'."\n" + ."\n" + .'> You can call the [ListUsers](~~204522~~) operation to query the ID of the user.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '1', + ], + ], + [ + 'name' => 'Databases', + 'in' => 'query', + 'style' => 'flat', + 'schema' => [ + 'description' => 'The databases.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'DatabaseId' => [ + 'description' => 'The ID of the database on which you want to revoke permissions.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '8', + ], + 'DatabaseAccountIds' => [ + 'description' => 'An array that consists of database account IDs.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The IDs of the database accounts on which you want to revoke permissions.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '["1","2","3"]', + ], + 'required' => false, + ], + ], + 'required' => false, + ], + 'required' => false, + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '79D7E114-CB52-5695-AB15-12776C308387', + ], + 'Results' => [ + 'description' => 'The result of the call.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Code' => [ + 'description' => 'The error code that is returned. If **OK** is returned, the operation was successful. If another error code is returned, the operation failed.'."\n", + 'type' => 'string', + 'example' => 'OK', + ], + 'DatabaseAccounts' => [ + 'description' => 'A list that shows the operation results of the database accounts.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'Code' => [ + 'description' => 'The error code that is returned. If OK is returned, the operation was successful. If another error code is returned, the operation failed.'."\n", + 'type' => 'string', + 'example' => 'OK', + ], + 'DatabaseAccountId' => [ + 'description' => 'The ID of the database account on which the permissions are revoked.'."\n", + 'type' => 'string', + 'example' => '9', + ], + 'Message' => [ + 'description' => 'The error message that is returned.'."\n", + 'type' => 'string', + 'example' => '', + ], + ], + ], + ], + 'DatabaseId' => [ + 'description' => 'The ID of the database on which the permissions are revoked.'."\n", + 'type' => 'string', + 'example' => '4', + ], + 'Message' => [ + 'description' => 'The error message that is returned.'."\n", + 'type' => 'string', + 'example' => '', + ], + 'UserId' => [ + 'description' => 'The user ID.'."\n", + 'type' => 'string', + 'example' => '1', + ], + ], + ], + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The argument is invalid.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'An unknown error occurred.', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"79D7E114-CB52-5695-AB15-12776C308387\\",\\n \\"Results\\": [\\n {\\n \\"Code\\": \\"OK\\",\\n \\"DatabaseAccounts\\": [\\n {\\n \\"Code\\": \\"OK\\",\\n \\"DatabaseAccountId\\": \\"9\\",\\n \\"Message\\": \\"None\\"\\n }\\n ],\\n \\"DatabaseId\\": \\"4\\",\\n \\"Message\\": \\"None\\",\\n \\"UserId\\": \\"1\\"\\n }\\n ]\\n}","type":"json"}]', + 'title' => 'DetachDatabaseAccountsFromUser', + 'requestParamsDescription' => 'Data structures of request parameters'."\n" + ."\n" + .'Databases'."\n" + ."\n" + .'|Parameter|Type|Description|'."\n" + .'|---|---|---|'."\n" + .'|DatabaseId|string|The database ID.|'."\n" + .'|DatabaseAccountIds|array\\[string\\]|An array that consists of database account IDs. Specify a JSON string. You can specify up to 10 database account IDs.|'."\n" + ."\n" + .'The following code provides example values of Databases:'."\n" + ."\n" + .'```'."\n" + .'['."\n" + .'{"DatabaseId":"1"} // Revoke permissions on the database and the database accounts.'."\n" + .'{"DatabaseId":"2","DatabaseAccountIds":["1","2","3",...]}, // Revoke permissions on only the database accounts.'."\n" + .'{"DatabaseId":"5","DatabaseAccountIds":[]} // Not supported.'."\n" + .'...'."\n" + .']'."\n" + .'```', + ], + 'AttachDatabaseAccountsToUserGroup' => [ + 'summary' => 'Authorizes a user group to manage databases and database accounts.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREbastionhost19BKK2', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The bastion host ID.'."\n" + ."\n" + .'> You can call the [DescribeInstances](~~153281~~) operation to query the bastion host ID.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'bastionhost-cn-zvp282aly06', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the bastion host.'."\n" + ."\n" + .'> For more information about the mapping between region IDs and region names, see [Regions and zones](~~40654~~).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'UserGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => true, + 'example' => '2', + ], + ], + [ + 'name' => 'Databases', + 'in' => 'query', + 'style' => 'flat', + 'schema' => [ + 'description' => 'An array that consists of the database objects.'."\n" + ."\n" + .'> You can specify up to 10 databases and 10 database accounts. The database accounts are not required. If you do not specify a database account, the user group is authorized to manage only the databases.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'DatabaseId' => [ + 'description' => 'The ID of the database that you want to authorize the user group to manage.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '58', + ], + 'DatabaseAccountIds' => [ + 'description' => 'An array that consists of database account IDs.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The ID of a database account.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '["1","2","3"]', + ], + 'required' => false, + ], + ], + 'required' => false, + ], + 'required' => false, + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '5D0EB759-CB0A-537D-A2CC-13A9854FA08D', + ], + 'Results' => [ + 'description' => 'The result of the call.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Code' => [ + 'description' => 'The error code returned. If OK is returned, the authorization was successful. If another error code is returned, the authorization failed.'."\n", + 'type' => 'string', + 'example' => 'OK', + ], + 'DatabaseAccounts' => [ + 'description' => 'A list that shows the authorization results of the database accounts.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Code' => [ + 'description' => 'The error code returned. If OK is returned, the authorization was successful. If another error code is returned, the authorization failed.'."\n", + 'type' => 'string', + 'example' => 'OK', + ], + 'DatabaseAccountId' => [ + 'description' => 'The database account ID.'."\n", + 'type' => 'string', + 'example' => '8', + ], + 'Message' => [ + 'description' => 'The error message returned.'."\n", + 'type' => 'string', + 'example' => '', + ], + ], + ], + ], + 'DatabaseId' => [ + 'description' => 'The database ID.'."\n", + 'type' => 'string', + 'example' => '2', + ], + 'Message' => [ + 'description' => 'The error message returned.'."\n", + 'type' => 'string', + 'example' => '', + ], + 'UserGroupId' => [ + 'description' => 'The user group ID.'."\n", + 'type' => 'string', + 'example' => '1', + ], + ], + ], + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The argument is invalid.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'An unknown error occurred.', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"5D0EB759-CB0A-537D-A2CC-13A9854FA08D\\",\\n \\"Results\\": [\\n {\\n \\"Code\\": \\"OK\\",\\n \\"DatabaseAccounts\\": [\\n {\\n \\"Code\\": \\"OK\\",\\n \\"DatabaseAccountId\\": \\"8\\",\\n \\"Message\\": \\"NULL\\"\\n }\\n ],\\n \\"DatabaseId\\": \\"2\\",\\n \\"Message\\": \\"NULL\\",\\n \\"UserGroupId\\": \\"1\\"\\n }\\n ]\\n}","type":"json"}]', + 'title' => 'AttachDatabaseAccountsToUserGroup', + 'requestParamsDescription' => 'Data structures of request parameters'."\n" + ."\n" + .'|Parameter|Type|Description|'."\n" + .'|---|---|---|'."\n" + .'|DatabaseId|string|The database ID.|'."\n" + .'|DatabaseAccountIds|array\\[string\\]|An array that consists of database account IDs. You can specify up to 10 IDs.|'."\n" + ."\n" + .'The following code provides example values of the Databases parameter:'."\n" + ."\n" + .'```'."\n" + .'['."\n" + .'{"DatabaseId":"1"} // Authorize the user group to manage only the database.'."\n" + .'{"DatabaseId":"2","DatabaseAccountIds":["1","2","3",...]}, // Authorize the user group to manage the database and database accounts.'."\n" + .'{"DatabaseId":"5","DatabaseAccountIds":[]} // Not supported.'."\n" + .']'."\n" + .'```', + ], + 'ListDatabasesForUserGroup' => [ + 'summary' => 'Queries the databases that a user group is authorized to manage.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREbastionhostXV4JIF', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The bastion host ID.'."\n" + ."\n" + .'> You can call the [DescribeInstances](~~153281~~) operation to query the bastion host ID.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'bastionhost-cn-7mz2ve7h00a', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the bastion host.'."\n" + ."\n" + .'> For more information about the mapping between region IDs and region names, see [Regions and zones](~~40654~~).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'UserGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the user group to query.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '2', + ], + ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => [ + 'description' => 'The page number. Default value: 1.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '1', + ], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of entries per page.\\'."\n" + .'Valid values: 1 to 100. Default value: 20. If you leave this parameter empty, 20 entries are returned on each page.'."\n" + ."\n" + .'> We recommend that you do not leave this parameter empty.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '20', + ], + ], + [ + 'name' => 'DatabaseName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the database to query.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'test', + ], + ], + [ + 'name' => 'DatabaseAddress', + 'in' => 'query', + 'schema' => [ + 'description' => 'The address of the database to query. Only exact match is supported.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '47.101.**.**'."\n", + ], + ], + [ + 'name' => 'DatabaseType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The engine of the database to query. Valid values:'."\n" + ."\n" + .'* **MySQL**'."\n" + .'* **Oracle**'."\n" + .'* **PostgreSQL**'."\n" + .'* **SQLServer**'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'MySQL', + ], + ], + [ + 'name' => 'NetworkDomainId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => '2', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'Databases' => [ + 'description' => 'The databases returned.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'ActiveAddressType' => [ + 'description' => 'The address type of the database. Valid values:'."\n" + ."\n" + .'* **Public**'."\n" + .'* **Private**'."\n", + 'type' => 'string', + 'example' => 'Private', + ], + 'Comment' => [ + 'description' => 'The remarks of the database.'."\n", + 'type' => 'string', + 'example' => 'comment', + ], + 'DatabaseAccountCount' => [ + 'description' => 'The total number of database accounts returned.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '2', + ], + 'DatabaseId' => [ + 'description' => 'The ID of the database to which the database account belongs.'."\n", + 'type' => 'string', + 'example' => '2', + ], + 'DatabaseName' => [ + 'description' => 'The name of the database.'."\n", + 'type' => 'string', + 'example' => 'MySQL0', + ], + 'DatabasePort' => [ + 'description' => 'The port of the database.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '3306', + ], + 'DatabasePrivateAddress' => [ + 'description' => 'The internal address of the database. The value is a domain name or an IP address.'."\n", + 'type' => 'string', + 'example' => 'rm-bp1******', + ], + 'DatabasePublicAddress' => [ + 'description' => 'The public address of the database. The value is a domain name or an IP address.'."\n", + 'type' => 'string', + 'example' => 'rm-uf65******', + ], + 'DatabaseType' => [ + 'description' => 'The database engine. Valid values:'."\n" + ."\n" + .'* **MySQL**'."\n" + .'* **Oracle**'."\n" + .'* **PostgreSQL**'."\n" + .'* **SQLServer**'."\n", + 'type' => 'string', + 'example' => 'MySQL', + ], + 'NetworkDomainId' => [ + 'description' => 'The ID of the network domain where the database resides.'."\n", + 'type' => 'string', + 'example' => '5', + ], + 'Source' => [ + 'description' => 'The type of the database. Valid values:'."\n" + ."\n" + .'* **Local**: on-premises database.'."\n" + .'* **Rds**: ApsaraDB RDS instance.'."\n" + .'* **PolarDB**: PolarDB cluster.'."\n", + 'type' => 'string', + 'example' => 'Local', + ], + 'SourceInstanceId' => [ + 'description' => 'The ID of the ApsaraDB RDS instance or PolarDB cluster.'."\n" + ."\n" + .'> No value is returned for this parameter if **Source** is set to **Local**.'."\n", + 'type' => 'string', + 'example' => 'i-wz9c7mjxywmdmqk7q6e4', + ], + ], + ], + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'EC9BF0F4-8983-491A-BC8C-1B4DD94976DE', + ], + 'TotalCount' => [ + 'description' => 'The total number of databases returned.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '15', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The argument is invalid.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'An unknown error occurred.', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Databases\\": [\\n {\\n \\"ActiveAddressType\\": \\"Private\\",\\n \\"Comment\\": \\"comment\\",\\n \\"DatabaseAccountCount\\": 2,\\n \\"DatabaseId\\": \\"2\\",\\n \\"DatabaseName\\": \\"MySQL0\\",\\n \\"DatabasePort\\": 3306,\\n \\"DatabasePrivateAddress\\": \\"rm-bp1******\\",\\n \\"DatabasePublicAddress\\": \\"rm-uf65******\\",\\n \\"DatabaseType\\": \\"MySQL\\",\\n \\"NetworkDomainId\\": \\"5\\",\\n \\"Source\\": \\"Local\\",\\n \\"SourceInstanceId\\": \\"i-wz9c7mjxywmdmqk7q6e4\\"\\n }\\n ],\\n \\"RequestId\\": \\"EC9BF0F4-8983-491A-BC8C-1B4DD94976DE\\",\\n \\"TotalCount\\": 15\\n}","type":"json"}]', + 'title' => 'ListDatabasesForUserGroup', + ], + 'ListOperationDatabases' => [ + 'summary' => 'Queries a list of databases that the current Resource Access Management (RAM) user is authorized to manage.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'list', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREbastionhostEW7NXQ', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The bastion host ID.'."\n" + ."\n" + .'> You can call the [DescribeInstances](~~153281~~) operation to query the bastion host ID.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'bastionhost-cn-tl32wloo90y', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the bastion host.'."\n" + ."\n" + .'> For more information about the mapping between region IDs and region names, see [Regions and zones](~~40654~~).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-shanghai', + ], + ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => [ + 'description' => 'The page number. Default value: **1**.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '1', + ], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of entries per page.\\'."\n" + .'Maximum value: 100. Default value: 20. If you leave this parameter empty, 20 entries are returned on each page.'."\n" + ."\n" + .'> We recommend that you do not leave this parameter empty.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '20', + ], + ], + [ + 'name' => 'DatabaseType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The type of the database. Valid values:'."\n" + ."\n" + .'* **MySQL**'."\n" + .'* **SQLServer**'."\n" + .'* **Oracle**'."\n" + .'* **PostgreSQL**'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'MySQL', + ], + ], + [ + 'name' => 'DatabaseName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the database instance. The system supports exact search.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'aaa', + ], + ], + [ + 'name' => 'DatabaseAddress', + 'in' => 'query', + 'schema' => [ + 'description' => 'The address of the database.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '10.167.66.167', + ], + ], + [ + 'name' => 'Source', + 'in' => 'query', + 'schema' => [ + 'description' => 'The source of the database instance. Valid values:'."\n" + ."\n" + .'* **Local**'."\n" + .'* **Rds**'."\n" + .'* **PolarDB**'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'Local', + ], + ], + [ + 'name' => 'SourceInstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the ApsaraDB RDS instance. The system supports exact search.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'i-bp19ienyt0yax748****', + ], + ], + [ + 'name' => 'SourceInstanceState', + 'in' => 'query', + 'schema' => [ + 'description' => 'The instance state.'."\n" + ."\n" + .'* **Normal**'."\n" + .'* **RemoteRelease**'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'Normal', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'Databases' => [ + 'description' => 'The databases returned.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'ActiveAddressType' => [ + 'description' => 'The address type of the database. Valid values:'."\n" + ."\n" + .'* **Public**'."\n" + .'* **Private**'."\n", + 'type' => 'string', + 'example' => 'Private', + ], + 'Comment' => [ + 'description' => 'The remarks of the database.'."\n", + 'type' => 'string', + 'example' => 'cpp', + ], + 'DatabaseId' => [ + 'description' => 'The database ID.'."\n", + 'type' => 'string', + 'example' => '26', + ], + 'DatabaseName' => [ + 'description' => 'The database name.'."\n", + 'type' => 'string', + 'example' => 'zDatabase', + ], + 'DatabasePort' => [ + 'description' => 'The port of the database.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '3306', + ], + 'DatabasePrivateAddress' => [ + 'description' => 'The private address of the database.'."\n", + 'type' => 'string', + 'example' => 'rm-b******9b.mysql.rds.aliyuncs.com', + ], + 'DatabasePublicAddress' => [ + 'description' => 'The public address of the database.'."\n", + 'type' => 'string', + 'example' => 'rm-uf******p45.mysql.rds.aliyuncs.com', + ], + 'DatabaseType' => [ + 'description' => 'The database engine. Valid values:'."\n" + ."\n" + .'* **MySQL**'."\n" + .'* **PostgreSQL**'."\n" + .'* **Oracle**'."\n" + .'* **SQLServer**'."\n", + 'type' => 'string', + 'example' => 'MySQL', + ], + 'Source' => [ + 'description' => 'The database type. Valid values:'."\n" + ."\n" + .'* **Local**: on-premises database.'."\n" + .'* **Rds**: ApsaraDB RDS instance.'."\n" + .'* **PolarDB**: PolarDB cluster.'."\n", + 'type' => 'string', + 'example' => 'Local', + ], + 'SourceInstanceId' => [ + 'description' => 'The ID of the ApsaraDB RDS instance.'."\n", + 'type' => 'string', + 'example' => 'i-wz9225bhipya******', + ], + 'SourceInstanceRegionId' => [ + 'description' => 'The region ID of the ApsaraDB RDS instance.'."\n", + 'type' => 'string', + 'example' => 'cn-shanghai', + ], + 'SourceInstanceState' => [ + 'description' => 'The database status. Valid values:'."\n" + ."\n" + .'* **Normal**'."\n" + .'* **Release**'."\n", + 'type' => 'string', + 'example' => 'Normal', + ], + ], + ], + ], + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => 'EC9BF0F4-8983-491A-BC8C-1B4DD94976DE', + ], + 'TotalCount' => [ + 'description' => 'The total number of entries returned.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '15', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The argument is invalid.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'An unknown error occurred.', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Databases\\": [\\n {\\n \\"ActiveAddressType\\": \\"Private\\",\\n \\"Comment\\": \\"cpp\\",\\n \\"DatabaseId\\": \\"26\\",\\n \\"DatabaseName\\": \\"zDatabase\\",\\n \\"DatabasePort\\": 3306,\\n \\"DatabasePrivateAddress\\": \\"rm-b******9b.mysql.rds.aliyuncs.com\\",\\n \\"DatabasePublicAddress\\": \\"rm-uf******p45.mysql.rds.aliyuncs.com\\",\\n \\"DatabaseType\\": \\"MySQL\\",\\n \\"Source\\": \\"Local\\",\\n \\"SourceInstanceId\\": \\"i-wz9225bhipya******\\",\\n \\"SourceInstanceRegionId\\": \\"cn-shanghai\\",\\n \\"SourceInstanceState\\": \\"Normal\\"\\n }\\n ],\\n \\"RequestId\\": \\"EC9BF0F4-8983-491A-BC8C-1B4DD94976DE\\",\\n \\"TotalCount\\": 15\\n}","type":"json"}]', + 'title' => 'ListOperationDatabases', + ], + 'ListOperationHosts' => [ + 'summary' => 'Queries a list of hosts that the current Resource Access Management (RAM) user is authorized to manage.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'list', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREbastionhostHPIB1A', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the bastion host.'."\n" + ."\n" + .'> You can call the [DescribeInstances](~~153281~~) operation to query the ID of the bastion host.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'bastionhost-cn-09k22avmw0q', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the bastion host.'."\n" + ."\n" + .'> For more information about the mapping between region IDs and region names, see [Regions and zones](~~40654~~).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => [ + 'description' => 'The page number. Default value: 1.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '1', + ], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of entries per page.\\'."\n" + .'Maximum value: 100. Default value: 20. If you leave this parameter empty, 20 entries are returned on each page.'."\n" + ."\n" + .'> We recommend that you do not leave this parameter empty.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '20', + ], + ], + [ + 'name' => 'OSType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The operating system of the host that you want to query. Valid values:'."\n" + ."\n" + .'* **Linux**'."\n" + .'* **Windows**'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'Linux', + ], + ], + [ + 'name' => 'HostName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the host that you want to query. Only exact match is supported.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'abc', + ], + ], + [ + 'name' => 'HostAddress', + 'in' => 'query', + 'schema' => [ + 'description' => 'The address of the host that you want to query. You can set this parameter to a domain name or an IP address. Only exact match is supported.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '10.162.172.132', + ], + ], + [ + 'name' => 'Source', + 'in' => 'query', + 'schema' => [ + 'description' => 'The source of the host that you want to query. Valid values:'."\n" + ."\n" + .'* **Local**'."\n" + .'* **Ecs**'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'Local', + ], + ], + [ + 'name' => 'SourceInstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Elastic Compute Service (ECS) instance. Exact match is supported.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'i-bp19ienyt0yax748****', + ], + ], + [ + 'name' => 'SourceInstanceState', + 'in' => 'query', + 'schema' => [ + 'description' => 'The status of the host that you want to query. Valid values:'."\n" + ."\n" + .'* **Normal**'."\n" + .'* **Release**'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'Normal', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'Hosts' => [ + 'description' => 'The hosts returned.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'ActiveAddressType' => [ + 'description' => 'The address type of the host. Valid values:'."\n" + ."\n" + .'* **Public**'."\n" + .'* **Private**'."\n", + 'type' => 'string', + 'example' => 'Public', + ], + 'Comment' => [ + 'description' => 'The remarks of the host.'."\n", + 'type' => 'string', + 'example' => 'comment', + ], + 'HostId' => [ + 'description' => 'The host ID.'."\n", + 'type' => 'string', + 'example' => '1', + ], + 'HostName' => [ + 'description' => 'The host name.'."\n", + 'type' => 'string', + 'example' => 'host1', + ], + 'HostPrivateAddress' => [ + 'description' => 'The private IP address of the host.'."\n", + 'type' => 'string', + 'example' => '192.168.XX.XX', + ], + 'HostPublicAddress' => [ + 'description' => 'The public IP address of the host.'."\n", + 'type' => 'string', + 'example' => '10.158.XX.XX', + ], + 'OSType' => [ + 'description' => 'The host OS.'."\n" + ."\n" + .'* **Linux**'."\n" + .'* **Windows**'."\n", + 'type' => 'string', + 'example' => 'Linux', + ], + 'Source' => [ + 'description' => 'The host type. Valid values:'."\n" + ."\n" + .'* **Local**: on-premises host.'."\n" + .'* **Ecs**: Elastic Compute Service (ECS) instance.'."\n", + 'type' => 'string', + 'example' => 'Local', + ], + 'SourceInstanceId' => [ + 'description' => 'The ECS instance ID.'."\n", + 'type' => 'string', + 'example' => 'i-bp19ienyt0yax748****', + ], + 'SourceInstanceState' => [ + 'description' => 'The host status. Valid values:'."\n" + ."\n" + .'* **Normal**'."\n" + .'* **Release**'."\n", + 'type' => 'string', + 'example' => 'Normal', + ], + ], + ], + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '4F6C075F-FC86-476E-943B-097BD4E12948', + ], + 'TotalCount' => [ + 'description' => 'The total number of hosts returned.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '5', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The argument is invalid.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'An unknown error occurred.', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Hosts\\": [\\n {\\n \\"ActiveAddressType\\": \\"Public\\",\\n \\"Comment\\": \\"comment\\",\\n \\"HostId\\": \\"1\\",\\n \\"HostName\\": \\"host1\\",\\n \\"HostPrivateAddress\\": \\"192.168.XX.XX\\",\\n \\"HostPublicAddress\\": \\"10.158.XX.XX\\",\\n \\"OSType\\": \\"Linux\\",\\n \\"Source\\": \\"Local\\",\\n \\"SourceInstanceId\\": \\"i-bp19ienyt0yax748****\\",\\n \\"SourceInstanceState\\": \\"Normal\\"\\n }\\n ],\\n \\"RequestId\\": \\"4F6C075F-FC86-476E-943B-097BD4E12948\\",\\n \\"TotalCount\\": 5\\n}","type":"json"}]', + 'title' => 'ListOperationHosts', + ], + 'ListOperationHostAccounts' => [ + 'summary' => 'Queries a list of host accounts that the current Resource Access Management (RAM) user is authorized to manage.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREbastionhostHPIB1A', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The bastion host ID.'."\n" + ."\n" + .'> You can call the [DescribeInstances](~~153281~~) operation to query the bastion host ID.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'bastionhost-cn-st220aw****', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the bastion host.'."\n" + ."\n" + .'> For more information about the mapping between region IDs and region names, see [Regions and zones](~~40654~~).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'HostId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the host whose accounts you want to query.'."\n" + ."\n" + .'> You can call the [ListOperationHosts](~~2758857~~) operation to query the host ID.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '1', + ], + ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => [ + 'description' => 'The page number. Default value: **1**.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '1', + ], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of entries per page.\\'."\n" + .'Valid values: 1 to 100. Default value: 20. If you leave this parameter empty, 20 entries are returned on each page.'."\n" + ."\n" + .'> We recommend that you do not leave this parameter empty.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '20', + ], + ], + [ + 'name' => 'HostAccountName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the host account to query. Only exact match is supported.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'root', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'HostAccounts' => [ + 'description' => 'The host accounts returned.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'HasPassword' => [ + 'description' => 'Indicates whether a password is configured for the host account.'."\n" + ."\n" + .'* **true**'."\n" + .'* **false**'."\n", + 'type' => 'boolean', + 'example' => 'true', + ], + 'HostAccountId' => [ + 'description' => 'The host account ID.'."\n", + 'type' => 'string', + 'example' => '1', + ], + 'HostAccountName' => [ + 'description' => 'The host account name.'."\n", + 'type' => 'string', + 'example' => 'root', + ], + 'HostId' => [ + 'description' => 'The host ID.'."\n", + 'type' => 'string', + 'example' => '1', + ], + 'HostShareKeyId' => [ + 'description' => 'The ID of the shared key that is associated with the host.'."\n", + 'type' => 'string', + 'example' => '3', + ], + 'PrivateKeyFingerprint' => [ + 'description' => 'The fingerprint of the private key for the host account.'."\n", + 'type' => 'string', + 'example' => 'fe:ca:37:42:30:00:9d:95:e6:73:e5:b0:32:0a:**:**', + ], + 'ProtocolName' => [ + 'description' => 'The protocol that is used by the host account.'."\n" + ."\n" + .'* **SSH**'."\n" + .'* **RDP**'."\n", + 'type' => 'string', + 'example' => 'SSH', + ], + 'SSHConfig' => [ + 'description' => 'Indicates whether the Secure File Transfer Protocol (SFTP) channels or the SSH channels are enabled for the host account that uses the SSH protocol.'."\n", + 'type' => 'object', + 'properties' => [ + 'EnableSFTPChannel' => [ + 'description' => 'Indicates whether SFTP channels are enabled for the account.'."\n", + 'type' => 'boolean', + ], + 'EnableSSHChannel' => [ + 'description' => 'Indicates whether SSH channels are enabled for the account.'."\n", + 'type' => 'boolean', + ], + ], + ], + ], + ], + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'EC9BF0F4-8983-491A-BC8C-1B4DD94976DE', + ], + 'TotalCount' => [ + 'description' => 'The total number of host accounts returned.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The argument is invalid.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'An unknown error occurred.', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"HostAccounts\\": [\\n {\\n \\"HasPassword\\": true,\\n \\"HostAccountId\\": \\"1\\",\\n \\"HostAccountName\\": \\"root\\",\\n \\"HostId\\": \\"1\\",\\n \\"HostShareKeyId\\": \\"3\\",\\n \\"PrivateKeyFingerprint\\": \\"fe:ca:37:42:30:00:9d:95:e6:73:e5:b0:32:0a:**:**\\",\\n \\"ProtocolName\\": \\"SSH\\",\\n \\"SSHConfig\\": {\\n \\"EnableSFTPChannel\\": true,\\n \\"EnableSSHChannel\\": true\\n }\\n }\\n ],\\n \\"RequestId\\": \\"EC9BF0F4-8983-491A-BC8C-1B4DD94976DE\\",\\n \\"TotalCount\\": 1\\n}","type":"json"}]', + 'title' => 'ListOperationHostAccounts', + ], + 'ListOperationDatabaseAccounts' => [ + 'summary' => 'Queries a list of database accounts that the current Resource Access Management (RAM) user is authorized to manage.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREbastionhostEW7NXQ', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the bastion host.'."\n" + ."\n" + .'> You can call the [DescribeInstances](~~153281~~) operation to query the ID of the bastion host.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'bastionhost-cn-2r42t9cvf0i', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the bastion host.'."\n" + ."\n" + .'> For more information about the mapping between region IDs and region names, see [Regions and zones](~~40654~~).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-shanghai', + ], + ], + [ + 'name' => 'DatabaseId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The database ID.'."\n" + ."\n" + .'> You can call the [ListOperationDatabases](~~2758856~~) operation to query the database ID.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '56', + ], + ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => [ + 'description' => 'The page number. Default value: **1**.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '1', + ], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of entries per page.\\'."\n" + .'Maximum value: 100. Default value: 20. If you leave this parameter empty, 20 entries are returned on each page.'."\n" + ."\n" + .'> We recommend that you do not leave this parameter empty.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '20', + ], + ], + [ + 'name' => 'DatabaseAccountName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the database account. Exact match is supported.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'test', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'DatabaseAccounts' => [ + 'description' => 'The database accounts returned.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'DBName' => [ + 'description' => 'The name of the PostgreSQL or Oracle database.'."\n", + 'type' => 'string', + 'example' => 'xe', + ], + 'DatabaseAccountId' => [ + 'description' => 'The database account ID.'."\n", + 'type' => 'string', + 'example' => '3', + ], + 'DatabaseAccountName' => [ + 'description' => 'The name of the database account.'."\n", + 'type' => 'string', + 'example' => 'system', + ], + 'DatabaseId' => [ + 'description' => 'The database ID.'."\n", + 'type' => 'string', + 'example' => '2', + ], + 'HasPassword' => [ + 'description' => 'Indicates whether a password is configured for the database host account.'."\n", + 'type' => 'string', + 'example' => 'true', + ], + 'LoginAttribute' => [ + 'description' => 'The logon attribute. One of the following values is returned if the database engine is Oracle:'."\n" + ."\n" + .'* **SERVICENAME**'."\n" + .'* **SID**'."\n", + 'type' => 'string', + 'example' => 'SID', + ], + 'ProtocolName' => [ + 'description' => 'The protocol that is used by the database account.'."\n", + 'type' => 'string', + 'example' => 'MySQL', + ], + ], + ], + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'EC9BF0F4-8983-491A-BC8C-1B4DD94976DE', + ], + 'TotalCount' => [ + 'description' => 'The total number of entries returned.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '5', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The argument is invalid.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'An unknown error occurred.', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"DatabaseAccounts\\": [\\n {\\n \\"DBName\\": \\"xe\\",\\n \\"DatabaseAccountId\\": \\"3\\",\\n \\"DatabaseAccountName\\": \\"system\\",\\n \\"DatabaseId\\": \\"2\\",\\n \\"HasPassword\\": \\"true\\",\\n \\"LoginAttribute\\": \\"SID\\",\\n \\"ProtocolName\\": \\"MySQL\\"\\n }\\n ],\\n \\"RequestId\\": \\"EC9BF0F4-8983-491A-BC8C-1B4DD94976DE\\",\\n \\"TotalCount\\": 5\\n}","type":"json"}]', + 'title' => 'ListOperationDatabaseAccounts', + ], + 'GenerateAssetOperationToken' => [ + 'summary' => 'Applies for an O\\\\\\&M token.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'high', + 'chargeType' => 'free', + 'abilityTreeCode' => '204184', + 'abilityTreeNodes' => [ + 'FEATUREbastionhostHPIB1A', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the bastion host for which you want to apply an O\\&M token.'."\n" + ."\n" + .'> You can call the [DescribeInstances](~~153281~~) operation to query the ID of the bastion host.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'bastionhost-cn-st220aw****', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the bastion host.'."\n" + ."\n" + .'> For more information about the mapping between region IDs and region names, see [Regions and zones](~~40654~~).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'AssetType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The type of the asset for which you want to apply for an O\\&M token. Valid values:'."\n" + ."\n" + .'* **Host**'."\n" + .'* **Database**'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'Host', + ], + ], + [ + 'name' => 'AssetId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the asset for which you want to apply for an O\\&M token.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '11', + ], + ], + [ + 'name' => 'AssetAccountId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the account whose assets the O\\&M token takes effect.'."\n" + ."\n" + .'> You must specify at least one of the following parameters: AssetAccountId and AssetAccountName. If you specify both parameters, AssetAccountId takes precedence.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '2', + ], + ], + [ + 'name' => 'AssetAccountName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the host account. If you use a custom account, enter a real account name.'."\n" + ."\n" + .'> When both AssetAccountId and AssetAccountName are specified, AssetAccountId takes precedence.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'root', + ], + ], + [ + 'name' => 'AssetAccountPassword', + 'in' => 'query', + 'schema' => [ + 'description' => 'The Base64-encoded password. This parameter is required if you want to apply for an O\\&M token for a custom account.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'dGVzdHBhc3N3b3Jk', + ], + ], + [ + 'name' => 'AssetAccountProtocolName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the protocol. Valid values:'."\n" + ."\n" + .'* SSH'."\n" + .'* RDP'."\n" + .'* Oracle'."\n" + .'* PostgreSQL'."\n" + .'* MySQL'."\n" + .'* SQLServer'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'SSH', + ], + ], + [ + 'name' => 'OperationMode', + 'in' => 'query', + 'allowEmptyValue' => true, + 'schema' => [ + 'description' => 'The O\\&M logon method. Valid values:'."\n" + ."\n" + .'* **WebToken**: O\\&M token-based logon.'."\n" + .'* **Sso**: local client-based logon.'."\n" + ."\n" + .'> This parameter is available only for Bastionhost V3.2.44 and later. If you do not specify this parameter, the default value WebToken is used.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'Sso', + 'default' => 'WebToken', + 'enum' => [ + 'Sso', + 'WebToken', + ], + ], + ], + [ + 'name' => 'LoginAttribute', + 'in' => 'query', + 'allowEmptyValue' => true, + 'schema' => [ + 'description' => 'The logon attribute. If you set OperationMode to Sso and AssetAccountProtocolName to Oracle, you must specify this parameter. Valid values:'."\n" + ."\n" + .'* **SERVICENAME**'."\n" + .'* **SID**'."\n" + ."\n" + .'> This parameter is available only for Bastionhost V3.2.44 and later.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'SID', + 'enum' => [ + 'SID', + 'SERVICENAME', + ], + ], + ], + [ + 'name' => 'DatabaseSchema', + 'in' => 'query', + 'allowEmptyValue' => false, + 'schema' => [ + 'description' => 'The name of the database. If you set OperationMode to Sso and AssetAccountProtocolName to PostgreSQL or Oracle and you select Custom Account for the Database Account parameter, you must specify this parameter.'."\n" + ."\n" + .'>This parameter is available only for bastion hosts that run V3.2.44 or later.', + 'type' => 'string', + 'required' => false, + 'example' => 'orcl', + ], + ], + [ + 'name' => 'SsoClient', + 'in' => 'query', + 'schema' => [ + 'description' => 'The type of the local client that you want to perform O\\&M operations on Linux assets. If you set OperationMode to Sso and AssetAccountProtocolName to SSH, you must specify this parameter. Valid values:'."\n" + ."\n" + .'* **ssh**: Perform O\\&M operations on Linux assets by connecting to a bastion host from an SSH client.'."\n" + .'* **sftp**: Perform O\\&M operations on Linux assets by connecting to a bastion host from a Secure File Transfer Protocol (SFTP) client.'."\n" + ."\n" + .'> This parameter is available only for Bastionhost V3.2.44 and later.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'ssh', + 'enum' => [ + 'ssh', + 'sftp', + ], + ], + ], + [ + 'name' => 'OperationNote', + 'in' => 'query', + 'schema' => [ + 'description' => 'The logon remarks. This parameter is required if an administrator enables the feature of logon remarks on the Control Policies page.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'comment', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'AssetOperationToken' => [ + 'description' => 'The data returned.'."\n", + 'type' => 'object', + 'properties' => [ + 'CountLeft' => [ + 'description' => 'The remaining number of times that you can use the O\\&M token.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1', + ], + 'ExpireTime' => [ + 'description' => 'The time when the O\\&M token expires. The value is a UNIX timestamp.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1709110797', + ], + 'HasCountLimit' => [ + 'description' => 'Indicates whether the number of times that you can use the O\\&M token is limited.'."\n", + 'type' => 'boolean', + 'example' => 'true', + ], + 'MaxRenewCount' => [ + 'description' => 'The maximum number of renewals. A value of 0 indicates that renewal is not supported.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '10', + ], + 'RenewCount' => [ + 'description' => 'The number of times the O\\&M token is renewed.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1', + ], + 'Token' => [ + 'description' => 'The O\\&M token that you apply for.'."\n", + 'type' => 'string', + 'example' => 'NmYyMmEzNmMwYzljNGY******', + ], + 'TokenId' => [ + 'description' => 'The ID of the O\\&M token.'."\n", + 'type' => 'string', + 'example' => '1', + ], + 'SsoUrl' => [ + 'description' => 'The single sign-on (SSO) URL.', + 'type' => 'string', + 'example' => 'sso://eyJOT0RFX0NPTU1PTiI6eyJNb2R******', + ], + ], + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'EC9BF0F4-8983-491A-BC8C-1B4DD94976DE', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The argument is invalid.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'An unknown error occurred.', + ], + ], + ], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"AssetOperationToken\\": {\\n \\"CountLeft\\": 1,\\n \\"ExpireTime\\": 1709110797,\\n \\"HasCountLimit\\": true,\\n \\"MaxRenewCount\\": 10,\\n \\"RenewCount\\": 1,\\n \\"Token\\": \\"NmYyMmEzNmMwYzljNGY******\\",\\n \\"TokenId\\": \\"1\\",\\n \\"SsoUrl\\": \\"sso://eyJOT0RFX0NPTU1PTiI6eyJNb2R******\\"\\n },\\n \\"RequestId\\": \\"EC9BF0F4-8983-491A-BC8C-1B4DD94976DE\\"\\n}","type":"json"}]', + 'title' => 'GenerateAssetOperationToken', + ], + 'RenewAssetOperationToken' => [ + 'summary' => 'Renews an O\\\\\\&M token for one hour.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREbastionhostHPIB1A', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The bastion host ID.'."\n" + ."\n" + .'> You can call the [DescribeInstances](~~153281~~) operation to query the bastion host ID.', + 'type' => 'string', + 'required' => true, + 'example' => 'bastionhost-cn-st220aw****', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the bastion host.'."\n" + .'> For more information about the mapping between region IDs and region names, see [Regions and zones](~~40654~~).', + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'TokenId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the O\\&M token that you want to renew.'."\n" + ."\n" + .'> You can call the [GenerateAssetOperationToken](~~2758861~~) operation to query the O\\&M token ID.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'NmYyMmEzNmMwYzljNGYxMjh******', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'EC9BF0F4-8983-491A-BC8C-1B4DD94976DE', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The argument is invalid.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'An unknown error occurred.', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"EC9BF0F4-8983-491A-BC8C-1B4DD94976DE\\"\\n}","type":"json"}]', + 'title' => 'RenewAssetOperationToken', + ], + 'CreateOperationTicket' => [ + 'summary' => 'If a Bastionhost administrator turns on O\\\\\\&M Approval on the Create Control Policy page, O\\\\\\&M engineers can log on to assets to perform O\\\\\\&M operations only after the administrator approves their O\\\\\\&M applications.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'create', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '245215', + 'abilityTreeNodes' => [ + 'FEATUREbastionhostHPIB1A', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => true, + 'example' => 'bastionhost-cn-st220aw****', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'AssetId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => true, + 'example' => '2', + ], + ], + [ + 'name' => 'ProtocolName', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => true, + 'example' => 'SSH', + ], + ], + [ + 'name' => 'AssetAccountName', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => true, + 'example' => 'root', + ], + ], + [ + 'name' => 'IsOneTimeEffect', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'boolean', + 'required' => false, + 'example' => 'false', + ], + ], + [ + 'name' => 'EffectStartTime', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'example' => '1685600242', + ], + ], + [ + 'name' => 'EffectEndTime', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'example' => '1679393152', + ], + ], + [ + 'name' => 'ApproveComment', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => true, + 'example' => '', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'OperationTicketId' => [ + 'description' => '', + 'type' => 'string', + 'example' => '2', + ], + 'RequestId' => [ + 'description' => '', + 'type' => 'string', + 'example' => '0ECCC399-4D35-48A7-8379-5C6180E66235', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The argument is invalid.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'An unknown error occurred.', + ], + ], + ], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"OperationTicketId\\": \\"2\\",\\n \\"RequestId\\": \\"0ECCC399-4D35-48A7-8379-5C6180E66235\\"\\n}","type":"json"}]', + 'title' => 'CreateOperationTicket', + ], + 'CreateRule' => [ + 'summary' => 'You can create authorization rules to authorize multiple users to manage assets. You can also specify a validity period for an authorization rule. This way, you can manage users and assets in a more efficient manner and limit the time periods during which users can access assets.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'create', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREbastionhost19BKK2', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The bastion host ID.'."\n" + ."\n" + .'> You can call the [DescribeInstances](~~153281~~) operation to query the bastion host ID.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'bastionhost-cn-5yd2ymfsa0e', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the bastion host.'."\n" + ."\n" + .'> For more information about the mapping between region IDs and region names, see [Regions and zones](~~40654~~).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'RuleName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the authorization rule. The name can be up to 128 characters in length.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'rule', + ], + ], + [ + 'name' => 'Comment', + 'in' => 'query', + 'schema' => [ + 'description' => 'The remarks of the authorization rule. The remarks can be up to 500 characters in length.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'comment', + ], + ], + [ + 'name' => 'EffectiveStartTime', + 'in' => 'query', + 'schema' => [ + 'description' => 'The start time of the validity period of the authorization rule. Specify a UNIX timestamp representing the number of seconds that have elapsed since January 1, 1970, 00:00:00 UTC.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'example' => '1669630029', + ], + ], + [ + 'name' => 'EffectiveEndTime', + 'in' => 'query', + 'schema' => [ + 'description' => 'The end time of the validity period of the authorization rule. Specify a UNIX timestamp representing the number of seconds that have elapsed since January 1, 1970, 00:00:00 UTC.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'example' => '1672502400', + ], + ], + [ + 'name' => 'UserIds', + 'in' => 'query', + 'style' => 'flat', + 'schema' => [ + 'description' => 'An array that consists of user IDs.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The user ID.'."\n" + ."\n" + .'> You can call the [ListUsers](~~204522~~) operation to query the user ID.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '["1"]', + ], + 'required' => false, + ], + ], + [ + 'name' => 'UserGroupIds', + 'in' => 'query', + 'style' => 'flat', + 'schema' => [ + 'description' => 'An array that consists of user group IDs.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The user group ID.'."\n" + ."\n" + .'> You can call the [ListUserGroups](~~204509~~) operation to query the user group ID.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '["1"]', + ], + 'required' => false, + ], + ], + [ + 'name' => 'Hosts', + 'in' => 'query', + 'style' => 'flat', + 'schema' => [ + 'description' => 'The host information.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The host ID and the host account ID that you want to authorize to manage.'."\n", + 'type' => 'object', + 'properties' => [ + 'HostId' => [ + 'description' => 'The host ID.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '[{"HostId":"1"}]', + ], + 'HostAccountIds' => [ + 'description' => 'An array that consists of host account IDs.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The host account ID.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '[{"HostId":"1","HostAccountIds":["1"]}]', + ], + 'required' => false, + ], + ], + 'required' => false, + ], + 'required' => false, + ], + ], + [ + 'name' => 'Databases', + 'in' => 'query', + 'style' => 'flat', + 'schema' => [ + 'description' => 'The information about the database that runs on your server.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The database ID and the database account ID that you want to authorize to manage.'."\n", + 'type' => 'object', + 'properties' => [ + 'DatabaseId' => [ + 'description' => 'The database ID.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '['."\n" + .' {'."\n" + .' "DatabaseId": "1"'."\n" + .' }'."\n" + .']', + ], + 'DatabaseAccountIds' => [ + 'description' => 'An array that consists of database account IDs.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The database account ID.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '['."\n" + .' {'."\n" + .' "DatabaseId": "1",'."\n" + .' "DatabaseAccountIds": ["1", "2"] '."\n" + .' }'."\n" + .']', + ], + 'required' => false, + ], + ], + 'required' => false, + ], + 'required' => false, + ], + ], + [ + 'name' => 'HostGroups', + 'in' => 'query', + 'style' => 'flat', + 'schema' => [ + 'description' => 'The information about the asset group that you want to authorize to manage.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The asset group that you want to authorize to manage.'."\n", + 'type' => 'object', + 'properties' => [ + 'HostGroupId' => [ + 'description' => 'The asset group ID.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '[{"HostGroupId":"1"}]', + ], + 'HostAccountNames' => [ + 'description' => 'An array that consists of asset account names.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The username of the asset account.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '[{"HostGroupId":"1","HostAccountNames":["root"]}]', + ], + 'required' => false, + ], + ], + 'required' => false, + ], + 'required' => false, + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'BFA818E3-0A53-51F4-8DB5-AF2A62A6D042', + ], + 'RuleId' => [ + 'description' => 'The authorization rule ID.'."\n", + 'type' => 'string', + 'example' => '1', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The argument is invalid.', + ], + [ + 'errorCode' => 'RuleAlreadyExists', + 'errorMessage' => 'The rule already exists.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'An unknown error occurred.', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"BFA818E3-0A53-51F4-8DB5-AF2A62A6D042\\",\\n \\"RuleId\\": \\"1\\"\\n}","type":"json"}]', + 'title' => 'CreateRule', + 'requestParamsDescription' => '### Hosts array'."\n" + ."\n" + .'#### Host parameters'."\n" + ."\n" + .'|Parameter|Type|Description|'."\n" + .'|---|---|---|'."\n" + .'|HostId|string|The host ID.|'."\n" + .'|HostAccountIds|array\\[string\\]|An array that consists of host account IDs.|'."\n" + ."\n" + .'### HostGroups array'."\n" + ."\n" + .'#### HostGroup parameters'."\n" + ."\n" + .'|Parameter|Type|Description|'."\n" + .'|---|---|---|'."\n" + .'|HostGroupId|string|The host group ID.|'."\n" + .'|HostAccountNames|array\\[string\\]|An array that consists of host account usernames.|'."\n" + ."\n" + .'#### AssetGroup parameter'."\n" + ."\n" + .'|Parameter|Type|Description|'."\n" + .'|---|---|---|'."\n" + .'|AssetGroupId|string|The asset group ID.|'."\n" + .'|AssetAccountNames|array\\[string\\]|An array that consists of asset account usernames.|', + ], + 'ModifyRule' => [ + 'summary' => 'Modifies the basic information of an authorization rule.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREbastionhost19BKK2', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the bastion host whose authorization rule you want to modify.'."\n" + ."\n" + .'> You can call the [DescribeInstances](~~153281~~) operation to query the bastion host ID.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'bastionhost-cn-zmb2y9ydw08', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the bastion host to which the authorization rule to modify belongs.'."\n" + ."\n" + .'> For more information about the mapping between region IDs and region names, see [Regions and zones](~~40654~~).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'RuleId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the authorization rule to modify.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '68', + ], + ], + [ + 'name' => 'RuleName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The new name of the authorization rule. The name must be 1 to 128 characters in length and can contain periods (.), underscores (\\_), hyphens (-), single quotation marks (\'), and spaces. It cannot start with a special character.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'test', + ], + ], + [ + 'name' => 'Comment', + 'in' => 'query', + 'schema' => [ + 'description' => 'The new remarks of the authorization rule. It can be up to 500 characters in length.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '', + ], + ], + [ + 'name' => 'EffectiveStartTime', + 'in' => 'query', + 'schema' => [ + 'description' => 'The start time of the new validity period of the authorization rule. The value is a UNIX timestamp. Unit: seconds.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'example' => '1669630029', + ], + ], + [ + 'name' => 'EffectiveEndTime', + 'in' => 'query', + 'schema' => [ + 'description' => 'The end time of the new validity period of the authorization rule. The value is a UNIX timestamp. Unit: seconds.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'example' => '1672502400', + ], + ], + [ + 'name' => 'UserIds', + 'in' => 'query', + 'style' => 'flat', + 'schema' => [ + 'description' => 'The IDs of the users with whom the modified authorization rule is associated.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The ID of the user with whom the modified authorization rule is associated.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '["1"]', + ], + 'required' => false, + ], + ], + [ + 'name' => 'UserGroupIds', + 'in' => 'query', + 'style' => 'flat', + 'schema' => [ + 'description' => 'The IDs of the user groups with which the modified authorization rule is associated.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The ID of the user group with which the modified authorization rule is associated.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '["1"]', + ], + 'required' => false, + ], + ], + [ + 'name' => 'Hosts', + 'in' => 'query', + 'style' => 'flat', + 'schema' => [ + 'description' => 'An array that consists of the host IDs and host account IDs with which the modified authorization rule is associated.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'HostId' => [ + 'description' => 'The host ID.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '[{"HostId":"1"}]', + ], + 'HostAccountIds' => [ + 'description' => 'The host account IDs.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The host account ID.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '[{"HostId":"1","HostAccountIds":["1"]}]', + ], + 'required' => false, + ], + ], + 'required' => false, + 'description' => '', + ], + 'required' => false, + ], + ], + [ + 'name' => 'Databases', + 'in' => 'query', + 'style' => 'flat', + 'schema' => [ + 'description' => 'The databases and database accounts that a user associated with the modified rule can manage.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'DatabaseId' => [ + 'description' => 'The database ID.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '['."\n" + .' {'."\n" + .' "DatabaseId": "1"'."\n" + .' }'."\n" + .']', + ], + 'DatabaseAccountIds' => [ + 'description' => 'The database account IDs.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The database account ID.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '['."\n" + .' {'."\n" + .' "DatabaseId": "1",'."\n" + .' "DatabaseAccountIds": ["1", "2"] '."\n" + .' }'."\n" + .']', + ], + 'required' => false, + ], + ], + 'required' => false, + 'description' => '', + ], + 'required' => false, + ], + ], + [ + 'name' => 'HostGroups', + 'in' => 'query', + 'style' => 'flat', + 'schema' => [ + 'description' => 'The asset groups and asset accounts that a user associated with the modified rule can manage.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'HostGroupId' => [ + 'description' => 'The asset group ID.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '[{"HostGroupId":"1"}]'."\n", + ], + 'HostAccountNames' => [ + 'description' => 'The names of the asset accounts.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The name of the asset account.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '[{"HostGroupId":"1","HostAccountNames":["root"]}]'."\n", + ], + 'required' => false, + ], + ], + 'required' => false, + 'description' => '', + ], + 'required' => false, + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '67EB57AD-5C83-537B-B2A1-6082798965F0', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The argument is invalid.', + ], + [ + 'errorCode' => 'RuleAlreadyExists', + 'errorMessage' => 'The rule already exists.', + ], + ], + 404 => [ + [ + 'errorCode' => 'RuleNotFound', + 'errorMessage' => 'The rule is not found.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'An unknown error occurred.', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"67EB57AD-5C83-537B-B2A1-6082798965F0\\"\\n}","type":"json"}]', + 'title' => 'ModifyRule', + ], + 'GetRule' => [ + 'summary' => 'Queries the detailed information about an authorization rule.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREbastionhost19BKK2', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The bastion host ID.'."\n" + ."\n" + .'> You can call the [DescribeInstances](~~153281~~) operation to query the bastion host ID.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'bastionhost-cn-wwo35essw07', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the bastion host.'."\n" + ."\n" + .'> For more information about the mapping between region IDs and region names, see [Regions and zones](~~40654~~).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-beijing', + ], + ], + [ + 'name' => 'RuleId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the authorization rule to query.'."\n" + ."\n" + .'> You can call the [ListRules](~~2758868~~) operation to query the authorization rule ID.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '18', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'EC9BF0F4-8983-491A-BC8C-1B4DD94976DE', + ], + 'Rule' => [ + 'description' => 'The returned information about the authorization rule.'."\n", + 'type' => 'object', + 'properties' => [ + 'Comment' => [ + 'description' => 'The remarks of the authorization rule.'."\n", + 'type' => 'string', + 'example' => 'comment', + ], + 'Databases' => [ + 'description' => 'The databases on which permissions are granted by using the authorization rule.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'DatabaseAccounts' => [ + 'description' => 'The database accounts on which permissions are granted by using the authorization rule.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'DatabaseAccountId' => [ + 'description' => 'The ID of the database account that the policy authorizes users to manage.'."\n", + 'type' => 'string', + 'example' => '5', + ], + ], + ], + ], + 'DatabaseId' => [ + 'description' => 'The ID of the database that the policy authorizes users to manage.'."\n", + 'type' => 'string', + 'example' => '2', + ], + ], + 'description' => '', + ], + ], + 'EffectiveEndTime' => [ + 'description' => 'The end time of the validity period of the authorization rule. The value is a UNIX timestamp. Unit: seconds.'."\n", + 'type' => 'string', + 'example' => '1698720972', + ], + 'EffectiveStartTime' => [ + 'description' => 'The start time of the validity period of the authorization rule. The value is a UNIX timestamp. Unit: seconds.'."\n", + 'type' => 'string', + 'example' => '1687140883', + ], + 'HostGroups' => [ + 'description' => 'The asset groups on which permissions are granted by using the authorization rule.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'HostAccountNames' => [ + 'description' => 'The asset accounts on which permissions are granted by using the authorization rule.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The username of the account that the policy authorizes users to manage in the asset group.'."\n", + 'type' => 'string', + 'example' => 'root', + ], + ], + 'HostGroupId' => [ + 'description' => 'The ID of the asset group that the policy authorizes users to manage.'."\n", + 'type' => 'string', + 'example' => '7', + ], + ], + 'description' => '', + ], + ], + 'Hosts' => [ + 'description' => 'The information about the hosts that the policy authorizes users to manage.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'HostAccounts' => [ + 'description' => 'The host accounts that the policy authorizes users to manage.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'HostAccountId' => [ + 'description' => 'The ID of the host account that the policy authorizes users to manage.'."\n", + 'type' => 'string', + 'example' => '9', + ], + ], + ], + ], + 'HostId' => [ + 'description' => 'The ID of the host that the policy authorizes users to manage.'."\n", + 'type' => 'string', + 'example' => '52', + ], + ], + ], + ], + 'RuleId' => [ + 'description' => 'The ID of the authorization rule.'."\n", + 'type' => 'string', + 'example' => '3', + ], + 'RuleName' => [ + 'description' => 'The name of the authorization rule.'."\n", + 'type' => 'string', + 'example' => 'rule', + ], + 'UserGroups' => [ + 'description' => 'The authorized user groups.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'UserGroupId' => [ + 'description' => 'The ID of the authorized user group.'."\n", + 'type' => 'string', + 'example' => '2', + ], + ], + ], + ], + 'Users' => [ + 'description' => 'The authorized users.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'UserId' => [ + 'description' => 'The ID of the authorized user.'."\n", + 'type' => 'string', + 'example' => '3', + ], + ], + ], + ], + ], + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The argument is invalid.', + ], + ], + 404 => [ + [ + 'errorCode' => 'RuleNotFound', + 'errorMessage' => 'The rule is not found.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'An unknown error occurred.', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"EC9BF0F4-8983-491A-BC8C-1B4DD94976DE\\",\\n \\"Rule\\": {\\n \\"Comment\\": \\"comment\\",\\n \\"Databases\\": [\\n {\\n \\"DatabaseAccounts\\": [\\n {\\n \\"DatabaseAccountId\\": \\"5\\"\\n }\\n ],\\n \\"DatabaseId\\": \\"2\\"\\n }\\n ],\\n \\"EffectiveEndTime\\": \\"1698720972\\",\\n \\"EffectiveStartTime\\": \\"1687140883\\",\\n \\"HostGroups\\": [\\n {\\n \\"HostAccountNames\\": [\\n \\"root\\"\\n ],\\n \\"HostGroupId\\": \\"7\\"\\n }\\n ],\\n \\"Hosts\\": [\\n {\\n \\"HostAccounts\\": [\\n {\\n \\"HostAccountId\\": \\"9\\"\\n }\\n ],\\n \\"HostId\\": \\"52\\"\\n }\\n ],\\n \\"RuleId\\": \\"3\\",\\n \\"RuleName\\": \\"rule\\",\\n \\"UserGroups\\": [\\n {\\n \\"UserGroupId\\": \\"2\\"\\n }\\n ],\\n \\"Users\\": [\\n {\\n \\"UserId\\": \\"3\\"\\n }\\n ]\\n }\\n}","type":"json"}]', + 'title' => 'GetRule', + ], + 'ListRules' => [ + 'summary' => 'Queries a list of authorization rules of a bastion host.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREbastionhost19BKK2', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The bastion host ID.'."\n" + ."\n" + .'> You can call the [DescribeInstances](~~153281~~) operation to query the bastion host ID.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'bastionhost-cn-5yd34ol020a', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the bastion host.'."\n" + ."\n" + .'> For more information about the mapping between region IDs and region names, see [Regions and zones](~~40654~~).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => [ + 'description' => 'The page number. Default value: 1.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '1', + ], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of entries per page.\\'."\n" + .'Valid values: 1 to 100. Default value: 20. If you leave this parameter empty, 20 entries are returned on each page.'."\n" + ."\n" + .'> We recommend that you do not leave this parameter empty.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '20', + ], + ], + [ + 'name' => 'RuleName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the authorization rule to query. Only exact match is supported.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rule', + ], + ], + [ + 'name' => 'RuleState', + 'in' => 'query', + 'schema' => [ + 'description' => 'The state of the authorization rule to query.'."\n" + ."\n" + .'* **Enabled**'."\n" + .'* **Disabled**'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'Enabled', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'EC9BF0F4-8983-491A-BC8C-1B4DD94976DE', + ], + 'Rules' => [ + 'description' => 'The authorization rules that are returned.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Comment' => [ + 'description' => 'The remarks of the authorization rule.'."\n", + 'type' => 'string', + 'example' => 'comment', + ], + 'EffectiveEndTime' => [ + 'description' => 'The end time of the validity period of the authorization rule. The value is a timestamp. Unit: seconds.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1709258400', + ], + 'EffectiveStartTime' => [ + 'description' => 'The start time of the validity period of the authorization rule. The value is a timestamp. Unit: seconds.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1685499134', + ], + 'RuleId' => [ + 'description' => 'The authorization rule ID.'."\n", + 'type' => 'string', + 'example' => '13', + ], + 'RuleName' => [ + 'description' => 'The name of the authorization rule.'."\n", + 'type' => 'string', + 'example' => 'rule', + ], + 'RuleState' => [ + 'description' => 'The state of the authorization rule.'."\n" + ."\n" + .'* **Enabled**'."\n" + .'* **Disabled**'."\n", + 'type' => 'string', + 'example' => 'Enabled', + ], + ], + 'description' => '', + ], + ], + 'TotalCount' => [ + 'description' => 'The total number of authorization rules that are returned.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The argument is invalid.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'An unknown error occurred.', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"EC9BF0F4-8983-491A-BC8C-1B4DD94976DE\\",\\n \\"Rules\\": [\\n {\\n \\"Comment\\": \\"comment\\",\\n \\"EffectiveEndTime\\": 1709258400,\\n \\"EffectiveStartTime\\": 1685499134,\\n \\"RuleId\\": \\"13\\",\\n \\"RuleName\\": \\"rule\\",\\n \\"RuleState\\": \\"Enabled\\"\\n }\\n ],\\n \\"TotalCount\\": 1\\n}","type":"json"}]', + 'title' => 'ListRules', + ], + 'EnableRule' => [ + 'summary' => 'Enables an authorization rule.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREbastionhost19BKK2', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The bastion host ID.'."\n" + ."\n" + .'> You can call the [DescribeInstances](~~153281~~) operation to query the bastion host ID.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'bastionhost-cn-78v1ghxxxxx', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the bastion host.'."\n" + ."\n" + .'> For more information about the mapping between region IDs and region names, see [Regions and zones](~~40654~~).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'RuleId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the authorization rule that you want to enable.'."\n" + ."\n" + .'> You can call the [ListRules](~~2758868~~) operation to query the authorization rule ID.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '3', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '4F6C075F-FC86-476E-943B-097BD4E12948', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The argument is invalid.', + ], + ], + 404 => [ + [ + 'errorCode' => 'RuleNotFound', + 'errorMessage' => 'The rule is not found.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'An unknown error occurred.', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"4F6C075F-FC86-476E-943B-097BD4E12948\\"\\n}","type":"json"}]', + 'title' => 'EnableRule', + ], + 'DisableRule' => [ + 'summary' => 'Disables an authorization rule.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREbastionhost19BKK2', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The bastion host ID.'."\n" + ."\n" + .'> You can call the [DescribeInstances](~~153281~~) operation to query the bastion host ID.', + 'type' => 'string', + 'required' => true, + 'example' => 'bastionhost-cn-78v1gh****', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the bastion host.'."\n" + ."\n" + .'> For more information about the mapping between region IDs and region names, see [Regions and zones](~~40654~~).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'RuleId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the authorization rule to be disabled.'."\n" + ."\n" + .'> You can call the [ListRules](~~2758868~~) operation to query the authorization rule ID to be disabled.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '1', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '98DBE5C2-7D7A-5393-9E5A-71074336D33B', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The argument is invalid.', + ], + ], + 404 => [ + [ + 'errorCode' => 'RuleNotFound', + 'errorMessage' => 'The rule is not found.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'An unknown error occurred.', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"98DBE5C2-7D7A-5393-9E5A-71074336D33B\\"\\n}","type":"json"}]', + 'title' => 'DisableRule', + ], + 'DeleteRule' => [ + 'summary' => 'Deletes an authorization rule.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'delete', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREbastionhost19BKK2', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the bastion host from which you want to delete the authorization rule.'."\n" + ."\n" + .'> You can call the [DescribeInstances](~~153281~~) operation to query the ID of the bastion host.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'bastionhost-cn-st220aw****', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the bastion host from which you want to delete the authorization rule.'."\n" + ."\n" + .'> For more information about the mapping between region IDs and region names, see [Regions and zones](~~40654~~).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'RuleId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the authorization rule that you want to delete.'."\n" + ."\n" + .'> You can call the [ListRules](~~2758868~~) operation to query the authorization rule ID.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '5', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'EC9BF0F4-8983-491A-BC8C-1B4DD94976DE', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The argument is invalid.', + ], + ], + 404 => [ + [ + 'errorCode' => 'RuleNotFound', + 'errorMessage' => 'The rule is not found.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'An unknown error occurred.', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"EC9BF0F4-8983-491A-BC8C-1B4DD94976DE\\"\\n}","type":"json"}]', + 'title' => 'DeleteRule', + ], + 'CreatePolicy' => [ + 'summary' => 'Configures a command control, command approval, protocol control, or access control policy to manage O\\\\\\&M operations. This effectively prevents users from performing high-risk operations or accidental operations to ensure O\\\\\\&M security.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'create', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREbastionhostW2TGHR', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the bastion host for which you want to create a control policy.'."\n" + ."\n" + .'> You can call the [DescribeInstances](~~153281~~) operation to query the ID of the bastion host.', + 'type' => 'string', + 'required' => true, + 'example' => 'bastionhost-cn-20p364c1w0g', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the bastion host for which you want to create a control policy.'."\n" + ."\n" + .'> For more information about the mapping between region IDs and region names, see [Regions and zones](~~40654~~).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-shanghai', + ], + ], + [ + 'name' => 'PolicyName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the control policy. The name can be up to 128 characters in length.', + 'type' => 'string', + 'required' => true, + 'example' => 'policytest', + ], + ], + [ + 'name' => 'Comment', + 'in' => 'query', + 'schema' => [ + 'description' => 'The remarks of the control policy. The remarks can be up to 500 characters in length.', + 'type' => 'string', + 'required' => false, + 'example' => 'comment', + ], + ], + [ + 'name' => 'Priority', + 'in' => 'query', + 'schema' => [ + 'description' => 'The priority of the control policy.'."\n" + ."\n" + .'* Valid values: 1 to 100. The default value is 1, which indicates the highest priority.'."\n" + .'* You can configure the same priority for different control policies. If multiple control policies have the same priority, the control policy that is created at the latest point in time has the highest priority. If a command control policy and a command approval policy contain the same commands, the commands are prioritized in descending order: reject, allow, and approve. In access control policies, a blacklist has a higher priority than a whitelist.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '1', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'PolicyId' => [ + 'description' => 'The control policy ID.', + 'type' => 'string', + 'example' => '1', + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '7E68165E-1191-5CC2-B54B-5EF7390A5400', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The argument is invalid.', + ], + [ + 'errorCode' => 'PolicyAlreadyExists', + 'errorMessage' => 'The policy already exists.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'An unknown error occurred.', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"PolicyId\\": \\"1\\",\\n \\"RequestId\\": \\"7E68165E-1191-5CC2-B54B-5EF7390A5400\\"\\n}","type":"json"}]', + 'title' => 'CreatePolicy', + ], + 'ModifyPolicy' => [ + 'summary' => 'Modifies the basic information about a control policy.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREbastionhostW2TGHR', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the bastion host to which the control policy to modify belongs.'."\n" + ."\n" + .'> You can call the [DescribeInstances](~~153281~~) operation to query the bastion host ID.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'bastionhost-cn-09k1u8mv501', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the bastion host to which the control policy to modify belongs.'."\n" + ."\n" + .'> For more information about the mapping between region IDs and region names, see [Regions and zones](~~40654~~).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'PolicyId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the control policy that you want to modify.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '7', + ], + ], + [ + 'name' => 'PolicyName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The new name of the control policy.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'test', + ], + ], + [ + 'name' => 'Comment', + 'in' => 'query', + 'schema' => [ + 'description' => 'The new remarks of the control policy.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '', + ], + ], + [ + 'name' => 'Priority', + 'in' => 'query', + 'schema' => [ + 'description' => 'The priority of the modified control policy. Valid values: 1 to 100. The smaller the value, the higher the priority. Default value: 1.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '3', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'A34F9731-A4EA-5D1D-8445-BAEF782BFFE6', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The argument is invalid.', + ], + [ + 'errorCode' => 'PolicyAlreadyExists', + 'errorMessage' => 'The policy already exists.', + ], + ], + 404 => [ + [ + 'errorCode' => 'PolicyNotFound', + 'errorMessage' => 'The policy is not found.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'An unknown error occurred.', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"A34F9731-A4EA-5D1D-8445-BAEF782BFFE6\\"\\n}","type":"json"}]', + 'title' => 'ModifyPolicy', + ], + 'GetPolicy' => [ + 'summary' => 'Queries the detailed information about a control policy.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREbastionhostW2TGHR', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the bastion host to which the control policy to query belongs.'."\n" + ."\n" + .'> You can call the [DescribeInstances](~~153281~~) operation to query the ID of the bastion host.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'bastionhost-cn-zvp2d3syb0g', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the bastion host to which the control policy to query belongs.'."\n" + ."\n" + .'> For more information about the mapping between region IDs and region names, see [Regions and zones](~~40654~~).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'PolicyId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the control policy that you want to query.'."\n" + ."\n" + .'> You can call the [ListPolicies](~~2758876~~) operation to query the control policy ID.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '3', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'Policy' => [ + 'description' => 'The details of the control policy.'."\n", + 'type' => 'object', + 'properties' => [ + 'AccessTimeRangeConfig' => [ + 'description' => 'The details of the logon period restrictions.'."\n", + 'type' => 'object', + 'properties' => [ + 'EffectiveTime' => [ + 'description' => 'The details of the periods during which logons are allowed.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Days' => [ + 'description' => 'The days of a week on which logons are allowed.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The day of the week during which logons are allowed. Valid values:'."\n" + ."\n" + .'* **1**: Monday.'."\n" + .'* **2**: Tuesday.'."\n" + .'* **3**: Wednesday.'."\n" + .'* **4**: Thursday.'."\n" + .'* **5**: Friday.'."\n" + .'* **6**: Saturday.'."\n" + .'* **7**: Sunday.'."\n", + 'type' => 'string', + 'example' => '[2]', + ], + ], + 'Hours' => [ + 'description' => 'The time periods during which logons are allowed.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The periods of the day during which logons are allowed. Valid values:'."\n" + ."\n" + .'* **0**: 00:00 to 01:00.'."\n" + .'* **1**: 01:00 to 02:00.'."\n" + .'* **2**: 02:00 to 03:00.'."\n" + .'* **3**: 03:00 to 04:00.'."\n" + .'* **4**: 04:00 to 05:00.'."\n" + .'* **5**: 05:00 to 06:00.'."\n" + .'* **6**: 06:00 to 07:00.'."\n" + .'* **7**: 07:00 to 08:00.'."\n" + .'* **8**: 08:00 to 09:00.'."\n" + .'* **9**: 09:00 to 10:00.'."\n" + .'* **10**: 10:00 to 11:00.'."\n" + .'* **11**: 11:00 to 12:00.'."\n" + .'* **12**: 12:00 to 13:00.'."\n" + .'* **13**: 13:00 to 14:00.'."\n" + .'* **14**: 14:00 to 15:00.'."\n" + .'* **15**: 15:00 to 16:00.'."\n" + .'* **16**: 16:00 to 17:00.'."\n" + .'* **17**: 17:00 to 18:00.'."\n" + .'* **18**: 18:00 to 19:00.'."\n" + .'* **19**: 19:00 to 20:00.'."\n" + .'* **20**: 20:00 to 21:00.'."\n" + .'* **21**: 21:00 to 22:00.'."\n" + .'* **22**: 22:00 to 23:00.'."\n" + .'* **23**: 23:00 to 24:00.'."\n", + 'type' => 'string', + 'example' => '[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23]', + ], + ], + ], + 'description' => '', + ], + ], + ], + ], + 'CommandConfig' => [ + 'description' => 'The details of the command policy.'."\n", + 'type' => 'object', + 'properties' => [ + 'Approval' => [ + 'description' => 'The details of the command approval settings.'."\n", + 'type' => 'object', + 'properties' => [ + 'Commands' => [ + 'description' => 'An array of commands that can be run only after approval.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The command that can be run only after approval.'."\n", + 'type' => 'string', + 'example' => 'ls', + ], + ], + ], + ], + 'Deny' => [ + 'description' => 'The details of the command control setting.'."\n", + 'type' => 'object', + 'properties' => [ + 'AclType' => [ + 'description' => 'The type of command control. Valid values:'."\n" + ."\n" + .'* white: whitelist mode.'."\n" + .'* black: blacklist mode.'."\n", + 'type' => 'string', + 'example' => 'black', + ], + 'Commands' => [ + 'description' => 'An array of controlled commands.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The controlled command.'."\n", + 'type' => 'string', + 'example' => 'ls', + ], + ], + ], + ], + ], + ], + 'Comment' => [ + 'description' => 'The description of the control policy.'."\n", + 'type' => 'string', + 'example' => 'comment', + ], + 'IPAclConfig' => [ + 'description' => 'The access control settings on source IP addresses.'."\n", + 'type' => 'object', + 'properties' => [ + 'AclType' => [ + 'description' => 'The mode of access control on source IP addresses. Valid values:'."\n" + ."\n" + .'* white: whitelist mode.'."\n" + .'* black: blacklist mode.'."\n", + 'type' => 'string', + 'example' => 'black', + ], + 'IPs' => [ + 'description' => 'The IP addresses from which logons are not allowed.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The controlled IP addresses.'."\n", + 'type' => 'string', + 'example' => '[10.10.**.**]', + ], + ], + ], + ], + 'PolicyName' => [ + 'description' => 'The name of the control policy.'."\n", + 'type' => 'string', + 'example' => 'test', + ], + 'PolicyId' => [ + 'description' => 'The ID of the control policy.'."\n", + 'type' => 'string', + 'example' => '3', + ], + 'Priority' => [ + 'description' => 'The priority of the control policy. A smaller value indicates a higher priority.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1', + ], + 'ProtocolConfig' => [ + 'description' => 'The details of protocol control.'."\n", + 'type' => 'object', + 'properties' => [ + 'RDP' => [ + 'description' => 'The configuration details of Remote Desktop Protocol (RDP) options.'."\n", + 'type' => 'object', + 'properties' => [ + 'ClipboardDownload' => [ + 'description' => 'Indicates whether downloading from the clipboard is enabled. Valid values:'."\n" + ."\n" + .'* Enable'."\n" + .'* Disable'."\n", + 'type' => 'string', + 'example' => 'Enable', + ], + 'ClipboardUpload' => [ + 'description' => 'Indicates whether file uploading from the clipboard is enabled. Valid values:'."\n" + ."\n" + .'* Enable'."\n" + .'* Disable'."\n", + 'type' => 'string', + 'example' => 'Enable', + ], + 'DiskRedirection' => [ + 'description' => 'Indicates whether driver mapping is enabled. Valid values:'."\n" + ."\n" + .'* Enable'."\n" + .'* Disable'."\n", + 'type' => 'string', + 'example' => 'Enable', + ], + 'RecordKeyboard' => [ + 'description' => 'Indicates whether keyboard recording is enabled. Valid values:'."\n" + ."\n" + .'* Enable'."\n" + .'* Disable'."\n", + 'type' => 'string', + 'example' => 'Enable', + ], + ], + ], + 'SSH' => [ + 'description' => 'The configuration details of SSH and SSH File Transfer Protocol (SFTP) options.'."\n", + 'type' => 'object', + 'properties' => [ + 'ExecCommand' => [ + 'description' => 'Indicates whether remote command execution is enabled. Valid values:'."\n" + ."\n" + .'* Enable'."\n" + .'* Disable'."\n", + 'type' => 'string', + 'example' => 'Enable', + ], + 'SFTPChannel' => [ + 'description' => 'Indicates whether the SFTP channel option is enabled. Valid values:'."\n" + ."\n" + .'* Enable'."\n" + .'* Disable'."\n", + 'type' => 'string', + 'example' => 'Enable', + ], + 'SFTPDownloadFile' => [ + 'description' => 'Indicates whether file downloading is enabled in SFTP-based O\\&M. Valid values:'."\n" + ."\n" + .'* Enable'."\n" + .'* Disable'."\n", + 'type' => 'string', + 'example' => 'Enable', + ], + 'SFTPMkdir' => [ + 'description' => 'Indicates whether folder creation is enabled in SFTP-based O\\&M. Valid values:'."\n" + ."\n" + .'* Enable'."\n" + .'* Disable'."\n", + 'type' => 'string', + 'example' => 'Enable', + ], + 'SFTPRemoveFile' => [ + 'description' => 'Indicates whether file deletion is enabled in SFTP-based O\\&M. Valid values:'."\n" + ."\n" + .'* Enable'."\n" + .'* Disable'."\n", + 'type' => 'string', + 'example' => 'Enable', + ], + 'SFTPRenameFile' => [ + 'description' => 'Indicates whether file renaming is enabled in SFTP-based O\\&M. Valid values:'."\n" + ."\n" + .'* Enable'."\n" + .'* Disable'."\n", + 'type' => 'string', + 'example' => 'Enable', + ], + 'SFTPRmdir' => [ + 'description' => 'Indicates whether folder deletion is enabled in SFTP-based O\\&M. Valid values:'."\n" + ."\n" + .'* Enable'."\n" + .'* Disable'."\n", + 'type' => 'string', + 'example' => 'Enable', + ], + 'SFTPUploadFile' => [ + 'description' => 'Indicates whether file uploading is enabled in SFTP-based O\\&M. Valid values:'."\n" + ."\n" + .'* Enable'."\n" + .'* Disable'."\n", + 'type' => 'string', + 'example' => 'Enable', + ], + 'SSHChannel' => [ + 'description' => 'Indicates whether the SSH channel option is enabled. Valid values:'."\n" + ."\n" + .'* Enable'."\n" + .'* Disable'."\n", + 'type' => 'string', + 'example' => 'Enable', + ], + 'X11Forwarding' => [ + 'description' => 'Indicates whether X11 forwarding is enabled. Valid values:'."\n" + ."\n" + .'* Enable'."\n" + .'* Disable'."\n", + 'type' => 'string', + 'example' => 'Enable', + ], + ], + ], + ], + ], + 'ApprovalConfig' => [ + 'description' => 'The O\\&M approval setting.'."\n", + 'type' => 'object', + 'properties' => [ + 'SwitchStatus' => [ + 'description' => 'Indicates whether O\\&M approval is enabled in the control policy. Valid values:'."\n" + ."\n" + .'* **On**: O\\&M approval is enabled.'."\n" + .'* **Off**: O\\&M approval is disabled.'."\n", + 'type' => 'string', + 'example' => 'Off', + ], + ], + ], + ], + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '0D29F2C0-8B4B-5861-9474-F3F23D25594B', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The argument is invalid.', + ], + ], + 404 => [ + [ + 'errorCode' => 'PolicyNotFound', + 'errorMessage' => 'The policy is not found.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'An unknown error occurred.', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Policy\\": {\\n \\"AccessTimeRangeConfig\\": {\\n \\"EffectiveTime\\": [\\n {\\n \\"Days\\": [\\n \\"[2]\\"\\n ],\\n \\"Hours\\": [\\n \\"[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23]\\"\\n ]\\n }\\n ]\\n },\\n \\"CommandConfig\\": {\\n \\"Approval\\": {\\n \\"Commands\\": [\\n \\"ls\\"\\n ]\\n },\\n \\"Deny\\": {\\n \\"AclType\\": \\"black\\",\\n \\"Commands\\": [\\n \\"ls\\"\\n ]\\n }\\n },\\n \\"Comment\\": \\"comment\\",\\n \\"IPAclConfig\\": {\\n \\"AclType\\": \\"black\\",\\n \\"IPs\\": [\\n \\"[10.10.**.**]\\"\\n ]\\n },\\n \\"PolicyName\\": \\"test\\",\\n \\"PolicyId\\": \\"3\\",\\n \\"Priority\\": 1,\\n \\"ProtocolConfig\\": {\\n \\"RDP\\": {\\n \\"ClipboardDownload\\": \\"Enable\\",\\n \\"ClipboardUpload\\": \\"Enable\\",\\n \\"DiskRedirection\\": \\"Enable\\",\\n \\"RecordKeyboard\\": \\"Enable\\"\\n },\\n \\"SSH\\": {\\n \\"ExecCommand\\": \\"Enable\\",\\n \\"SFTPChannel\\": \\"Enable\\",\\n \\"SFTPDownloadFile\\": \\"Enable\\",\\n \\"SFTPMkdir\\": \\"Enable\\",\\n \\"SFTPRemoveFile\\": \\"Enable\\",\\n \\"SFTPRenameFile\\": \\"Enable\\",\\n \\"SFTPRmdir\\": \\"Enable\\",\\n \\"SFTPUploadFile\\": \\"Enable\\",\\n \\"SSHChannel\\": \\"Enable\\",\\n \\"X11Forwarding\\": \\"Enable\\"\\n }\\n },\\n \\"ApprovalConfig\\": {\\n \\"SwitchStatus\\": \\"Off\\"\\n }\\n },\\n \\"RequestId\\": \\"0D29F2C0-8B4B-5861-9474-F3F23D25594B\\"\\n}","type":"json"}]', + 'title' => 'GetPolicy', + ], + 'ListPolicies' => [ + 'summary' => 'Queries a list of control policies.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREbastionhostW2TGHR', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The bastion host ID.'."\n" + ."\n" + .'> You can call the [DescribeInstances](~~153281~~) operation to query the bastion host ID.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'bastionhost-cn-5yd393wzk08', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the bastion host.'."\n" + ."\n" + .'> For more information about the mapping between region IDs and region names, see [Regions and zones](~~40654~~).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => [ + 'description' => 'The page number. Default value: **1**.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '1', + ], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of entries per page.\\'."\n" + .'Valid values: 1 to 100. Default value: 20. If you leave this parameter empty, 20 entries are returned on each page.'."\n" + ."\n" + .'> We recommend that you do not leave this parameter empty.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '20', + ], + ], + [ + 'name' => 'PolicyName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the control policy to query. Only exact match is supported.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '123', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'Policies' => [ + 'description' => 'The control policies.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Comment' => [ + 'description' => 'The remarks of the control policy.'."\n", + 'type' => 'string', + 'example' => '', + ], + 'PolicyId' => [ + 'description' => 'The control policy ID.'."\n", + 'type' => 'string', + 'example' => '2', + ], + 'PolicyName' => [ + 'description' => 'The name of the control policy.'."\n", + 'type' => 'string', + 'example' => 'test', + ], + 'Priority' => [ + 'description' => 'The priority of the control policy. A smaller value indicates a higher priority.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1', + ], + ], + ], + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'EC9BF0F4-8983-491A-BC8C-1B4DD94976DE', + ], + 'TotalCount' => [ + 'description' => 'The total number of control policies that are returned.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '10', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The argument is invalid.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'An unknown error occurred.', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Policies\\": [\\n {\\n \\"Comment\\": \\"Comment\\\\t\\",\\n \\"PolicyId\\": \\"2\\",\\n \\"PolicyName\\": \\"test\\",\\n \\"Priority\\": 1\\n }\\n ],\\n \\"RequestId\\": \\"EC9BF0F4-8983-491A-BC8C-1B4DD94976DE\\",\\n \\"TotalCount\\": 10\\n}","type":"json"}]', + 'title' => 'ListPolicies', + ], + 'GetPolicyAssetScope' => [ + 'summary' => 'Queries the assets to which a control policy applies.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The bastion host ID.'."\n" + ."\n" + .'> You can call the [DescribeInstances](~~153281~~) operation to query the bastion host ID.', + 'type' => 'string', + 'required' => true, + 'example' => 'bastionhost-cn-st220aw****', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the bastion host.'."\n" + ."\n" + .'> For more information about the mapping between region IDs and region names, see [Regions and zones](~~40654~~).', + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'PolicyId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The control policy ID.'."\n" + ."\n" + .'> You can call the [ListPolicies](~~2758876~~) operation to query the control policy ID.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '7', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'AssetScope' => [ + 'description' => 'The assets to which the control policy applies.'."\n", + 'type' => 'object', + 'properties' => [ + 'Databases' => [ + 'description' => 'The databases and database accounts to which the control policy applies.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'AccountScopeType' => [ + 'description' => 'The scope of database accounts to which the control policy applies. Valid values:'."\n" + ."\n" + .'* **All**: The control policy applies to all database accounts of the database.'."\n" + .'* **AccountId**: The control policy applies to specified database accounts of the database.'."\n", + 'type' => 'string', + 'example' => 'AccountId', + ], + 'DatabaseAccountIds' => [ + 'description' => 'The IDs of database accounts to which the control policy applies.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The database account ID.'."\n", + 'type' => 'string', + 'example' => '["3"]'."\n", + ], + ], + 'DatabaseId' => [ + 'description' => 'The database ID.'."\n", + 'type' => 'string', + 'example' => '17', + ], + ], + ], + ], + 'HostGroups' => [ + 'description' => 'The asset groups and asset accounts to which the control policy applies.', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'AccountNames' => [ + 'description' => 'The asset accounts to which the control policy applies.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The username of the asset account.'."\n", + 'type' => 'string', + 'example' => 'root', + ], + ], + 'AccountScopeType' => [ + 'description' => 'The scope of asset accounts to which the control policy applies. Valid values:'."\n" + ."\n" + .'* **All**: The control policy applies to all accounts in the asset group.'."\n" + .'* **AccountName**: The control policy applies to specified accounts in the asset group.'."\n", + 'type' => 'string', + 'example' => 'All', + ], + 'HostGroupId' => [ + 'description' => 'The asset group ID.'."\n", + 'type' => 'string', + 'example' => '4', + ], + ], + ], + ], + 'Hosts' => [ + 'description' => 'The hosts and host accounts to which the control policy applies.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'AccountScopeType' => [ + 'description' => 'The scope of host accounts to which the control policy applies. Valid values:'."\n" + ."\n" + .'* **All**: The control policy applies to all accounts of the host.'."\n" + .'* **AccountId**: The control policy applies to specified accounts of the host.'."\n", + 'type' => 'string', + 'example' => 'All', + ], + 'HostAccountIds' => [ + 'description' => 'The host accounts to which the control policy applies.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The host account IDs.'."\n", + 'type' => 'string', + 'example' => '["3"]', + ], + ], + 'HostId' => [ + 'description' => 'The host ID.'."\n", + 'type' => 'string', + 'example' => '1', + ], + ], + ], + ], + 'ScopeType' => [ + 'description' => 'The scope of assets to which the control policy applies.'."\n" + ."\n" + .'* If **All** is returned for this parameter, the control policy applies to all assets.'."\n" + ."\n" + .'* If no value is returned for this parameter, the control policy applies to the assets specified in the return values of Databases, HostGroups, and Hosts.', + 'type' => 'string', + 'example' => 'All', + ], + ], + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'EC9BF0F4-8983-491A-BC8C-1B4DD94976DE', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The argument is invalid.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'An unknown error occurred.', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"AssetScope\\": {\\n \\"Databases\\": [\\n {\\n \\"AccountScopeType\\": \\"AccountId\\",\\n \\"DatabaseAccountIds\\": [\\n \\"3\\\\n\\"\\n ],\\n \\"DatabaseId\\": \\"17\\"\\n }\\n ],\\n \\"HostGroups\\": [\\n {\\n \\"AccountNames\\": [\\n \\"root\\"\\n ],\\n \\"AccountScopeType\\": \\"All\\",\\n \\"HostGroupId\\": \\"4\\"\\n }\\n ],\\n \\"Hosts\\": [\\n {\\n \\"AccountScopeType\\": \\"All\\",\\n \\"HostAccountIds\\": [\\n \\"3\\"\\n ],\\n \\"HostId\\": \\"1\\"\\n }\\n ],\\n \\"ScopeType\\": \\"All\\"\\n },\\n \\"RequestId\\": \\"EC9BF0F4-8983-491A-BC8C-1B4DD94976DE\\"\\n}","type":"json"}]', + 'title' => 'GetPolicyAssetScope', + ], + 'SetPolicyProtocolConfig' => [ + 'summary' => 'Configures the Remote Desktop Protocol (RDP) options, SSH options, and SSH Fine Transfer Protocol (SFTP) options for a control policy.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREbastionhostW2TGHR', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The bastion host ID.'."\n" + ."\n" + .'> You can call the [DescribeInstances](~~153281~~) operation to query the bastion host ID.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'bastionhost-cn-st220aw****', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the bastion host.'."\n" + ."\n" + .'> For more information about the mapping between region IDs and region names, see [Regions and zones](~~40654~~).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'PolicyId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the control policy that you want to modify.'."\n" + ."\n" + .'> You can call the [ListPolicies](~~2758876~~) operation to query the control policy ID.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '61', + ], + ], + [ + 'name' => 'ProtocolConfig', + 'in' => 'query', + 'style' => 'json', + 'schema' => [ + 'description' => 'The protocol control settings.'."\n", + 'type' => 'object', + 'properties' => [ + 'RDP' => [ + 'description' => 'The settings of the Remote Desktop Protocol (RDP) options.'."\n", + 'type' => 'object', + 'properties' => [ + 'RecordKeyboard' => [ + 'description' => 'Specifies whether to enable keyboard operation recording. Valid values:'."\n" + ."\n" + .'* Enable'."\n" + .'* Disable'."\n" + ."\n" + .'> If you do not specify this parameter, the default value Disable is used.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'Enable', + 'enum' => [ + 'Enable', + 'Disable', + ], + ], + 'DiskRedirection' => [ + 'description' => 'Specifies whether to enable driver mapping. Valid values:'."\n" + ."\n" + .'* Enable'."\n" + .'* Disable'."\n" + ."\n" + .'> If you do not specify this parameter, the default value Disable is used.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'Enable', + 'enum' => [ + 'Enable', + 'Disable', + ], + ], + 'ClipboardDownload' => [ + 'description' => 'Specifies whether to enable downloading from the clipboard. Valid values:'."\n" + ."\n" + .'* Enable'."\n" + .'* Disable'."\n" + ."\n" + .'> If you do not specify this parameter, the default value Disable is used.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'Enable', + 'enum' => [ + 'Enable', + 'Disable', + ], + ], + 'ClipboardUpload' => [ + 'description' => 'Specifies whether to enable uploading from the clipboard. Valid values:'."\n" + ."\n" + .'* Enable'."\n" + .'* Disable'."\n" + ."\n" + .'> If you do not specify this parameter, the default value Disable is used.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'Enable', + 'enum' => [ + 'Enable', + 'Disable', + ], + ], + 'DiskRedirectionUpload' => [ + 'title' => '允许磁盘上传', + 'type' => 'string', + 'example' => 'Enable', + 'enum' => [ + 'Enable', + 'Disable', + ], + ], + 'DiskRedirectionDownload' => [ + 'title' => '允许磁盘下载', + 'type' => 'string', + 'example' => 'Enable', + 'enum' => [ + 'Enable', + 'Disable', + ], + ], + ], + 'required' => false, + ], + 'SSH' => [ + 'description' => 'The settings of the SSH and SSH Fine Transfer Protocol (SFTP) options.'."\n", + 'type' => 'object', + 'properties' => [ + 'X11Forwarding' => [ + 'description' => 'Specifies whether to enable X11 forwarding. Valid values:'."\n" + ."\n" + .'* Enable'."\n" + .'* Disable'."\n" + ."\n" + .'> If you do not specify this parameter, the default value Disable is used.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'Enable', + 'enum' => [ + 'Enable', + 'Disable', + ], + ], + 'SFTPChannel' => [ + 'description' => 'Specifies whether to enable SFTP channels. Valid values:'."\n" + ."\n" + .'* Enable'."\n" + .'* Disable'."\n" + ."\n" + .'> '."\n" + ."\n" + .'* If you do not specify this parameter, the default value Disable is used.'."\n" + ."\n" + .'* You must set at least one of the following parameters to Enable: SSHChannel and SFTPChannel.'."\n" + ."\n" + .'* If you select Enable Only SFTP Permission for a host account, do not set SSHChannel and SFTPChannel to Disable for the account. Otherwise, users of the bastion host cannot use the account to access the host.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'Enable', + 'enum' => [ + 'Enable', + 'Disable', + ], + ], + 'SSHChannel' => [ + 'description' => 'Specifies whether to enable SSH channels. Valid values:'."\n" + ."\n" + .'* Enable'."\n" + .'* Disable'."\n" + ."\n" + .'> '."\n" + ."\n" + .'* If you do not specify this parameter, the default value Disable is used.'."\n" + ."\n" + .'* You must set at least one of the following parameters to Enable: SSHChannel and SFTPChannel. If you set SSHChannel to Disable, SSH-based logon is disabled for the asset account. Proceed with caution.'."\n" + ."\n" + .'* If you select Enable Only SFTP Permission for a host account, do not set SSHChannel and SFTPChannel to Disable for the account. Otherwise, users of the bastion host cannot use the account to access the host.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'Enable', + 'enum' => [ + 'Enable', + 'Disable', + ], + ], + 'ExecCommand' => [ + 'description' => 'Specifies whether to enable remote command execution. Valid values:'."\n" + ."\n" + .'* Enable'."\n" + .'* Disable'."\n" + ."\n" + .'> If you do not specify this parameter, the default value Disable is used.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'Enable', + 'enum' => [ + 'Enable', + 'Disable', + ], + ], + 'SFTPUploadFile' => [ + 'description' => 'Specifies whether to enable file uploading during SFTP-based O\\&M. Valid values:'."\n" + ."\n" + .'* Enable'."\n" + .'* Disable'."\n" + ."\n" + .'> If you do not specify this parameter, the default value Disable is used.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'Enable', + 'enum' => [ + 'Enable', + 'Disable', + ], + ], + 'SFTPDownloadFile' => [ + 'description' => 'Specifies whether to enable file downloading during SFTP-based O\\&M. Valid values:'."\n" + ."\n" + .'* Enable'."\n" + .'* Disable'."\n" + ."\n" + .'> If you do not specify this parameter, the default value Disable is used.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'Enable', + 'enum' => [ + 'Enable', + 'Disable', + ], + ], + 'SFTPRemoveFile' => [ + 'description' => 'Specifies whether to enable file deletion during SFTP-based O\\&M. Valid values:'."\n" + ."\n" + .'* Enable'."\n" + .'* Disable'."\n" + ."\n" + .'> If you do not specify this parameter, the default value Disable is used.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'Enable', + 'enum' => [ + 'Enable', + 'Disable', + ], + ], + 'SFTPRenameFile' => [ + 'description' => 'Specifies whether to enable file renaming during SFTP-based O\\&M. Valid values:'."\n" + ."\n" + .'* Enable'."\n" + .'* Disable'."\n" + ."\n" + .'> If you do not specify this parameter, the default value Disable is used.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'Enable', + 'enum' => [ + 'Enable', + 'Disable', + ], + ], + 'SFTPMkdir' => [ + 'description' => 'Specifies whether to enable folder creation during SFTP-based O\\&M. Valid values:'."\n" + ."\n" + .'* Enable'."\n" + .'* Disable'."\n" + ."\n" + .'> If you do not specify this parameter, the default value Disable is used.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'Enable', + 'enum' => [ + 'Enable', + 'Disable', + ], + ], + 'SFTPRmdir' => [ + 'description' => 'Specifies whether to enable folder deletion during SFTP-based O\\&M. Valid values:'."\n" + ."\n" + .'* Enable'."\n" + .'* Disable'."\n" + ."\n" + .'> If you do not specify this parameter, the default value Disable is used.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'Enable', + 'enum' => [ + 'Enable', + 'Disable', + ], + ], + 'AllowDirectTcp' => [ + 'title' => '允许 TCP 直连', + 'type' => 'string', + 'example' => 'Enable', + 'enum' => [ + 'Enable', + 'Disable', + ], + ], + 'AllowTcpForwarding' => [ + 'title' => '允许 TCP 转发', + 'type' => 'string', + 'example' => 'Enable', + 'enum' => [ + 'Enable', + 'Disable', + ], + ], + ], + 'required' => false, + ], + ], + 'required' => true, + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '81500666-d7f5-4143-8329-0223cc738105', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The argument is invalid.', + ], + ], + 404 => [ + [ + 'errorCode' => 'PolicyNotFound', + 'errorMessage' => 'The policy is not found.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'An unknown error occurred.', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"81500666-d7f5-4143-8329-0223cc738105\\"\\n}","type":"json"}]', + 'title' => 'SetPolicyProtocolConfig', + ], + 'SetPolicyCommandConfig' => [ + 'summary' => 'Specifies the commands that can or cannot be run by the users or on the assets associated with the policy and the commands that must be reviewed.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREbastionhostW2TGHR', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The bastion host ID.'."\n" + ."\n" + .'> You can call the [DescribeInstances](~~153281~~) operation to query the bastion host ID.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'bastionhost-cn-78v1ghxxxxx', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the bastion host.'."\n" + ."\n" + .'> For more information about the mapping between region IDs and region names, see [Regions and zones](~~40654~~).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'PolicyId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the control policy that you want to modify.'."\n" + ."\n" + .'> You can call the [ListPolicies](~~2758876~~) operation to query the control policy ID.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '45', + ], + ], + [ + 'name' => 'CommandConfig', + 'in' => 'query', + 'style' => 'json', + 'schema' => [ + 'description' => 'The command control settings.'."\n" + ."\n" + .'> This parameter applies only to Linux hosts.'."\n", + 'type' => 'object', + 'properties' => [ + 'Deny' => [ + 'description' => 'The command control settings.'."\n", + 'type' => 'object', + 'properties' => [ + 'AclType' => [ + 'description' => 'The type of command control. Valid values:'."\n" + ."\n" + .'* **black**: blacklist mode.'."\n" + .'* **white**: whitelist mode.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'white', + 'enum' => [ + 'black', + 'white', + ], + ], + 'Commands' => [ + 'description' => 'The commands to be controlled.'."\n" + ."\n" + .'> This parameter is required if AclType is set to white.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The command to be controlled.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '["mkdir"]', + ], + 'required' => false, + ], + ], + 'required' => true, + ], + 'Approval' => [ + 'description' => 'The command approval settings.'."\n" + ."\n" + .'> A command approval policy is used to approve the commands that are excluded from a whitelist or blacklist specified in a command control policy. The command control policy takes precedence over the command approval policy in validation.'."\n", + 'type' => 'object', + 'properties' => [ + 'Commands' => [ + 'description' => 'The commands that can be run only after approval.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The command that can be run only after approval.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '["mkdir"]', + ], + 'required' => false, + ], + ], + 'required' => false, + ], + ], + 'required' => true, + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '4F6C075F-FC86-476E-943B-097BD4E12948', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The argument is invalid.', + ], + ], + 404 => [ + [ + 'errorCode' => 'PolicyNotFound', + 'errorMessage' => 'The policy is not found.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'An unknown error occurred.', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"4F6C075F-FC86-476E-943B-097BD4E12948\\"\\n}","type":"json"}]', + 'title' => 'SetPolicyCommandConfig', + ], + 'SetPolicyIPAclConfig' => [ + 'summary' => 'Specifies whether a source IP address can access the assets to which a control policy applies.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREbastionhostW2TGHR', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The bastion host ID.'."\n" + ."\n" + .'> You can call the DescribeInstances operation to query the bastion host ID.[](~~153281~~)'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'bastionhost-cn-st220aw****', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the bastion host.'."\n" + ."\n" + .'> For more information about the mapping between region IDs and region names, see [Regions and zones](~~40654~~).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'PolicyId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the control policy that you want to modify.'."\n" + ."\n" + .'> You can call the [ListPolicies](~~2758876~~) operation to query the control policy ID.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '3', + ], + ], + [ + 'name' => 'IPAclConfig', + 'in' => 'query', + 'style' => 'json', + 'schema' => [ + 'description' => 'The access control settings for source IP addresses.'."\n", + 'type' => 'object', + 'properties' => [ + 'AclType' => [ + 'description' => 'The mode of access control on source IP addresses. Valid values:'."\n" + ."\n" + .'* **black**: blacklist mode.'."\n" + .'* **white**: whitelist mode.'."\n", + 'type' => 'string', + 'required' => true, + 'enumValueTitles' => [], + 'example' => 'white', + 'enum' => [ + 'black', + 'white', + ], + ], + 'IPs' => [ + 'description' => 'The source IP addresses in the blacklist or whitelist.'."\n" + ."\n" + .'> '."\n" + ."\n" + .'* This parameter is required if AclType is set to white.'."\n" + ."\n" + .'* If AclType is set to black but you do not want to add IP addresses to the blacklist, you can leave IPs empty.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The source IP address in the blacklist or whitelist.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '["1.1.1.1", “2.2.2.2"]', + 'pattern' => '^((25[0-5]|2[0-4]\\d|((1\\d{2})|([1-9]?\\d)))\\.){3}(25[0-5]|2[0-4]\\d|((1\\d{2})|([1-9]?\\d)))(\\s?-\\s?((25[0-5]|2[0-4]\\d|((1\\d{2})|([1-9]?\\d)))\\.){3}(25[0-5]|2[0-4]\\d|((1\\d{2})|([1-9]?\\d))))?$', + ], + 'required' => true, + ], + ], + 'required' => true, + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'EC9BF0F4-8983-491A-BC8C-1B4DD94976DE', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The argument is invalid.', + ], + ], + 404 => [ + [ + 'errorCode' => 'PolicyNotFound', + 'errorMessage' => 'The policy is not found.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'An unknown error occurred.', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"EC9BF0F4-8983-491A-BC8C-1B4DD94976DE\\"\\n}","type":"json"}]', + 'title' => 'SetPolicyIPAclConfig', + ], + 'GetPolicyUserScope' => [ + 'summary' => 'Queries the scope of users to whom a control policy applies.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREbastionhostW2TGHR', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the bastion host to which the control policy to query belongs.'."\n" + ."\n" + .'> You can call the [DescribeInstances](~~153281~~) operation to query the ID of the bastion host.', + 'type' => 'string', + 'required' => true, + 'example' => 'bastion-xxxx-xx', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the bastion host to which the control policy to query belongs.'."\n" + ."\n" + .'> For more information about the mapping between region IDs and region names, see [Regions and zones](~~40654~~).', + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'PolicyId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the control policy that you want to query.'."\n" + ."\n" + .'> You can call the [ListPolicies](~~2758876~~) operation to query the control policy ID.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '1', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'EC9BF0F4-8983-491A-BC8C-1B4DD94976DE', + ], + 'UserScope' => [ + 'description' => 'The users to whom the control policy applies.'."\n", + 'type' => 'object', + 'properties' => [ + 'ScopeType' => [ + 'description' => 'The scope of users to whom the control policy applies.'."\n" + .'* If **All** is returned for this parameter, the control policy applies to all users.'."\n" + ."\n" + .'* If no value is returned for this parameter, the control policy applies to the assets specified in the return values of UserGroupIds and UserIds.', + 'type' => 'string', + 'example' => 'All', + ], + 'UserGroupIds' => [ + 'description' => 'The user groups to which the control policy applies.', + 'type' => 'array', + 'items' => [ + 'description' => 'The user group IDs.', + 'type' => 'string', + 'example' => '["1", "2", "3"]', + ], + ], + 'UserIds' => [ + 'description' => 'The users to whom the control policy applies.', + 'type' => 'array', + 'items' => [ + 'description' => 'The user IDs.', + 'type' => 'string', + 'example' => '["1", "2", "3"]', + ], + ], + ], + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The argument is invalid.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'An unknown error occurred.', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"EC9BF0F4-8983-491A-BC8C-1B4DD94976DE\\",\\n \\"UserScope\\": {\\n \\"ScopeType\\": \\"All\\",\\n \\"UserGroupIds\\": [\\n \\"[\\\\\\"1\\\\\\", \\\\\\"2\\\\\\", \\\\\\"3\\\\\\"]\\"\\n ],\\n \\"UserIds\\": [\\n \\"[\\\\\\"1\\\\\\", \\\\\\"2\\\\\\", \\\\\\"3\\\\\\"]\\"\\n ]\\n }\\n}","type":"json"}]', + 'title' => 'GetPolicyUserScope', + ], + 'SetPolicyAccessTimeRangeConfig' => [ + 'summary' => 'Configures the logon period limits in a control policy.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREbastionhostW2TGHR', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The bastion host ID.'."\n" + ."\n" + .'> You can call the [DescribeInstances](~~153281~~) operation to query the bastion host ID.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'bastionhost-cn-st220aw****', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the bastion host.'."\n" + ."\n" + .'> For more information about the mapping between region IDs and region names, see [Regions and zones](~~40654~~).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'PolicyId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The control policy ID.'."\n" + ."\n" + .'> You can call the [ListPolicies](~~2758876~~) operation to query the control policy ID.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '13', + ], + ], + [ + 'name' => 'AccessTimeRangeConfig', + 'in' => 'query', + 'style' => 'json', + 'schema' => [ + 'description' => 'The logon period limits.'."\n", + 'type' => 'object', + 'properties' => [ + 'EffectiveTime' => [ + 'description' => 'The details about the periods during which users can log on to the assets.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Days' => [ + 'description' => 'The days of the week during which users can log on to the assets.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The day of the week during which users can log on to the assets. Valid values:'."\n" + ."\n" + .'* **1**: Monday.'."\n" + .'* **2**: Tuesday.'."\n" + .'* **3**: Wednesday.'."\n" + .'* **4**: Thursday.'."\n" + .'* **5**: Friday.'."\n" + .'* **6**: Saturday.'."\n" + .'* **7**: Sunday.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '[7]', + ], + 'required' => false, + ], + 'Hours' => [ + 'description' => 'The time periods of the day during which users can log on to the assets.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The time periods of the day during which users can log on to the assets. Valid values:'."\n" + ."\n" + .'* **0**: 00:00 to 01:00.'."\n" + .'* **1**: 01:00 to 02:00.'."\n" + .'* **2**: 02:00 to 03:00.'."\n" + .'* **3**: 03:00 to 04:00.'."\n" + .'* **4**: 04:00 to 05:00.'."\n" + .'* **5**: 05:00 to 06:00.'."\n" + .'* **6**: 06:00 to 07:00.'."\n" + .'* **7**: 07:00 to 08:00.'."\n" + .'* **8**: 08:00 to 09:00.'."\n" + .'* **9**: 09:00 to 10:00.'."\n" + .'* **10**: 10:00 to 11:00.'."\n" + .'* **11**: 11:00 to 12:00.'."\n" + .'* **12**: 12:00 to 13:00.'."\n" + .'* **13**: 13:00 to 14:00.'."\n" + .'* **14**: 14:00 to 15:00.'."\n" + .'* **15**: 15:00 to 16:00.'."\n" + .'* **16**: 16:00 to 17:00.'."\n" + .'* **17**: 17:00 to 18:00.'."\n" + .'* **18**: 18:00 to 19:00.'."\n" + .'* **19**: 19:00 to 20:00.'."\n" + .'* **20**: 20:00 to 21:00.'."\n" + .'* **21**: 21:00 to 22:00.'."\n" + .'* **22**: 22:00 to 23:00.'."\n" + .'* **23**: 23:00 to 24:00.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '[9, 14]', + ], + 'required' => false, + ], + ], + 'required' => false, + ], + 'required' => false, + ], + ], + 'required' => true, + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'EC9BF0F4-8983-491A-BC8C-1B4DD94976DE', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The argument is invalid.', + ], + ], + 404 => [ + [ + 'errorCode' => 'PolicyNotFound', + 'errorMessage' => 'The policy is not found.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'An unknown error occurred.', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"EC9BF0F4-8983-491A-BC8C-1B4DD94976DE\\"\\n}","type":"json"}]', + 'title' => 'SetPolicyAccessTimeRangeConfig', + ], + 'SetPolicyAssetScope' => [ + 'summary' => 'Specifies the assets to which a control policy applies.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREbastionhostW2TGHR', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The bastion host ID.'."\n" + ."\n" + .'> You can call the [DescribeInstances](~~153281~~) operation to query the bastion host ID.', + 'type' => 'string', + 'required' => true, + 'example' => 'bastionhost-cn-st220aw****', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the bastion host.'."\n" + ."\n" + .'> For more information about the mapping between region IDs and region names, see [Regions and zones](~~40654~~).', + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'PolicyId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the control policy that you want to modify.'."\n" + ."\n" + .'> You can call the [ListPolicies](~~2758876~~) operation to query the control policy ID.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '7', + ], + ], + [ + 'name' => 'ScopeType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The scope of assets to which the control policy applies. Valid values:'."\n" + ."\n" + .'* **All**: The control policy applies to all assets.'."\n" + .'* **Host**: The control policy applies to specified hosts.'."\n" + .'* **Database**: The control policy applies to specified databases.'."\n" + .'* **HostGroup**: The control policy applies to specified asset groups.', + 'type' => 'string', + 'required' => true, + 'example' => 'All', + ], + ], + [ + 'name' => 'Hosts', + 'in' => 'query', + 'style' => 'flat', + 'schema' => [ + 'description' => 'The hosts to which the control policy applies.'."\n" + ."\n" + .'> This parameter is required if ScopeType is set to Host. You can specify up to 500 hosts.', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'HostId' => [ + 'description' => 'The host ID.', + 'type' => 'string', + 'required' => false, + 'example' => '1', + ], + 'AccountScopeType' => [ + 'description' => 'The scope of host accounts to which the control policy applies. Valid values:'."\n" + ."\n" + .'* **All**: The control policy applies to all accounts of the host.'."\n" + .'* **AccountId**: The control policy applies specified accounts of the host.', + 'type' => 'string', + 'required' => false, + 'example' => 'All', + ], + 'HostAccountIds' => [ + 'description' => 'The host accounts to which the control policy applies.'."\n" + ."\n" + .'> This parameter is required if AccountScopeType is set to AccountId.', + 'type' => 'array', + 'items' => [ + 'description' => 'The host account ID.', + 'type' => 'string', + 'required' => false, + 'example' => '["96"]', + ], + 'required' => false, + ], + ], + 'required' => false, + ], + 'required' => false, + ], + ], + [ + 'name' => 'Databases', + 'in' => 'query', + 'style' => 'flat', + 'schema' => [ + 'description' => 'The databases to which the control policy applies.'."\n" + ."\n" + .'> This parameter is required if ScopeType is set to Database. You can specify up to 500 databases.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'DatabaseId' => [ + 'description' => 'The database ID.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '3', + ], + 'AccountScopeType' => [ + 'description' => 'The scope of database accounts to which the control policy applies. Valid values:'."\n" + ."\n" + .'* **All**: The control policy applies to all database accounts of the database.'."\n" + .'* **AccountId**: The control policy applies to specified database accounts of the database.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'AccountId', + ], + 'DatabaseAccountIds' => [ + 'description' => 'The database accounts to which the control policy applies.'."\n" + ."\n" + .'> This parameter is required if AccountScopeType is set to AccountId.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The database account IDs.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '["3"]', + ], + 'required' => false, + ], + ], + 'required' => false, + 'description' => '', + ], + 'required' => false, + ], + ], + [ + 'name' => 'HostGroups', + 'in' => 'query', + 'style' => 'flat', + 'schema' => [ + 'description' => 'The asset groups to which the control policy applies.'."\n" + ."\n" + .'> This parameter is required if ScopeType is set to HostGroup. You can specify up to 100 asset groups.', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'HostGroupId' => [ + 'description' => 'The asset group ID.', + 'type' => 'string', + 'required' => false, + 'example' => '86', + ], + 'AccountScopeType' => [ + 'description' => 'The scope of asset accounts to which the control policy applies. Valid values:'."\n" + ."\n" + .'* **All**: The control policy applies to all accounts in the asset group.'."\n" + .'* **AccountName**: The control policy applies to specified accounts in the asset group.', + 'type' => 'string', + 'required' => false, + 'example' => 'All', + ], + 'AccountNames' => [ + 'description' => 'The asset accounts to which the control policy applies.'."\n" + ."\n" + .'> This parameter is required if AccountScopeType is set to AccountName.', + 'type' => 'array', + 'items' => [ + 'description' => 'The username of the asset account.', + 'type' => 'string', + 'required' => false, + 'example' => '["root", "admin"]', + 'minLength' => 1, + 'pattern' => '^\\S+$', + ], + 'required' => false, + ], + ], + 'required' => false, + ], + 'required' => false, + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '5EAB922E-F476-5DFA-9290-313C608E724B', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The argument is invalid.', + ], + ], + 404 => [ + [ + 'errorCode' => 'PolicyNotFound', + 'errorMessage' => 'The policy is not found.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'An unknown error occurred.', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"5EAB922E-F476-5DFA-9290-313C608E724B\\"\\n}","type":"json"}]', + 'title' => 'SetPolicyAssetScope', + ], + 'SetPolicyUserScope' => [ + 'summary' => 'Specifies the users to whom a control policy applies.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREbastionhostW2TGHR', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The bastion host ID.'."\n" + ."\n" + .'> You can call the [DescribeInstances](~~153281~~) operation to query the bastion host ID.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'bastionhost-cn-st220aw****', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the bastion host.'."\n" + ."\n" + .'> For more information about the mapping between region IDs and region names, see [Regions and zones](~~40654~~).', + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'PolicyId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the control policy that you want to modify.'."\n" + ."\n" + .'> You can call the [ListPolicies](~~2758876~~) operation to query the control policy ID.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '1', + ], + ], + [ + 'name' => 'ScopeType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The scope of users to whom the control policy applies. Valid values:'."\n" + ."\n" + .'* **All**: The control policy applies to all users.'."\n" + .'* **User**: The control policy applies to specified users.'."\n" + .'* **UserGroup**: The control policy applies to specified user groups.', + 'type' => 'string', + 'required' => true, + 'example' => 'All', + ], + ], + [ + 'name' => 'UserIds', + 'in' => 'query', + 'style' => 'flat', + 'schema' => [ + 'description' => 'The users to whom the control policy applies.'."\n" + ."\n" + .'> This parameter is required if ScopeType is set to User. You can specify up to 500 user IDs.', + 'type' => 'array', + 'items' => [ + 'description' => 'The user ID.', + 'type' => 'string', + 'required' => false, + 'example' => '["1", "2", "3"]', + ], + 'required' => false, + ], + ], + [ + 'name' => 'UserGroupIds', + 'in' => 'query', + 'style' => 'flat', + 'schema' => [ + 'description' => 'The user groups to which the control policy applies.'."\n" + ."\n" + .'> This parameter is required if ScopeType is set to UserGroup. You can specify up to 100 user group IDs.', + 'type' => 'array', + 'items' => [ + 'description' => 'The user group ID.', + 'type' => 'string', + 'required' => false, + 'example' => '["1", "2", "3"]', + ], + 'required' => false, + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'EC9BF0F4-8983-491A-BC8C-1B4DD94976DE ', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The argument is invalid.', + ], + ], + 404 => [ + [ + 'errorCode' => 'PolicyNotFound', + 'errorMessage' => 'The policy is not found.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'An unknown error occurred.', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"EC9BF0F4-8983-491A-BC8C-1B4DD94976DE \\"\\n}","type":"json"}]', + 'title' => 'SetPolicyUserScope', + ], + 'SetPolicyApprovalConfig' => [ + 'summary' => 'Configures the O\\&M approval setting in a control policy.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREbastionhostW2TGHR', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The bastion host ID.'."\n" + ."\n" + .'> You can call the [DescribeInstances](~~153281~~) operation to query the bastion host ID.', + 'type' => 'string', + 'required' => true, + 'example' => 'bastionhost-cn-st220aw****', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the bastion host.'."\n" + ."\n" + .'> For more information about the mapping between region IDs and region names, see [Regions and zones](~~40654~~).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'PolicyId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the control policy that you want to modify.'."\n" + ."\n" + .'> You can call the [ListPolicies](~~2758876~~) operation to query the control policy ID.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '7', + ], + ], + [ + 'name' => 'ApprovalConfig', + 'in' => 'query', + 'allowEmptyValue' => false, + 'style' => 'json', + 'schema' => [ + 'description' => 'The O&M approval setting in the control policy.', + 'type' => 'object', + 'properties' => [ + 'SwitchStatus' => [ + 'description' => 'Specifies whether to enable O&M approval in the control policy. Valid values:'."\n" + ."\n" + .'* **On**: enables O&M approval.'."\n" + .'* **Off**: disables O&M approval.', + 'type' => 'string', + 'required' => true, + 'example' => 'On', + 'enum' => [ + 'Off', + 'On', + ], + ], + ], + 'required' => true, + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'EC9BF0F4-8983-491A-BC8C-1B4DD94976DE', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The argument is invalid.', + ], + ], + 404 => [ + [ + 'errorCode' => 'PolicyNotFound', + 'errorMessage' => 'The policy is not found.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'An unknown error occurred.', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"EC9BF0F4-8983-491A-BC8C-1B4DD94976DE\\"\\n}","type":"json"}]', + 'title' => 'SetPolicyApprovalConfig', + ], + 'DeletePolicy' => [ + 'summary' => 'Deletes a control policy.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'delete', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREbastionhostW2TGHR', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the bastion host whose control policy you want to delete.'."\n" + ."\n" + .'> You can call the [DescribeInstances](~~153281~~) operation to query the ID of the bastion host.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'bastionhost-cn-st220aw****', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the bastion host.'."\n" + ."\n" + .'> For more information about the mapping between region IDs and region names, see [Regions and zones](~~40654~~).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'PolicyId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the control policy to be deleted.'."\n" + ."\n" + .'> You can call the [ListPolicies](~~2758876~~) operation to query the control policy ID.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '1', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'EC9BF0F4-8983-491A-BC8C-1B4DD94976DE', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The argument is invalid.', + ], + ], + 404 => [ + [ + 'errorCode' => 'PolicyNotFound', + 'errorMessage' => 'The policy is not found.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'An unknown error occurred.', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"EC9BF0F4-8983-491A-BC8C-1B4DD94976DE\\"\\n}","type":"json"}]', + 'title' => 'DeletePolicy', + ], + 'ListApproveCommands' => [ + 'summary' => 'Queries commands to be reviewed.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREbastionhost1WGNM5', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the bastion host.'."\n" + ."\n" + .'> You can call the [DescribeInstances](~~153281~~) operation to query the ID of the bastion host.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'bastionhost-cn-zvp2xvysf08', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the bastion host.'."\n" + ."\n" + .'> For more information about the mapping between region IDs and region names, see [Regions and zones](~~40654~~).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-beijing', + ], + ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of the page. Default value: **1**.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '1', + ], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of entries per page.\\'."\n" + .'Maximum value: 1000. Default value: 20. If you leave this parameter empty, 20 entries are returned on each page.'."\n" + ."\n" + .'> We recommend that you do not leave this parameter empty.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '20', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'description' => 'The returned data.'."\n", + 'type' => 'object', + 'properties' => [ + 'ApproveCommands' => [ + 'description' => 'The commands to be reviewed.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The returned data.'."\n", + 'type' => 'object', + 'properties' => [ + 'ApproveCommandId' => [ + 'description' => 'The ID of the command to be reviewed.'."\n", + 'type' => 'string', + 'example' => '1', + ], + 'AssetAccountName' => [ + 'description' => 'The username of the asset account that is used for O\\&M.'."\n", + 'type' => 'string', + 'example' => 'root', + ], + 'AssetIp' => [ + 'description' => 'The IP address of the asset for O\\&M.'."\n", + 'type' => 'string', + 'example' => '10.167.XX.XX', + ], + 'AssetName' => [ + 'description' => 'The name of the asset.'."\n", + 'type' => 'string', + 'example' => 'poros-test', + ], + 'ClientIp' => [ + 'description' => 'The source IP address from which the application is submitted.'."\n", + 'type' => 'string', + 'example' => '172.18.XX.XX', + ], + 'ClientUser' => [ + 'description' => 'The Bastionhost user who submitted the O\\&M application.'."\n", + 'type' => 'string', + 'example' => 'test', + ], + 'Command' => [ + 'description' => 'The command to be reviewed.'."\n", + 'type' => 'string', + 'example' => '/bin/bash', + ], + 'CreateTime' => [ + 'description' => 'The time when the O\\&M application was submitted. The value is a UNIX timestamp. Unit: seconds.'."\n", + 'type' => 'string', + 'example' => '1679393152', + ], + 'ProtocolName' => [ + 'description' => 'The O\\&M protocol.'."\n", + 'type' => 'string', + 'example' => 'SSH', + ], + 'SessionId' => [ + 'description' => 'The ID of the O\\&M session that triggered the review.'."\n", + 'type' => 'string', + 'example' => '95f873ab64a76d5b0000000000004d5e', + ], + 'State' => [ + 'description' => 'The status of the review. Valid values: **Wait**: The command is pending review.'."\n", + 'type' => 'string', + 'example' => 'Wait', + ], + ], + ], + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'E3EF7711-766D-5888-997B-EFBA76809229', + ], + 'TotalCount' => [ + 'description' => 'The total number of commands to be reviewed.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '15', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The argument is invalid.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'An unknown error occurred.', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"ApproveCommands\\": [\\n {\\n \\"ApproveCommandId\\": \\"1\\",\\n \\"AssetAccountName\\": \\"root\\",\\n \\"AssetIp\\": \\"10.167.XX.XX\\",\\n \\"AssetName\\": \\"poros-test\\",\\n \\"ClientIp\\": \\"172.18.XX.XX\\",\\n \\"ClientUser\\": \\"test\\",\\n \\"Command\\": \\"/bin/bash\\",\\n \\"CreateTime\\": \\"1679393152\\",\\n \\"ProtocolName\\": \\"SSH\\",\\n \\"SessionId\\": \\"95f873ab64a76d5b0000000000004d5e\\",\\n \\"State\\": \\"Wait\\"\\n }\\n ],\\n \\"RequestId\\": \\"E3EF7711-766D-5888-997B-EFBA76809229\\",\\n \\"TotalCount\\": 15\\n}","type":"json"}]', + 'title' => 'ListApproveCommands', + 'description' => 'You can call this operation to query commands to be reviewed by a Bastionhost administrator.'."\n" + ."\n" + .'You can call this operation up to 10 times per second per account. If the number of the calls per second exceeds the limit, throttling is triggered. As a result, your business may be affected. We recommend that you take note of the limit when you call this operation.'."\n", + ], + 'AcceptApproveCommand' => [ + 'summary' => 'If an O\\\\\\&M engineer attempts to run a command specified in the Command Approval field on the Create Control Policy page, the administrator is notified to review the command in the Bastionhost console. The command can be run only after it is approved by the administrator.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREbastionhost1WGNM5', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the bastion host.'."\n" + ."\n" + .'> You can call the DescribeInstances operation to query the ID of the bastion host.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'bastionhost-cn-st220aw****', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the bastion host.'."\n" + ."\n" + .'> For more information about the mapping between region IDs and region names, see [Regions and zones](~~40654~~).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'CommandId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the command that you want to approve.'."\n" + ."\n" + .'> You can call the [ListApproveCommands](~~2584310~~) operation to query the IDs of all commands that need to be reviewed.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '7', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'EC9BF0F4-8983-491A-BC8C-1B4DD94976DE', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The argument is invalid.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'An unknown error occurred.', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"EC9BF0F4-8983-491A-BC8C-1B4DD94976DE\\"\\n}","type":"json"}]', + 'title' => 'AcceptApproveCommand', + 'description' => 'You can call this operation as a Bastionhost administrator to approve the request to run a command of an O\\&M engineer.'."\n" + ."\n" + .'You can call this operation up to 10 times per second per account. If the number of the calls per second exceeds the limit, throttling is triggered. As a result, your business may be affected. We recommend that you take note of the limit when you call this operation.'."\n", + ], + 'RejectApproveCommand' => [ + 'summary' => 'If an O\\\\\\&M engineer attempts to run a command specified in the Command Approval section of the Create Control Policy page, the administrator is notified to review the command in the Bastionhost console. The command can be run only after it is approved by the administrator.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREbastionhost1WGNM5', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the bastion host.'."\n" + ."\n" + .'> You can call the [DescribeInstances](~~153281~~) operation to query the ID of the bastion host.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'bastionhost-cn-st220aw****', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the bastion host.'."\n" + ."\n" + .'> For more information about the mapping between region IDs and region names, see [Regions and zones](~~40654~~).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'CommandId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the command that you want to reject.'."\n" + ."\n" + .'> You can call the [ListApproveCommands](~~2584310~~) operation to query the IDs of all commands that need to be reviewed.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '574', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'EC9BF0F4-8983-491A-BC8C-1B4DD94976DE', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The argument is invalid.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'An unknown error occurred.', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"EC9BF0F4-8983-491A-BC8C-1B4DD94976DE\\"\\n}","type":"json"}]', + 'title' => 'RejectApproveCommand', + 'description' => 'You can call this operation as a Bastionhost administrator to reject the request to run a command of an O\\&M engineer.'."\n" + ."\n" + .'You can call this operation up to 10 times per second per account. If the number of the calls per second exceeds the limit, throttling is triggered. As a result, your business may be affected. We recommend that you take note of the limit when you call this operation.'."\n", + ], + 'ListOperationTickets' => [ + 'summary' => 'Queries O\\\\\\\\\\\\&M applications to be reviewed.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'list', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '188191', + 'abilityTreeNodes' => [ + 'FEATUREbastionhost1WGNM5', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the bastion host.'."\n" + ."\n" + .'> You can call the [DescribeInstances](~~153281~~) operation to query the ID of the bastion host.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'bastionhost-cn-st220aw****', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the bastion host.'."\n" + ."\n" + .'> For more information about the mapping between region IDs and region names, see [Regions and zones](~~40654~~).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of the page. Default value: **1**.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '1', + ], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of entries per page.\\'."\n" + .'Maximum value: 1000. Default value: 20. If you leave this parameter empty, 20 entries are returned on each page.'."\n" + ."\n" + .'> We recommend that you do not leave this parameter empty.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '20', + ], + ], + [ + 'name' => 'AssetAddress', + 'in' => 'query', + 'schema' => [ + 'description' => 'The IP address of the asset that is contained in the O\\&M application to be reviewed.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '10.167.XX.XX', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'description' => 'The response parameters.'."\n", + 'type' => 'object', + 'properties' => [ + 'OperationTickets' => [ + 'description' => 'The O\\&M applications to be reviewed.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The data returned.'."\n", + 'type' => 'object', + 'properties' => [ + 'ApplyUserId' => [ + 'description' => 'The ID of the O\\&M applicant.'."\n", + 'type' => 'string', + 'example' => '1', + ], + 'ApplyUsername' => [ + 'description' => 'The username of the O\\&M applicant.'."\n", + 'type' => 'string', + 'example' => 'test', + ], + 'AssetAccountId' => [ + 'description' => 'The ID of the asset account.'."\n", + 'type' => 'string', + 'example' => '1', + ], + 'AssetAccountName' => [ + 'description' => 'The username of the asset account.'."\n", + 'type' => 'string', + 'example' => 'root', + ], + 'AssetAddress' => [ + 'description' => 'The IP address of the asset.'."\n", + 'type' => 'string', + 'example' => '10.167.XX.XX', + ], + 'AssetId' => [ + 'description' => 'The ID of the asset.'."\n", + 'type' => 'string', + 'example' => '2', + ], + 'AssetName' => [ + 'description' => 'The name of the asset.'."\n", + 'type' => 'string', + 'example' => 'poros-test', + ], + 'AssetNetworkDomainId' => [ + 'description' => 'The network domain ID of the asset.'."\n", + 'type' => 'string', + 'example' => '2', + ], + 'AssetOs' => [ + 'description' => 'The operating system of the asset.'."\n", + 'type' => 'string', + 'example' => 'Linux', + ], + 'AssetSource' => [ + 'description' => 'The name of the asset source to which the asset belongs. Valid values:'."\n" + ."\n" + .'* **Local**: an on-premises host.'."\n" + .'* **Ecs**: an Elastic Compute Service (ECS) instance.'."\n" + .'* **Rds**: an ApsaraDB RDS instance.'."\n" + .'* A third-party asset source.'."\n", + 'type' => 'string', + 'example' => 'Local', + ], + 'AssetSourceInstanceId' => [ + 'description' => 'The ID of the asset source to which the asset belongs.'."\n", + 'type' => 'string', + 'example' => '1', + ], + 'CreatedTime' => [ + 'description' => 'The time when the O\\&M application was submitted. The value is a UNIX timestamp. Unit: seconds.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1669965908', + ], + 'OperationTicketId' => [ + 'description' => 'The ID of the O\\&M application to be reviewed.'."\n", + 'type' => 'string', + 'example' => '1', + ], + 'ProtocolName' => [ + 'description' => 'The O\\&M protocol.'."\n", + 'type' => 'string', + 'example' => 'SSH', + ], + 'State' => [ + 'description' => 'The status of the review. Valid value:'."\n" + ."\n" + .'* Normal: to be reviewed'."\n", + 'type' => 'string', + 'example' => 'Normal', + ], + 'ApproveComment' => [ + 'description' => 'The remarks entered when the O\\&M personnel applies for O\\&M permissions.'."\n", + 'type' => 'string', + 'example' => 'Apply for O\\&M'."\n", + ], + 'EffectStartTime' => [ + 'description' => 'The start time of the validity period. The value is a UNIX timestamp. Unit: seconds.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '1685600242', + ], + 'EffectEndTime' => [ + 'description' => 'The end time of the validity period. The value is a UNIX timestamp. Unit: seconds.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '1679393152', + ], + 'EffectCount' => [ + 'description' => 'The maximum number of logons applied by the O\\&M engineer. Valid values:'."\n" + ."\n" + .'* **0**: The number of logons is unlimited. The O\\&M engineer can log on to the specified asset for unlimited times during the validity period.'."\n" + .'* **1**: The O\\&M engineer can log on to the specified asset only once during the validity period.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '0', + ], + ], + ], + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'EC9BF0F4-8983-491A-BC8C-1B4DD94976DE', + ], + 'TotalCount' => [ + 'description' => 'The total number of O\\&M applications to be reviewed.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '20', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The argument is invalid.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'An unknown error occurred.', + ], + ], + ], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"OperationTickets\\": [\\n {\\n \\"ApplyUserId\\": \\"1\\",\\n \\"ApplyUsername\\": \\"test\\",\\n \\"AssetAccountId\\": \\"1\\",\\n \\"AssetAccountName\\": \\"root\\",\\n \\"AssetAddress\\": \\"10.167.XX.XX\\",\\n \\"AssetId\\": \\"2\\",\\n \\"AssetName\\": \\"poros-test\\",\\n \\"AssetNetworkDomainId\\": \\"2\\",\\n \\"AssetOs\\": \\"Linux\\",\\n \\"AssetSource\\": \\"Local\\",\\n \\"AssetSourceInstanceId\\": \\"1\\",\\n \\"CreatedTime\\": 1669965908,\\n \\"OperationTicketId\\": \\"1\\",\\n \\"ProtocolName\\": \\"SSH\\",\\n \\"State\\": \\"Normal\\",\\n \\"ApproveComment\\": \\"申请运维\\",\\n \\"EffectStartTime\\": 1685600242,\\n \\"EffectEndTime\\": 1679393152,\\n \\"EffectCount\\": 0\\n }\\n ],\\n \\"RequestId\\": \\"EC9BF0F4-8983-491A-BC8C-1B4DD94976DE\\",\\n \\"TotalCount\\": 20\\n}","type":"json"}]', + 'title' => 'ListOperationTickets', + 'description' => 'You can call this operation to query the O\\&M applications to be reviewed by a Bastionhost administrator.'."\n" + ."\n" + .'You can call this operation up to 10 times per second per account. If the number of the calls per second exceeds the limit, throttling is triggered. As a result, your business may be affected. We recommend that you take note of the limit when you call this operation.'."\n", + ], + 'AcceptOperationTicket' => [ + 'summary' => 'Approves an O\\\\\\\\\\\\\\\\\\\\&M application.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '188193', + 'abilityTreeNodes' => [ + 'FEATUREbastionhost1WGNM5', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the bastion host.'."\n" + ."\n" + .'> You can call the [DescribeInstances](~~153281~~) operation to query the ID of the bastion host.', + 'type' => 'string', + 'required' => true, + 'example' => 'bastionhost-cn-st220aw****', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the bastion host.'."\n" + ."\n" + .'> For more information about the mapping between region IDs and region names, see [Regions and zones](~~40654~~).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'OperationTicketId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the O\\&M application that you want to approve. You can call the ListOperationTickets operation to query the IDs of all O\\&M applications that require review.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '1', + ], + ], + [ + 'name' => 'EffectCount', + 'in' => 'query', + 'allowEmptyValue' => false, + 'schema' => [ + 'description' => 'The maximum number of logons allowed. Valid values:'."\n" + ."\n" + .'* **0**: The number of logons is unlimited. The O\\&M engineer can log on to the specified asset for unlimited times during the validity period.'."\n" + .'* **1**: The O\\&M engineer can log on to the specified asset only once during the validity period.'."\n" + ."\n" + .'> * You can set this parameter only to 0 if you review an O\\&M application on a database.'."\n" + .'> * If you do not specify this parameter, the default value 0 is used.', + 'type' => 'string', + 'required' => false, + 'example' => '1', + 'enum' => [ + '1', + '0', + ], + ], + ], + [ + 'name' => 'EffectStartTime', + 'in' => 'query', + 'schema' => [ + 'description' => 'The start time of the validity period. The value is a UNIX timestamp. Unit: seconds.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '1685600242', + ], + ], + [ + 'name' => 'EffectEndTime', + 'in' => 'query', + 'schema' => [ + 'description' => 'The end time of the validity period. The value is a UNIX timestamp. Unit: seconds.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '1679393152', + ], + ], + [ + 'name' => 'Comment', + 'in' => 'query', + 'schema' => [ + 'description' => 'The review description.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'O\\&M allowed'."\n", + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'EC9BF0F4-8983-491A-BC8C-1B4DD94976DE', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The argument is invalid.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'An unknown error occurred.', + ], + ], + ], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"EC9BF0F4-8983-491A-BC8C-1B4DD94976DE\\"\\n}","type":"json"}]', + 'title' => 'AcceptOperationTicket', + 'description' => 'You can call this operation as a Bastionhost administrator to approve an O\\&M application of an O\\&M engineer.'."\n" + ."\n" + .'You can call this operation up to 10 times per second per account. If the number of the calls per second exceeds the limit, throttling is triggered. As a result, your business may be affected. We recommend that you take note of the limit when you call this operation.'."\n", + ], + 'RejectOperationTicket' => [ + 'summary' => 'If a Bastionhost administrator enables O\\\\\\&M Approval on the Create Control Policy page, O\\\\\\&M engineers can log on to assets to perform O\\\\\\&M operations only after the administrator approves their O\\\\\\&M applications.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '188192', + 'abilityTreeNodes' => [ + 'FEATUREbastionhost1WGNM5', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the bastion host.'."\n" + ."\n" + .'> You can call the [DescribeInstances](~~153281~~) operation to query the ID of the bastion host.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'bastionhost-cn-st220aw****', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the bastion host.'."\n" + ."\n" + .'> For more information about the mapping between region IDs and region names, see [Regions and zones](~~40654~~).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'OperationTicketId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the O\\&M application that you want to reject.'."\n" + ."\n" + .'> You can call the [ListOperationTickets](~~2584313~~) operation to query the IDs of all O\\&M applications that require review.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '2', + ], + ], + [ + 'name' => 'Comment', + 'in' => 'query', + 'schema' => [ + 'description' => 'The review remarks.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'comment', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'EC9BF0F4-8983-491A-BC8C-1B4DD94976DE', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The argument is invalid.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'An unknown error occurred.', + ], + ], + ], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"EC9BF0F4-8983-491A-BC8C-1B4DD94976DE\\"\\n}","type":"json"}]', + 'title' => 'RejectOperationTicket', + 'description' => 'You can call this operation to reject an O\\&M application of an O\\&M engineer as a Bastionhost administrator.'."\n" + ."\n" + .'You can call this operation up to 10 times per second per account. If the number of the calls per second exceeds the limit, throttling is triggered. As a result, your business may be affected. We recommend that you take note of the limit when you call this operation.'."\n", + ], + 'CreateHostShareKey' => [ + 'summary' => 'Bastionhost provides the shared key feature. This feature allows you to manage the private key that is used to log on to a host in a bastion host. This way, you can associate the private key with multiple accounts of the host to make host account management more efficient.', + 'methods' => [ + 'get', + 'post', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'create', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREbastionhost4PMV5G', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The bastion host ID.'."\n" + ."\n" + .'> You can call the [DescribeInstances](~~153281~~) operation to query the bastion host ID.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'bastionhost-cn-st220aw****', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the bastion host.'."\n" + ."\n" + .'> For more information about the mapping between region IDs and region names, see [Regions and zones](~~40654~~).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'HostShareKeyName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the shared key that you want to create. The name can be a maximum of 128 characters in length.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'name', + ], + ], + [ + 'name' => 'PrivateKey', + 'in' => 'query', + 'schema' => [ + 'description' => 'The private key. The value is a Base64-encoded string.'."\n" + ."\n" + .'> You can specify a Rivest-Shamir-Adleman (RSA) key that is generated by using the ssh-keygen command or a key that is generated by using the Ed25519 algorithm.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '****', + ], + ], + [ + 'name' => 'PassPhrase', + 'in' => 'query', + 'schema' => [ + 'description' => 'The password of the private key. The value is a Base64-encoded string.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '*****', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'Schema of Response'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'title' => 'Id of the request', + 'description' => 'The ID of the request, which is used to locate and troubleshoot issues.'."\n", + 'type' => 'string', + 'example' => 'EC9BF0F4-8983-491A-BC8C-1B4DD94976DE', + ], + 'HostShareKeyId' => [ + 'description' => 'The ID of the shared key.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '10235', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'HostShareKeyAlreadyExists', + 'errorMessage' => 'The host share key already exists. ', + ], + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The argument is invalid.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'An unknown error occurred.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"EC9BF0F4-8983-491A-BC8C-1B4DD94976DE\\",\\n \\"HostShareKeyId\\": 10235\\n}","errorExample":""},{"type":"xml","example":"<CreateHostShareKeyResponse>\\n <RequestId>EC9BF0F4-8983-491A-BC8C-1B4DD94976DE</RequestId>\\n <HostShareKeyId>10235</HostShareKeyId>\\n</CreateHostShareKeyResponse>","errorExample":""}]', + 'title' => 'CreateHostShareKey', + ], + 'GetHostShareKey' => [ + 'summary' => 'Queries the information about a shared key.', + 'methods' => [ + 'get', + 'post', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREbastionhost4PMV5G', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The bastion host ID.'."\n" + ."\n" + .'> You can call the [DescribeInstances](~~153281~~) operation to query the bastion host ID.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'bastionhost-cn-st220aw****', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the bastion host.'."\n" + ."\n" + .'> For more information about the mapping between region IDs and region names, see [Regions and zones](~~40654~~).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'HostShareKeyId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the shared key whose information you want to query.'."\n" + ."\n" + .'> You can call the [ListHostShareKeys](~~462973~~) operation to query the shared key ID.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '10427', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'Schema of Response'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'title' => 'Id of the request', + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'EC9BF0F4-8983-491A-BC8C-1B4DD94976DE', + ], + 'HostShareKey' => [ + 'description' => 'The returned information about the shared key.'."\n", + 'type' => 'object', + 'properties' => [ + 'HostShareKeyId' => [ + 'description' => 'The ID of the shared key.'."\n", + 'type' => 'string', + 'example' => '10427', + ], + 'HostShareKeyName' => [ + 'description' => 'The name of the shared key.'."\n", + 'type' => 'string', + 'example' => 'name', + ], + 'LastModifyKeyAt' => [ + 'description' => 'The time when the information about the shared key was last modified. The value is a UNIX timestamp. Unit: seconds.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1644287246', + ], + 'PrivateKeyFingerPrint' => [ + 'description' => 'The fingerprint of the private key.'."\n", + 'type' => 'string', + 'example' => '***', + ], + ], + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The argument is invalid.', + ], + ], + 404 => [ + [ + 'errorCode' => 'HostShareKeyNotFound', + 'errorMessage' => 'The host share key is not found.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'An unknown error occurred.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"EC9BF0F4-8983-491A-BC8C-1B4DD94976DE\\",\\n \\"HostShareKey\\": {\\n \\"HostShareKeyId\\": \\"10427\\",\\n \\"HostShareKeyName\\": \\"name\\",\\n \\"LastModifyKeyAt\\": 1644287246,\\n \\"PrivateKeyFingerPrint\\": \\"aa:10:f5:21:7f:8b:3e:86:b0:8b:f0:******\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"<GetHostShareKeyResponse>\\n <RequestId>EC9BF0F4-8983-491A-BC8C-1B4DD94976DE</RequestId>\\n <HostShareKey>\\n <HostShareKeyId>10427</HostShareKeyId>\\n <HostShareKeyName>name</HostShareKeyName>\\n <LastModifyKeyAt>1644287246</LastModifyKeyAt>\\n <PrivateKeyFingerPrint>***</PrivateKeyFingerPrint>\\n </HostShareKey>\\n</GetHostShareKeyResponse>","errorExample":""}]', + 'title' => 'GetHostShareKey', + ], + 'ListHostShareKeys' => [ + 'summary' => 'Queries the shared keys that are associated with a host.', + 'methods' => [ + 'get', + 'post', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'list', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREbastionhost4PMV5G', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The bastion host ID.'."\n" + ."\n" + .'> You can call the [DescribeInstances](~~153281~~) operation to query the bastion host ID.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'bastionhost-cn-st220aw****', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the bastion host.'."\n" + ."\n" + .'> For more information about the mapping between region IDs and region names, see [Regions and zones](~~40654~~).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of the page to return. Default value: **1**.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '1', + ], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of entries to return on each page. Default value: **20**.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '20', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'Schema of Response'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'title' => 'Id of the request', + 'description' => 'The ID of the request, which is used to locate and troubleshoot issues.'."\n", + 'type' => 'string', + 'example' => 'EC9BF0F4-8983-491A-BC8C-1B4DD94976DE', + ], + 'TotalCount' => [ + 'description' => 'The total number of the shared keys.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '10', + ], + 'HostShareKeys' => [ + 'description' => 'An array that consists of the shared keys.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'HostAccountCount' => [ + 'description' => 'The number of the associated host accounts.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1', + ], + 'LastModifyKeyAt' => [ + 'description' => 'The time when the shared key was last modified. The value is a UNIX timestamp. Unit: seconds.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1644806406', + ], + 'HostShareKeyName' => [ + 'description' => 'The name of the shared key.'."\n", + 'type' => 'string', + 'example' => 'name', + ], + 'PrivateKeyFingerPrint' => [ + 'description' => 'The fingerprint of the private key.'."\n", + 'type' => 'string', + 'example' => '****', + ], + 'HostShareKeyId' => [ + 'description' => 'The shared key ID.'."\n", + 'type' => 'string', + 'example' => '10247', + ], + ], + 'description' => '', + ], + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The argument is invalid.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'An unknown error occurred.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"EC9BF0F4-8983-491A-BC8C-1B4DD94976DE\\",\\n \\"TotalCount\\": 10,\\n \\"HostShareKeys\\": [\\n {\\n \\"HostAccountCount\\": 1,\\n \\"LastModifyKeyAt\\": 1644806406,\\n \\"HostShareKeyName\\": \\"name\\",\\n \\"PrivateKeyFingerPrint\\": \\"aa:10:f5:21:7f:8b:3e:86:b0:8b:f0:e0******\\",\\n \\"HostShareKeyId\\": \\"10247\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"<ListHostShareKeysResponse>\\n <RequestId>EC9BF0F4-8983-491A-BC8C-1B4DD94976DE</RequestId>\\n <TotalCount>10</TotalCount>\\n <HostShareKeys>\\n <HostAccountCount>1</HostAccountCount>\\n <LastModifyKeyAt>1644806406</LastModifyKeyAt>\\n <HostShareKeyName>name</HostShareKeyName>\\n <PrivateKeyFingerPrint>****</PrivateKeyFingerPrint>\\n <HostShareKeyId>10247</HostShareKeyId>\\n </HostShareKeys>\\n</ListHostShareKeysResponse>","errorExample":""}]', + 'title' => 'ListHostShareKeys', + ], + 'ListHostAccountsForHostShareKey' => [ + 'summary' => 'Queries the host accounts that are associated with a shared key.', + 'methods' => [ + 'get', + 'post', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREbastionhost4PMV5G', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The bastion host ID.'."\n" + ."\n" + .'> You can call the [DescribeInstances](~~153281~~) operation to query the bastion host ID.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'bastionhost-cn-st220aw****', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the bastion host.'."\n" + ."\n" + .'> For more information about the mapping between region IDs and region names, see [Regions and zones](~~40654~~).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'HostShareKeyId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The shared key ID.'."\n" + ."\n" + .'> You can call the [ListHostShareKeys](~~462973~~) operation to query the shared key ID.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '1124', + ], + ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of the page to return. Default value: **1**.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '1', + ], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of entries to return on each page. Default value: **10**.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '10', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'Schema of Response'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'title' => 'Id of the request', + 'description' => 'The ID of the request, which is used to locate and troubleshoot issues.'."\n", + 'type' => 'string', + 'example' => 'EC9BF0F4-8983-491A-BC8C-1B4DD94976DE', + ], + 'HostAccounts' => [ + 'description' => 'An array that consists of the host accounts that are associated with the shared key.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'HostAccountName' => [ + 'description' => 'The name of the host account.'."\n", + 'type' => 'string', + 'example' => 'root1234', + ], + 'HostId' => [ + 'description' => 'The ID of the host.'."\n", + 'type' => 'string', + 'example' => '1113', + ], + 'HostsAccountId' => [ + 'description' => 'The ID of the host account.'."\n", + 'type' => 'string', + 'example' => '1235', + ], + 'ProtocolName' => [ + 'description' => 'The O\\&M protocol.'."\n", + 'type' => 'string', + 'example' => 'SSH', + ], + ], + ], + ], + 'TotalCount' => [ + 'description' => 'The total number of the host accounts that are associated with the shared key.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '5', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'HostShareKeyNotFound', + 'errorMessage' => 'The host share key is not found.', + ], + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The argument is invalid.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'An unknown error occurred.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"EC9BF0F4-8983-491A-BC8C-1B4DD94976DE\\",\\n \\"HostAccounts\\": [\\n {\\n \\"HostAccountName\\": \\"root1234\\",\\n \\"HostId\\": \\"1113\\",\\n \\"HostsAccountId\\": \\"1235\\",\\n \\"ProtocolName\\": \\"SSH\\"\\n }\\n ],\\n \\"TotalCount\\": 5\\n}","errorExample":""},{"type":"xml","example":"<ListHostAccountsForHostShareKeyResponse>\\n <RequestId>EC9BF0F4-8983-491A-BC8C-1B4DD94976DE</RequestId>\\n <HostAccounts>\\n <HostAccountName>root1234</HostAccountName>\\n <HostId>1113</HostId>\\n <HostsAccountId>1235</HostsAccountId>\\n <ProtocolName>SSH</ProtocolName>\\n </HostAccounts>\\n <TotalCount>5</TotalCount>\\n</ListHostAccountsForHostShareKeyResponse>","errorExample":""}]', + 'title' => 'ListHostAccountsForHostShareKey', + ], + 'ModifyHostShareKey' => [ + 'summary' => 'Modifies a shared key.', + 'methods' => [ + 'get', + 'post', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREbastionhost4PMV5G', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The bastion host ID.'."\n" + ."\n" + .'> You can call the [DescribeInstances](~~153281~~) operation to query the bastion host ID.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'bastionhost-cn-st220aw****', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the bastion host.'."\n" + ."\n" + .'> For more information about the mapping between region IDs and region names, see [Regions and zones](~~40654~~).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'HostShareKeyId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the shared key whose information you want to modify.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '10247', + ], + ], + [ + 'name' => 'HostShareKeyName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the shared key.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'name', + ], + ], + [ + 'name' => 'PrivateKey', + 'in' => 'query', + 'schema' => [ + 'description' => 'The private key. Specify a Base64-encoded string.'."\n" + ."\n" + .'> Only Rivest-Shamir-Adleman (RSA) keys that are generated by using the ssh-keygen command and keys that are generated by using the Ed25519 algorithm are supported.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '****', + ], + ], + [ + 'name' => 'PassPhrase', + 'in' => 'query', + 'schema' => [ + 'description' => 'The password of the private key. Specify a Base64-encoded string.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '****', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'Schema of Response'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'title' => 'Id of the request', + 'description' => 'The ID of the request, which is used to locate and troubleshoot issues.'."\n", + 'type' => 'string', + 'example' => 'EC9BF0F4-8983-491A-BC8C-1B4DD94976DE', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The argument is invalid.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'An unknown error occurred.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"EC9BF0F4-8983-491A-BC8C-1B4DD94976DE\\"\\n}","errorExample":""},{"type":"xml","example":"<ModifyHostShareKeyResponse>\\n <RequestId>EC9BF0F4-8983-491A-BC8C-1B4DD94976DE</RequestId>\\n</ModifyHostShareKeyResponse>","errorExample":""}]', + 'title' => 'ModifyHostShareKey', + ], + 'AttachHostAccountsToHostShareKey' => [ + 'summary' => 'Associates host accounts with a shared key.', + 'methods' => [ + 'get', + 'post', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREbastionhost4PMV5G', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the bastion host. You can call the [DescribeInstances](~~153281~~) operation to query the ID of the bastion host.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'bastionhost-cn-st220aw****', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the bastion host. For more information about the mapping between region IDs and region names, see [Regions and zones](~~40654~~).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'HostShareKeyId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The shared key ID.'."\n" + ."\n" + .'> You must specify this parameter. You can call the [ListHostShareKeys](~~462973~~) operation to query the shared key ID.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '10267', + ], + ], + [ + 'name' => 'HostAccountIds', + 'in' => 'query', + 'schema' => [ + 'description' => 'The host account IDs.'."\n" + ."\n" + .'> You must specify this parameter. You can call the [ListHostAccounts](~~462937~~) operation to query the host account IDs.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '["1","2","3"]', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'Schema of Response'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'title' => 'Id of the request', + 'description' => 'The ID of the request, which is used to locate and troubleshoot issues.'."\n", + 'type' => 'string', + 'example' => 'EC9BF0F4-8983-491A-BC8C-1B4DD94976DE', + ], + 'Results' => [ + 'description' => 'The result of the call.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Code' => [ + 'description' => 'The error code returned. If **OK** is returned, the association was successful. If another error code is returned, the association failed.'."\n", + 'type' => 'string', + 'example' => 'OK', + ], + 'Message' => [ + 'description' => 'The error message returned.'."\n", + 'type' => 'string', + 'example' => 'The host account does not exist', + ], + 'HostShareKeyId' => [ + 'description' => 'The ID of the shared key.'."\n", + 'type' => 'string', + 'example' => '10267', + ], + 'HostAccountId' => [ + 'description' => 'The ID of the host account.'."\n", + 'type' => 'string', + 'example' => '1201', + ], + ], + ], + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The argument is invalid.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'An unknown error occurred.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"EC9BF0F4-8983-491A-BC8C-1B4DD94976DE\\",\\n \\"Results\\": [\\n {\\n \\"Code\\": \\"OK\\",\\n \\"Message\\": \\"The host account does not exist\\",\\n \\"HostShareKeyId\\": \\"10267\\",\\n \\"HostAccountId\\": \\"1201\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"<AttachHostAccountsToHostShareKeyResponse>\\n <RequestId>EC9BF0F4-8983-491A-BC8C-1B4DD94976DE</RequestId>\\n <Results>\\n <Code>OK</Code>\\n <Message>The host account does not exist</Message>\\n <HostShareKeyId>10267</HostShareKeyId>\\n <HostAccountId>1201</HostAccountId>\\n </Results>\\n</AttachHostAccountsToHostShareKeyResponse>","errorExample":""}]', + 'title' => 'AttachHostAccountsToHostShareKey', + ], + 'DetachHostAccountsFromHostShareKey' => [ + 'summary' => 'Disassociate host accounts from a shared key.', + 'methods' => [ + 'get', + 'post', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREbastionhost4PMV5G', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The bastion host ID.'."\n" + ."\n" + .'> You can call the [DescribeInstances](~~153281~~) operation to query the bastion host ID.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'bastionhost-cn-st220aw****', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the bastion host.'."\n" + ."\n" + .'> For more information about the mapping between region IDs and region names, see [Regions and zones](~~40654~~).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'HostShareKeyId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The shared key ID.'."\n" + ."\n" + .'> You can call the [ListHostShareKeys](~~462973~~) operation to query the shared key ID.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '11', + ], + ], + [ + 'name' => 'HostAccountIds', + 'in' => 'query', + 'schema' => [ + 'description' => 'The host account IDs.'."\n" + ."\n" + .'> You can call the [ListHostAccountsForHostShareKey](~~462975~~) operation to query the host account IDs.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '["1","2","3"]', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'Schema of Response'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'title' => 'Id of the request', + 'description' => 'The ID of the request, which is used to locate and troubleshoot issues.'."\n", + 'type' => 'string', + 'example' => 'EC9BF0F4-8983-491A-BC8C-1B4DD94976DE', + ], + 'Results' => [ + 'description' => 'The result of the call.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Code' => [ + 'description' => 'The error code returned. If **OK** is returned, the disassociation was successful. If a different error code is returned, the disassociation failed.'."\n", + 'type' => 'string', + 'example' => 'OK', + ], + 'Message' => [ + 'description' => 'The error message returned.'."\n", + 'type' => 'string', + 'example' => 'The host account does not exist', + ], + 'HostShareKeyId' => [ + 'description' => 'The ID of the shared key.'."\n", + 'type' => 'string', + 'example' => '11', + ], + 'HostAccountId' => [ + 'description' => 'The ID of the host account.'."\n", + 'type' => 'string', + 'example' => '12407', + ], + ], + ], + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The argument is invalid.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'An unknown error occurred.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"EC9BF0F4-8983-491A-BC8C-1B4DD94976DE\\",\\n \\"Results\\": [\\n {\\n \\"Code\\": \\"OK\\",\\n \\"Message\\": \\"The host account does not exist\\",\\n \\"HostShareKeyId\\": \\"11\\",\\n \\"HostAccountId\\": \\"12407\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"<DetachHostAccountsFromHostShareKeyResponse>\\n <RequestId>EC9BF0F4-8983-491A-BC8C-1B4DD94976DE</RequestId>\\n <Results>\\n <Code>OK</Code>\\n <Message>The host account does not exist</Message>\\n <HostShareKeyId>11</HostShareKeyId>\\n <HostAccountId>12407</HostAccountId>\\n </Results>\\n</DetachHostAccountsFromHostShareKeyResponse>","errorExample":""}]', + 'title' => 'DetachHostAccountsFromHostShareKey', + ], + 'DeleteHostShareKey' => [ + 'summary' => 'Deletes a shared key.', + 'methods' => [ + 'get', + 'post', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'delete', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREbastionhost4PMV5G', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The bastion host ID.'."\n" + ."\n" + .'> You can call the [DescribeInstances](~~153281~~) operation to query the bastion host ID.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'bastionhost-cn-st220aw****', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the bastion host.'."\n" + ."\n" + .'> For more information about the mapping between region IDs and region names, see [Regions and zones](~~40654~~).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'HostShareKeyId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The shared key ID.'."\n" + ."\n" + .'> You must specify this parameter. You can call the [ListHostShareKeys](~~462973~~) operation to query the shared key ID.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '11206', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'Schema of Response'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'title' => 'Id of the request', + 'description' => 'The ID of the request, which is used to locate and troubleshoot issues.'."\n", + 'type' => 'string', + 'example' => 'EC9BF0F4-8983-491A-BC8C-1B4DD94976DE', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The argument is invalid.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'An unknown error occurred.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"EC9BF0F4-8983-491A-BC8C-1B4DD94976DE\\"\\n}","errorExample":""},{"type":"xml","example":"<DeleteHostShareKeyResponse>\\n <RequestId>EC9BF0F4-8983-491A-BC8C-1B4DD94976DE</RequestId>\\n</DeleteHostShareKeyResponse>","errorExample":""}]', + 'title' => 'DeleteHostShareKey', + ], + 'GetInstanceADAuthServer' => [ + 'summary' => 'Queries the settings of Active Directory (AD) authentication on a bastion host.', + 'methods' => [ + 'get', + 'post', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREbastionhostOF2U94', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The bastion host ID.'."\n" + ."\n" + .'> You can call the [DescribeInstances](~~153281~~) operation to query the bastion host ID.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'bastionhost-cn-st220aw****', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the bastion host.'."\n" + ."\n" + .'> For more information about the mapping between region IDs and region names, see [Regions and zones](~~40654~~).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'Schema of Response'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'title' => 'Id of the request', + 'description' => 'The ID of the request, which is used to locate and troubleshoot issues.'."\n", + 'type' => 'string', + 'example' => '89398CFB-4EB6-4C7E-BB3C-EF213AC8FA50', + ], + 'AD' => [ + 'description' => 'The settings of AD authentication.'."\n", + 'type' => 'object', + 'properties' => [ + 'Account' => [ + 'description' => 'The distinguished name (DN) of the AD server account.'."\n", + 'type' => 'string', + 'example' => 'cn=Manager,dc=test,dc=com', + ], + 'BaseDN' => [ + 'description' => 'The Base DN of the AD server.'."\n", + 'type' => 'string', + 'example' => 'dc=test,dc=com', + ], + 'Domain' => [ + 'description' => 'The domain on the AD server.'."\n", + 'type' => 'string', + 'example' => 'domain', + ], + 'EmailMapping' => [ + 'description' => 'The field that is used to indicate the email address of a user on the AD server.'."\n", + 'type' => 'string', + 'example' => 'emailAttr', + ], + 'Filter' => [ + 'description' => 'The condition that is used to filter users.'."\n", + 'type' => 'string', + 'example' => '(&(objectClass=top))', + ], + 'IsSSL' => [ + 'description' => 'Indicates whether SSL is supported. Valid values:'."\n" + ."\n" + .'* **true**'."\n" + .'* **false**'."\n", + 'type' => 'boolean', + 'example' => 'true', + ], + 'MobileMapping' => [ + 'description' => 'The field that is used to indicate the mobile phone number of a user on the AD server.'."\n", + 'type' => 'string', + 'example' => 'mobileAttr', + ], + 'NameMapping' => [ + 'description' => 'The field that is used to indicate the name of a user on the AD server.'."\n", + 'type' => 'string', + 'example' => 'nameAttr', + ], + 'HasPassword' => [ + 'description' => 'Indicates whether passwords are required. Valid values:'."\n" + ."\n" + .'* **true**:'."\n" + .'* **false**'."\n", + 'type' => 'boolean', + 'example' => 'true', + ], + 'Port' => [ + 'description' => 'The port that is used to access the AD server.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '389', + ], + 'Server' => [ + 'description' => 'The address of the AD server.', + 'type' => 'string', + 'example' => '192.168.XX.XX', + ], + 'StandbyServer' => [ + 'description' => 'The address of the secondary AD server.', + 'type' => 'string', + 'example' => '192.168.XX.XX', + ], + ], + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The argument is invalid.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'An unknown error occurred.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"89398CFB-4EB6-4C7E-BB3C-EF213AC8FA50\\",\\n \\"AD\\": {\\n \\"Account\\": \\"cn=Manager,dc=test,dc=com\\",\\n \\"BaseDN\\": \\"dc=test,dc=com\\",\\n \\"Domain\\": \\"domain\\",\\n \\"EmailMapping\\": \\"emailAttr\\",\\n \\"Filter\\": \\"(&(objectClass=top))\\",\\n \\"IsSSL\\": true,\\n \\"MobileMapping\\": \\"mobileAttr\\",\\n \\"NameMapping\\": \\"nameAttr\\",\\n \\"HasPassword\\": true,\\n \\"Port\\": 389,\\n \\"Server\\": \\"192.168.XX.XX\\",\\n \\"StandbyServer\\": \\"192.168.XX.XX\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"<GetInstanceADAuthServerResponse>\\n <RequestId>89398CFB-4EB6-4C7E-BB3C-EF213AC8FA50</RequestId>\\n <AD>\\n <Account>cn=Manager,dc=test,dc=com</Account>\\n <BaseDN>dc=test,dc=com</BaseDN>\\n <Domain>domain</Domain>\\n <EmailMapping>emailAttr</EmailMapping>\\n <Filter>(&(objectClass=top))</Filter>\\n <IsSSL>true</IsSSL>\\n <MobileMapping>mobileAttr</MobileMapping>\\n <NameMapping>nameAttr</NameMapping>\\n <HasPassword>true</HasPassword>\\n <Port>389</Port>\\n <Server>192.168.XX.XX</Server>\\n <StandbyServer>192.168.XX.XX</StandbyServer>\\n </AD>\\n</GetInstanceADAuthServerResponse>","errorExample":""}]', + 'title' => 'GetInstanceADAuthServer', + 'description' => '###'."\n" + ."\n" + .'You can call this operation to query the settings of AD authentication on a bastion host. After you configure AD authentication on a bastion host, you can import AD-authenticated users into the bastion host. After the AD-authenticated users are imported into the bastion host, the AD-authenticated users can log on to the bastion host to perform O\\&M operations on servers.'."\n" + ."\n" + .'### Limit'."\n" + ."\n" + .'You can call this operation up to 10 times per second per account. If the number of the calls per second exceeds the limit, throttling is triggered. As a result, your business may be affected. We recommend that you take note of the limit when you call this operation.'."\n", + ], + 'ModifyInstanceADAuthServer' => [ + 'summary' => 'Modifies the settings of the Active Directory (AD) authentication server of a bastion host.', + 'methods' => [ + 'get', + 'post', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREbastionhostOF2U94', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The bastion host ID.'."\n" + ."\n" + .'> You can call the [DescribeInstances](~~153281~~) operation to query the bastion host ID.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'bastionhost-cn-st220aw****', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the bastion host.'."\n" + ."\n" + .'> For more information about the mapping between region IDs and region names, see [Regions and zones](~~40654~~).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'Server', + 'in' => 'query', + 'schema' => [ + 'description' => 'The address of the AD server.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '192.168.XX.XX', + ], + ], + [ + 'name' => 'StandbyServer', + 'in' => 'query', + 'schema' => [ + 'description' => 'The address of the secondary AD server.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '192.168.XX.XX', + ], + ], + [ + 'name' => 'Port', + 'in' => 'query', + 'schema' => [ + 'description' => 'The port that is used to access the server.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '389', + ], + ], + [ + 'name' => 'IsSSL', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether SSL is supported. Valid values:'."\n" + ."\n" + .'* **true**'."\n" + .'* **false**'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'true', + ], + ], + [ + 'name' => 'BaseDN', + 'in' => 'query', + 'schema' => [ + 'description' => 'The Base distinguished name (DN).'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'dc=test,dc=com', + ], + ], + [ + 'name' => 'Domain', + 'in' => 'query', + 'schema' => [ + 'description' => 'The domain on the AD server.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'domain', + ], + ], + [ + 'name' => 'Account', + 'in' => 'query', + 'schema' => [ + 'description' => 'The username of the account that is used for the AD server.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'cn=Manager,dc=test,dc=com', + ], + ], + [ + 'name' => 'Password', + 'in' => 'query', + 'schema' => [ + 'description' => 'The password of the account that is used for the AD server.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '******', + ], + ], + [ + 'name' => 'Filter', + 'in' => 'query', + 'schema' => [ + 'description' => 'The condition that is used to filter users.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '(objectClass=top)', + ], + ], + [ + 'name' => 'NameMapping', + 'in' => 'query', + 'schema' => [ + 'description' => 'The field that is used to indicate the name of a user on the AD server.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'nameAttr', + ], + ], + [ + 'name' => 'EmailMapping', + 'in' => 'query', + 'schema' => [ + 'description' => 'The field that is used to indicate the email address of a user on the AD server.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'emailAttr', + ], + ], + [ + 'name' => 'MobileMapping', + 'in' => 'query', + 'schema' => [ + 'description' => 'The field that is used to indicate the mobile phone number of a user on the AD server.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'mobileAttr', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'Schema of Response'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'title' => 'Id of the request', + 'description' => 'The ID of the request, which is used to locate and troubleshoot issues.'."\n", + 'type' => 'string', + 'example' => 'C9E97677-BD74-584B-AFCE-948C2A70BB82', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The argument is invalid.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'An unknown error occurred.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"C9E97677-BD74-584B-AFCE-948C2A70BB82\\"\\n}","errorExample":""},{"type":"xml","example":"<ModifyInstanceADAuthServerResponse>\\n <RequestId>C9E97677-BD74-584B-AFCE-948C2A70BB82</RequestId>\\n</ModifyInstanceADAuthServerResponse>","errorExample":""}]', + 'title' => 'ModifyInstanceADAuthServer', + ], + 'GetInstanceTwoFactor' => [ + 'summary' => 'Queries the settings of two-factor authentication on a bastion host.', + 'methods' => [ + 'get', + 'post', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREbastionhostOF2U94', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the bastion host.'."\n" + ."\n" + .'> You can call the [DescribeInstances](~~153281~~) operation to query the ID of the bastion host.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'bastionhost-cn-st220aw****', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the bastion host.'."\n" + ."\n" + .'> For more information about the mapping between region IDs and region names, see [Regions and zones](~~40654~~).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'Schema of Response'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'title' => 'Id of the request', + 'description' => 'The ID of the request, which is used to locate and troubleshoot issues.'."\n", + 'type' => 'string', + 'example' => 'EC9BF0F4-8983-491A-BC8C-1B4DD94976DE', + ], + 'Config' => [ + 'description' => 'The settings of two-factor authentication.'."\n", + 'type' => 'object', + 'properties' => [ + 'EnableTwoFactor' => [ + 'description' => 'Indicates whether two-factor authentication is enabled. Valid values:'."\n" + ."\n" + .'* **true**'."\n" + .'* **false**'."\n", + 'type' => 'boolean', + 'example' => 'true', + ], + 'TwoFactorMethods' => [ + 'description' => 'The two-factor authentication methods.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'Indicates one or more methods that are used to send verification codes if two-factor authentication is enabled. Valid values:'."\n" + ."\n" + .'* **sms**: text message-based two-factor authentication.'."\n" + .'* **email**: email-based two-factor authentication.'."\n" + .'* **dingtalk**: DingTalk-based two-factor authentication.'."\n" + .'* **totp**: one-time password (OTP) token-based two-factor authentication.'."\n" + .'* **gmusbkey**: two-factor authentication by using SM-based USB keys.'."\n", + 'type' => 'string', + 'example' => 'sms', + ], + ], + 'SkipTwoFactorTime' => [ + 'description' => 'The duration within which two-factor authentication is not required after a local user passes two-factor authentication. Valid values: `0 to 168`. Unit: hours.'."\n" + ."\n" + .'> If 0 is returned, a local user must pass two-factor authentication every time the local user logs on to the bastion host.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1', + ], + ], + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The argument is invalid.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'An unknown error occurred.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"EC9BF0F4-8983-491A-BC8C-1B4DD94976DE\\",\\n \\"Config\\": {\\n \\"EnableTwoFactor\\": true,\\n \\"TwoFactorMethods\\": [\\n \\"sms\\"\\n ],\\n \\"SkipTwoFactorTime\\": 1\\n }\\n}","errorExample":""},{"type":"xml","example":"<GetInstanceTwoFactorResponse>\\n <RequestId>EC9BF0F4-8983-491A-BC8C-1B4DD94976DE</RequestId>\\n <Config>\\n <EnableTwoFactor>true</EnableTwoFactor>\\n <TwoFactorMethods>sms</TwoFactorMethods>\\n <SkipTwoFactorTime>1</SkipTwoFactorTime>\\n <MessageLanguage>zh-cn</MessageLanguage>\\n </Config>\\n</GetInstanceTwoFactorResponse>","errorExample":""}]', + 'title' => 'GetInstanceTwoFactor', + 'description' => 'You can call this operation to query the settings of two-factor authentication on a bastion host. After you enable two-factor authentication, Bastionhost sends a verification code to a local user when the local user logs on to a bastion host. A local user can log on to the bastion host only when the local user enters the valid username and password and the verification code. This reduces the security risks caused by account information leaks.'."\n" + ."\n" + .'### Limit'."\n" + ."\n" + .'You can call this operation up to 10 times per second per account. If the number of the calls per second exceeds the limit, throttling is triggered. As a result, your business may be affected. We recommend that you take note of the limit when you call this operation.'."\n", + ], + 'ModifyInstanceTwoFactor' => [ + 'summary' => 'Modifies the two-factor authentication settings of a bastion host.', + 'methods' => [ + 'get', + 'post', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREbastionhostOF2U94', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the bastion host.'."\n" + ."\n" + .'> You can call the [DescribeInstances](~~153281~~) operation to query the ID of the bastion host.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'bastionhost-cn-st220aw****', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the bastion host.'."\n" + ."\n" + .'> For more information about the mapping between region IDs and region names, see [Regions and zones](~~40654~~).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'EnableTwoFactor', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to enable two-factor authentication. Valid values:'."\n" + ."\n" + .'* **true**: yes'."\n" + .'* **false**: no'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'true', + ], + ], + [ + 'name' => 'TwoFactorMethods', + 'in' => 'query', + 'schema' => [ + 'description' => 'The method used to send a verification code for two-factor authentication. If EnableTwoFactor is set to true, you must specify at least one method. Valid values:'."\n" + ."\n" + .'* **sms:** text message.'."\n" + .'* **email**: email.'."\n" + .'* **dingtalk**: notice in DingTalk.'."\n" + .'* **totp**: one-time password (OTP) token.'."\n" + .'* **gmusbkey**: SM-based USB key.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '["sms"]', + ], + ], + [ + 'name' => 'SkipTwoFactorTime', + 'in' => 'query', + 'schema' => [ + 'description' => 'The duration within which two-factor authentication is not required after a user passes two-factor authentication. Valid values: 0 to 168. Unit: hours. If you set this parameter to 0, the user must pass two-factor authentication every time the user logs on to the bastion host.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '1', + ], + ], + ], + 'responses' => [ + 200 => [ + 'headers' => [], + 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'Schema of Response'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'title' => 'Id of the request', + 'description' => 'The ID of the request, which is used to locate and troubleshoot issues.'."\n", + 'type' => 'string', + 'example' => '9CE1A352-15E9-5EB4-B589-87A8DEECB20D', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The argument is invalid.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'An unknown error occurred.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"9CE1A352-15E9-5EB4-B589-87A8DEECB20D\\"\\n}","errorExample":""},{"type":"xml","example":"<ModifyInstanceTwoFactorResponse>\\n <RequestId>9CE1A352-15E9-5EB4-B589-87A8DEECB20D</RequestId>\\n</ModifyInstanceTwoFactorResponse>","errorExample":""}]', + 'title' => 'ModifyInstanceTwoFactor', + ], + 'ModifyInstanceLDAPAuthServer' => [ + 'summary' => 'Modifies the settings of the Lightweight Directory Access Protocol (LDAP) authentication server of a bastion host.', + 'methods' => [ + 'get', + 'post', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREbastionhostOF2U94', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The bastion host ID.'."\n" + ."\n" + .'> You can call the [DescribeInstances](~~153281~~) operation to query the bastion host ID.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'bastionhost-cn-st220aw****', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the bastion host.'."\n" + ."\n" + .'> For more information about the mapping between region IDs and region names, see [Regions and zones](~~40654~~).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'Server', + 'in' => 'query', + 'schema' => [ + 'description' => 'The address of the LDAP server.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '192.168.XX.XX', + ], + ], + [ + 'name' => 'StandbyServer', + 'in' => 'query', + 'schema' => [ + 'description' => 'The address of the secondary LDAP server.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '192.168.XX.XX', + ], + ], + [ + 'name' => 'Port', + 'in' => 'query', + 'schema' => [ + 'description' => 'The port that is used to access the LDAP server.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '389', + ], + ], + [ + 'name' => 'IsSSL', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to support SSL. Valid values:'."\n" + ."\n" + .'* **true**'."\n" + .'* **false**'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'true', + ], + ], + [ + 'name' => 'BaseDN', + 'in' => 'query', + 'schema' => [ + 'description' => 'The Base distinguished name (DN).'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'dc=test,dc=com', + ], + ], + [ + 'name' => 'Account', + 'in' => 'query', + 'schema' => [ + 'description' => 'The username of the account that is used for the LDAP server.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'cn=Manager,dc=test,dc=com', + ], + ], + [ + 'name' => 'Password', + 'in' => 'query', + 'schema' => [ + 'description' => 'The password of the account that is used for the LDAP server. You must configure a password when you configure LDAP authentication. If you leave this parameter empty when you modify the settings of LDAP authentication, the current password is used.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '******', + ], + ], + [ + 'name' => 'Filter', + 'in' => 'query', + 'schema' => [ + 'description' => 'The condition that is used to filter users.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '(objectClass=top)', + ], + ], + [ + 'name' => 'LoginNameMapping', + 'in' => 'query', + 'schema' => [ + 'description' => 'The field that is used to indicate the logon name of a user on the LDAP server.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'userNameAttr', + ], + ], + [ + 'name' => 'NameMapping', + 'in' => 'query', + 'schema' => [ + 'description' => 'The field that is used to indicate the name of a user on the LDAP server.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'nameAttr', + ], + ], + [ + 'name' => 'EmailMapping', + 'in' => 'query', + 'schema' => [ + 'description' => 'The field that is used to indicate the email address of a user on the LDAP server.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'emailAttr', + ], + ], + [ + 'name' => 'MobileMapping', + 'in' => 'query', + 'schema' => [ + 'description' => 'The field that is used to indicate the mobile phone number of a user on the LDAP server.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'mobileAttr', + ], + ], + ], + 'responses' => [ + 200 => [ + 'headers' => [], + 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'Schema of Response'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'title' => 'Id of the request', + 'description' => 'The ID of the request, which is used to locate and troubleshoot issues.'."\n", + 'type' => 'string', + 'example' => '8F1085E3-F048-5F34-B650-F145216E4AA4', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The argument is invalid.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'An unknown error occurred.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"8F1085E3-F048-5F34-B650-F145216E4AA4\\"\\n}","errorExample":""},{"type":"xml","example":"<ModifyInstanceLDAPAuthServerResponse>\\n <RequestId>8F1085E3-F048-5F34-B650-F145216E4AA4</RequestId>\\n</ModifyInstanceLDAPAuthServerResponse>","errorExample":""}]', + 'title' => 'ModifyInstanceLDAPAuthServer', + ], + 'GetInstanceLDAPAuthServer' => [ + 'summary' => 'Queries the settings of Lightweight Directory Access Protocol (LDAP) authentication on a bastion host.', + 'methods' => [ + 'get', + 'post', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREbastionhostOF2U94', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the bastion host.'."\n" + ."\n" + .'> You can call the [DescribeInstances](~~153281~~) operation to query the ID of the bastion host.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'bastionhost-cn-st220aw****', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the bastion host.'."\n" + ."\n" + .'> For more information about the mapping between region IDs and region names, see [Regions and zones](~~40654~~).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'Schema of Response', + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'title' => 'Id of the request', + 'description' => 'The ID of the request, which is used to locate and troubleshoot issues.'."\n", + 'type' => 'string', + 'example' => '1C60E741-102D-5E8F-9710-B06D3F0183FE', + ], + 'LDAP' => [ + 'description' => 'The settings of LDAP authentication.'."\n", + 'type' => 'object', + 'properties' => [ + 'Account' => [ + 'description' => 'The account of the LDAP server.'."\n", + 'type' => 'string', + 'example' => 'cn=Manager,dc=test,dc=com', + ], + 'BaseDN' => [ + 'description' => 'The Base distinguished name (DN).'."\n", + 'type' => 'string', + 'example' => 'dc=test,dc=com', + ], + 'EmailMapping' => [ + 'description' => 'The field that is used to indicate the email address of a user on the LDAP server.'."\n", + 'type' => 'string', + 'example' => 'emailAttr', + ], + 'Filter' => [ + 'description' => 'The condition that is used to filter users.'."\n", + 'type' => 'string', + 'example' => '(&(objectClass=top))', + ], + 'IsSSL' => [ + 'description' => 'Indicates whether SSL is supported. Valid values:'."\n" + ."\n" + .'* **true**: supported'."\n" + .'* **false**: not supported'."\n", + 'type' => 'boolean', + 'example' => 'true', + ], + 'LoginNameMapping' => [ + 'description' => 'The field that is used to indicate the logon name of a user on the LDAP server.'."\n", + 'type' => 'string', + 'example' => 'userNameAttr', + ], + 'MobileMapping' => [ + 'description' => 'The field that is used to indicate the mobile phone number of a user on the LDAP server.'."\n", + 'type' => 'string', + 'example' => 'mobileAttr', + ], + 'NameMapping' => [ + 'description' => 'The field that is used to indicate the name of a user on the LDAP server.'."\n", + 'type' => 'string', + 'example' => 'nameAttr', + ], + 'HasPassword' => [ + 'description' => 'Indicates whether passwords are required. Valid values:'."\n" + ."\n" + .'* **true**: required'."\n" + .'* **false**: not required'."\n", + 'type' => 'string', + 'example' => 'true', + ], + 'Port' => [ + 'description' => 'The port that is used to access the LDAP server.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '389', + ], + 'Server' => [ + 'description' => 'The address of the LDAP server.'."\n", + 'type' => 'string', + 'example' => '192.168.XX.XX', + ], + 'StandbyServer' => [ + 'description' => 'The address of the secondary LDAP server.'."\n", + 'type' => 'string', + 'example' => '192.168.XX.XX', + ], + ], + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The argument is invalid.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'An unknown error occurred.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"1C60E741-102D-5E8F-9710-B06D3F0183FE\\",\\n \\"LDAP\\": {\\n \\"Account\\": \\"cn=Manager,dc=test,dc=com\\",\\n \\"BaseDN\\": \\"dc=test,dc=com\\",\\n \\"EmailMapping\\": \\"emailAttr\\",\\n \\"Filter\\": \\"(&(objectClass=top))\\",\\n \\"IsSSL\\": true,\\n \\"LoginNameMapping\\": \\"userNameAttr\\",\\n \\"MobileMapping\\": \\"mobileAttr\\",\\n \\"NameMapping\\": \\"nameAttr\\",\\n \\"HasPassword\\": \\"true\\",\\n \\"Port\\": 389,\\n \\"Server\\": \\"192.168.XX.XX\\",\\n \\"StandbyServer\\": \\"192.168.XX.XX\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"<GetInstanceLDAPAuthServerResponse>\\n <RequestId>1C60E741-102D-5E8F-9710-B06D3F0183FE</RequestId>\\n <LDAP>\\n <Account>cn=Manager,dc=test,dc=com</Account>\\n <BaseDN>dc=test,dc=com</BaseDN>\\n <EmailMapping>emailAttr</EmailMapping>\\n <Filter>(&(objectClass=top))</Filter>\\n <IsSSL>true</IsSSL>\\n <LoginNameMapping>userNameAttr</LoginNameMapping>\\n <MobileMapping>mobileAttr</MobileMapping>\\n <NameMapping>nameAttr</NameMapping>\\n <HasPassword>true</HasPassword>\\n <Port>389</Port>\\n <Server>192.168.XX.XX</Server>\\n <StandbyServer>192.168.XX.XX</StandbyServer>\\n </LDAP>\\n</GetInstanceLDAPAuthServerResponse>","errorExample":""}]', + 'title' => 'GetInstanceLDAPAuthServer', + ], + 'GetInstanceStoreInfo' => [ + 'summary' => 'Queries the storage usage of a bastion host.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '245216', + 'abilityTreeNodes' => [ + 'FEATUREbastionhostJYERXM', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => true, + 'example' => 'bastionhost-cn-st220aw****', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'Max' => [ + 'description' => '', + 'type' => 'integer', + 'format' => 'int64', + 'example' => '102400', + ], + 'RequestId' => [ + 'description' => '', + 'type' => 'string', + 'example' => '5EAB922E-F476-5DFA-9290-313C608E724B', + ], + 'Usage' => [ + 'description' => '', + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1024', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The argument is invalid.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'An unknown error occurred.', + ], + ], + ], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Max\\": 102400,\\n \\"RequestId\\": \\"5EAB922E-F476-5DFA-9290-313C608E724B\\",\\n \\"Usage\\": 1024\\n}","type":"json"}]', + 'title' => 'GetInstanceStoreInfo', + ], + 'CreateExportConfigJob' => [ + 'summary' => 'Creates a configuration backup export task. You can run only one configuration backup export task on a bastion host at a time.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'create', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '245225', + 'abilityTreeNodes' => [ + 'FEATUREbastionhostJYERXM', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => true, + 'example' => 'bastionhost-cn-st220aw****', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'JobId' => [ + 'description' => '', + 'type' => 'string', + 'example' => '1', + ], + 'RequestId' => [ + 'description' => '', + 'type' => 'string', + 'example' => 'EC9BF0F4-8983-491A-BC8C-1B4DD94976DE', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The argument is invalid.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'An unknown error occurred.', + ], + ], + ], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"JobId\\": \\"1\\",\\n \\"RequestId\\": \\"EC9BF0F4-8983-491A-BC8C-1B4DD94976DE\\"\\n}","type":"json"}]', + 'title' => 'CreateExportConfigJob', + ], + 'GetExportConfigJob' => [ + 'summary' => 'null', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '245226', + 'abilityTreeNodes' => [ + 'FEATUREbastionhostJYERXM', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => true, + 'example' => 'bastionhost-cn-st220aw****', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'JobId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => true, + 'example' => '2', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'DownloadUrl' => [ + 'description' => '', + 'type' => 'string', + 'example' => 'https://bastionhost-cn-hangzhou-164***.oss-cn-hangzhou.aliyuncs.com/bastionhost-cn-2******', + ], + 'JobId' => [ + 'description' => '', + 'type' => 'string', + 'example' => '2', + ], + 'Message' => [ + 'description' => '', + 'type' => 'string', + 'example' => 'message', + ], + 'RequestId' => [ + 'description' => '', + 'type' => 'string', + 'example' => '98DBE5C2-7D7A-5393-9E5A-71074336D33B', + ], + 'Status' => [ + 'description' => '', + 'type' => 'string', + 'example' => 'Success', + ], + 'ExpireTime' => [ + 'description' => '', + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1679393152', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The argument is invalid.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'An unknown error occurred.', + ], + ], + ], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"DownloadUrl\\": \\"https://bastionhost-cn-hangzhou-164***.oss-cn-hangzhou.aliyuncs.com/bastionhost-cn-2******\\",\\n \\"JobId\\": \\"2\\",\\n \\"Message\\": \\"message\\",\\n \\"RequestId\\": \\"98DBE5C2-7D7A-5393-9E5A-71074336D33B\\",\\n \\"Status\\": \\"Success\\",\\n \\"ExpireTime\\": 1679393152\\n}","type":"json"}]', + 'title' => 'GetExportConfigJob', + ], + 'VerifyInstanceLDAPAuthServer' => [ + 'summary' => '验证实例LDAP服务配置。', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREbastionhostOF2U94', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => true, + 'example' => 'bastionhost-cn-st220aw****', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'Server', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => true, + 'example' => '192.168.XX.XX', + ], + ], + [ + 'name' => 'StandbyServer', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => '192.168.XX.XX', + ], + ], + [ + 'name' => 'Port', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => true, + 'example' => '389', + ], + ], + [ + 'name' => 'IsSSL', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'true', + ], + ], + [ + 'name' => 'BaseDN', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => true, + 'example' => 'dc=test,dc=com', + ], + ], + [ + 'name' => 'Account', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => true, + 'example' => 'cn=Manager,dc=test,dc=com', + ], + ], + [ + 'name' => 'Password', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => '******', + ], + ], + [ + 'name' => 'Filter', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => '(objectClass=top)', + ], + ], + ], + 'responses' => [ + 200 => [ + 'headers' => [], + 'schema' => [ + 'description' => 'Schema of Response', + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => '', + 'type' => 'string', + 'example' => 'C9E97677-BD74-584B-AFCE-948C2A70BB83', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The argument is invalid.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'An unknown error occurred.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"C9E97677-BD74-584B-AFCE-948C2A70BB83\\"\\n}","errorExample":""},{"type":"xml","example":"<VerifyInstanceLDAPAuthServerResponse>\\n <RequestId>C9E97677-BD74-584B-AFCE-948C2A70BB83</RequestId>\\n</VerifyInstanceLDAPAuthServerResponse>","errorExample":""}]', + ], + 'VerifyInstanceADAuthServer' => [ + 'summary' => '验证实例AD服务配置。', + 'methods' => [ + 'get', + 'post', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREbastionhostOF2U94', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'example' => 'bastionhost-cn-st220aw****', + 'required' => true, + 'type' => 'string', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'example' => 'cn-hangzhou', + 'required' => false, + 'type' => 'string', + ], + ], + [ + 'name' => 'Server', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'example' => '192.168.XX.XX', + 'required' => true, + 'type' => 'string', + ], + ], + [ + 'name' => 'StandbyServer', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'example' => '192.168.XX.XX', + 'required' => false, + 'type' => 'string', + ], + ], + [ + 'name' => 'Port', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'example' => '389', + 'required' => true, + 'type' => 'string', + ], + ], + [ + 'name' => 'IsSSL', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'example' => 'true', + 'required' => true, + 'type' => 'string', + ], + ], + [ + 'name' => 'BaseDN', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'example' => 'dc=test,dc=com', + 'required' => true, + 'type' => 'string', + ], + ], + [ + 'name' => 'Domain', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'example' => 'domain', + 'required' => true, + 'type' => 'string', + ], + ], + [ + 'name' => 'Account', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'example' => 'cn=Manager,dc=test,dc=com', + 'required' => true, + 'type' => 'string', + ], + ], + [ + 'name' => 'Password', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'example' => '******', + 'required' => true, + 'type' => 'string', + ], + ], + [ + 'name' => 'Filter', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'example' => '(objectClass=top)', + 'required' => false, + 'type' => 'string', + ], + ], + ], + 'responses' => [ + 200 => [ + 'headers' => [], + 'schema' => [ + 'description' => 'Schema of Response', + 'properties' => [ + 'RequestId' => [ + 'description' => '', + 'example' => '8F1085E3-F048-5F34-B650-F145216E4AA5', + 'title' => 'Id of the request', + 'type' => 'string', + ], + ], + 'title' => 'Schema of Response', + 'type' => 'object', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The argument is invalid.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'An unknown error occurred.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"8F1085E3-F048-5F34-B650-F145216E4AA5\\"\\n}","errorExample":""},{"type":"xml","example":"<VerifyInstanceADAuthServerResponse>\\n <RequestId>8F1085E3-F048-5F34-B650-F145216E4AA5</RequestId>\\n</VerifyInstanceADAuthServerResponse>","errorExample":""}]', + ], + ], + 'endpoints' => [ + [ + 'regionId' => 'cn-qingdao', + 'endpoint' => 'yundun-bastionhost.aliyuncs.com', + ], + [ + 'regionId' => 'cn-beijing', + 'endpoint' => 'yundun-bastionhost.aliyuncs.com', + ], + [ + 'regionId' => 'cn-zhangjiakou', + 'endpoint' => 'bastionhost.cn-zhangjiakou.aliyuncs.com', + ], + [ + 'regionId' => 'cn-zhengzhou-jva', + 'endpoint' => 'yundun-bastionhost.aliyuncs.com', + ], + [ + 'regionId' => 'cn-huhehaote', + 'endpoint' => 'bastionhost.cn-huhehaote.aliyuncs.com', + ], + [ + 'regionId' => 'cn-wulanchabu', + 'endpoint' => 'yundun-bastionhost.aliyuncs.com', + ], + [ + 'regionId' => 'cn-hangzhou', + 'endpoint' => 'yundun-bastionhost.aliyuncs.com', + ], + [ + 'regionId' => 'cn-shanghai', + 'endpoint' => 'yundun-bastionhost.aliyuncs.com', + ], + [ + 'regionId' => 'cn-shenzhen', + 'endpoint' => 'yundun-bastionhost.aliyuncs.com', + ], + [ + 'regionId' => 'cn-heyuan', + 'endpoint' => 'yundun-bastionhost.aliyuncs.com', + ], + [ + 'regionId' => 'cn-guangzhou', + 'endpoint' => 'yundun-bastionhost.aliyuncs.com', + ], + [ + 'regionId' => 'cn-chengdu', + 'endpoint' => 'yundun-bastionhost.aliyuncs.com', + ], + [ + 'regionId' => 'cn-hongkong', + 'endpoint' => 'bastionhost.cn-hongkong.aliyuncs.com', + ], + [ + 'regionId' => 'ap-northeast-1', + 'endpoint' => 'bastionhost.ap-northeast-1.aliyuncs.com', + ], + [ + 'regionId' => 'ap-northeast-2', + 'endpoint' => 'bastionhost.ap-northeast-2.aliyuncs.com', + ], + [ + 'regionId' => 'ap-southeast-1', + 'endpoint' => 'bastionhost.ap-southeast-1.aliyuncs.com', + ], + [ + 'regionId' => 'ap-southeast-2', + 'endpoint' => 'bastionhost.ap-southeast-2.aliyuncs.com', + ], + [ + 'regionId' => 'ap-southeast-3', + 'endpoint' => 'bastionhost.ap-southeast-3.aliyuncs.com', + ], + [ + 'regionId' => 'ap-southeast-5', + 'endpoint' => 'bastionhost.ap-southeast-5.aliyuncs.com', + ], + [ + 'regionId' => 'ap-southeast-6', + 'endpoint' => 'bastionhost.ap-southeast-6.aliyuncs.com', + ], + [ + 'regionId' => 'us-east-1', + 'endpoint' => 'bastionhost.us-east-1.aliyuncs.com', + ], + [ + 'regionId' => 'us-west-1', + 'endpoint' => 'bastionhost.us-west-1.aliyuncs.com', + ], + [ + 'regionId' => 'eu-west-1', + 'endpoint' => 'bastionhost.eu-west-1.aliyuncs.com', + ], + [ + 'regionId' => 'eu-central-1', + 'endpoint' => 'bastionhost.eu-central-1.aliyuncs.com', + ], + [ + 'regionId' => 'ap-south-1', + 'endpoint' => 'bastionhost.ap-south-1.aliyuncs.com', + ], + [ + 'regionId' => 'me-east-1', + 'endpoint' => 'yundun-bastionhost.aliyuncs.com', + ], + [ + 'regionId' => 'cn-shanghai-finance-1', + 'endpoint' => 'yundun-bastionhost.aliyuncs.com', + ], + [ + 'regionId' => 'cn-shenzhen-finance-1', + 'endpoint' => 'yundun-bastionhost.aliyuncs.com', + ], + [ + 'regionId' => 'cn-beijing-finance-1', + 'endpoint' => 'yundun-bastionhost.aliyuncs.com', + ], + [ + 'regionId' => 'cn-north-2-gov-1', + 'endpoint' => 'yundun-bastionhost.aliyuncs.com', + ], + ], +]; |
