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/nas/2017-06-26/api-docs.php | |
| download | acs-metadata-full-main.tar.gz acs-metadata-full-main.zip | |
first commitHEADv1.0.0+20260212main
Diffstat (limited to 'data/en_us/nas/2017-06-26/api-docs.php')
| -rw-r--r-- | data/en_us/nas/2017-06-26/api-docs.php | 23018 |
1 files changed, 23018 insertions, 0 deletions
diff --git a/data/en_us/nas/2017-06-26/api-docs.php b/data/en_us/nas/2017-06-26/api-docs.php new file mode 100644 index 0000000..090b63a --- /dev/null +++ b/data/en_us/nas/2017-06-26/api-docs.php @@ -0,0 +1,23018 @@ +<?php return [ + 'version' => '1.0', + 'info' => [ + 'style' => 'RPC', + 'product' => 'NAS', + 'version' => '2017-06-26', + ], + 'directories' => [ + [ + 'id' => 100612, + 'title' => 'Open service', + 'type' => 'directory', + 'children' => [ + 'OpenNASService', + ], + ], + [ + 'id' => 100610, + 'title' => 'Regions', + 'type' => 'directory', + 'children' => [ + 'DescribeZones', + 'DescribeRegions', + ], + ], + [ + 'id' => 100636, + 'title' => 'File systems', + 'type' => 'directory', + 'children' => [ + 'CreateFileSystem', + 'DeleteFileSystem', + 'ModifyFileSystem', + 'DescribeFileSystems', + 'UpgradeFileSystem', + 'DescribeFilesystemsAssociatedHpnZones', + ], + ], + [ + 'id' => 100670, + 'title' => 'Mount targets', + 'type' => 'directory', + 'children' => [ + 'CreateMountTarget', + 'DeleteMountTarget', + 'ModifyMountTarget', + 'DescribeMountTargets', + 'DescribeMountedClients', + ], + ], + [ + 'id' => 190204, + 'title' => 'AccessPoint', + 'type' => 'directory', + 'children' => [ + 'CreateAccessPoint', + 'ModifyAccessPoint', + 'DescribeAccessPoints', + 'DescribeAccessPoint', + 'DeleteAccessPoint', + 'CreateDir', + ], + ], + [ + 'id' => 100622, + 'title' => 'Permission groups', + 'type' => 'directory', + 'children' => [ + 'CreateAccessGroup', + 'DeleteAccessGroup', + 'ModifyAccessGroup', + 'DescribeAccessGroups', + 'CreateAccessRule', + 'DeleteAccessRule', + 'ModifyAccessRule', + 'DescribeAccessRules', + ], + ], + [ + 'id' => 100659, + 'title' => 'Snapshots', + 'type' => 'directory', + 'children' => [ + 'CreateSnapshot', + 'DeleteSnapshot', + 'DescribeSnapshots', + 'CreateAutoSnapshotPolicy', + 'DeleteAutoSnapshotPolicy', + 'ModifyAutoSnapshotPolicy', + 'ApplyAutoSnapshotPolicy', + 'CancelAutoSnapshotPolicy', + 'DescribeAutoSnapshotPolicies', + 'DescribeAutoSnapshotTasks', + 'ResetFileSystem', + ], + ], + [ + 'id' => 100652, + 'title' => 'Tags', + 'type' => 'directory', + 'children' => [ + 'TagResources', + 'UntagResources', + 'ListTagResources', + ], + ], + [ + 'id' => 168742, + 'title' => 'Quotas', + 'type' => 'directory', + 'children' => [ + 'SetDirQuota', + 'CancelDirQuota', + 'DescribeDirQuotas', + ], + ], + [ + 'id' => 100631, + 'title' => 'Lifecycle management', + 'type' => 'directory', + 'children' => [ + 'CreateLifecyclePolicy', + 'DeleteLifecyclePolicy', + 'ModifyLifecyclePolicy', + 'GetDirectoryOrFileProperties', + 'DescribeLifecyclePolicies', + 'CreateLifecycleRetrieveJob', + 'CancelLifecycleRetrieveJob', + 'RetryLifecycleRetrieveJob', + 'ListLifecycleRetrieveJobs', + 'ListDirectoriesAndFiles', + ], + ], + [ + 'id' => 168743, + 'title' => 'Recycle bin', + 'type' => 'directory', + 'children' => [ + 'EnableRecycleBin', + 'DisableAndCleanRecycleBin', + 'UpdateRecycleBinAttribute', + 'GetRecycleBinAttribute', + 'CreateRecycleBinRestoreJob', + 'CreateRecycleBinDeleteJob', + 'CancelRecycleBinJob', + 'ListRecycleBinJobs', + 'ListRecentlyRecycledDirectories', + 'ListRecycledDirectoriesAndFiles', + ], + ], + [ + 'id' => 168744, + 'title' => 'SMB AD ACL', + 'type' => 'directory', + 'children' => [ + 'EnableSmbAcl', + 'DisableSmbAcl', + 'ModifySmbAcl', + 'DescribeSmbAcl', + 'CreateFile', + ], + ], + [ + 'id' => 180307, + 'title' => 'NFS NAS ACL', + 'type' => 'directory', + 'children' => [ + 'EnableNfsAcl', + 'DisableNfsAcl', + 'DescribeNfsAcl', + ], + ], + [ + 'id' => 180313, + 'title' => 'Log management', + 'type' => 'directory', + 'children' => [ + 'CreateLogAnalysis', + 'DeleteLogAnalysis', + 'DescribeLogAnalysis', + ], + ], + [ + 'id' => 168800, + 'title' => 'Fileset', + 'type' => 'directory', + 'children' => [ + 'CreateFileset', + 'DeleteFileset', + 'ModifyFileset', + 'GetFileset', + 'DescribeFilesets', + 'SetFilesetQuota', + 'CancelFilesetQuota', + ], + ], + [ + 'id' => 168745, + 'title' => 'Data flows', + 'type' => 'directory', + 'children' => [ + 'CreateDataFlow', + 'DeleteDataFlow', + 'ModifyDataFlow', + 'DescribeDataFlows', + 'StopDataFlow', + 'StartDataFlow', + 'CreateDataFlowTask', + 'CreateDataFlowSubTask', + 'CancelDataFlowTask', + 'CancelDataFlowSubTask', + 'DescribeDataFlowTasks', + 'DescribeDataFlowSubTasks', + 'ApplyDataFlowAutoRefresh', + 'CancelDataFlowAutoRefresh', + 'ModifyDataFlowAutoRefresh', + ], + ], + [ + 'id' => 189081, + 'title' => 'Resource group', + 'type' => 'directory', + 'children' => [ + 'ChangeResourceGroup', + ], + ], + [ + 'id' => 168746, + 'title' => 'Protocol service', + 'type' => 'directory', + 'children' => [ + 'CreateProtocolService', + 'DeleteProtocolService', + 'ModifyProtocolService', + 'DescribeProtocolService', + 'CreateProtocolMountTarget', + 'DeleteProtocolMountTarget', + 'ModifyProtocolMountTarget', + 'DescribeProtocolMountTarget', + 'GetProtocolMountTarget', + ], + ], + [ + 'id' => 243535, + 'title' => 'Virtual Storage Channel', + 'type' => 'directory', + 'children' => [ + 'DetachVscFromFilesystems', + 'AttachVscToFilesystems', + 'DescribeFilesystemsVscAttachInfo', + ], + ], + [ + 'id' => 168697, + 'title' => '其他-不发布文档', + 'type' => 'directory', + 'children' => [ + [ + 'id' => 100648, + 'title' => '黑名单', + 'type' => 'directory', + 'children' => [ + 'AddClientToBlackList', + 'DescribeBlackListClients', + 'RemoveClientFromBlackList', + ], + ], + [ + 'id' => 100617, + 'title' => 'LDAP', + 'type' => 'directory', + 'children' => [ + 'CreateLDAPConfig', + 'DeleteLDAPConfig', + 'ModifyLDAPConfig', + ], + ], + 'DescribeFileSystemStatistics', + 'DescribeStoragePackages', + ], + ], + ], + 'components' => [ + 'schemas' => [], + ], + 'apis' => [ + 'OpenNASService' => [ + 'summary' => 'Activates File Storage NAS.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + [ + 'PrivateKey' => [], + ], + [ + 'BearerToken' => [], + ], + [ + 'APP' => [], + ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'none', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '13981', + 'abilityTreeNodes' => [ + 'FEATUREnasVB8QSJ', + ], + 'autoTest' => false, + 'notSupportAutoTestReason' => '开通服务接口', + 'tenantRelevance' => 'publicInformation', + ], + 'parameters' => [], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '427DB0B3-9436-4A3C-B2BC-B961F95E****', + ], + 'OrderId' => [ + 'description' => 'The order ID.'."\n", + 'type' => 'string', + 'example' => '20671870151****', + ], + 'AccessDeniedDetail' => [ + 'description' => 'The details about the failed permission verification.'."\n", + 'type' => 'string', + 'example' => '{'."\n" + .' "PolicyType": "AccountLevelIdentityBasedPolicy",'."\n" + .' "AuthPrincipalOwnerId": "178321033379****",'."\n" + .' "EncodedDiagnosticMessage": "AJpt/382mjxDSIYIqa/cUIFvOg9tajlLyN+LJA0C78kWfKIl****",'."\n" + .' "AuthPrincipalType": "SubUser",'."\n" + .' "AuthPrincipalDisplayName": "21794847602038****",'."\n" + .' "NoPermissionType": "ImplicitDeny",'."\n" + .' "AuthAction": "nas:OpenNASService"'."\n" + .' }', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'ORDER.OPEND', + 'errorMessage' => 'You have already open the service. Go to the console to start using it.', + ], + [ + 'errorCode' => 'InvalidIntlAccount.NotComplete', + 'errorMessage' => 'Intl account is not complete.', + ], + ], + 500 => [ + [ + 'errorCode' => 'OpenNasService.GetCommodityInfoFail', + 'errorMessage' => 'Fail to get commodity info for open nas service.', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"427DB0B3-9436-4A3C-B2BC-B961F95E****\\",\\n \\"OrderId\\": \\"20671870151****\\",\\n \\"AccessDeniedDetail\\": \\"{\\\\n \\\\\\"PolicyType\\\\\\": \\\\\\"AccountLevelIdentityBasedPolicy\\\\\\",\\\\n \\\\\\"AuthPrincipalOwnerId\\\\\\": \\\\\\"178321033379****\\\\\\",\\\\n \\\\\\"EncodedDiagnosticMessage\\\\\\": \\\\\\"AJpt/382mjxDSIYIqa/cUIFvOg9tajlLyN+LJA0C78kWfKIl****\\\\\\",\\\\n \\\\\\"AuthPrincipalType\\\\\\": \\\\\\"SubUser\\\\\\",\\\\n \\\\\\"AuthPrincipalDisplayName\\\\\\": \\\\\\"21794847602038****\\\\\\",\\\\n \\\\\\"NoPermissionType\\\\\\": \\\\\\"ImplicitDeny\\\\\\",\\\\n \\\\\\"AuthAction\\\\\\": \\\\\\"nas:OpenNASService\\\\\\"\\\\n }\\"\\n}","errorExample":""},{"type":"xml","example":"<OpenNASServiceResponse>\\n <RequestId>427DB0B3-9436-4A3C-B2BC-B961F95E****</RequestId>\\n <OrderId>20671870151****</OrderId>\\n</OpenNASServiceResponse>","errorExample":""}]', + 'title' => 'OpenNASService', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'DescribeZones' => [ + 'summary' => 'Queries all zones in a region and the file system types that are supported in each zone.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '13964', + 'abilityTreeNodes' => [ + 'FEATUREnasQG6YBL', + ], + 'autoTest' => true, + 'tenantRelevance' => 'publicInformation', + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the region where you want to query zones.'."\n" + ."\n" + .'You can call the DescribeRegions operation to query the latest region list.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'FileSystemType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The type of the file system.'."\n" + ."\n" + .'Valid value:'."\n" + ."\n" + .'* standard: General-purpose Apsara File Storage NAS (NAS) file system'."\n" + .'* extreme: Extreme NAS file system.'."\n" + .'* cpfs: CPFS file system.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'standard', + 'default' => 'standard', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'A70BEE5D-76D3-49FB-B58F-1F398211****', + ], + 'Zones' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'Zone' => [ + 'description' => 'The queried zones.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Performance' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'Protocol' => [ + 'description' => 'This parameter is reserved. You can ignore this parameter.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'This parameter is reserved. You can ignore this parameter.'."\n", + 'type' => 'string', + 'example' => 'nfs', + ], + ], + ], + ], + 'Capacity' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'Protocol' => [ + 'description' => 'This parameter is reserved. You can ignore this parameter.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'This parameter is reserved. You can ignore this parameter.'."\n", + 'type' => 'string', + 'example' => 'nfs', + ], + ], + ], + ], + 'ZoneId' => [ + 'description' => 'The zone ID.'."\n", + 'type' => 'string', + 'example' => 'cn-hangzhou-b', + ], + 'InstanceTypes' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'InstanceType' => [ + 'description' => 'The details about file system types.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'StorageType' => [ + 'description' => 'The storage type.'."\n" + ."\n" + .'* If the FileSystemType parameter is set to standard, the storage type is Performance or Capacity.'."\n" + .'* If the FileSystemType parameter is set to extreme, the storage type is standard or advance.'."\n" + .'* If the FileSystemType parameter is set to cpfs, the storage type is advance\\_100 (100 MB/s/TiB baseline) or advance\\_200 (200 MB/s/TiB baseline).'."\n", + 'type' => 'string', + 'example' => 'Capacity', + ], + 'ProtocolType' => [ + 'description' => 'The protocol type.'."\n" + ."\n" + .'* If the FileSystemType parameter is set to standard, the protocol type is nfs or smb.'."\n" + .'* If the FileSystemType parameter is set to extreme, the protocol type is nfs.'."\n" + .'* If the FileSystemType parameter is set to cpfs, the protocol type is cpfs.'."\n", + 'type' => 'string', + 'example' => 'nfs', + ], + ], + 'description' => '', + ], + ], + ], + ], + ], + 'description' => '', + ], + ], + ], + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 404 => [ + [ + 'errorCode' => 'InvalidRegionId.NotFound', + 'errorMessage' => 'The specified Region is not found.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'The request processing has failed due to some unknown error.', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"A70BEE5D-76D3-49FB-B58F-1F398211****\\",\\n \\"Zones\\": {\\n \\"Zone\\": [\\n {\\n \\"Performance\\": {\\n \\"Protocol\\": [\\n \\"nfs\\"\\n ]\\n },\\n \\"Capacity\\": {\\n \\"Protocol\\": [\\n \\"nfs\\"\\n ]\\n },\\n \\"ZoneId\\": \\"cn-hangzhou-b\\",\\n \\"InstanceTypes\\": {\\n \\"InstanceType\\": [\\n {\\n \\"StorageType\\": \\"Capacity\\",\\n \\"ProtocolType\\": \\"nfs\\"\\n }\\n ]\\n }\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<DescribeZonesResponse>\\n <RequestId>A70BEE5D-76D3-49FB-B58F-1F398211****</RequestId>\\n <Zones>\\n <Performance>nfs</Performance>\\n <Capacity>nfs</Capacity>\\n <ZoneId>cn-hangzhou-b</ZoneId>\\n <InstanceTypes>\\n <StorageType>Capacity</StorageType>\\n <ProtocolType>nfs</ProtocolType>\\n </InstanceTypes>\\n </Zones>\\n</DescribeZonesResponse>","errorExample":""}]', + 'title' => 'DescribeZones', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'DescribeRegions' => [ + 'summary' => 'Queries the regions in which File Storage NAS is available.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'readAndWrite', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '13959', + 'abilityTreeNodes' => [ + 'FEATUREnasQG6YBL', + ], + ], + 'parameters' => [ + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of entries per page.'."\n" + ."\n" + .'Valid values: 1 to 100.'."\n" + ."\n" + .'Default value: 10.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'maximum' => '100', + 'minimum' => '1', + 'example' => '10', + 'default' => '10', + ], + ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => [ + 'description' => 'The page number.'."\n" + ."\n" + .'Pages start from page 1. Default value: 1.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'minimum' => '1', + 'example' => '1', + ], + ], + [ + 'name' => 'FileSystemType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The type of the file system.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'* all: all types of file systems'."\n" + .'* standard (default): General-purpose NAS file system'."\n" + .'* extreme: Extreme NAS file system'."\n" + .'* cpfs: Cloud Parallel File Storage (CPFS) file system'."\n" + ."\n" + .'> CPFS file systems are available only on the China site (aliyun.com).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'standard', + 'default' => 'standard', + 'enum' => [ + 'standard', + 'extreme', + 'cpfs', + 'all', + ], + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'TotalCount' => [ + 'description' => 'The total number of entries returned.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '1', + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'A70BEE5D-76D3-49FB-B58F-1F398211****', + ], + 'PageSize' => [ + 'description' => 'The number of entries per page.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '10', + ], + 'PageNumber' => [ + 'description' => 'The page number.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '1', + ], + 'Regions' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'Region' => [ + 'description' => 'The queried regions.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'LocalName' => [ + 'description' => 'The region name.'."\n", + 'type' => 'string', + 'example' => 'East China 1', + ], + 'RegionEndpoint' => [ + 'description' => 'The endpoint for the region.'."\n", + 'type' => 'string', + 'example' => 'nas.cn-hangzhou.aliyuncs.com', + ], + 'RegionId' => [ + 'description' => 'The region ID.'."\n", + 'type' => 'string', + 'example' => 'cn-hangzhou', + ], + ], + ], + ], + ], + ], + ], + 'description' => '', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"TotalCount\\": 1,\\n \\"RequestId\\": \\"A70BEE5D-76D3-49FB-B58F-1F398211****\\",\\n \\"PageSize\\": 10,\\n \\"PageNumber\\": 1,\\n \\"Regions\\": {\\n \\"Region\\": [\\n {\\n \\"LocalName\\": \\"East China 1\\",\\n \\"RegionEndpoint\\": \\"nas.cn-hangzhou.aliyuncs.com\\",\\n \\"RegionId\\": \\"cn-hangzhou\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<TotalCount>1</TotalCount>\\n<PageSize>10</PageSize>\\n<RequestId>A70BEE5D-76D3-49FB-B58F-1F398211****</RequestId>\\n<PageNumber>1</PageNumber>\\n<Regions>\\n <Region>\\n <RegionId>cn-hangzhou</RegionId>\\n <RegionEndpoint>nas.cn-hangzhou.aliyuncs.com</RegionEndpoint>\\n <LocalName>East China 1</LocalName>\\n </Region>\\n</Regions>","errorExample":"<?xml version=\\"1.0\\" encoding=\\"UTF-8\\"?>\\n<DescribeRegionsResponse>\\n <PageNumber>1</PageNumber>\\n <TotalCount>4</TotalCount>\\n <PageSize>2</PageSize>\\n <RequestId>A70BEE5D-76D3-49FB-B58F-1F398211A5C3</RequestId>\\n <Regions>\\n <Region>\\n <RegionId>cn-hangzhou</RegionId>\\n <RegionEndpoint>nas.cn-hangzhou.aliyuncs.com</RegionEndpoint>\\n\\t <LocalName>华东1</LocalName>\\n </Region>\\n <Region>\\n <RegionId>cn-shanghai</RegionId>\\n\\t <RegionEndpoint>nas.cn-shanghai.aliyuncs.com</RegionEndpoint>\\n <LocalName>华东2</LocalName>\\n </Region>\\n </Regions>\\n</DescribeRegionsResponse>\\n"}]', + 'title' => 'DescribeRegions', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'CreateFileSystem' => [ + 'summary' => 'Creates a file system.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'readAndWrite', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'create', + 'riskType' => 'none', + 'chargeType' => 'paid', + 'abilityTreeCode' => '13930', + 'abilityTreeNodes' => [ + 'FEATUREnasI92PYN', + ], + 'autoTest' => true, + 'tenantRelevance' => 'publicInformation', + ], + 'parameters' => [ + [ + 'name' => 'FileSystemType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The type of the file system.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'* standard: General-purpose NAS'."\n" + .'* extreme: Extreme NAS'."\n" + .'* cpfs: CPFS (locally redundant storage)'."\n" + .'* cpfsse: CPFS SE (zone-redundant storage)'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'standard', + 'default' => 'standard', + 'enum' => [ + 'standard', + 'extreme', + 'cpfs', + 'cpfsse', + ], + ], + ], + [ + 'name' => 'ChargeType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The billing method.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'* PayAsYouGo (default): pay-as-you-go'."\n" + .'* Subscription'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'PayAsYouGo', + 'default' => 'PayAsYouGo', + 'enum' => [ + 'PayAsYouGo', + 'Subscription', + ], + ], + ], + [ + 'name' => 'Duration', + 'in' => 'query', + 'schema' => [ + 'description' => 'The subscription duration.'."\n" + ."\n" + .'This parameter is valid and required if ChargeType is set to Subscription. Unit: months.'."\n" + ."\n" + .'If you do not renew a subscription file system when the file system expires, the file system is automatically released.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '1', + ], + ], + [ + 'name' => 'Capacity', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specify the capacity of the file system. Unit: GiB. This parameter is required and valid when FileSystemType is set to extreme, cpfs, or cpfsse.'."\n" + ."\n" + .'Specify a value based on the specifications on the following buy page:'."\n" + ."\n" + .'* [Extreme NAS (Pay-as-you-go)](https://common-buy-intl.alibabacloud.com/?commodityCode=nas_extpost_public_intl#/buy)'."\n" + .'* [CPFS (Pay-as-you-go)](https://common-buy-intl.alibabacloud.com/?spm=5176.nas_overview.0.0.7ea01dbft0dTui\\&commodityCode=nas_cpfspost_public_intl#/buy)'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'example' => '100', + ], + ], + [ + 'name' => 'Bandwidth', + 'in' => 'query', + 'schema' => [ + 'description' => 'The maximum throughput of the file system.'."\n" + ."\n" + .'Unit: MB/s.'."\n" + ."\n" + .'Specify a value based on the specifications on the buy page.'."\n" + ."\n" + .'[CPFS (Pay-as-you-go)](https://common-buy-intl.alibabacloud.com/?spm=5176.nas_overview.0.0.7ea01dbft0dTui\\&commodityCode=nas_cpfspost_public_intl#/buy)'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'example' => '150', + ], + ], + [ + 'name' => 'StorageType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The storage type.'."\n" + ."\n" + .'* If FileSystemType is set to standard, set this parameter to Performance, Capacity, or Premium.'."\n" + .'* If FileSystemType is set to extreme, set this parameter to standard or advance.'."\n" + .'* If FileSystemType is set to cpfs, set this parameter to advance\\_100 (100 MB/s/TiB Baseline), advance\\_200 (200 MB/s/TiB Baseline), or economic.'."\n" + .'* If FileSystemType is set to cpfsse, set this parameter to advance\\_100 (100 MB/s/TiB Baseline).'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'Performance', + 'enum' => [ + 'Premium', + 'Performance', + 'Capacity', + 'standard', + 'advance', + 'NasPlusSmartCache', + 'advance_100', + 'advance_200', + 'economic', + ], + ], + ], + [ + 'name' => 'ZoneId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the zone.'."\n" + ."\n" + .'Each region has multiple isolated locations known as zones. Each zone has its own independent power supply and network.'."\n" + ."\n" + .'This parameter is not required if FileSystemType is set to standard. By default, a random zone is selected based on the protocol type and storage type.'."\n" + ."\n" + .'This parameter is required if FileSystemType is set to extreme or cpfs.'."\n" + ."\n" + .'> '."\n" + ."\n" + .'* An Elastic Compute Service (ECS) instance and a file system that reside in different zones of the same region can access each other.'."\n" + ."\n" + .'* We recommend that you select the zone where the ECS instance resides. This prevents cross-zone latency between the file system and the ECS instance.'."\n", + 'type' => 'string', + 'required' => false, + 'docRequired' => false, + 'example' => 'cn-hangzhou-b', + ], + ], + [ + 'name' => 'ProtocolType', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specify the protocol type.'."\n" + ."\n" + .'* If FileSystemType is set to standard, set this parameter to NFS or SMB.'."\n" + .'* If FileSystemType is set to extreme, set this parameter to NFS.'."\n" + .'* If FileSystemType is set to cpfs, set this parameter to cpfs.'."\n" + .'* If FileSystemType is set to cpfsse, set this parameter to cpfs.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'NFS', + 'enum' => [ + 'NFS', + 'SMB', + 'NASPLUS', + 'cpfs', + ], + ], + ], + [ + 'name' => 'EncryptType', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to encrypt data in the file system.'."\n" + ."\n" + .'You can use the keys that are managed by Key Management Service (KMS) to encrypt data in a file system. When you read and write the encrypted data, the data is automatically decrypted.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'* 0 (default): The data in the file system is not encrypted.'."\n" + .'* 1: A NAS-managed key is used to encrypt the data in the file system. This value is valid if FileSystemType is set to standard or extreme.'."\n" + .'* 2: A KMS-managed key is used to encrypt the data in the file system. This value is valid if the FileSystemType parameter is set to standard or extreme.'."\n" + ."\n" + .'> '."\n" + ."\n" + .'* Extreme NAS: All regions except China East 1 Finance support KMS-managed keys.'."\n" + ."\n" + .'* General-purpose NAS: All regions support KMS-managed keys.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'docRequired' => false, + 'example' => '1', + 'default' => '0', + 'enum' => [ + '0', + '1', + '2', + ], + ], + ], + [ + 'name' => 'SnapshotId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The snapshot ID.'."\n" + ."\n" + .'This parameter is available only for advanced Extreme NAS file systems.'."\n" + ."\n" + .'> You can create a file system from a snapshot. The version of the file system is the same as that of the source file system. For example, the source file system of the snapshot uses version 1. To create a file system of version 2, create File System A from the snapshot and create File System B of version 2. Then copy the data and migrate your business from File System A to File System B.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 's-xxx', + ], + ], + [ + 'name' => 'VpcId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The VPC ID.'."\n" + ."\n" + .'* This parameter is required if FileSystemType is set to cpfs or cpfsse.'."\n" + .'* This parameter is reserved and not required if FileSystemType is set to standard or extreme.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'vpc-bp1cbv1ljve4j5hlw****', + ], + ], + [ + 'name' => 'VSwitchId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The vSwitch ID.'."\n" + ."\n" + .'* This parameter is required if FileSystemType is set to cpfs.'."\n" + .'* If FileSystemType is not set to cpfs, this parameter is reserved and not required.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'vsw-2ze37k6jh8ums2fw2****', + ], + ], + [ + 'name' => 'Description', + 'in' => 'query', + 'schema' => [ + 'description' => 'The description of the file system.'."\n" + ."\n" + .'Limits:'."\n" + ."\n" + .'* Must be 2 to 128 characters in length.'."\n" + .'* Must start with a letter but cannot start with `http://` or `https://`.'."\n" + .'* Can contain digits, colons (:), underscores (\\_), and hyphens (-).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'test', + ], + ], + [ + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => [ + 'description' => 'A client token that is used to ensure the idempotence of the request. You can use the client to generate the token, but you must make sure that the token is unique among different requests. ClientToken only supports ASCII characters and cannot exceed 64 characters. For more information, see [How to ensure idempotence](~~25693~~).'."\n" + ."\n" + .'> If you do not specify this parameter, the system automatically uses the request ID as the client token. The request ID may be different for each request.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '123e4567-e89b-12d3-a456-42665544****', + ], + ], + [ + 'name' => 'KmsKeyId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the KMS key.'."\n" + ."\n" + .'This parameter is required if EncryptType is set to 2.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '3c0b3885-2adf-483d-8a65-5e280689****', + ], + ], + [ + 'name' => 'DryRun', + 'in' => 'query', + 'schema' => [ + 'description' => 'Whether to precheck the creation request.'."\n" + ."\n" + .'The precheck operation helps you check the validity of parameters and verify inventory. It does not actually create instances and does not incur fees.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'* true: Checks the request without creating an instance. The system checks the required parameters, request syntax, service limits, and available NAS resources. If the request fails to pass the check, an error message is returned. If the request passes the check, the HTTP status code 200 is returned. No value is returned for the FileSystemId parameter.'."\n" + .'* false (default): Sends the request. If the request passes the check, the instance is created.'."\n", + 'type' => 'boolean', + 'required' => false, + 'example' => 'true', + 'default' => 'false', + ], + ], + [ + 'name' => 'ResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The resource group ID.'."\n" + ."\n" + .'You can log on to the [Resource Management console](https://resourcemanager.console.aliyun.com/resource-groups?) to view resource group IDs.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfmwavnfdf****'."\n", + ], + ], + [ + 'name' => 'Tag', + 'in' => 'query', + 'style' => 'repeatList', + 'schema' => [ + 'description' => 'An array of tags.'."\n" + ."\n" + .'You can specify up to 20 tags. If you specify multiple tags, each tag key must be unique.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The tag.'."\n", + 'type' => 'object', + 'properties' => [ + 'Key' => [ + 'description' => 'The tag key.'."\n" + ."\n" + .'Limits:'."\n" + ."\n" + .'* Cannot be null or an empty string.'."\n" + .'* Can be up to 128 characters in length.'."\n" + .'* Cannot start with `aliyun` or `acs:`.'."\n" + .'* Cannot contain `http://` or `https://`.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'nastest', + ], + 'Value' => [ + 'description' => 'The tag value.'."\n" + ."\n" + .'Limits:'."\n" + ."\n" + .'* Cannot be null or an empty string.'."\n" + .'* Can be up to 128 characters in length.'."\n" + .'* Cannot contain `http://` or `https://`.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'testValue', + ], + ], + 'required' => false, + ], + 'required' => false, + 'maxItems' => 21, + ], + ], + [ + 'name' => 'RedundancyType', + 'in' => 'query', + 'allowEmptyValue' => true, + 'schema' => [ + 'title' => '冗余类型', + 'description' => 'Storage redundancy type. Only available for CPFS SE.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'* ZRS', + 'type' => 'string', + 'required' => false, + 'enumValueTitles' => [ + 'ZRS' => 'ZRS', + ], + 'example' => 'ZRS', + 'enum' => [ + 'LRS', + 'ZRS', + ], + ], + ], + [ + 'name' => 'RedundancyVSwitchIds', + 'in' => 'query', + 'allowEmptyValue' => true, + 'style' => 'repeatList', + 'schema' => [ + 'title' => '同城冗余虚拟交换机ID列表', + 'description' => 'A list of IDs for the zone-redundant vSwitches. This parameter is required if RedundancyType is set to ZRS. You must enter three vSwitch IDs from three different zones.'."\n", + 'type' => 'array', + 'items' => [ + 'title' => '同城冗余虚拟交换机ID列表', + 'description' => 'A list of IDs for the zone-redundant vSwitches.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'vsw-123xxx', + ], + 'required' => false, + 'maxItems' => 3, + 'minItems' => 0, + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'description' => 'The response parameters.'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '98696EF0-1607-4E9D-B01D-F20930B6****', + ], + 'FileSystemId' => [ + 'description' => 'The ID of the created file system.'."\n", + 'type' => 'string', + 'example' => '1ca404****', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 202 => [ + [ + 'errorCode' => 'RequestAccepted', + 'errorMessage' => 'The request has been accepted by the server.', + ], + ], + 400 => [ + [ + 'errorCode' => 'IdempotentParameterMismatch', + 'errorMessage' => 'The same client token was passed in to different parameters.', + ], + [ + 'errorCode' => 'InvalidParameter.KmsServiceNotEnabled', + 'errorMessage' => 'Key Management Service is not enabled.', + ], + [ + 'errorCode' => 'DryRunOperation', + 'errorMessage' => 'The request is validated with DryRun flag set.', + ], + [ + 'errorCode' => 'SubAccount.NoExtremeSLRPermission', + 'errorMessage' => 'The RAM user does not have the permission to create service linked role AliyunServiceRoleForNasExtreme. Please authorize the RAM user the permission ram:CreateServiceLinkedRole.', + ], + [ + 'errorCode' => 'SubAccount.NoStandardSLRPermission', + 'errorMessage' => 'The RAM user does not have the permission to create service linked role AliyunServiceRoleForNasStandard. Please authorize the RAM user the permission ram:CreateServiceLinkedRole.', + ], + [ + 'errorCode' => 'SubAccount.NoEncryptionSLRPermission', + 'errorMessage' => 'The RAM user does not have the permission to create service linked role AliyunServiceRoleForNasEncryption. Please authorize the RAM user the permission ram:CreateServiceLinkedRole.', + ], + [ + 'errorCode' => 'InvalidParam.NotSupportBYOK', + 'errorMessage' => 'The specified file system type does not support the BYOK encryption function.', + ], + [ + 'errorCode' => 'MissingParameter.KmsKeyId', + 'errorMessage' => 'When parameter EncryptType equals 2, the parameter KmsKeyId is mandatory for your request.', + ], + [ + 'errorCode' => 'InvalidParameter.InvalidKmsKeyId', + 'errorMessage' => 'The specified KMS key ID is invalid.', + ], + [ + 'errorCode' => 'InvalidParameter.KmsKeyIdNotFound', + 'errorMessage' => 'The specified KMS key ID does not exist.', + ], + ], + 403 => [ + [ + 'errorCode' => 'OperationDenied.InvalidState', + 'errorMessage' => 'The operation is not permitted when the status is processing.', + ], + [ + 'errorCode' => 'InvalidFileSystem.AlreadyExisted', + 'errorMessage' => 'The specified file system already exists.', + ], + [ + 'errorCode' => 'Resource.OutOfStock', + 'errorMessage' => 'The inventory of the specified zone is insufficient.', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"98696EF0-1607-4E9D-B01D-F20930B6****\\",\\n \\"FileSystemId\\": \\"1ca404****\\"\\n}","type":"json"}]', + 'title' => 'CreateFileSystem', + 'description' => '* Before you call this operation, you must understand the billing and pricing of File Storage NAS. For more information, see [Billing](~~178365~~) and [Pricing](https://www.aliyun.com/price/product?#/nas/detail).'."\n" + .'* Before you create a file system, you must complete real-name verification. For more information, see [Real-name verification](~~48263~~).'."\n" + .'* When you call this operation, a service-linked role of NAS is automatically created. For more information, see [Manage the service-linked roles of NAS](~~208530~~).'."\n", + 'requestParamsDescription' => '**Note the following about API idempotence:**\\'."\n" + .'The CreateFileSystem operation creates a file system and incurs fees. Therefore, if the request times out or an internal error occurs, the client may attempt to resend the request. You can specify the ClientToken parameter in the request. This ensures that the request is not repeatedly sent by the client.'."\n" + ."\n" + .'> This operation supports idempotence if FileSystemType is set to extreme or cpfs. This operation does not support idempotence if FileSystemType is set to standard.'."\n" + ."\n" + .'The following list provides more details about the ClientToken parameter.'."\n" + ."\n" + .'* ClientToken is a unique, case-sensitive string that is generated by the client and cannot exceed 64 ASCII characters in length. Example: `ClientToken=123e4567-e89b-12d3-a456-42665544****`.'."\n" + .'* If you specify a used ClientToken and modify other request parameters, NAS returns the IdempotentParameterMismatch error code.'."\n" + ."\n" + .'> The SignatureNonce, Timestamp, and Signature parameters must be changed during retries. This is because NAS uses the SignatureNonce parameter to prevent replay attacks and uses the Timestamp parameter to identify the timestamp of each request. Therefore, a retry request requires different values of the SignatureNonce and Timestamp parameters. In this case, the value of the Signature parameter changes.'."\n" + ."\n" + .'* If you specify the ClientToken parameter and the request fails, the request is resent based on the following HTTP status codes and error messages:'."\n" + ."\n" + .' * If the HTTP status code 200 is returned, the client can receive the same result as the last request after the request is resent. However, your server status is not affected.'."\n" + .' * If a 4xx HTTP status code is returned and the error message does not indicate "try it later", the request parameters are invalid. You must modify the request parameters based on the returned error message and then resend the request.'."\n" + .' * If a 5xx HTTP status code is returned, a network timeout or an internal error occurred. You can resend the same request and the request must contain the same client token and request parameters.'."\n" + ."\n" + .'* A client token is valid for 30 days.'."\n", + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'DeleteFileSystem' => [ + 'summary' => 'Deletes a file system.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'delete', + 'riskType' => 'high', + 'chargeType' => 'free', + 'abilityTreeCode' => '13939', + 'abilityTreeNodes' => [ + 'FEATUREnasI92PYN', + ], + 'autoTest' => true, + 'tenantRelevance' => 'tenant', + ], + 'parameters' => [ + [ + 'name' => 'FileSystemId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the file system that you want to delete.'."\n" + ."\n" + .'* Sample ID of a General-purpose NAS file system: 31a8e4\\*\\*\\*\\*.'."\n" + .'* The IDs of Extreme NAS file systems must start with `extreme-`, for example, extreme-0015\\*\\*\\*\\*.'."\n" + .'* The IDs of Cloud Parallel File Storage (CPFS) file systems must start with `cpfs-`, for example, cpfs-00cb6fa094ca\\*\\*\\*\\*.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => '1ca404****', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '9E15E394-38A6-457A-A62A-D9797C9A****', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'OperationDenied.LifecyclePolicyAssociated', + 'errorMessage' => 'The specified FileSystem has LifecyclePolicy associated.', + ], + [ + 'errorCode' => 'OperationDenied.LifecycleRecycleBinTieringJobAssociated', + 'errorMessage' => 'The specified FileSystem has LifecycleRecycleBinTieringJob associated.', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"9E15E394-38A6-457A-A62A-D9797C9A****\\"\\n}","errorExample":""},{"type":"xml","example":"<DeleteFileSystemResponse>\\n <RequestId>9E15E394-38A6-457A-A62A-D9797C9A****</RequestId>\\n</DeleteFileSystemResponse>","errorExample":"<?xml version=\\"1.0\\" encoding=\\"UTF-8\\"?>\\n<DeleteFileSystemResponse>\\n <RequestId>9E15E394-38A6-457A-A62A-D9797C9A0262</RequestId>\\n</DeleteFileSystemResponse>\\n"}]', + 'title' => 'DeleteFileSystem', + 'description' => '* Before you delete a file system, you must delete all mount targets of the file system.'."\n" + .'* Before you delete a file system, you must make sure that no lifecycle policy is created for the file system.'."\n" + .'* After a file system is deleted, the data on the file system cannot be restored. Proceed with caution.'."\n", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'ModifyFileSystem' => [ + 'summary' => 'Modifies the description of a file system.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '13976', + 'abilityTreeNodes' => [ + 'FEATUREnasI92PYN', + ], + 'autoTest' => true, + 'tenantRelevance' => 'tenant', + ], + 'parameters' => [ + [ + 'name' => 'FileSystemId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the file system.'."\n" + ."\n" + .'* Sample ID of a General-purpose NAS file system: `31a8e4****`.'."\n" + .'* The IDs of Extreme NAS file systems must start with `extreme-`. Example: `extreme-0015****`.'."\n" + .'* The IDs of Cloud Paralleled File System (CPFS) file systems must start with `cpfs-`. Example: `cpfs-125487****`.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => '1ca404****', + ], + ], + [ + 'name' => 'Description', + 'in' => 'query', + 'schema' => [ + 'description' => 'The description of the file system.'."\n" + ."\n" + .'Limits:'."\n" + ."\n" + .'* The description must be 2 to 128 characters in length.'."\n" + .'* It must start with a letter but cannot start with `http://` or `https://`.'."\n" + .'* The description can contain letters, digits, colons (:), underscores (\\_), and hyphens (-).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'NAS-test-1', + ], + ], + [ + 'name' => 'Options', + 'in' => 'query', + 'style' => 'json', + 'schema' => [ + 'description' => 'The options.'."\n", + 'type' => 'object', + 'properties' => [ + 'EnableOplock' => [ + 'description' => 'Specifies whether to enable the oplock feature. Valid values:'."\n" + ."\n" + .'* true: enables the feature.'."\n" + .'* false: disables the feature.'."\n" + ."\n" + .'> Only Server Message Block (SMB) file systems support this feature.'."\n", + 'type' => 'boolean', + 'required' => false, + 'example' => 'true', + ], + 'EnableABE' => [ + 'type' => 'boolean', + ], + ], + 'required' => false, + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '5BC5CB97-9F28-42FE-84A4-0CD0DF42****', + ], + ], + 'description' => '', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"5BC5CB97-9F28-42FE-84A4-0CD0DF42****\\"\\n}","errorExample":""},{"type":"xml","example":"<ModifyFileSystemResponse>\\n <RequestId>5BC5CB97-9F28-42FE-84A4-0CD0DF42****</RequestId>\\n</ModifyFileSystemResponse>","errorExample":""}]', + 'title' => 'ModifyFileSystem', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'DescribeFileSystems' => [ + 'summary' => 'Queries file systems.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '13951', + 'abilityTreeNodes' => [ + 'FEATUREnasI92PYN', + ], + ], + 'parameters' => [ + [ + 'name' => 'FileSystemId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the file system.'."\n" + ."\n" + .'* Sample ID of a General-purpose NAS file system: 31a8e4\\*\\*\\*\\*.'."\n" + .'* The IDs of Extreme NAS file systems must start with extreme-, for example, extreme-0015\\*\\*\\*\\*.'."\n" + .'* The IDs of CPFS file systems must start with cpfs-. Example: cpfs-125487\\*\\*\\*\\*.'."\n" + .'* The IDs of CPFS SE file systems must start with cpfsse-. Example: cpfsse-022c71b134\\*\\*\\*\\*.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '31a8e4****', + ], + ], + [ + 'name' => 'FileSystemType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The type of the file system.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'* all (default): All types.'."\n" + .'* standard: General-purpose NAS'."\n" + .'* extreme: Extreme NAS'."\n" + .'* cpfs: CPFS (locally redundant storage)'."\n" + .'* cpfsse: CPFS SE (zone-redundant storage)'."\n" + ."\n" + .'> Separate multiple data types with commas (,).'."\n", + 'type' => 'string', + 'required' => false, + 'enumValueTitles' => [], + 'example' => 'standard', + 'default' => 'all', + 'enum' => [], + ], + ], + [ + 'name' => 'VpcId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the virtual private cloud (VPC).'."\n" + ."\n" + .'If you want to mount the file system on an Elastic Compute Service (ECS) instance, the file system and the ECS instance must reside in the same VPC.', + 'type' => 'string', + 'required' => false, + 'example' => 'vpc-bp1sevsgtqvk5gxbl****', + ], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of entries per page.'."\n" + ."\n" + .'Valid values: 1 to 100.'."\n" + ."\n" + .'Default value: 10.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'maximum' => '100', + 'minimum' => '1', + 'example' => '10', + 'default' => '10', + ], + ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => [ + 'description' => 'The page number.'."\n" + ."\n" + .'Pages start from page 1. Default value: 1.', + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'minimum' => '1', + 'example' => '1', + ], + ], + [ + 'name' => 'Tag', + 'in' => 'query', + 'style' => 'repeatList', + 'schema' => [ + 'description' => 'The details about the tags.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The details about the tags.'."\n", + 'type' => 'object', + 'properties' => [ + 'Key' => [ + 'description' => 'The tag key.'."\n" + ."\n" + .'Limits:'."\n" + ."\n" + .'* Valid values of N: 1 to 20.'."\n" + .'* The tag key can be up to 128 characters in length.'."\n" + .'* The tag key cannot start with `aliyun` or `acs:`.'."\n" + .'* The tag key cannot contain `http://` or `https://`.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'test'."\n", + ], + 'Value' => [ + 'description' => 'The tag value.'."\n" + ."\n" + .'Limits:'."\n" + ."\n" + .'* Valid values of N: 1 to 20.'."\n" + .'* The tag value can be up to 128 characters in length.'."\n" + .'* The tag value cannot start with `aliyun` or `acs:`.'."\n" + .'* The tag value cannot contain `http://` or `https://`.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'test-value', + ], + ], + 'required' => false, + ], + 'required' => false, + 'maxItems' => 21, + ], + ], + [ + 'name' => 'ResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The resource group ID.'."\n" + ."\n" + .'You can log on to the [Resource Management console](https://resourcemanager.console.aliyun.com/resource-groups?) to view resource group IDs.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfmwavnfdf****'."\n", + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'FileSystems' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'FileSystem' => [ + 'description' => 'The file system list.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Status' => [ + 'description' => 'The status of the file system. Valid values:'."\n" + .'- Pending: The file system is being created or modified.'."\n" + .'- Running: The file system is available. Before you create a mount target for the file system, make sure that the file system is in the Running state.'."\n" + .'- Stopped: The file system is unavailable.'."\n" + .'- Extending: The file system is being scaled up.'."\n" + .'- Stopping: The file system is being stopped.'."\n" + .'- Deleting: The file system is being deleted.', + 'type' => 'string', + 'example' => 'Pending', + ], + 'MeteredIASize' => [ + 'description' => 'The storage usage of the Infrequent Access (IA) storage medium.'."\n" + ."\n" + .'Unit: bytes.', + 'type' => 'integer', + 'format' => 'int64', + 'example' => '362832', + ], + 'Capacity' => [ + 'description' => 'The capacity of the file system.'."\n" + ."\n" + .'Unit: GiB.', + 'type' => 'integer', + 'format' => 'int64', + 'example' => '100', + ], + 'CreateTime' => [ + 'description' => 'The time when the file system was created.', + 'type' => 'string', + 'example' => '2020-01-05T16:00:00Z', + ], + 'ChargeType' => [ + 'description' => 'The billing method.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'* Subscription'."\n" + .'* PayAsYouGo'."\n" + .'* Package: storage plan'."\n", + 'type' => 'string', + 'example' => 'PayAsYouGo', + ], + 'Tags' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'Tag' => [ + 'description' => 'The tags that are attached to the file system.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Key' => [ + 'description' => 'The tag key.'."\n", + 'type' => 'string', + 'example' => 'test', + ], + 'Value' => [ + 'description' => 'The tag value.'."\n", + 'type' => 'string', + 'example' => 'test-value', + ], + ], + 'description' => '', + ], + ], + ], + ], + 'StorageType' => [ + 'description' => 'The storage type.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'* General-purpose NAS: Capacity, Performance, Premium'."\n" + .'* Extreme NAS: standard, advance'."\n" + .'* CPFS: advance\\_100 (100 MB/s/TiB Baseline), advance\\_200 (200 MB/s/TiB Baseline), economic'."\n" + .'* CPFS SE: advance\\_100 (100 MB/s/TiB Baseline)'."\n", + 'type' => 'string', + 'example' => 'Performance', + ], + 'MeteredSize' => [ + 'description' => 'The storage usage of the file system.'."\n" + ."\n" + .'The value of this parameter is the maximum storage usage of the file system over the last hour. Unit: bytes.', + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1611661312', + ], + 'Description' => [ + 'description' => 'The description of the file system.'."\n", + 'type' => 'string', + 'example' => 'test', + ], + 'Bandwidth' => [ + 'description' => 'The bandwidth of the file system.'."\n" + ."\n" + .'Unit: MB/s. This parameter is unavailable for General-purpose NAS file systems.', + 'type' => 'integer', + 'format' => 'int64', + 'example' => '150', + ], + 'SupportedFeatures' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'SupportedFeature' => [ + 'description' => 'The features that are supported by the file system.', + 'type' => 'array', + 'items' => [ + 'description' => 'The feature that is supported by the file system.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'* Lifecycle: lifecycle management'."\n" + .'* ACL: access control list (ACL)'."\n" + .'* Ipv6: IPv6'."\n" + ."\n" + .'> Only Extreme NAS file systems that reside in the Chinese mainland support IPv6.', + 'type' => 'string', + 'example' => 'Lifecycle', + ], + ], + ], + ], + 'Version' => [ + 'description' => 'The version number of the file system.'."\n" + ."\n" + .'This parameter is available only for Extreme NAS file systems and CPFS file systems.', + 'type' => 'string', + 'example' => '2.3.4', + ], + 'ProtocolType' => [ + 'description' => 'The protocol type of the file system.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'* NFS: Network File System.'."\n" + .'* SMB: Server Message Block.'."\n" + .'* cpfs: The protocol type supported by the CPFS file system.'."\n", + 'type' => 'string', + 'example' => 'NFS', + ], + 'MountTargets' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'MountTarget' => [ + 'description' => 'The queried mount targets.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'VpcId' => [ + 'description' => 'The ID of the VPC.', + 'type' => 'string', + 'example' => 'vpc-bp1sevsgtqvk5gxbl****', + ], + 'Status' => [ + 'description' => 'The status of the mount target.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'* Active'."\n" + .'* Inactive'."\n" + .'* Pending'."\n" + .'* Deleting'."\n" + .'* Hibernating'."\n" + .'* Hibernated'."\n", + 'type' => 'string', + 'example' => 'Active', + ], + 'ClientMasterNodes' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'ClientMasterNode' => [ + 'description' => 'The information about client management nodes.'."\n" + ."\n" + .'This parameter is available only for CPFS file systems.', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'EcsId' => [ + 'description' => 'The ID of the ECS instance on the client management node.', + 'type' => 'string', + 'example' => 'i-hp3i3odi5ory1buo****', + ], + 'DefaultPasswd' => [ + 'description' => 'The default logon password of the ECS instance on the client management node.', + 'type' => 'string', + 'example' => '123456', + ], + 'EcsIp' => [ + 'description' => 'The IP address of the ECS instance on the client management node.', + 'type' => 'string', + 'example' => '192.168.1.0', + ], + ], + ], + ], + ], + ], + 'MountTargetDomain' => [ + 'description' => 'The domain name of the mount target.', + 'type' => 'string', + 'example' => '109c042666-w****.cn-hangzhou.nas.aliyuncs.com', + ], + 'AccessGroupName' => [ + 'description' => 'The name of the permission group that is attached to the mount target.', + 'type' => 'string', + 'example' => 'test-001', + ], + 'DualStackMountTargetDomain' => [ + 'description' => 'The dual-stack (IPv4 and IPv6) domain name of the mount target.'."\n" + .'> Only Extreme NAS file systems that reside in the Chinese mainland support IPv6.', + 'type' => 'string', + 'example' => '174494b666-x****.dualstack.cn-hangzhou.nas.aliyuncs.com', + ], + 'VswId' => [ + 'description' => 'The ID of the vSwitch.', + 'type' => 'string', + 'example' => 'vsw-bp1omfzsszekkvaxn****', + ], + 'Tags' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'Tag' => [ + 'description' => 'The tags that are attached to the mount target.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Key' => [ + 'description' => 'The tag key.'."\n", + 'type' => 'string', + 'example' => 'test', + ], + 'Value' => [ + 'description' => 'The tag value.'."\n", + 'type' => 'string', + 'example' => 'test-value', + ], + ], + 'description' => '', + ], + ], + ], + ], + 'NetworkType' => [ + 'description' => 'The network type. Valid value: vpc.', + 'type' => 'string', + 'example' => 'vpc', + ], + ], + 'description' => '', + ], + ], + ], + ], + 'KMSKeyId' => [ + 'description' => 'The ID of the key that is managed by Key Management Service (KMS).', + 'type' => 'string', + 'example' => '0e478b7a-4262-4802-b8cb-00d3fb40****', + ], + 'AutoSnapshotPolicyId' => [ + 'description' => 'The ID of the automatic snapshot policy.'."\n", + 'type' => 'string', + 'example' => 'sp-extreme-233e6****'."\n", + ], + 'RegionId' => [ + 'description' => 'The region ID.', + 'type' => 'string', + 'example' => 'cn-hangzhou', + ], + 'FileSystemType' => [ + 'description' => 'The file system type.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'* standard: General-purpose NAS'."\n" + .'* extreme: Extreme NAS'."\n" + .'* cpfs: CPFS (locally redundant storage)'."\n" + .'* cpfsse: CPFS SE (zone-redundant storage)'."\n", + 'type' => 'string', + 'example' => 'standard', + ], + 'FileSystemId' => [ + 'description' => 'The ID of the file system.', + 'type' => 'string', + 'example' => '109c04****', + ], + 'EncryptType' => [ + 'description' => 'Indicates whether the data in the file system is encrypted.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'* 0: The data in the file system is not encrypted.'."\n" + .'* 1: A NAS-managed key is used to encrypt the data in the file system.'."\n" + .'* 2: A KMS-managed key is used to encrypt the data in the file system.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '1', + ], + 'Ldap' => [ + 'description' => 'The Lightweight Directory Access Protocol (LDAP) configurations.'."\n" + ."\n" + .'This parameter is available only for CPFS file systems.', + 'type' => 'object', + 'properties' => [ + 'BindDN' => [ + 'description' => 'An LDAP entry.', + 'type' => 'string', + 'example' => 'cn=alibaba,dc=com', + ], + 'SearchBase' => [ + 'description' => 'An LDAP search base.', + 'type' => 'string', + 'example' => 'dc=example', + ], + 'URI' => [ + 'description' => 'An LDAP URI.', + 'type' => 'string', + 'example' => 'ldap://ldap.example.example', + ], + ], + ], + 'ExpiredTime' => [ + 'description' => 'The time when the file system expires.', + 'type' => 'string', + 'example' => '2020-01-05T16:00:00Z', + ], + 'ZoneId' => [ + 'description' => 'The ID of the zone where the file system resides.', + 'type' => 'string', + 'example' => 'cn-hangzhou-b', + ], + 'VpcId' => [ + 'description' => 'The ID of the virtual private cloud (VPC).'."\n", + 'type' => 'string', + 'example' => 'vpc-bp1cbv1ljve4j5hlw****'."\n", + ], + 'VswIds' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'VswId' => [ + 'description' => 'The information about vSwitch.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The vSwitch ID.'."\n", + 'type' => 'string', + 'example' => 'vsw-2ze37k6jh8ums2fw2****'."\n", + ], + ], + ], + ], + 'Packages' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'Package' => [ + 'description' => 'The information about storage plans.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'StartTime' => [ + 'description' => 'The start time of the validity period for the storage plan.', + 'type' => 'string', + 'example' => '2019-12-05T01:40:56Z', + ], + 'ExpiredTime' => [ + 'description' => 'The end time of the validity period for the storage plan.', + 'type' => 'string', + 'example' => '2020-01-05T16:00:00Z', + ], + 'Size' => [ + 'description' => 'The capacity of the storage plan. Unit: bytes.', + 'type' => 'integer', + 'format' => 'int64', + 'example' => '107374182400', + ], + 'PackageId' => [ + 'description' => 'The ID of the storage plan.', + 'type' => 'string', + 'example' => 'naspackage-0be9c4b624-37****', + ], + 'PackageType' => [ + 'description' => 'The type of the storage plan.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'* ssd: The storage plan for Performance NAS file systems.'."\n" + .'* hybrid: The storage plan for Capacity NAS file systems.'."\n", + 'type' => 'string', + 'example' => 'hybrid', + ], + ], + 'description' => '', + ], + ], + ], + ], + 'AccessPointCount' => [ + 'description' => 'Number of access points.', + 'type' => 'string', + 'example' => '1', + ], + 'ResourceGroupId' => [ + 'description' => 'The resource group ID.'."\n", + 'type' => 'string', + 'example' => 'rg-acfmwavnfdf****'."\n", + ], + 'MeteredArchiveSize' => [ + 'description' => 'Archive storage usage.'."\n" + ."\n" + .'Unit: Byte.', + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1611661312', + ], + 'Options' => [ + 'description' => 'The options.'."\n", + 'type' => 'object', + 'properties' => [ + 'EnableOplock' => [ + 'description' => 'Specifies whether to enable the oplock feature. Valid values:'."\n" + ."\n" + .'* true: enables the feature.'."\n" + .'* false: disables the feature.'."\n" + ."\n" + .'> Only Server Message Block (SMB) file systems support this feature.', + 'type' => 'boolean', + 'example' => 'true', + ], + 'EnableABE' => [ + 'type' => 'boolean', + ], + ], + ], + 'QuorumVswId' => [ + 'description' => 'The vSwitch ID.'."\n", + 'type' => 'string', + 'example' => 'vsw-2ze37k6jh8ums2fw2****'."\n", + ], + 'VscTarget' => [ + 'description' => '> This parameter is not publicly available.'."\n", + 'type' => 'string', + 'example' => 'cpfs-370y1tv921vpuj4****-000001.cn-wulanchabu.cpfs.aliyuncs.com', + ], + 'RedundancyType' => [ + 'title' => '冗余类型', + 'description' => 'Storage redundancy type. Returned only for CPFS SE.'."\n", + 'type' => 'string', + 'example' => 'LRS', + 'default' => 'LRS', + ], + 'RedundancyVSwitchIds' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'RedundancyVSwitchId' => [ + 'title' => '同城冗余虚拟交换机ID列表', + 'description' => 'A list of IDs for the zone-redundant vSwitches.'."\n", + 'type' => 'array', + 'items' => [ + 'title' => '同城冗余虚拟交换机ID列表', + 'description' => 'A list of IDs for the zone-redundant vSwitches. Returned only when RedundancyType is set to ZRS.'."\n", + 'type' => 'string', + 'example' => 'vsw-123xxx', + ], + ], + ], + ], + ], + 'description' => '', + ], + ], + ], + ], + 'RequestId' => [ + 'description' => 'The request ID.', + 'type' => 'string', + 'example' => '035B3A3A-E514-4B41-B906-5D906CFB****', + ], + 'TotalCount' => [ + 'description' => 'The total number of file systems.', + 'type' => 'integer', + 'format' => 'int32', + 'example' => '1', + ], + 'PageSize' => [ + 'description' => 'The number of entries per page.', + 'type' => 'integer', + 'format' => 'int32', + 'example' => '1', + ], + 'PageNumber' => [ + 'description' => 'The page number.', + 'type' => 'integer', + 'format' => 'int32', + 'example' => '1', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'Region.NotSupported', + 'errorMessage' => 'The specified Region is not supported for this API now.', + ], + ], + 404 => [ + [ + 'errorCode' => 'InvalidFileSystem.NotFound', + 'errorMessage' => 'The specified file system does not exist.', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"FileSystems\\": {\\n \\"FileSystem\\": [\\n {\\n \\"Status\\": \\"Pending\\",\\n \\"MeteredIASize\\": 362832,\\n \\"Capacity\\": 100,\\n \\"CreateTime\\": \\"2020-01-05T16:00:00Z\\",\\n \\"ChargeType\\": \\"PayAsYouGo\\",\\n \\"Tags\\": {\\n \\"Tag\\": [\\n {\\n \\"Key\\": \\"testKey\\",\\n \\"Value\\": \\"testValue\\"\\n }\\n ]\\n },\\n \\"StorageType\\": \\"Performance\\",\\n \\"MeteredSize\\": 1611661312,\\n \\"Description\\": \\"test\\",\\n \\"Bandwidth\\": 150,\\n \\"SupportedFeatures\\": {\\n \\"SupportedFeature\\": [\\n \\"Lifecycle\\"\\n ]\\n },\\n \\"Version\\": \\"2.3.4\\",\\n \\"ProtocolType\\": \\"NFS\\",\\n \\"MountTargets\\": {\\n \\"MountTarget\\": [\\n {\\n \\"VpcId\\": \\"vpc-bp1sevsgtqvk5gxbl****\\",\\n \\"Status\\": \\"Active\\",\\n \\"ClientMasterNodes\\": {\\n \\"ClientMasterNode\\": [\\n {\\n \\"EcsId\\": \\"i-hp3i3odi5ory1buo****\\",\\n \\"DefaultPasswd\\": \\"123456\\",\\n \\"EcsIp\\": \\"192.168.1.0\\"\\n }\\n ]\\n },\\n \\"MountTargetDomain\\": \\"109c042666-w****.cn-hangzhou.nas.aliyuncs.com\\",\\n \\"AccessGroupName\\": \\"test-001\\",\\n \\"DualStackMountTargetDomain\\": \\"174494b666-x****.dualstack.cn-hangzhou.nas.aliyuncs.com\\",\\n \\"VswId\\": \\"vsw-bp1omfzsszekkvaxn****\\",\\n \\"Tags\\": {\\n \\"Tag\\": [\\n {\\n \\"Key\\": \\"testKey\\",\\n \\"Value\\": \\"testValue\\"\\n }\\n ]\\n },\\n \\"NetworkType\\": \\"vpc\\"\\n }\\n ]\\n },\\n \\"KMSKeyId\\": \\"0e478b7a-4262-4802-b8cb-00d3fb40****\\",\\n \\"AutoSnapshotPolicyId\\": \\"sp-extreme-09npwxadu1eqvw****\\",\\n \\"RegionId\\": \\"cn-hangzhou\\",\\n \\"FileSystemType\\": \\"standard\\",\\n \\"FileSystemId\\": \\"109c04****\\",\\n \\"EncryptType\\": 1,\\n \\"Ldap\\": {\\n \\"BindDN\\": \\"cn=alibaba,dc=com\\",\\n \\"SearchBase\\": \\"dc=example\\",\\n \\"URI\\": \\"ldap://ldap.example.example\\"\\n },\\n \\"ExpiredTime\\": \\"2020-01-05T16:00:00Z\\",\\n \\"ZoneId\\": \\"cn-hangzhou-b\\",\\n \\"VpcId\\": \\"vpc-bp1sevsgtqvk5gxbl****\\\\n\\",\\n \\"VswIds\\": {\\n \\"VswId\\": [\\n \\"vsw-bp1omfzsszekkvaxn****\\\\n\\"\\n ]\\n },\\n \\"Packages\\": {\\n \\"Package\\": [\\n {\\n \\"StartTime\\": \\"2019-12-05T01:40:56Z\\",\\n \\"ExpiredTime\\": \\"2020-01-05T16:00:00Z\\",\\n \\"Size\\": 107374182400,\\n \\"PackageId\\": \\"naspackage-0be9c4b624-37****\\",\\n \\"PackageType\\": \\"hybrid\\"\\n }\\n ]\\n },\\n \\"AccessPointCount\\": \\"1\\",\\n \\"ResourceGroupId\\": \\"rg-acfmwavnfef****\\\\n\\",\\n \\"MeteredArchiveSize\\": 1611661312,\\n \\"Options\\": {\\n \\"EnableOplock\\": true,\\n \\"EnableABE\\": true\\n },\\n \\"QuorumVswId\\": \\"vsw-bp1omfzsszekkvaxn****\\",\\n \\"VscTarget\\": \\"cpfs-370y1tv921vpuj4****-000001.cn-wulanchabu.cpfs.aliyuncs.com\\",\\n \\"RedundancyType\\": \\"LRS\\",\\n \\"RedundancyVSwitchIds\\": {\\n \\"RedundancyVSwitchId\\": [\\n \\"vsw-123xxx\\"\\n ]\\n }\\n }\\n ]\\n },\\n \\"RequestId\\": \\"035B3A3A-E514-4B41-B906-5D906CFB****\\",\\n \\"TotalCount\\": 1,\\n \\"PageSize\\": 1,\\n \\"PageNumber\\": 1\\n}","errorExample":""},{"type":"xml","example":"<DescribeFileSystemsResponse>\\n <FileSystems>\\n <Status>Pending</Status>\\n <MeteredIASize>362832</MeteredIASize>\\n <Capacity>1</Capacity>\\n <CreateTime>2020-01-05T16:00:00Z</CreateTime>\\n <ChargeType>PayAsYouGo</ChargeType>\\n <Tags>\\n <Key>sdf</Key>\\n <Value>asd123</Value>\\n </Tags>\\n <StorageType>Performance</StorageType>\\n <MeteredSize>1611661312</MeteredSize>\\n <Description>31a8e48eda</Description>\\n <Bandwidth>150</Bandwidth>\\n <SupportedFeatures>Lifecycle</SupportedFeatures>\\n <Version>1</Version>\\n <ProtocolType>NFS</ProtocolType>\\n <MountTargets>\\n <VpcId>vpc-bp1sevsgtqvk5gxbl****</VpcId>\\n <Status>active</Status>\\n <ClientMasterNodes>\\n <EcsId>i-hp3i3odi5ory1buo****</EcsId>\\n <DefaultPasswd>123456</DefaultPasswd>\\n <EcsIp>192.168.1.0</EcsIp>\\n </ClientMasterNodes>\\n <MountTargetDomain>109c042666-w****.cn-hangzhou.nas.aliyuncs.com</MountTargetDomain>\\n <AccessGroupName>test-001</AccessGroupName>\\n <DualStackMountTargetDomain>174494b666-x****.dualstack.cn-hangzhou.nas.aliyuncs.com</DualStackMountTargetDomain>\\n <VswId>vsw-bp1omfzsszekkvaxn****</VswId>\\n <Tags>\\n <Key>adasfsdfd</Key>\\n <Value>afsa</Value>\\n </Tags>\\n <NetworkType>vpc</NetworkType>\\n </MountTargets>\\n <KMSKeyId>0e478b7a-4262-4802-b8cb-00d3fb40****</KMSKeyId>\\n <RegionId>cn-hangzhou</RegionId>\\n <FileSystemType>standard</FileSystemType>\\n <FileSystemId>109c04****</FileSystemId>\\n <EncryptType>1</EncryptType>\\n <Ldap>\\n <BindDN>cn=alibaba,dc=com</BindDN>\\n <SearchBase>dc=example</SearchBase>\\n <URI>ldap://ldap.example.example</URI>\\n </Ldap>\\n <ExpiredTime>2020-01-05T16:00:00Z</ExpiredTime>\\n <ZoneId>cn-hangzhou-b</ZoneId>\\n <Packages>\\n <StartTime>2019-12-05T01:40:56Z</StartTime>\\n <ExpiredTime>2020-01-05T16:00:00Z</ExpiredTime>\\n <Size>107374182400</Size>\\n <PackageId>naspackage-0be9c4b624-37****</PackageId>\\n <PackageType>hybrid</PackageType>\\n </Packages>\\n </FileSystems>\\n <TotalCount>1</TotalCount>\\n <RequestId>035B3A3A-E514-4B41-B906-5D906CFB****</RequestId>\\n <PageSize>1</PageSize>\\n <PageNumber>1</PageNumber>\\n</DescribeFileSystemsResponse>","errorExample":""}]', + 'title' => 'DescribeFileSystems', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'UpgradeFileSystem' => [ + 'summary' => 'Scales up an Extreme NAS file system or a Cloud Parallel File Storage (CPFS) file system.', + 'methods' => [ + 'post', + 'get', + 'put', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'high', + 'chargeType' => 'paid', + 'abilityTreeCode' => '13988', + 'abilityTreeNodes' => [ + 'FEATUREnasCF11NZ', + 'FEATUREnasQ7YV89', + 'FEATUREnas6KFX9N', + 'FEATUREnas0GUIX5', + ], + 'autoTest' => true, + 'tenantRelevance' => 'tenant', + ], + 'parameters' => [ + [ + 'name' => 'FileSystemId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the file system.'."\n" + ."\n" + .'* The IDs of Extreme NAS file systems must start with `extreme-`, for example, extreme-0015\\*\\*\\*\\*.'."\n" + .'* The IDs of CPFS file systems must start with `cpfs-`. Example: cpfs-125487\\*\\*\\*\\*.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => '1ca404****', + ], + ], + [ + 'name' => 'Capacity', + 'in' => 'query', + 'schema' => [ + 'description' => 'The desired capacity of the file system.'."\n" + ."\n" + .'The desired capacity of the file system must be greater than the original capacity of the file system. Unit: GiB.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => true, + 'docRequired' => true, + 'example' => '100', + ], + ], + [ + 'name' => 'DryRun', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to perform a dry run.'."\n" + ."\n" + .'During the dry run, the system checks whether the request parameters are valid and whether the requested resources are available. During the dry run, no file system is created and no fee is incurred.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'* true: performs a dry run. The system checks the required parameters, request syntax, limits, and available NAS resources. If the request fails the dry run, an error message is returned. If the request passes the dry run, the HTTP status code 200 is returned. No value is returned for the FileSystemId parameter.'."\n" + .'* false (default): performs a dry run and sends the request. If the request passes the dry run, a file system is created.'."\n", + 'type' => 'boolean', + 'required' => false, + 'docRequired' => true, + 'example' => 'true', + 'default' => 'false', + ], + ], + [ + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => [ + 'description' => 'The client token that is used to ensure the idempotence of the request. You can use the client to generate the token, but you must make sure that the token is unique among different requests.'."\n" + ."\n" + .'The token can contain only ASCII characters and cannot exceed 64 characters in length. For more information, see [How do I ensure the idempotence?](~~25693~~)'."\n" + ."\n" + .'> If you do not specify this parameter, the system automatically uses the request ID as the client token. The request ID may be different for each request.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '123e4567-e89b-12d3-a456-42665544****', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '98696EF0-1607-4E9D-B01D-F20930B6****', + ], + ], + 'description' => '', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"98696EF0-1607-4E9D-B01D-F20930B6****\\"\\n}","errorExample":""},{"type":"xml","example":"<UpgradeFileSystemResponse>\\n <RequestId>98696EF0-1607-4E9D-B01D-F20930B6****</RequestId>\\n</UpgradeFileSystemResponse>","errorExample":""}]', + 'title' => 'UpgradeFileSystem', + 'description' => '* Only Extreme NAS file systems and CPFS file systems can be scaled up. CPFS file systems are available only on the China site (aliyun.com).'."\n" + .'* A General-purpose NAS file system is automatically scaled up. You do not need to call this operation to scale up a General-purpose NAS file system.'."\n", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'DescribeFilesystemsAssociatedHpnZones' => [ + 'summary' => 'Retrieves the list of HpnZones for a file system. Access performance is optimal when compute nodes are located in one of the associated HpnZones.', + 'methods' => [ + 'get', + 'post', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'list', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '191084', + 'abilityTreeNodes' => [ + 'FEATUREnasOIBEFL', + ], + 'autoTest' => false, + 'notSupportAutoTestReason' => '特殊客户使用', + 'tenantRelevance' => 'publicInformation', + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the region where the file system resides.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'Filesystems', + 'in' => 'query', + 'style' => 'json', + 'schema' => [ + 'description' => 'The collection of file system IDs.'."\n" + ."\n" + .'> The maximum number of elements in the set must be less than or equal to 20.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'FileSystemId' => [ + 'description' => 'The ID of the CPFS for Lingjun file system. Must start with `bmcpfs-`. Example: bmcpfs-290w65p03ok64ya\\*\\*\\*\\*.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'bmcpfs-290t15yn4uo8lid****'."\n", + ], + ], + 'required' => false, + 'description' => '', + ], + 'required' => false, + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'Request ID.'."\n", + 'type' => 'string', + 'example' => '98696EF0-1607-4E9D-B01D-F20930B6****', + ], + 'Filesystems' => [ + 'description' => 'The list of HpnZones associated with the file system.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The HpnZone associated with the file system.'."\n", + 'type' => 'object', + 'properties' => [ + 'AssociatedHpnZones' => [ + 'description' => 'The list of HpnZones supported by the file system.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The HpnZone supported by the file system.'."\n", + 'type' => 'string', + 'example' => 'A2', + ], + ], + 'ZoneId' => [ + 'description' => 'The zone ID.'."\n", + 'type' => 'string', + 'example' => 'cn-hangzhou-k', + ], + 'FileSystemId' => [ + 'description' => 'The ID of the CPFS for Lingjun file system.'."\n", + 'type' => 'string', + 'example' => 'bmcpfs-290t15yn4uo8lid****', + ], + ], + ], + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidFilesystemType.NotSupport', + 'errorMessage' => 'This Api does not support this fileSystem type.', + ], + ], + 404 => [ + [ + 'errorCode' => 'InvalidFileSystem.NotFound', + 'errorMessage' => 'The specified file system does not exist.', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"98696EF0-1607-4E9D-B01D-F20930B6****\\",\\n \\"Filesystems\\": [\\n {\\n \\"AssociatedHpnZones\\": [\\n \\"A2\\"\\n ],\\n \\"ZoneId\\": \\"cn-hangzhou-k\\",\\n \\"FileSystemId\\": \\"bmcpfs-290t15yn4uo8lid****\\"\\n }\\n ]\\n}","type":"json"}]', + 'title' => 'DescribeFilesystemsAssociatedHpnZones', + 'description' => '* Only CPFS for Lingjun supports this operation.'."\n" + .'* You can call this operation to query up to 20 file systems at a time.'."\n", + ], + 'CreateMountTarget' => [ + 'summary' => 'Creates a mount target.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'readAndWrite', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'create', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '13934', + 'abilityTreeNodes' => [ + 'FEATUREnasOIBEFL', + ], + ], + 'parameters' => [ + [ + 'name' => 'FileSystemId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the file system.'."\n" + ."\n" + .'* Sample ID of a General-purpose NAS file system: 31a8e4\\*\\*\\*\\*.'."\n" + .'* The IDs of Extreme NAS file systems must start with `extreme-`, for example, extreme-0015\\*\\*\\*\\*.'."\n" + .'* The IDs of CPFS file systems must start with `cpfs-`. Example: cpfs-125487\\*\\*\\*\\*.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => '174494****', + ], + ], + [ + 'name' => 'AccessGroupName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the permission group.'."\n" + ."\n" + .'This parameter is required if you create a mount target for a General-purpose NAS file system or an Extreme NAS file system.'."\n" + ."\n" + .'The default permission group for virtual private clouds (VPCs) is named DEFAULT_VPC_GROUP_NAME.'."\n", + 'type' => 'string', + 'required' => false, + 'docRequired' => false, + 'example' => 'vpc-test', + ], + ], + [ + 'name' => 'NetworkType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The network type of the mount target. Valid value: **Vpc**.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'Vpc', + 'enum' => [ + 'Vpc', + 'vpc', + 'VPC', + ], + ], + ], + [ + 'name' => 'VpcId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the VPC.'."\n" + ."\n" + .'This parameter is valid and required if the mount target resides in a VPC. Example: If you set the NetworkType parameter to VPC, you must specify the VpcId parameter.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'vpc-2zesj9afh3y518k9o****', + ], + ], + [ + 'name' => 'VSwitchId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the vSwitch.'."\n" + ."\n" + .'This parameter is valid and required if the mount target resides in a VPC. Example: If you set the NetworkType parameter to VPC, you must specify the VSwitchId parameter.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'vsw-2zevmwkwyztjuoffg****', + ], + ], + [ + 'name' => 'SecurityGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the security group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'sg-bp1fg655nh68xyz9****', + ], + ], + [ + 'name' => 'EnableIpv6', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to create an IPv6 domain name for the mount target.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'* true: An IPv6 domain name is created for the mount target.'."\n" + .'* false (default): No IPv6 domain name is created for the mount target.'."\n" + ."\n" + .'> Only Extreme NAS file systems that reside in the Chinese mainland support IPv6. If you want to create an IPv6 domain name for the mount target, you must enable IPv6 for the file system.'."\n", + 'type' => 'boolean', + 'required' => false, + 'example' => 'true', + 'default' => 'false', + ], + ], + [ + 'name' => 'DryRun', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to perform a dry run to check for existing mount targets. This parameter is valid only for CPFS file systems.'."\n" + ."\n" + .'If you set this parameter to true, the system checks whether the request parameters are valid and whether the requested resources are available. In this case, no mount target is created and no fee is incurred.'."\n" + ."\n" + .'* true: performs a dry run but does not create a mount target. In the dry run, the system checks the request format, service limits, available CPFS resources, and whether the required parameters are specified. If the request fails the dry run, an error message is returned. If the request passes the dry run, the HTTP status code `200` is returned. No value is returned for the `MountTargetDomain` parameter.'."\n" + .'* false (default): sends the request. If the request passes the dry run, a mount target is created.'."\n", + 'type' => 'boolean', + 'required' => false, + 'docRequired' => false, + 'example' => 'false', + 'default' => 'false', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '70EACC9C-D07A-4A34-ADA4-77506C42****', + ], + 'MountTargetDomain' => [ + 'description' => 'The IPv4 domain name of the mount target.'."\n", + 'type' => 'string', + 'example' => '174494b666-x****.cn-hangzhou.nas.aliyuncs.com', + ], + 'MountTargetExtra' => [ + 'description' => 'The information about the mount target.'."\n", + 'type' => 'object', + 'properties' => [ + 'DualStackMountTargetDomain' => [ + 'description' => 'The dual-stack (IPv4 and IPv6) domain name of the mount target.'."\n", + 'type' => 'string', + 'example' => '174494b666-x****.dualstack.cn-hangzhou.nas.aliyuncs.com', + ], + ], + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 202 => [ + [ + 'errorCode' => 'RequestAccepted', + 'errorMessage' => 'The request has been accepted by the server.', + ], + ], + 400 => [ + [ + 'errorCode' => 'InvalidFileSystem.NotsupportedIPv6', + 'errorMessage' => 'The file system does not support IPv6.', + ], + [ + 'errorCode' => 'InvalidVSwitch.Ipv6NotTurnOn', + 'errorMessage' => 'The VSwitch you are currently using has not enabled the IPv6 function. Please enable this function first and try again.', + ], + [ + 'errorCode' => 'IdempotentParameterMismatch', + 'errorMessage' => 'The same client token was passed in to different parameters.', + ], + [ + 'errorCode' => 'MissingParameter.AccessGroupName', + 'errorMessage' => 'You must specify AccessGroupName when you create a standard or extreme file system mount target.', + ], + [ + 'errorCode' => 'InvalidVSwitchId.IpNotEnough', + 'errorMessage' => 'The number of the specified VSwitch IP address is insufficient.', + ], + [ + 'errorCode' => 'InvalidParameter.ConflictVpcCidr', + 'errorMessage' => 'The specified VPC CIDR conflicts with the server.', + ], + [ + 'errorCode' => 'DryRunOperation', + 'errorMessage' => 'The request is validated with DryRun flag set.', + ], + [ + 'errorCode' => 'SubAccount.NoStandardSLRPermission', + 'errorMessage' => 'The RAM user does not have the permission to create service linked role AliyunServiceRoleForNasStandard. Please authorize the RAM user the permission ram:CreateServiceLinkedRole.', + ], + ], + 403 => [ + [ + 'errorCode' => 'OperationDenied.InvalidState', + 'errorMessage' => 'The operation is not permitted when the status is processing.', + ], + [ + 'errorCode' => 'InvalidRamRole.NotExist', + 'errorMessage' => 'The specified RAM role does not exist.', + ], + [ + 'errorCode' => 'InvalidRamRole.NoPermission', + 'errorMessage' => 'The specified RAM role does not have sufficient permission.', + ], + [ + 'errorCode' => 'InvalidMountTarget.AlreadyExisted', + 'errorMessage' => 'The specified mount target already exists.', + ], + [ + 'errorCode' => 'Resource.OutOfStock', + 'errorMessage' => 'The inventory of the specified zone is insufficient.', + ], + [ + 'errorCode' => 'OperationDenied.MountTargetExceedLimit', + 'errorMessage' => 'The maximum number of mount target in the specified file system is exceeded.', + ], + ], + [ + [ + 'errorCode' => 'InvalidParameter.VswNotFound', + 'errorMessage' => 'The specified VSwitch does not exist.', + ], + [ + 'errorCode' => 'InvalidParameter.VpcNotFound', + 'errorMessage' => 'The specified VPC does not exist.', + ], + [ + 'errorCode' => 'InvalidFileSystem.NotFound', + 'errorMessage' => 'The specified file system does not exist.', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"70EACC9C-D07A-4A34-ADA4-77506C42****\\",\\n \\"MountTargetDomain\\": \\"174494b666-x****.cn-hangzhou.nas.aliyuncs.com\\",\\n \\"MountTargetExtra\\": {\\n \\"DualStackMountTargetDomain\\": \\"174494b666-x****.dualstack.cn-hangzhou.nas.aliyuncs.com\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"<CreateMountTargetResponse>\\n <RequestId>70EACC9C-D07A-4A34-ADA4-77506C42****</RequestId>\\n <MountTargetDomain>174494b666-x****.cn-hangzhou.nas.aliyuncs.com</MountTargetDomain>\\n <MountTargetExtra>\\n <DualStackMountTargetDomain>174494b666-x****.dualstack.cn-hangzhou.nas.aliyuncs.com</DualStackMountTargetDomain>\\n </MountTargetExtra>\\n</CreateMountTargetResponse>","errorExample":""}]', + 'title' => 'CreateMountTarget', + 'description' => '* After you call the CreateMountTarget operation, a mount target is not immediately created. Therefore, we recommend that you call the DescribeMountTargets operation to query the status of the mount target. If the mount target is in the **Active** state, you can then mount the file system. Otherwise, the file system may fail to be mounted.'."\n" + .'* When you call this operation, a service-linked role of NAS is automatically created. For more information, see [Manage the service-linked roles of NAS](~~208530~~).'."\n", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'DeleteMountTarget' => [ + 'summary' => 'Deletes a mount target.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'delete', + 'riskType' => 'high', + 'chargeType' => 'free', + 'abilityTreeCode' => '13943', + 'abilityTreeNodes' => [ + 'FEATUREnas5IJRRZ', + ], + 'autoTest' => true, + 'tenantRelevance' => 'tenant', + ], + 'parameters' => [ + [ + 'name' => 'FileSystemId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the file system.'."\n" + ."\n" + .'* Sample ID of a General-purpose NAS file system: 31a8e4\\*\\*\\*\\*.'."\n" + .'* The IDs of Extreme NAS file systems must start with `extreme-`, for example, extreme-0015\\*\\*\\*\\*.'."\n" + .'* The IDs of CPFS file systems must start with `cpfs-`. Example: cpfs-125487\\*\\*\\*\\*.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => '174494****', + ], + ], + [ + 'name' => 'MountTargetDomain', + 'in' => 'query', + 'schema' => [ + 'description' => 'The domain name of the mount target.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => '174494b666-x****.cn-hangzhou.nas.aliyuncs.com', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '5BC5CB97-9F28-42FE-84A4-0CD0DF42****', + ], + ], + 'description' => '', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"5BC5CB97-9F28-42FE-84A4-0CD0DF42****\\"\\n}","errorExample":""},{"type":"xml","example":"<DeleteMountTargetResponse>\\n <RequestId>5BC5CB97-9F28-42FE-84A4-0CD0DF42****</RequestId>\\n</DeleteMountTargetResponse>","errorExample":""}]', + 'title' => 'DeleteMountTarget', + 'description' => 'After you delete a mount target, the mount target cannot be restored. Proceed with caution.'."\n", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'ModifyMountTarget' => [ + 'summary' => 'Modifies a mount target.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'high', + 'chargeType' => 'free', + 'abilityTreeCode' => '13979', + 'abilityTreeNodes' => [ + 'FEATUREnasOIBEFL', + ], + 'autoTest' => true, + 'tenantRelevance' => 'tenant', + ], + 'parameters' => [ + [ + 'name' => 'FileSystemId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the file system.'."\n" + ."\n" + .'* Sample ID of a General-purpose NAS file system: `31a8e4****`.'."\n" + .'* The IDs of Extreme NAS file systems must start with `extreme-`, for example, `extreme-0015****`.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => '1ca404****', + ], + ], + [ + 'name' => 'MountTargetDomain', + 'in' => 'query', + 'schema' => [ + 'description' => 'The IPv4 domain name of the mount target.'."\n", + 'type' => 'string', + 'required' => false, + 'docRequired' => true, + 'example' => '1ca404a666-w****.cn-hangzhou.nas.aliyuncs.com', + ], + ], + [ + 'name' => 'AccessGroupName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the permission group that is attached to the mount target.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'classic-test', + ], + ], + [ + 'name' => 'Status', + 'in' => 'query', + 'schema' => [ + 'description' => 'The status of the mount target.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'* Active: The mount target is available.'."\n" + .'* Inactive: The mount target is unavailable.'."\n" + ."\n" + .'> Only General-purpose File Storage NAS (NAS) file systems support changing the mount target status.', + 'type' => 'string', + 'required' => false, + 'example' => 'Inactive', + 'enum' => [ + 'Active', + 'Inactive', + ], + ], + ], + [ + 'name' => 'DualStackMountTargetDomain', + 'in' => 'query', + 'schema' => [ + 'description' => 'The dual-stack (IPv4 and IPv6) domain name of the mount target.'."\n" + ."\n" + .'> Only Extreme NAS file systems that reside in the Chinese mainland support IPv6.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '174494b666-x****.dualstack.cn-hangzhou.nas.aliyuncs.com', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => 'FF387D95-34C4-4879-B65A-99D1FA1B****', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidFileSystem.NotsupportedIPv6', + 'errorMessage' => 'The file system does not support IPv6.', + ], + [ + 'errorCode' => 'InvalidParam.MountTargetDomain', + 'errorMessage' => 'The specified mount target domain does not exist.', + ], + [ + 'errorCode' => 'InvalidParam.DualStackMountTargetDomain', + 'errorMessage' => 'The specified dual stack mount target domain does not exist.', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"FF387D95-34C4-4879-B65A-99D1FA1B****\\"\\n}","errorExample":""},{"type":"xml","example":"<RequestId>FF387D95-34C4-4879-B65A-99D1FA1B****</RequestId>","errorExample":"<?xml version=\\"1.0\\" encoding=\\"UTF-8\\"?>\\n<ModifyMountTargetResponse>\\n <RequestId>FF387D95-34C4-4879-B65A-99D1FA1B65CD</RequestId>\\n</ModifyMountTargetResponse>\\n"}]', + 'title' => 'ModifyMountTarget', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'DescribeMountTargets' => [ + 'summary' => 'Queries mount targets.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '13957', + 'abilityTreeNodes' => [ + 'FEATUREnasOIBEFL', + ], + ], + 'parameters' => [ + [ + 'name' => 'FileSystemId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the file system.'."\n" + ."\n" + .'* Sample ID of a General-purpose NAS file system: 31a8e4\\*\\*\\*\\*.'."\n" + .'* The IDs of Extreme NAS file systems must start with `extreme-`, for example, extreme-0015\\*\\*\\*\\*.'."\n" + .'* The IDs of CPFS file systems must start with `cpfs-`. Example: cpfs-125487\\*\\*\\*\\*.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => '1ca404****', + ], + ], + [ + 'name' => 'MountTargetDomain', + 'in' => 'query', + 'schema' => [ + 'description' => 'The address of the mount target.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '1ca404****-x****.cn-hangzhou.nas.aliyuncs.com', + ], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of entries per page.'."\n" + ."\n" + .'Valid values: 1 to 100.'."\n" + ."\n" + .'Default value: 10.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'maximum' => '100', + 'minimum' => '1', + 'example' => '1', + 'default' => '10', + ], + ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => [ + 'description' => 'The page number.'."\n" + ."\n" + .'Pages start from page 1. Default value: 1.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'minimum' => '1', + 'example' => '1', + ], + ], + [ + 'name' => 'DualStackMountTargetDomain', + 'in' => 'query', + 'schema' => [ + 'description' => 'The dual-stack (IPv4 and IPv6) domain name of the mount target.'."\n" + ."\n" + .'> Only Extreme NAS file systems that reside in the Chinese mainland support IPv6.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '1ca404****-x****.dualstack.cn-hangzhou.nas.aliyuncs.com', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'TotalCount' => [ + 'description' => 'The total number of mount targets.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '1', + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '3BAB90FD-B4A0-48DA-9F09-2B963510****', + ], + 'PageSize' => [ + 'description' => 'The number of entries per page.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '1', + ], + 'PageNumber' => [ + 'description' => 'The page number.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '1', + ], + 'MountTargets' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'MountTarget' => [ + 'description' => 'The queried mount targets.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'VpcId' => [ + 'description' => 'The ID of the virtual private cloud (VPC).'."\n", + 'type' => 'string', + 'example' => 'vpc-2zesj9afh3y518k9o****', + ], + 'Status' => [ + 'description' => 'The status of the mount target.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'* Active: The mount target is available.'."\n" + .'* Inactive: The mount target is unavailable.'."\n" + .'* Pending: The mount target is being created or modified.'."\n" + .'* Deleting: The mount target is being deleted.'."\n" + .'* Hibernating: The mount target is being hibernated.'."\n" + .'* Hibernated: The mount target is hibernated.'."\n" + ."\n" + .'> You can mount a file system only when the mount target of the file system is in the Active state.'."\n", + 'type' => 'string', + 'example' => 'Active', + ], + 'ClientMasterNodes' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'ClientMasterNode' => [ + 'description' => 'The information about client management nodes.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'EcsId' => [ + 'description' => 'The ID of the ECS instance on the client management node.'."\n", + 'type' => 'string', + 'example' => 'i-hp3i3odi5ory1buo****', + ], + 'DefaultPasswd' => [ + 'description' => 'The default logon password of the ECS instance.'."\n", + 'type' => 'string', + 'example' => '12****', + ], + 'EcsIp' => [ + 'description' => 'The IP address of the ECS instance on the client management node.'."\n", + 'type' => 'string', + 'example' => '192.168.1.0', + ], + ], + ], + ], + ], + ], + 'MountTargetDomain' => [ + 'description' => 'The IPv4 domain name of the mount target.'."\n", + 'type' => 'string', + 'example' => '1ca404****-w****.cn-hangzhou.nas.aliyuncs.com', + ], + 'AccessGroup' => [ + 'description' => 'The name of the permission group that is attached to the mount target.'."\n", + 'type' => 'string', + 'example' => 'DEFAULT_VPC_GROUP_NAME', + ], + 'DualStackMountTargetDomain' => [ + 'description' => 'The dual-stack (IPv4 and IPv6) domain name of the mount target.'."\n", + 'type' => 'string', + 'example' => '1ca404****-x****.dualstack.cn-hangzhou.nas.aliyuncs.com', + ], + 'VswId' => [ + 'description' => 'The ID of the vSwitch.'."\n", + 'type' => 'string', + 'example' => 'vsw-2zevmwkwyztjuoffg****', + ], + 'Tags' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'Tag' => [ + 'description' => 'An array of tags. The array may contain up to 20 tags. If the array contains multiple tags, each tag key is unique.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The tag.'."\n", + 'type' => 'object', + 'properties' => [ + 'Key' => [ + 'description' => 'The tag key. Limits:'."\n" + ."\n" + .'* The tag key cannot be null or an empty string.'."\n" + .'* The tag key can be up to 128 characters in length.'."\n" + .'* The key value cannot start with aliyun or acs:.'."\n" + .'* The key value cannot contain http:// or https://.'."\n", + 'type' => 'string', + 'example' => 'nastest', + ], + 'Value' => [ + 'description' => 'The tag value.'."\n" + ."\n" + .'Limits:'."\n" + ."\n" + .'* The tag value can be up to 128 characters in length.'."\n" + .'* The tag value cannot contain http:// or https://.'."\n", + 'type' => 'string', + 'example' => 'mounttargettest', + ], + ], + ], + ], + ], + ], + 'NetworkType' => [ + 'description' => 'The network type. Valid value: **Vpc**.'."\n", + 'type' => 'string', + 'example' => 'Vpc', + ], + 'IPVersion' => [ + 'description' => 'The type of the mount target.'."\n" + ."\n" + .'* IPv4: an IPv4 mount target'."\n" + .'* DualStack: a dual-stack mount target'."\n", + 'type' => 'string', + 'example' => 'IPv4', + ], + ], + 'description' => '', + ], + ], + ], + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidFileSystem.NotsupportedIPv6', + 'errorMessage' => 'The file system does not support IPv6.', + ], + ], + 404 => [ + [ + 'errorCode' => 'InvalidMountTarget.NotFound', + 'errorMessage' => 'The specified mount target does not exist.', + ], + [ + 'errorCode' => 'InvalidFileSystem.NotFound', + 'errorMessage' => 'The specified file system does not exist.', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"TotalCount\\": 1,\\n \\"RequestId\\": \\"3BAB90FD-B4A0-48DA-9F09-2B963510****\\",\\n \\"PageSize\\": 1,\\n \\"PageNumber\\": 1,\\n \\"MountTargets\\": {\\n \\"MountTarget\\": [\\n {\\n \\"VpcId\\": \\"vpc-2zesj9afh3y518k9o****\\",\\n \\"Status\\": \\"Active\\",\\n \\"ClientMasterNodes\\": {\\n \\"ClientMasterNode\\": [\\n {\\n \\"EcsId\\": \\"i-hp3i3odi5ory1buo****\\",\\n \\"DefaultPasswd\\": \\"12****\\",\\n \\"EcsIp\\": \\"192.168.1.0\\"\\n }\\n ]\\n },\\n \\"MountTargetDomain\\": \\"1ca404****-w****.cn-hangzhou.nas.aliyuncs.com\\",\\n \\"AccessGroup\\": \\"DEFAULT_VPC_GROUP_NAME\\",\\n \\"DualStackMountTargetDomain\\": \\"1ca404****-x****.dualstack.cn-hangzhou.nas.aliyuncs.com\\",\\n \\"VswId\\": \\"vsw-2zevmwkwyztjuoffg****\\",\\n \\"Tags\\": {\\n \\"Tag\\": [\\n {\\n \\"Key\\": \\"nastest\\",\\n \\"Value\\": \\"mounttargettest\\"\\n }\\n ]\\n },\\n \\"NetworkType\\": \\"Vpc\\",\\n \\"IPVersion\\": \\"IPv4\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<DescribeMountTargetsResponse>\\n <TotalCount>1</TotalCount>\\n <RequestId>3BAB90FD-B4A0-48DA-9F09-2B963510****</RequestId>\\n <PageSize>1</PageSize>\\n <PageNumber>1</PageNumber>\\n <MountTargets>\\n <MountTarget>\\n <VpcId>vpc-2zesj9afh3y518k9o****</VpcId>\\n <Status>Active</Status>\\n <ClientMasterNodes>\\n <ClientMasterNode>\\n <EcsId>i-hp3i3odi5ory1buo****</EcsId>\\n <DefaultPasswd>12****</DefaultPasswd>\\n <EcsIp>192.168.1.0</EcsIp>\\n </ClientMasterNode>\\n </ClientMasterNodes>\\n <MountTargetDomain>1ca404a666-w****.cn-hangzhou.nas.aliyuncs.com</MountTargetDomain>\\n <AccessGroup>DEFAULT_VPC_GROUP_NAME</AccessGroup>\\n <DualStackMountTargetDomain>174494b666-x****.dualstack.cn-hangzhou.nas.aliyuncs.com</DualStackMountTargetDomain>\\n <VswId>vsw-2zevmwkwyztjuoffg****</VswId>\\n <NetworkType>Vpc</NetworkType>\\n <IPVersion>IPv4</IPVersion>\\n </MountTarget>\\n </MountTargets>\\n</DescribeMountTargetsResponse>","errorExample":""}]', + 'title' => 'DescribeMountTargets', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'DescribeMountedClients' => [ + 'summary' => 'Queries the clients on which a file system is mounted.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'list', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '13956', + 'abilityTreeNodes' => [ + 'FEATUREnasOIBEFL', + ], + 'autoTest' => true, + 'tenantRelevance' => 'tenant', + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of IP addresses to return on each page.'."\n" + ."\n" + .'Valid values: 1 to 100.'."\n" + ."\n" + .'Default value: 10.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'maximum' => '100', + 'minimum' => '1', + 'example' => '10', + 'default' => '10', + ], + ], + [ + 'name' => 'FileSystemId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the file system.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => '109c****66', + ], + ], + [ + 'name' => 'ClientIP', + 'in' => 'query', + 'schema' => [ + 'description' => 'The IP address of the client.'."\n" + ."\n" + .'* If you specify an IP address, the operation checks whether the client list includes this IP address. If the client list includes the IP address, the operation returns the IP address. If the client list does not include the IP address, the operation returns an empty list.'."\n" + .'* If you do not specify an IP address, the operation returns the IP addresses of all clients that have accessed the specified NAS file system within the last minute.'."\n", + 'type' => 'string', + 'required' => false, + 'docRequired' => false, + 'example' => '10.10.10.1', + ], + ], + [ + 'name' => 'MountTargetDomain', + 'in' => 'query', + 'schema' => [ + 'description' => 'The domain name of the mount target.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => '1111222****95.cn-hangzhou.nas.aliyuncs.com', + ], + ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => [ + 'description' => 'The page number.'."\n" + ."\n" + .'Pages start from page 1. Default value: 1.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'minimum' => '1', + 'example' => '1', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'TotalCount' => [ + 'description' => 'The total number of IP addresses.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '10', + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'A70BEE5D-76D3-49FB-B58F-1F398211****', + ], + 'PageSize' => [ + 'description' => 'The number of IP addresses returned per page.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '10', + ], + 'PageNumber' => [ + 'description' => 'The page number.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '1', + ], + 'Clients' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'Client' => [ + 'description' => 'The queried clients.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'ClientIP' => [ + 'description' => 'The IP address of the client.'."\n", + 'type' => 'string', + 'example' => '10.10.10.1', + ], + ], + ], + ], + ], + ], + ], + 'description' => '', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"TotalCount\\": 10,\\n \\"RequestId\\": \\"A70BEE5D-76D3-49FB-B58F-1F398211****\\",\\n \\"PageSize\\": 10,\\n \\"PageNumber\\": 1,\\n \\"Clients\\": {\\n \\"Client\\": [\\n {\\n \\"ClientIP\\": \\"10.10.10.1\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<DescribeMountedClientsResponse>\\n <TotalCount>10</TotalCount>\\n <PageSize>10</PageSize>\\n <RequestId>A70BEE5D-76D3-49FB-B58F-1F398211****</RequestId>\\n <PageNumber>1</PageNumber>\\n <Clients>\\n <Client>\\n <ClientIP>10.10.10.1</ClientIP>\\n </Client>\\n </Clients>\\n</DescribeMountedClientsResponse>","errorExample":""}]', + 'title' => 'DescribeMountedClients', + 'description' => '* Only General-purpose NAS file systems support this operation.'."\n" + .'* This operation returns the clients that have accessed the specified file system within the last minute. If the file system is mounted on a client but the client did not access the file system within the last minute, the client is not included in the returned information.'."\n", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'CreateAccessPoint' => [ + 'summary' => 'Creates an access point.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'readAndWrite', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'create', + 'riskType' => 'high', + 'chargeType' => 'free', + 'abilityTreeCode' => '189584', + 'abilityTreeNodes' => [ + 'FEATUREnasI92PYN', + ], + 'autoTest' => true, + 'tenantRelevance' => 'tenant', + ], + 'parameters' => [ + [ + 'name' => 'FileSystemId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the file system.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => '31a8e4****', + ], + ], + [ + 'name' => 'AccessGroup', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the permission group.'."\n" + ."\n" + .'This parameter is required for a General-purpose File Storage NAS (NAS) file system.'."\n" + ."\n" + .'The default permission group for virtual private clouds (VPCs) is named DEFAULT_VPC_GROUP_NAME.', + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'DEFAULT_VPC_GROUP_NAME', + ], + ], + [ + 'name' => 'VswId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The vSwitch ID.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'vsw-2zevmwkwyztjuoffg****', + ], + ], + [ + 'name' => 'VpcId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The VPC ID.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'vpc-2zesj9afh3y518k9o****', + ], + ], + [ + 'name' => 'AccessPointName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the access point.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'test', + ], + ], + [ + 'name' => 'RootDirectory', + 'in' => 'query', + 'schema' => [ + 'description' => 'The root directory of the access point. The default value is /. If the directory does not exist, you must also specify the OwnerUserId and OwnerGroupId parameters.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '/', + 'pattern' => '^(/|(/\\.{3,}|/\\.*[-\\w]+[-.\\w]*)+/?)$', + 'default' => '/', + ], + ], + [ + 'name' => 'EnabledRam', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to enable the RAM policy. Valid values:'."\n" + ."\n" + .'* true: The RAM policy is enabled.'."\n" + .'* false (default): The RAM policy is disabled.'."\n" + ."\n" + .'> After the RAM policy is enabled for access points, no RAM user is allowed to use access points to mount and access data by default. To use access points to mount and access data as a RAM user, you must grant the related access permissions to the RAM user. If the RAM policy is disabled, access points can be anonymously mounted. For more information about how to configure permissions on access points, see [Configure a policy for the access point](~~2545998~~).'."\n", + 'type' => 'boolean', + 'required' => false, + 'example' => 'false', + 'default' => 'false', + ], + ], + [ + 'name' => 'OwnerUserId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The owner ID.'."\n" + ."\n" + .'This parameter is required if the RootDirectory directory does not exist.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '1', + ], + ], + [ + 'name' => 'OwnerGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the owner group.'."\n" + ."\n" + .'This parameter is required if the RootDirectory directory does not exist.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '1', + ], + ], + [ + 'name' => 'Permission', + 'in' => 'query', + 'schema' => [ + 'description' => 'The Portable Operating System Interface for UNIX (POSIX) permission. Default value: 0777.'."\n" + ."\n" + .'This field takes effect only if you specify the OwnerUserId and OwnerGroupId parameters.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '0777', + ], + ], + [ + 'name' => 'PosixUserId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the POSIX user.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '123', + ], + ], + [ + 'name' => 'PosixGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the POSIX user group.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '123', + ], + ], + [ + 'name' => 'PosixSecondaryGroupIds', + 'in' => 'query', + 'schema' => [ + 'description' => 'The secondary user group. Separate multiple user group IDs with commas (,).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '123,345', + ], + ], + [ + 'name' => 'Tag', + 'in' => 'query', + 'style' => 'repeatList', + 'schema' => [ + 'title' => '接入点标签列表', + 'description' => 'The tags of the access point.'."\n", + 'type' => 'array', + 'items' => [ + 'title' => '接入点标签列表', + 'description' => 'The tags of the access point.'."\n", + 'type' => 'object', + 'properties' => [ + 'Key' => [ + 'title' => '标签键', + 'description' => 'The key of a tag. Limits:'."\n" + ."\n" + .'* Cannot be null or an empty string.'."\n" + .'* Can be up to 128 characters in length.'."\n" + .'* Cannot start with aliyun or acs:.'."\n" + .'* Cannot contain http:// or https://.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'TestKey', + ], + 'Value' => [ + 'title' => '标签值', + 'description' => 'The value of a tag. Limits:'."\n" + ."\n" + .'* Cannot be null or an empty string.'."\n" + .'* Can be up to 128 characters in length.'."\n" + .'* Cannot contain http:// or https://.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'TestValue', + ], + ], + 'required' => false, + ], + 'required' => false, + 'maxItems' => 21, + ], + ], + ], + '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' => '98696EF0-1607-4E9D-B01D-F20930B6****'."\n", + ], + 'AccessPoint' => [ + 'description' => 'The access point.'."\n", + 'type' => 'object', + 'properties' => [ + 'AccessPointDomain' => [ + 'description' => 'The domain name of the access point.'."\n", + 'type' => 'string', + 'example' => 'ap-ie15ydanoz.001014****-w****.cn-hangzhou.nas.aliyuncs.com', + ], + 'AccessPointId' => [ + 'description' => 'The ID of the access point.'."\n", + 'type' => 'string', + 'example' => 'ap-ie15yd****', + ], + ], + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidRequest', + 'errorMessage' => 'The request is invalid.', + ], + ], + 403 => [ + [ + 'errorCode' => 'InvalidProtocolType.NotSupported', + 'errorMessage' => 'The specified protocol type does not supported.', + ], + [ + 'errorCode' => 'InvalidRamRole.NotExist', + 'errorMessage' => 'The specified RAM role does not exist.', + ], + [ + 'errorCode' => 'InvalidRamRole.NoPermission', + 'errorMessage' => 'The specified RAM role does not have sufficient permission.', + ], + [ + 'errorCode' => 'OperationDenied.AccessPointCountsExceeded', + 'errorMessage' => 'The maxium number of access point has reached its limits.', + ], + ], + [ + [ + 'errorCode' => 'InvalidAccessGroup.NotFound', + 'errorMessage' => 'The specified AccessGroup does not exist.', + ], + [ + 'errorCode' => 'InvalidFileSystem.NotFound', + 'errorMessage' => 'The specified file system does not exist.', + ], + [ + 'errorCode' => 'InvalidVpc.NotFound', + 'errorMessage' => 'The specified Vpc is not found.', + ], + [ + 'errorCode' => 'InvalidVswitch.NotFound', + 'errorMessage' => 'The specified VSwitch does not exist.', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"98696EF0-1607-4E9D-B01D-F20930B6****\\\\n\\",\\n \\"AccessPoint\\": {\\n \\"AccessPointDomain\\": \\"ap-ie15ydanoz.001014****-w****.cn-hangzhou.nas.aliyuncs.com\\",\\n \\"AccessPointId\\": \\"ap-ie15yd****\\"\\n }\\n}","type":"json"}]', + 'title' => 'CreateAccessPoint', + 'description' => '* After you call the CreateAccessPoint operation, an access point is not immediately created. Therefore, after you call the CreateAccessPoint operation successfully, call the [DescribeAccessPoints](~~2712239~~) or [DescribeAccessPoint](~~2712240~~) operation to query the status of the access point. If the status is **Active**, mount the file system. Otherwise, the file system may fail to be mounted.'."\n" + .'* Only General-purpose Network File System (NFS) file systems support access points.'."\n" + .'* If you want to call the EnabledRam operation to enable a Resource Access Management (RAM) policy, you must configure the corresponding RAM permissions. For more information, see [Manage endpoints](~~2545998~~).'."\n", + ], + 'ModifyAccessPoint' => [ + 'summary' => 'Modifies the information about an access point.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'high', + 'chargeType' => 'free', + 'abilityTreeCode' => '189621', + 'abilityTreeNodes' => [ + 'FEATUREnas5IJRRZ', + ], + 'autoTest' => true, + 'tenantRelevance' => 'tenant', + ], + 'parameters' => [ + [ + 'name' => 'FileSystemId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the file system.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => '1ca404****', + ], + ], + [ + 'name' => 'AccessPointId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the access point.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'ap-ie15yd****', + ], + ], + [ + 'name' => 'AccessPointName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the access point.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'test', + ], + ], + [ + 'name' => 'AccessGroup', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the permission group.'."\n" + ."\n" + .'This parameter is required for a General-purpose File Storage NAS (NAS) file system.'."\n" + ."\n" + .'The default permission group for virtual private clouds (VPCs) is named DEFAULT_VPC_GROUP_NAME.', + 'type' => 'string', + 'required' => false, + 'example' => 'DEFAULT_VPC_GROUP_NAME', + ], + ], + [ + 'name' => 'EnabledRam', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to enable the Resource Access Management (RAM) policy. Valid values:'."\n" + ."\n" + .'* true: The RAM policy is enabled.'."\n" + .'* false (default): The RAM policy is disabled.'."\n" + ."\n" + .'> After the RAM policy is enabled for access points, no RAM user is allowed to use access points to mount and access data by default. To use access points to mount and access data as a RAM user, you must grant the related access permissions to the RAM user. If the RAM policy is disabled, access points can be anonymously mounted.'."\n", + 'type' => 'boolean', + 'required' => false, + 'example' => 'false', + ], + ], + ], + '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', + 'required' => true, + 'example' => '70EACC9C-D07A-4A34-ADA4-77506C42****'."\n", + ], + ], + ], + ], + ], + 'errorCodes' => [ + 404 => [ + [ + 'errorCode' => 'InvalidAccessPointId.NotFound', + 'errorMessage' => 'The access point id does not exist.', + ], + [ + 'errorCode' => 'InvalidAccessGroup.NotFound', + 'errorMessage' => 'The specified AccessGroup does not exist.', + ], + [ + 'errorCode' => 'InvalidFileSystem.NotFound', + 'errorMessage' => 'The specified file system does not exist.', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"70EACC9C-D07A-4A34-ADA4-77506C42****\\\\n\\"\\n}","type":"json"}]', + 'title' => 'ModifyAccessPoint', + 'description' => 'Only General-purpose Network File System (NFS) file systems support this operation.'."\n", + ], + 'DescribeAccessPoints' => [ + 'summary' => 'Queries a list of access points.', + 'methods' => [ + 'get', + 'post', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'list', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '189598', + 'abilityTreeNodes' => [ + 'FEATUREnas0MLWQI', + 'FEATUREnas3DACY7', + 'FEATUREnas71NBOZ', + 'FEATUREnas5IJRRZ', + ], + 'autoTest' => true, + 'tenantRelevance' => 'tenant', + ], + 'parameters' => [ + [ + 'name' => 'FileSystemId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the file system.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '174494****', + ], + ], + [ + 'name' => 'AccessGroup', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the permission group.'."\n" + ."\n" + .'This parameter is required for a General-purpose NAS file system.'."\n" + ."\n" + .'The default permission group for virtual private clouds (VPCs) is named DEFAULT_VPC_GROUP_NAME.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'DEFAULT_VPC_GROUP_NAME', + ], + ], + [ + 'name' => 'MaxResults', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of results for each query.'."\n" + ."\n" + .'Valid values: 10 to 100. Default value: 10.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'minimum' => '1', + 'example' => '10', + ], + ], + [ + 'name' => 'Tag', + 'in' => 'query', + 'style' => 'repeatList', + 'schema' => [ + 'title' => '接入点标签列表', + 'description' => 'The tags of the access point.'."\n", + 'type' => 'array', + 'items' => [ + 'title' => '接入点标签列表', + 'description' => 'The tags of the access point.'."\n", + 'type' => 'object', + 'properties' => [ + 'Key' => [ + 'title' => '标签键', + 'description' => 'The key of the tag.'."\n" + ."\n" + .'Limits:'."\n" + ."\n" + .'* Valid values of N: 1 to 20.'."\n" + .'* Maximum length is 128 characters.'."\n" + .'* Cannot start with aliyun or acs:.'."\n" + .'* Cannot contain http:// or https://.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'TestKey', + ], + 'Value' => [ + 'title' => '标签值', + 'description' => 'The value of the tag.'."\n" + ."\n" + .'Limits:'."\n" + ."\n" + .'* Valid values of N: 1 to 20.'."\n" + .'* Maximum length is 128 characters.'."\n" + .'* Cannot start with aliyun or acs:.'."\n" + .'* Cannot contain http:// or https://.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'TestValue', + ], + ], + 'required' => false, + ], + 'required' => false, + 'maxItems' => 21, + ], + ], + [ + 'name' => 'NextToken', + 'in' => 'query', + 'schema' => [ + 'description' => 'The token used to retrieve the next page of results. Do not specify this parameter for the first request. For subsequent requests, set this value to the NextToken returned in the previous response.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'MTY4NzcxOTcwMjAzMDk2Nzc0MyM4MDM4****', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'title' => 'Id of the request', + 'description' => 'Request ID.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '6299428C-3861-435D-AE54-9B330A00****', + ], + 'AccessPoints' => [ + 'description' => 'The information about the access point.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'ARN' => [ + 'description' => 'The Alibaba Cloud Resource Name (ARN) of the access point.'."\n", + 'type' => 'string', + 'example' => 'acs:nas:cn-hangzhou:178321033379****:accesspoint/ap-ie15yd****', + ], + 'AccessGroup' => [ + 'description' => 'The name of the permission group.'."\n", + 'type' => 'string', + 'example' => 'test', + ], + 'AccessPointId' => [ + 'description' => 'The ID of the access point.'."\n", + 'type' => 'string', + 'example' => 'ap-ie15y*****'."\n", + ], + 'AccessPointName' => [ + 'description' => 'The name of the access point.'."\n", + 'type' => 'string', + 'example' => 'test', + ], + 'CreateTime' => [ + 'description' => 'The time when the access point was created.'."\n", + 'type' => 'string', + 'example' => '1709619668276167', + ], + 'DomainName' => [ + 'description' => 'The domain name of the access point.'."\n", + 'type' => 'string', + 'example' => 'ap-ie15ydanoz.001014****-w****.cn-hangzhou.nas.aliyuncs.com', + ], + 'EnabledRam' => [ + 'description' => 'Indicates whether the Resource Access Management (RAM) policy is enabled.'."\n", + 'type' => 'boolean', + 'example' => 'false', + ], + 'FileSystemId' => [ + 'description' => 'The ID of the file system.'."\n", + 'type' => 'string', + 'example' => '31a8e4****'."\n", + ], + 'ModifyTime' => [ + 'description' => 'The time when the access point was modified.'."\n", + 'type' => 'string', + 'example' => '1709619668276167', + ], + 'PosixUser' => [ + 'description' => 'The Portable Operating System Interface for UNIX (POSIX) user.'."\n", + 'type' => 'object', + 'properties' => [ + 'PosixGroupId' => [ + 'description' => 'The ID of the POSIX user group.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '12', + ], + 'PosixUserId' => [ + 'description' => 'The ID of the POSIX user.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '123', + ], + 'PosixSecondaryGroupIds' => [ + 'description' => 'The IDs of the secondary user groups.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The ID of the secondary user group.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '[123,123]', + ], + ], + ], + ], + 'RootPath' => [ + 'description' => 'The root directory.'."\n", + 'type' => 'string', + 'example' => '/', + ], + 'RootPathPermission' => [ + 'description' => 'The permissions on the root directory.'."\n", + 'type' => 'object', + 'properties' => [ + 'OwnerGroupId' => [ + 'description' => 'The ID of the owner group.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '12', + ], + 'OwnerUserId' => [ + 'description' => 'The owner ID.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1', + ], + 'Permission' => [ + 'description' => 'The POSIX permission.'."\n", + 'type' => 'string', + 'example' => '0755', + ], + ], + ], + 'RootPathStatus' => [ + 'description' => 'The status of the root directory.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'* 0: The rootpath status is unknown.'."\n" + .'* 1: The rootpath does not exist and may be deleted.'."\n" + .'* 2: The rootpath is normal.'."\n", + 'type' => 'string', + 'example' => '2', + ], + 'Status' => [ + 'description' => 'The status of the access point.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'* Active: The access point is available.'."\n" + .'* Inactive: The access point is unavailable.'."\n" + .'* Pending: The access point is being created.'."\n" + .'* Deleting: The access point is being deleted.'."\n" + ."\n" + .'> You can mount a file system only if the access point is in the Active state.'."\n", + 'type' => 'string', + 'example' => 'Active', + ], + 'VSwitchId' => [ + 'description' => 'Switch ID.'."\n", + 'type' => 'string', + 'example' => 'vsw-2zevmwkwyztjuoffg****'."\n", + ], + 'VpcId' => [ + 'description' => 'The VPC ID.'."\n", + 'type' => 'string', + 'example' => 'vpc-2zesj9afh3y518k9o****'."\n", + ], + 'Tags' => [ + 'title' => '接入点标签列表', + 'description' => 'The tags of the access point.'."\n", + 'type' => 'array', + 'items' => [ + 'title' => '接入点标签列表', + 'description' => 'The tags of the access point.'."\n", + 'type' => 'object', + 'properties' => [ + 'Key' => [ + 'title' => '标签键', + 'description' => 'The key of the tag that is added to the resource.'."\n", + 'type' => 'string', + 'example' => 'TestKey', + ], + 'Value' => [ + 'title' => '标签值', + 'description' => 'Tag value'."\n", + 'type' => 'string', + 'example' => 'TestValue', + ], + ], + ], + ], + ], + 'description' => '', + ], + ], + 'NextToken' => [ + 'description' => 'A pagination token. It can be used in the next request to retrieve a new page of results. If NextToken is empty, no next page exists.'."\n", + 'type' => 'string', + 'example' => 'MTY4NzcxOTcwMjAzMDk2Nzc0MyM4MDM4****'."\n", + ], + 'TotalCount' => [ + 'description' => 'The total number of access points.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '20', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidFilesystemType.NotSupport', + 'errorMessage' => 'The API operation does not support the file system type.', + ], + ], + 403 => [ + [ + 'errorCode' => 'InvalidProtocolType.NotSupported', + 'errorMessage' => 'The specified protocol type does not supported.', + ], + ], + [ + [ + 'errorCode' => 'InvalidFileSystem.NotFound', + 'errorMessage' => 'The specified file system does not exist.', + ], + [ + 'errorCode' => 'InvalidAccessGroup.NotFound', + 'errorMessage' => 'The specified AccessGroup does not exist.', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"6299428C-3861-435D-AE54-9B330A00****\\",\\n \\"AccessPoints\\": [\\n {\\n \\"ARN\\": \\"acs:nas:cn-hangzhou:178321033379****:accesspoint/ap-ie15yd****\\",\\n \\"AccessGroup\\": \\"test\\",\\n \\"AccessPointId\\": \\"ap-ie15y*****\\\\n\\",\\n \\"AccessPointName\\": \\"test\\",\\n \\"CreateTime\\": \\"1709619668276167\\",\\n \\"DomainName\\": \\"ap-ie15ydanoz.001014****-w****.cn-hangzhou.nas.aliyuncs.com\\",\\n \\"EnabledRam\\": false,\\n \\"FileSystemId\\": \\"31a8e4****\\\\n\\",\\n \\"ModifyTime\\": \\"1709619668276167\\",\\n \\"PosixUser\\": {\\n \\"PosixGroupId\\": 12,\\n \\"PosixUserId\\": 123,\\n \\"PosixSecondaryGroupIds\\": [\\n 0\\n ]\\n },\\n \\"RootPath\\": \\"/\\",\\n \\"RootPathPermission\\": {\\n \\"OwnerGroupId\\": 12,\\n \\"OwnerUserId\\": 1,\\n \\"Permission\\": \\"0755\\"\\n },\\n \\"RootPathStatus\\": \\"2\\",\\n \\"Status\\": \\"Active\\",\\n \\"VSwitchId\\": \\"vsw-2zevmwkwyztjuoffg****\\\\n\\",\\n \\"VpcId\\": \\"vpc-2zesj9afh3y518k9o****\\\\n\\",\\n \\"Tags\\": [\\n {\\n \\"Key\\": \\"TestKey\\",\\n \\"Value\\": \\"TestValue\\"\\n }\\n ]\\n }\\n ],\\n \\"NextToken\\": \\"MTY4NzcxOTcwMjAzMDk2Nzc0MyM4MDM4****\\\\n\\",\\n \\"TotalCount\\": 20\\n}","type":"json"}]', + 'title' => 'DescribeAccessPoints', + 'description' => 'Only General-purpose NAS file systems that use the NFS protocol support this operation.'."\n", + ], + 'DescribeAccessPoint' => [ + 'summary' => 'Queries the details of an access point.', + 'methods' => [ + 'get', + 'post', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '192492', + 'abilityTreeNodes' => [ + 'FEATUREnas5IJRRZ', + ], + 'autoTest' => true, + 'tenantRelevance' => 'tenant', + ], + 'parameters' => [ + [ + 'name' => 'FileSystemId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the file system.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '31a8e4****', + ], + ], + [ + 'name' => 'AccessPointId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the access point.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'ap-ie15yd****', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'title' => 'Id of the request', + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3****', + ], + 'AccessPoint' => [ + 'description' => 'The information about the access point.'."\n", + 'type' => 'object', + 'properties' => [ + 'ARN' => [ + 'description' => 'The Alibaba Cloud Resource Name (ARN) of the access point.'."\n", + 'type' => 'string', + 'example' => 'acs:nas:cn-hangzhou:178321033379****:accesspoint/ap-ie15yd****', + ], + 'AccessGroup' => [ + 'description' => 'The name of the permission group.'."\n", + 'type' => 'string', + 'example' => 'test'."\n", + ], + 'AccessPointId' => [ + 'description' => 'The ID of the access point.'."\n", + 'type' => 'string', + 'example' => 'ap-ie15yd****'."\n", + ], + 'AccessPointName' => [ + 'description' => 'The name of the access point.'."\n", + 'type' => 'string', + 'example' => 'test', + ], + 'CreateTime' => [ + 'description' => 'The time when the access point was created.'."\n", + 'type' => 'string', + 'example' => '1709619668276167', + ], + 'DomainName' => [ + 'description' => 'The domain name of the access point.'."\n", + 'type' => 'string', + 'example' => 'ap-ie15ydanoz.001014****-w****.cn-hangzhou.nas.aliyuncs.com', + ], + 'EnabledRam' => [ + 'description' => 'Indicates whether the RAM policy is enabled.'."\n", + 'type' => 'boolean', + 'example' => 'false', + ], + 'FileSystemId' => [ + 'description' => 'The ID of the file system.'."\n", + 'type' => 'string', + 'example' => '31a8e4****', + ], + 'ModifyTime' => [ + 'description' => 'The time when the access point was modified.'."\n", + 'type' => 'string', + 'example' => '1709619668276167', + ], + 'RootPathPermission' => [ + 'description' => 'The permissions to create the root directory.'."\n", + 'type' => 'object', + 'properties' => [ + 'OwnerGroupId' => [ + 'description' => 'The ID of the owner group.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '123', + ], + 'OwnerUserId' => [ + 'description' => 'The owner ID.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '1', + ], + 'Permission' => [ + 'description' => 'The POSIX permission.'."\n", + 'type' => 'string', + 'example' => '0755', + ], + ], + ], + 'PosixUser' => [ + 'description' => 'The POSIX user.'."\n", + 'type' => 'object', + 'properties' => [ + 'PosixGroupId' => [ + 'description' => 'The ID of the POSIX user group.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '12', + ], + 'PosixUserId' => [ + 'description' => 'The ID of the POSIX user.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '123', + ], + 'PosixSecondaryGroupIds' => [ + 'description' => 'The IDs of the secondary user groups.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The ID of the secondary user group.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '[123,123]', + ], + ], + ], + ], + 'RootPath' => [ + 'description' => 'The root directory.'."\n", + 'type' => 'string', + 'example' => '/', + ], + 'RootPathStatus' => [ + 'description' => 'The status of the root directory.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'* 0: The rootpath status is unknown.'."\n" + .'* 1: The rootpath does not exist and may be deleted.'."\n" + .'* 2: The rootpath is normal.'."\n", + 'type' => 'string', + 'example' => '2', + ], + 'Status' => [ + 'description' => 'The status of the access point.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'* Active: The access point is available.'."\n" + .'* Inactive: The access point is unavailable.'."\n" + .'* Pending: The access point is being created.'."\n" + .'* Deleting: The access point is being deleted.'."\n", + 'type' => 'string', + 'example' => 'Active', + ], + 'VSwitchId' => [ + 'description' => 'The vSwitch ID.'."\n", + 'type' => 'string', + 'example' => 'vsw-2zevmwkwyztjuoffg****', + ], + 'VpcId' => [ + 'description' => 'The ID of the virtual private cloud (VPC).'."\n" + ."\n" + .'You must select the VPC of the Elastic Compute Service (ECS) instance on which you want to mount the file system.'."\n", + 'type' => 'string', + 'example' => 'vpc-2zesj9afh3y518k9o****', + ], + 'Tags' => [ + 'title' => '接入点标签列表', + 'description' => 'The tags of the access point.'."\n", + 'type' => 'array', + 'items' => [ + 'title' => '接入点标签列表', + 'description' => 'The tags of the access point.'."\n", + 'type' => 'object', + 'properties' => [ + 'Key' => [ + 'title' => '标签键', + 'description' => 'The key of a tag.'."\n", + 'type' => 'string', + 'example' => 'TestKey', + ], + 'Value' => [ + 'title' => '标签值', + 'description' => 'The value of a tag.'."\n", + 'type' => 'string', + 'example' => 'TestValue', + ], + ], + ], + ], + 'RegionId' => [ + 'description' => 'The region ID.'."\n", + 'type' => 'string', + 'example' => 'cn-hangzhou', + ], + ], + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 404 => [ + [ + 'errorCode' => 'InvalidAccessPointId.NotFound', + 'errorMessage' => 'The access point id does not exist.', + ], + [ + 'errorCode' => 'InvalidFileSystem.NotFound', + 'errorMessage' => 'The specified file system does not exist.', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-A3DC0DE3****\\",\\n \\"AccessPoint\\": {\\n \\"ARN\\": \\"acs:nas:cn-hangzhou:178321033379****:accesspoint/ap-ie15yd****\\",\\n \\"AccessGroup\\": \\"test\\\\n\\",\\n \\"AccessPointId\\": \\"ap-ie15yd****\\\\n\\",\\n \\"AccessPointName\\": \\"test\\",\\n \\"CreateTime\\": \\"1709619668276167\\",\\n \\"DomainName\\": \\"ap-ie15ydanoz.001014****-w****.cn-hangzhou.nas.aliyuncs.com\\",\\n \\"EnabledRam\\": false,\\n \\"FileSystemId\\": \\"31a8e4****\\",\\n \\"ModifyTime\\": \\"1709619668276167\\",\\n \\"RootPathPermission\\": {\\n \\"OwnerGroupId\\": 123,\\n \\"OwnerUserId\\": 1,\\n \\"Permission\\": \\"0755\\"\\n },\\n \\"PosixUser\\": {\\n \\"PosixGroupId\\": 12,\\n \\"PosixUserId\\": 123,\\n \\"PosixSecondaryGroupIds\\": [\\n 0\\n ]\\n },\\n \\"RootPath\\": \\"/\\",\\n \\"RootPathStatus\\": \\"2\\",\\n \\"Status\\": \\"Active\\",\\n \\"VSwitchId\\": \\"vsw-2zevmwkwyztjuoffg****\\",\\n \\"VpcId\\": \\"vpc-2zesj9afh3y518k9o****\\",\\n \\"Tags\\": [\\n {\\n \\"Key\\": \\"TestKey\\",\\n \\"Value\\": \\"TestValue\\"\\n }\\n ],\\n \\"RegionId\\": \\"cn-hangzhou\\"\\n }\\n}","type":"json"}]', + 'title' => 'DescribeAccessPoint', + 'description' => 'Only General-purpose Network File System (NFS) file systems support this operation.'."\n", + ], + 'DeleteAccessPoint' => [ + 'summary' => 'Deletes an access point.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'delete', + 'riskType' => 'high', + 'chargeType' => 'free', + 'abilityTreeCode' => '189632', + 'abilityTreeNodes' => [ + 'FEATUREnas5IJRRZ', + ], + 'autoTest' => true, + 'tenantRelevance' => 'tenant', + ], + 'parameters' => [ + [ + 'name' => 'FileSystemId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the file system.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '1ca404****', + 'maxLength' => 64, + 'minLength' => 3, + ], + ], + [ + 'name' => 'AccessPointId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the access point.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'ap-ie15yd****'."\n", + ], + ], + ], + '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' => '98696EF0-1607-4E9D-B01D-F20930B6****', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 404 => [ + [ + 'errorCode' => 'InvalidAccessPointId.NotFound', + 'errorMessage' => 'The access point id does not exist.', + ], + [ + 'errorCode' => 'InvalidFileSystem.NotFound', + 'errorMessage' => 'The specified file system does not exist.', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"98696EF0-1607-4E9D-B01D-F20930B6****\\"\\n}","type":"json"}]', + 'title' => 'DeleteAccessPoint', + 'description' => '* Only General-purpose Network File System (NFS) file systems support access points.'."\n" + .'* After an access point is deleted, all I/O operations that are being performed on the directory accessed over the access point are interrupted immediately. Exercise caution when you perform this operation.'."\n", + ], + 'CreateDir' => [ + 'summary' => 'Creates a directory in a file system.', + 'methods' => [ + 'get', + 'post', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'create', + 'riskType' => 'high', + 'chargeType' => 'free', + 'abilityTreeCode' => '189884', + 'abilityTreeNodes' => [ + 'FEATUREnasI92PYN', + ], + 'autoTest' => true, + 'tenantRelevance' => 'tenant', + ], + 'parameters' => [ + [ + 'name' => 'FileSystemId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the file system.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '31a8e4****', + ], + ], + [ + 'name' => 'RootDirectory', + 'in' => 'query', + 'schema' => [ + 'description' => 'The directory name.'."\n" + ."\n" + .'* The directory must start with a forward slash (/).'."\n" + .'* The directory can contain digits and letters.'."\n" + .'* The directory can contain underscores (\\_), hyphens (-), and periods (.).'."\n" + .'* The directory cannot contain symbolic links, such as the current directory (.), the upper-level directory (..), and other symbolic links.'."\n" + ."\n" + .'> * If the root directory does not exist, configure the information for directory creation. The system then automatically creates the specified root directory based on your settings.'."\n" + .'> * If the root directory exists, you do not need to configure the information for directory creation. The configurations for directory creation are ignored even if you configure the information.', + 'type' => 'string', + 'required' => true, + 'example' => 'test', + ], + ], + [ + 'name' => 'OwnerUserId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The owner ID for the directory. Valid values: 0 to 4294967295.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => true, + 'example' => '1', + ], + ], + [ + 'name' => 'OwnerGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the owner group for the directory. Valid values: 0 to 4294967295.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => true, + 'example' => '123', + ], + ], + [ + 'name' => 'Permission', + 'in' => 'query', + 'schema' => [ + 'description' => 'The Portable Operating System Interface (POSIX) permissions applied to the root directory. The value is a valid octal number, such as 0755.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '0755', + ], + ], + [ + 'name' => 'Recursion', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to create a multi-level directory. Valid values:'."\n" + ."\n" + .'* true (default): If no multi-level directory exists, directories are created level by level.'."\n" + .'* false: Only the last level of directory is created. An error message is returned because the parent directory does not exist.'."\n", + 'type' => 'boolean', + 'required' => false, + 'example' => 'true', + ], + ], + ], + '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' => 'BC7C825C-5F65-4B56-BEF6-98C56C7C****', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 403 => [ + [ + 'errorCode' => 'InvalidProtocolType.NotSupported', + 'errorMessage' => 'The specified protocol type does not supported.', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"BC7C825C-5F65-4B56-BEF6-98C56C7C****\\"\\n}","type":"json"}]', + 'title' => 'CreateDir', + 'description' => 'Only General-purpose Network File System (NFS) file systems support this operation.'."\n", + ], + 'CreateAccessGroup' => [ + 'summary' => 'Creates a permission group.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'readAndWrite', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'create', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '13927', + 'abilityTreeNodes' => [ + 'FEATUREnas2SBOJD', + ], + 'autoTest' => true, + 'tenantRelevance' => 'publicInformation', + ], + 'parameters' => [ + [ + 'name' => 'AccessGroupName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the permission group.'."\n" + ."\n" + .'Limits:'."\n" + ."\n" + .'* The name must be 3 to 64 characters in length.'."\n" + .'* The name must start with a letter and can contain letters, digits, underscores (\\_), and hyphens (-).'."\n" + .'* The name must be different from the name of the default permission group.'."\n" + ."\n" + .'The default permission group for virtual private clouds (VPCs) is named DEFAULT_VPC_GROUP_NAME.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'vpc-test', + ], + ], + [ + 'name' => 'AccessGroupType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The network type of the permission group. Valid value: **Vpc**.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'Vpc', + 'enum' => [ + 'Vpc', + 'VPC', + 'vpc', + ], + ], + ], + [ + 'name' => 'Description', + 'in' => 'query', + 'schema' => [ + 'description' => 'The description of the permission group.'."\n" + ."\n" + .'Limits:'."\n" + ."\n" + .'* By default, the description of a permission group is the same as the name of the permission group. The description must be 2 to 128 characters in length.'."\n" + .'* The name must start with a letter and cannot start with `http://` or `https://`.'."\n" + .'* The description can contain digits, colons (:), underscores (\\_), and hyphens (-).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'vpctestaccessgroup', + ], + ], + [ + 'name' => 'FileSystemType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The type of the file system.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'* standard (default): General-purpose NAS file system.'."\n" + .'* extreme: Extreme NAS file system.', + 'type' => 'string', + 'required' => false, + 'example' => 'standard', + 'default' => 'standard', + 'enum' => [ + 'standard', + 'extreme', + ], + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '55C5FFD6-BF99-41BD-9C66-FFF39189F4F8', + ], + 'AccessGroupName' => [ + 'description' => 'The name of the permission group.'."\n", + 'type' => 'string', + 'example' => 'vpc-test', + ], + ], + 'description' => '', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"55C5FFD6-BF99-41BD-9C66-FFF39189F4F8\\",\\n \\"AccessGroupName\\": \\"vpc-test\\"\\n}","errorExample":""},{"type":"xml","example":"<CreateAccessGroupResponse>\\n <RequestId>55C5FFD6-BF99-41BD-9C66-FFF39189F4F8</RequestId>\\n <AccessGroupName>vpc-test</AccessGroupName>\\n</CreateAccessGroupResponse>","errorExample":""}]', + 'title' => 'CreateAccessGroup', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'DeleteAccessGroup' => [ + 'summary' => 'Deletes a permission group.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'delete', + 'riskType' => 'high', + 'chargeType' => 'free', + 'abilityTreeCode' => '13936', + 'abilityTreeNodes' => [ + 'FEATUREnas2SBOJD', + ], + 'autoTest' => true, + 'tenantRelevance' => 'tenant', + ], + 'parameters' => [ + [ + 'name' => 'AccessGroupName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the permission group to be deleted.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'vpc-test', + ], + ], + [ + 'name' => 'FileSystemType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The type of the file system.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'* standard (default): General-purpose NAS file system'."\n" + .'* extreme: Extreme NAS file system'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'standard', + 'default' => 'standard', + 'enum' => [ + 'standard', + 'extreme', + ], + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '9E15E394-38A6-457A-A62A-D9797C9A****', + ], + ], + 'description' => '', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"9E15E394-38A6-457A-A62A-D9797C9A****\\"\\n}","errorExample":""},{"type":"xml","example":"<RequestId>9E15E394-38A6-457A-A62A-D9797C9A****</RequestId>","errorExample":""}]', + 'title' => 'DeleteAccessGroup', + 'description' => 'The default permission group (DEFAULT_VPC_GROUP_NAME) cannot be deleted.'."\n", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'ModifyAccessGroup' => [ + 'summary' => 'Modifies a permission group.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '13973', + 'abilityTreeNodes' => [ + 'FEATUREnas2SBOJD', + ], + 'autoTest' => true, + 'tenantRelevance' => 'publicInformation', + ], + 'parameters' => [ + [ + 'name' => 'AccessGroupName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the permission group.'."\n" + ."\n" + .'Limits:'."\n" + ."\n" + .'* The name must be 3 to 64 characters in length.'."\n" + .'* The name must start with a letter and can contain letters, digits, underscores (\\_), and hyphens (-).'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'vpc-test', + ], + ], + [ + 'name' => 'Description', + 'in' => 'query', + 'schema' => [ + 'description' => 'The description of the permission group.'."\n" + ."\n" + .'Limits:'."\n" + ."\n" + .'* By default, the description of the permission group is the same as the name of the permission group. The description must be 2 to 128 characters in length.'."\n" + .'* The description must start with a letter and cannot start with `http://` or `https://`.'."\n" + .'* The description can contain digits, colons (:), underscores (\\_), and hyphens (-).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'vpc-test', + ], + ], + [ + 'name' => 'FileSystemType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The type of the file system.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'* standard (default): General-purpose NAS file system'."\n" + .'* extreme: Extreme NAS file system'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'standard', + 'default' => 'standard', + 'enum' => [ + 'standard', + 'extreme', + ], + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'ED2AE737-9D50-4CA4-B0DA-31BD610C****', + ], + ], + 'description' => '', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"ED2AE737-9D50-4CA4-B0DA-31BD610C****\\"\\n}","errorExample":"{\\n \\"RequestId\\": \\"ED2AE737-9D50-4CA4-B0DA-31BD610C2363\\"\\n}\\n"},{"type":"xml","example":"<?xml version=\\"1.0\\" encoding=\\"UTF-8\\"?>\\n<ModifyAccessGroupResponse>\\n <RequestId>ED2AE737-9D50-4CA4-B0DA-31BD610C****</RequestId>\\n</ModifyAccessGroupResponse>\\n","errorExample":"<?xml version=\\"1.0\\" encoding=\\"UTF-8\\"?>\\n<ModifyAccessGroupResponse>\\n <RequestId>ED2AE737-9D50-4CA4-B0DA-31BD610C2363</RequestId>\\n</ModifyAccessGroupResponse>\\n"}]', + 'title' => 'ModifyAccessGroup', + 'description' => 'The default permission group (DEFAULT_VPC_GROUP_NAME) cannot be modified.'."\n", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'DescribeAccessGroups' => [ + 'summary' => 'Queries permission groups.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'list', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '13945', + 'abilityTreeNodes' => [ + 'FEATUREnas2SBOJD', + ], + 'autoTest' => true, + 'tenantRelevance' => 'publicInformation', + ], + 'parameters' => [ + [ + 'name' => 'AccessGroupName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the permission group.'."\n" + ."\n" + .'Limits:'."\n" + ."\n" + .'* The name must be 3 to 64 characters in length.'."\n" + .'* The name must start with a letter and can contain letters, digits, underscores (\\_), and hyphens (-).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'DEFAULT_VPC_GROUP_NAME', + ], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of permission groups returned per page.'."\n" + ."\n" + .'Valid values: 1 to 100.'."\n" + ."\n" + .'Default value: 10.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'maximum' => '100', + 'minimum' => '1', + 'example' => '2', + 'default' => '10', + ], + ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => [ + 'description' => 'The page number.'."\n" + ."\n" + .'Pages start from page 1. Default value: 1.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'minimum' => '1', + 'example' => '1', + ], + ], + [ + 'name' => 'UseUTCDateTime', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether the time to return is displayed in UTC.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'* true (default): The time is displayed in UTC.'."\n" + .'* false: The time is not displayed in UTC.'."\n", + 'type' => 'boolean', + 'required' => false, + 'minimum' => '1', + 'example' => 'true', + 'default' => 'true', + ], + ], + [ + 'name' => 'FileSystemType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The type of the file system.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'* standard: General-purpose NAS'."\n" + .'* extreme: Extreme NAS'."\n" + .'* cpfs: CPFS'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'standard', + 'default' => 'standard', + 'enum' => [ + 'standard', + 'extreme', + 'cpfs', + ], + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'AccessGroups' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'AccessGroup' => [ + 'description' => 'The queried permission groups.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'AccessGroupName' => [ + 'description' => 'The name of the permission group.'."\n", + 'type' => 'string', + 'example' => 'DEFAULT_VPC_GROUP_NAME', + ], + 'Description' => [ + 'description' => 'The description of the permission group.'."\n", + 'type' => 'string', + 'example' => 'This is a test access group.', + ], + 'CreateTime' => [ + 'description' => 'The time when the permission group was created.'."\n", + 'type' => 'string', + 'example' => '2020-01-05T16:00:00Z', + ], + 'AccessGroupType' => [ + 'description' => 'The network type of the permission group. Valid value: **Vpc**.'."\n", + 'type' => 'string', + 'example' => 'Vpc', + ], + 'RuleCount' => [ + 'description' => 'The total number of rules in the permission group.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '0', + ], + 'MountTargetCount' => [ + 'description' => 'The number of mount targets to which the permission group is attached.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '0', + ], + 'FileSystemType' => [ + 'description' => 'The type of the file system.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'* standard: General-purpose NAS'."\n" + .'* extreme: Extreme NAS'."\n" + .'* cpfs: CPFS'."\n", + 'type' => 'string', + 'example' => 'standard', + ], + 'RegionId' => [ + 'description' => 'Region ID.'."\n", + 'type' => 'string', + 'example' => 'cn-hangzhou', + ], + ], + 'description' => '', + ], + ], + ], + ], + 'TotalCount' => [ + 'description' => 'The total number of permission groups.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '1', + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '2514F97E-FFF0-4A1F-BF04-729CEAC6****', + ], + 'PageSize' => [ + 'description' => 'The number of permission groups returned per page.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '2', + ], + 'PageNumber' => [ + 'description' => 'The page number.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '1', + ], + ], + 'description' => '', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"AccessGroups\\": {\\n \\"AccessGroup\\": [\\n {\\n \\"AccessGroupName\\": \\"DEFAULT_VPC_GROUP_NAME\\",\\n \\"Description\\": \\"This is a test access group.\\",\\n \\"CreateTime\\": \\"2020-01-05T16:00:00Z\\",\\n \\"AccessGroupType\\": \\"Vpc\\",\\n \\"RuleCount\\": 0,\\n \\"MountTargetCount\\": 0,\\n \\"FileSystemType\\": \\"standard\\",\\n \\"RegionId\\": \\"cn-hangzhou\\"\\n }\\n ]\\n },\\n \\"TotalCount\\": 1,\\n \\"RequestId\\": \\"2514F97E-FFF0-4A1F-BF04-729CEAC6****\\",\\n \\"PageSize\\": 2,\\n \\"PageNumber\\": 1\\n}","errorExample":""},{"type":"xml","example":"<DescribeAccessGroupsResponse>\\n <AccessGroups>\\n <AccessGroupName>DEFAULT_VPC_GROUP_NAME</AccessGroupName>\\n <Description>This is a test access group.</Description>\\n <CreateTime>2020-01-05T16:00:00Z</CreateTime>\\n <AccessGroupType>Vpc</AccessGroupType>\\n <RuleCount>0</RuleCount>\\n <MountTargetCount>0</MountTargetCount>\\n </AccessGroups>\\n <TotalCount>1</TotalCount>\\n <RequestId>2514F97E-FFF0-4A1F-BF04-729CEAC6****</RequestId>\\n <PageSize>2</PageSize>\\n <PageNumber>1</PageNumber>\\n</DescribeAccessGroupsResponse>","errorExample":""}]', + 'title' => 'DescribeAccessGroups', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'CreateAccessRule' => [ + 'summary' => 'Creates a rule for a permission group.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'readAndWrite', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'create', + 'riskType' => 'high', + 'chargeType' => 'free', + 'abilityTreeCode' => '13928', + 'abilityTreeNodes' => [ + 'FEATUREnas2SBOJD', + ], + 'autoTest' => true, + 'tenantRelevance' => 'publicInformation', + ], + 'parameters' => [ + [ + 'name' => 'AccessGroupName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the permission group.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'vpc-test', + ], + ], + [ + 'name' => 'SourceCidrIp', + 'in' => 'query', + 'schema' => [ + 'description' => 'The IP address or CIDR block of the authorized object.'."\n" + ."\n" + .'You must set this parameter to an IP address or CIDR block.'."\n" + ."\n" + .'> If the permission group resides in the classic network, you must set this parameter to an IP address.'."\n", + 'type' => 'string', + 'required' => false, + 'docRequired' => false, + 'example' => '192.0.2.0/16', + ], + ], + [ + 'name' => 'RWAccessType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The access permissions of the authorized object on the file system.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'* RDWR (default): the read and write permissions.'."\n" + .'* RDONLY: the read-only permissions.', + 'type' => 'string', + 'required' => false, + 'example' => 'RDWR', + 'default' => 'RDWR', + 'enum' => [ + 'RDWR', + 'RDONLY', + ], + ], + ], + [ + 'name' => 'UserAccessType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The access permissions for different types of users in the authorized object.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'* no_squash (default): grants root users the permissions to access the file system.'."\n" + .'* root_squash: grants root users the least permissions as the nobody user.'."\n" + .'* all_squash: grants all users the least permissions as the nobody user.'."\n" + ."\n" + .'The nobody user has the least permissions in Linux and can access only the public content of the file system. This ensures the security of the file system.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'no_squash', + 'default' => 'no_squash', + 'enum' => [ + 'no_squash', + 'root_squash', + 'all_squash', + ], + ], + ], + [ + 'name' => 'Priority', + 'in' => 'query', + 'schema' => [ + 'description' => 'The priority of the rule.'."\n" + ."\n" + .'The rule with the highest priority takes effect if multiple rules are attached to the authorized object.'."\n" + ."\n" + .'Valid values: 1 to 100. The value 1 indicates the highest priority.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'maximum' => '100', + 'minimum' => '1', + 'example' => '1', + 'default' => '1', + ], + ], + [ + 'name' => 'FileSystemType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The type of the file system.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'* standard (default): General-purpose NAS file system.'."\n" + .'* extreme: Extreme NAS file system.', + 'type' => 'string', + 'required' => false, + 'example' => 'standard', + 'default' => 'standard', + 'enum' => [ + 'standard', + 'extreme', + ], + ], + ], + [ + 'name' => 'Ipv6SourceCidrIp', + 'in' => 'query', + 'schema' => [ + 'description' => 'The IPv6 address or CIDR block of the authorized object.'."\n" + ."\n" + .'You must set this parameter to an IPv6 address or CIDR block.'."\n" + ."\n" + .'> * Only Extreme NAS file systems that reside in the Chinese mainland support IPv6. If you specify this parameter, you must enable IPv6 for the file system.'."\n" + .'>* Only permission groups that reside in virtual private clouds (VPCs) support IPv6.'."\n" + .'>* You cannot specify an IPv4 address and an IPv6 address at the same time.', + 'type' => 'string', + 'required' => false, + 'example' => '2001:250:6000::***', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'A323836B-5BC6-45A6-8048-60675C23****', + ], + 'AccessRuleId' => [ + 'description' => 'The rule ID.'."\n", + 'type' => 'string', + 'example' => '1', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParam.Ipv6SourceCidrIp', + 'errorMessage' => 'IPv6 address verification failed.', + ], + [ + 'errorCode' => 'InvalidParam.SourceCidrIp', + 'errorMessage' => 'IPv4 address verification failed.', + ], + [ + 'errorCode' => 'InvalidParam.IPv4AndIPv6MutuallyExclusive', + 'errorMessage' => 'You cannot configure IPv4 and IPv6 at the same time.', + ], + [ + 'errorCode' => 'InvalidAccessGroup.NotsupportedIPv6', + 'errorMessage' => 'The access group does not support IPv6.', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"A323836B-5BC6-45A6-8048-60675C23****\\",\\n \\"AccessRuleId\\": \\"1\\"\\n}","errorExample":""},{"type":"xml","example":"<CreateAccessRuleResponse>\\n <RequestId>A323836B-5BC6-45A6-8048-60675C23****</RequestId>\\n <AccessRuleId>1</AccessRuleId>\\n</CreateAccessRuleResponse>","errorExample":""}]', + 'title' => 'CreateAccessRule', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'DeleteAccessRule' => [ + 'summary' => 'Deletes a rule from a permission group.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'delete', + 'riskType' => 'high', + 'chargeType' => 'free', + 'abilityTreeCode' => '13937', + 'abilityTreeNodes' => [ + 'FEATUREnas2SBOJD', + ], + 'autoTest' => true, + 'tenantRelevance' => 'publicInformation', + ], + 'parameters' => [ + [ + 'name' => 'AccessGroupName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the permission group.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'vpc-test', + ], + ], + [ + 'name' => 'AccessRuleId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The rule ID.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => '1', + ], + ], + [ + 'name' => 'FileSystemType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The type of the file system.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'* standard (default): General-purpose NAS file system.'."\n" + .'* extreme: Extreme NAS file system.', + 'type' => 'string', + 'required' => false, + 'example' => 'standard', + 'default' => 'standard', + 'enum' => [ + 'standard', + 'extreme', + ], + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '5B4511A7-C99E-4071-AA8C-32E2529D****', + ], + ], + 'description' => '', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"5B4511A7-C99E-4071-AA8C-32E2529D****\\"\\n}","errorExample":"{\\n \\"RequestId\\": \\"5B4511A7-C99E-4071-AA8C-32E2529DA963\\",\\n}\\n"},{"type":"xml","example":"<?xml version=\\"1.0\\" encoding=\\"UTF-8\\"?>\\n<DeleteAccessRuleResponse>\\n <RequestId>5B4511A7-C99E-4071-AA8C-32E2529D****</RequestId>\\n</DeleteAccessRuleResponse>\\n","errorExample":"<?xml version=\\"1.0\\" encoding=\\"UTF-8\\"?>\\n<DeleteAccessRuleResponse>\\n <RequestId>5B4511A7-C99E-4071-AA8C-32E2529DA963</RequestId>\\n</DeleteAccessRuleResponse>\\n"}]', + 'title' => 'DeleteAccessRule', + 'description' => 'Rules in the default permission group (DEFAULT_VPC_GROUP_NAME) cannot be deleted.'."\n", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'ModifyAccessRule' => [ + 'summary' => 'Modifies a rule in a permission group.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'high', + 'chargeType' => 'free', + 'abilityTreeCode' => '13974', + 'abilityTreeNodes' => [ + 'FEATUREnas2SBOJD', + ], + 'autoTest' => true, + 'tenantRelevance' => 'tenant', + ], + 'parameters' => [ + [ + 'name' => 'AccessGroupName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the permission group.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'vpc-test', + ], + ], + [ + 'name' => 'AccessRuleId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The rule ID.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => '1', + ], + ], + [ + 'name' => 'SourceCidrIp', + 'in' => 'query', + 'schema' => [ + 'description' => 'The IP address or CIDR block of the authorized object.'."\n" + ."\n" + .'You must set this parameter to an IP address or CIDR block.'."\n", + 'type' => 'string', + 'required' => false, + 'docRequired' => false, + 'example' => '192.0.**.**', + ], + ], + [ + 'name' => 'RWAccessType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The access permissions of the authorized object on the file system.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'* RDWR (default): the read and write permissions.'."\n" + .'* RDONLY: the read-only permissions.', + 'type' => 'string', + 'required' => false, + 'example' => 'RDWR', + 'default' => 'RDWR', + 'enum' => [ + 'RDWR', + 'RDONLY', + ], + ], + ], + [ + 'name' => 'UserAccessType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The access permissions for different types of users in the authorized object.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'* no_squash: allows access from root users to the file system.'."\n" + .'* root_squash: grants root users the least permissions as the nobody user.'."\n" + .'* all_squash: grants all users the least permissions as the nobody user.'."\n" + ."\n" + .'The nobody user has the least permissions in Linux and can access only the public content of the file system. This ensures the security of the file system.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'all_squash', + 'default' => 'no_squash', + 'enum' => [ + 'no_squash', + 'root_squash', + 'all_squash', + ], + ], + ], + [ + 'name' => 'Priority', + 'in' => 'query', + 'schema' => [ + 'description' => 'The priority of the rule.'."\n" + ."\n" + .'Valid values: 1 to 100.'."\n" + ."\n" + .'Default value: 1, which indicates the highest priority.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'maximum' => '100', + 'minimum' => '1', + 'example' => '1', + 'default' => '1', + ], + ], + [ + 'name' => 'FileSystemType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The type of the file system.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'* standard (default): General-purpose NAS file system.'."\n" + .'* extreme: Extreme NAS file system.', + 'type' => 'string', + 'required' => false, + 'example' => 'standard', + 'default' => 'standard', + 'enum' => [ + 'standard', + 'extreme', + ], + ], + ], + [ + 'name' => 'Ipv6SourceCidrIp', + 'in' => 'query', + 'schema' => [ + 'description' => 'The IPv6 address or CIDR block of the authorized object.'."\n" + ."\n" + .'You must set this parameter to an IPv6 IP address or CIDR block.'."\n" + ."\n" + .'> * Only Extreme NAS file systems that reside in the China (Hohhot) region support IPv6.'."\n" + .'>* Only permission groups that reside in virtual private clouds (VPCs) support IPv6.'."\n" + .'>* This parameter is unavailable if you specify the SourceCidrIp parameter.', + 'type' => 'string', + 'required' => false, + 'example' => 'fe80::3d4a:80fd:f05d:****', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '6299428C-3861-435D-AE54-9B330A00****', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParam.Ipv6SourceCidrIp', + 'errorMessage' => 'IPv6 address verification failed.', + ], + [ + 'errorCode' => 'InvalidParam.SourceCidrIp', + 'errorMessage' => 'IPv4 address verification failed.', + ], + [ + 'errorCode' => 'InvalidParam.IPv4AndIPv6MutuallyExclusive', + 'errorMessage' => 'You cannot configure IPv4 and IPv6 at the same time.', + ], + [ + 'errorCode' => 'InvalidAccessGroup.NotsupportedIPv6', + 'errorMessage' => 'The access group does not support IPv6.', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"6299428C-3861-435D-AE54-9B330A00****\\"\\n}","errorExample":""},{"type":"xml","example":"<ModifyAccessRuleResponse>\\n <RequestId>6299428C-3861-435D-AE54-9B330A00****</RequestId>\\n</ModifyAccessRuleResponse>","errorExample":""}]', + 'title' => 'ModifyAccessRule', + 'description' => 'The rules in the default permission group (DEFAULT_VPC_GROUP_NAME) cannot be modified.'."\n", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'DescribeAccessRules' => [ + 'summary' => 'Queries the information about rules in a permission group.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'list', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '13946', + 'abilityTreeNodes' => [ + 'FEATUREnas2SBOJD', + ], + 'autoTest' => true, + 'tenantRelevance' => 'publicInformation', + ], + 'parameters' => [ + [ + 'name' => 'AccessGroupName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the permission group.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'vpc-test', + ], + ], + [ + 'name' => 'AccessRuleId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The rule ID.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '1', + ], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of entries per page.'."\n" + ."\n" + .'Valid values: 1 to 100.'."\n" + ."\n" + .'Default value: 10.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'maximum' => '100', + 'minimum' => '1', + 'example' => '1', + 'default' => '10', + ], + ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => [ + 'description' => 'The page number.'."\n" + ."\n" + .'Pages start from page 1. Default value: 1.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'minimum' => '1', + 'example' => '1', + ], + ], + [ + 'name' => 'FileSystemType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The type of the file system.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'* standard (default): General-purpose NAS file system.'."\n" + .'* extreme: Extreme NAS file system.', + 'type' => 'string', + 'required' => false, + 'example' => 'standard', + 'default' => 'standard', + 'enum' => [ + 'standard', + 'extreme', + ], + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'TotalCount' => [ + 'description' => 'The total number of rules.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '1', + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '86D89E82-4297-4343-8E1E-A2495B35****', + ], + 'PageSize' => [ + 'description' => 'The number of entries per page.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '1', + ], + 'PageNumber' => [ + 'description' => 'The page number.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '1', + ], + 'AccessRules' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'AccessRule' => [ + 'description' => 'The rules in the permission group.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'AccessRuleId' => [ + 'description' => 'The ID of the rule.'."\n", + 'type' => 'string', + 'example' => '1', + ], + 'SourceCidrIp' => [ + 'description' => 'The IP address or CIDR block of the authorized object.'."\n", + 'type' => 'string', + 'example' => '10.0.*.*/**', + ], + 'Ipv6SourceCidrIp' => [ + 'description' => 'The IPv6 address or CIDR block of the authorized object.'."\n", + 'type' => 'string', + 'example' => '2001:250:6000::***', + ], + 'RWAccess' => [ + 'description' => 'The access permissions of the authorized object on the file system.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'* RDWR (default): the read and write permissions'."\n" + .'* RDONLY: the read-only permissions'."\n", + 'type' => 'string', + 'example' => 'RDWR', + ], + 'UserAccess' => [ + 'description' => 'The access permissions for different types of users in the authorized object.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'* no_squash: allows access from root users to the file system.'."\n" + .'* root_squash: grants root users the least permissions as the nobody user.'."\n" + .'* all_squash: grants all users the least permissions as the nobody user.'."\n" + ."\n" + .'The nobody user has the least permissions in Linux and can access only the public content of the file system. This ensures the security of the file system.'."\n", + 'type' => 'string', + 'example' => 'no_squash', + ], + 'Priority' => [ + 'description' => 'The priority of the rule.'."\n" + ."\n" + .'If multiple rules are attached to the authorized object, the rule with the highest priority takes effect.'."\n" + ."\n" + .'Valid values: 1 to 100. The value 1 indicates the highest priority.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '1', + ], + 'FileSystemType' => [ + 'description' => 'The type of the file system.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'* standard: General-purpose File Storage NAS (NAS) file system'."\n" + .'* extreme: Extreme NAS file system', + 'type' => 'string', + 'example' => 'standard', + ], + 'AccessGroupName' => [ + 'description' => 'The name of the permission group.'."\n", + 'type' => 'string', + 'example' => 'test', + ], + 'RegionId' => [ + 'description' => 'The region ID.'."\n", + 'type' => 'string', + 'example' => 'cn-hangzhou', + ], + ], + 'description' => '', + ], + ], + ], + ], + ], + 'description' => '', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"TotalCount\\": 1,\\n \\"RequestId\\": \\"86D89E82-4297-4343-8E1E-A2495B35****\\",\\n \\"PageSize\\": 1,\\n \\"PageNumber\\": 1,\\n \\"AccessRules\\": {\\n \\"AccessRule\\": [\\n {\\n \\"AccessRuleId\\": \\"1\\",\\n \\"SourceCidrIp\\": \\"10.0.*.*/**\\",\\n \\"Ipv6SourceCidrIp\\": \\"2001:250:6000::***\\",\\n \\"RWAccess\\": \\"RDWR\\",\\n \\"UserAccess\\": \\"no_squash\\",\\n \\"Priority\\": 1,\\n \\"FileSystemType\\": \\"standard\\",\\n \\"AccessGroupName\\": \\"test\\",\\n \\"RegionId\\": \\"cn-hangzhou\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<DescribeAccessRulesResponse>\\n <TotalCount>1</TotalCount>\\n <PageSize>1</PageSize>\\n <RequestId>86D89E82-4297-4343-8E1E-A2495B35****</RequestId>\\n <PageNumber>1</PageNumber>\\n <AccessRules>\\n <AccessRule>\\n <RWAccess>RDWR</RWAccess>\\n <UserAccess>no_squash</UserAccess>\\n <Priority>1</Priority>\\n <SourceCidrIp>10.0.*.*/**</SourceCidrIp>\\n <Ipv6SourceCidrIp>2001:250:6000::***</Ipv6SourceCidrIp>\\n <AccessRuleId>1</AccessRuleId>\\n </AccessRule>\\n </AccessRules>\\n</DescribeAccessRulesResponse>","errorExample":""}]', + 'title' => 'DescribeAccessRules', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'CreateSnapshot' => [ + 'summary' => 'Creates a snapshot.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'readAndWrite', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'create', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '13935', + 'abilityTreeNodes' => [ + 'FEATUREnas5QOAQE', + ], + 'autoTest' => true, + 'tenantRelevance' => 'tenant', + ], + 'parameters' => [ + [ + 'name' => 'FileSystemId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the advanced Extreme NAS file system. The value must start with `extreme-`, for example, `extreme-01dd****`.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'extreme-01dd****', + ], + ], + [ + 'name' => 'SnapshotName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The snapshot name.'."\n" + ."\n" + .'Limits:'."\n" + ."\n" + .'* The name must be 2 to 128 characters in length. The name must start with a letter and cannot start with `http://` or `https://`.'."\n" + .'* The name can contain letters, digits, colons (:), underscores (\\_), and hyphens (-).'."\n" + .'* The name cannot start with auto because snapshots whose names start with auto are recognized as auto snapshots.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'FinanceJoshua', + ], + ], + [ + 'name' => 'Description', + 'in' => 'query', + 'schema' => [ + 'description' => 'The description of the snapshot.'."\n" + ."\n" + .'Limits:'."\n" + ."\n" + .'* The description must be 2 to 256 characters in length.'."\n" + .'* The description cannot start with `http://` or `https://`.'."\n" + .'* This parameter is empty by default.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'FinanceDepet', + ], + ], + [ + 'name' => 'RetentionDays', + 'in' => 'query', + 'schema' => [ + 'description' => 'The retention period of the snapshot.'."\n" + ."\n" + .'Unit: days.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'* \\-1 (default). Auto snapshots are permanently retained. After the number of auto snapshots exceeds the upper limit, the earliest auto snapshot is automatically deleted.'."\n" + .'* 1 to 65536: Auto snapshots are retained for the specified days. After the retention period of auto snapshots expires, the auto snapshots are automatically deleted.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'maximum' => '65536', + 'minimum' => '-1', + 'example' => '30', + 'default' => '-1', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'SnapshotId' => [ + 'description' => 'The snapshot ID.'."\n", + 'type' => 'string', + 'example' => 's-extreme-snapsho****', + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3****', + ], + ], + 'description' => '', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"SnapshotId\\": \\"s-extreme-snapsho****\\",\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-A3DC0DE3****\\"\\n}","errorExample":""},{"type":"xml","example":"<SnapshotId>s-extreme-snapsho****</SnapshotId>\\n<RequestId>473469C7-AA6F-4DC5-B3DB-A3DC0DE3****</RequestId>","errorExample":""}]', + 'title' => 'CreateSnapshot', + 'description' => '* The snapshot feature is in public preview and is provided free of charge. [File Storage NAS Service Level Agreement (SLA)](https://www.alibabacloud.com/help/legal/latest/network-attached-storage-service-level-agreement) is not guaranteed in public preview.'."\n" + .'* Only advanced Extreme NAS file systems support the snapshot feature.'."\n" + .'* You can create a maximum of 128 snapshots for a file system.'."\n" + .'* The compute node on which a file system is mounted must function as expected. Otherwise, you cannot create a snapshot for the file system.'."\n" + .'* You can create only one snapshot for a file system at a time.'."\n" + .'* If the file system expires when a snapshot is being created, the file system is released and the snapshot is deleted.'."\n" + .'* When you create a snapshot for a file system, the I/O performance of the file system may be degraded for a short period of time. We recommend that you create snapshots during off-peak hours.'."\n" + .'* A snapshot is a backup of a file system at a specific point in time. After you create a snapshot, incremental data that is generated in the file system will not be synchronized to the snapshot.'."\n" + .'* Manually created snapshots will not be deleted until 15 days after the service is suspended due to overdue payments. We recommend that you delete unnecessary snapshots at regular intervals to prevent extra fees incurred by the snapshots.', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'DeleteSnapshot' => [ + 'summary' => 'Deletes a snapshot or cancels a snapshot that is being created.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'delete', + 'riskType' => 'high', + 'chargeType' => 'free', + 'abilityTreeCode' => '13944', + 'abilityTreeNodes' => [ + 'FEATUREnas5QOAQE', + ], + 'autoTest' => true, + 'tenantRelevance' => 'tenant', + ], + 'parameters' => [ + [ + 'name' => 'SnapshotId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The snapshot ID.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 's-extreme-snapsho****', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n" + ."\n" + .'Every response returns a unique request ID regardless of whether the request is successful.'."\n", + 'type' => 'string', + 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3****', + ], + ], + 'description' => '', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-A3DC0DE3****\\"\\n}","errorExample":""},{"type":"xml","example":"<RequestId>473469C7-AA6F-4DC5-B3DB-A3DC0DE3****</RequestId>","errorExample":""}]', + 'title' => 'DeleteSnapshot', + 'description' => '* The snapshot feature is in public preview and is provided free of charge. [File Storage NAS Service Level Agreement (SLA)](https://www.alibabacloud.com/help/legal/latest/network-attached-storage-service-level-agreement) is not guaranteed in public preview.'."\n" + .'* Only advanced Extreme NAS file systems support this feature.', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'DescribeSnapshots' => [ + 'summary' => 'Queries the information about one or more snapshots of a file system.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '13961', + 'abilityTreeNodes' => [ + 'FEATUREnas5QOAQE', + ], + 'autoTest' => true, + 'tenantRelevance' => 'tenant', + ], + 'parameters' => [ + [ + 'name' => 'FileSystemType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The type of the file system.'."\n" + ."\n" + .'Valid value: extreme, which indicates Extreme File Storage NAS (NAS) file systems.', + 'type' => 'string', + 'required' => false, + 'example' => 'extreme', + 'enum' => [ + 'extreme', + ], + ], + ], + [ + 'name' => 'FileSystemId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the file system.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'extreme-22f****', + ], + ], + [ + 'name' => 'SnapshotIds', + 'in' => 'query', + 'schema' => [ + 'description' => 'The snapshot IDs.'."\n" + ."\n" + .'You can specify a maximum of 100 snapshot IDs. You must separate snapshot IDs with commas (,).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 's-extreme-67pxwk9aevrkr****,s-extreme-snapsho****,s-extreme-6tmsbas6ljhwh****', + ], + ], + [ + 'name' => 'SnapshotName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The snapshot name.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'FinanceJoshua', + ], + ], + [ + 'name' => 'SnapshotType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The type of the snapshot.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'* auto: auto snapshot'."\n" + .'* user: manual snapshot'."\n" + .'* all (default): all snapshot types'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'all', + 'default' => 'all', + 'enum' => [ + 'auto', + 'user', + 'all', + ], + ], + ], + [ + 'name' => 'Status', + 'in' => 'query', + 'schema' => [ + 'description' => 'The status of the snapshot.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'* progressing: The snapshot is being created.'."\n" + .'* accomplished: The snapshot is created.'."\n" + .'* failed: The snapshot fails to be created.'."\n" + .'* all (default): all snapshot states.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'all', + 'default' => 'all', + 'enum' => [ + 'progressing', + 'accomplished', + 'failed', + 'all', + ], + ], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of entries per page.'."\n" + ."\n" + .'Valid values: 1 to 100.'."\n" + ."\n" + .'Default value: 10.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'maximum' => '100', + 'minimum' => '1', + 'example' => '10', + 'default' => '10', + ], + ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => [ + 'description' => 'The page number.'."\n" + ."\n" + .'Pages start from page 1. Default value: 1.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'minimum' => '1', + 'example' => '1', + 'default' => '1', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'TotalCount' => [ + 'description' => 'The total number of snapshots returned.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '36', + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3****', + ], + 'PageSize' => [ + 'description' => 'The number of entries per page.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '10', + ], + 'PageNumber' => [ + 'description' => 'The page number.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '1', + ], + 'Snapshots' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'Snapshot' => [ + 'description' => 'The details about snapshots.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Status' => [ + 'description' => 'The status of the snapshot.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'* progressing: The snapshot is being created.'."\n" + .'* accomplished: The snapshot is created.'."\n" + .'* failed: The snapshot fails to be created.'."\n", + 'type' => 'string', + 'example' => 'accomplished', + ], + 'Progress' => [ + 'description' => 'The progress of the snapshot creation. The value of this parameter is expressed as a percentage.'."\n", + 'type' => 'string', + 'example' => '100', + ], + 'CreateTime' => [ + 'description' => 'The time when the snapshot was created.'."\n" + ."\n" + .'The time follows the [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) standard in UTC. The time is displayed in the `yyyy-MM-ddThh:mmZ` format.'."\n", + 'type' => 'string', + 'example' => '2014-07-24T13:00:52Z', + ], + 'SourceFileSystemId' => [ + 'description' => 'The ID of the source file system.'."\n" + ."\n" + .'This parameter is retained even if the source file system of the snapshot is deleted.'."\n", + 'type' => 'string', + 'example' => 'extreme-012****', + ], + 'RetentionDays' => [ + 'description' => 'The retention period of the auto snapshot.'."\n" + ."\n" + .'Unit: days.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'* \\-1: Auto snapshots are permanently retained. After the number of auto snapshots exceeds the upper limit, the earliest auto snapshot is automatically deleted.'."\n" + .'* 1 to 65536: Auto snapshots are retained for the specified days. After the retention period of auto snapshots expires, the auto snapshots are automatically deleted.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '30', + ], + 'RemainTime' => [ + 'description' => 'The remaining time that is required to create the snapshot.'."\n" + ."\n" + .'Unit: seconds.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '38', + ], + 'SourceFileSystemSize' => [ + 'description' => 'The capacity of the source file system.'."\n" + ."\n" + .'Unit: GiB.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '2000', + ], + 'SourceFileSystemVersion' => [ + 'description' => 'The version of the source file system.'."\n", + 'type' => 'string', + 'example' => '1', + ], + 'SnapshotName' => [ + 'description' => 'The snapshot name.'."\n" + ."\n" + .'If you specify a name to create a snapshot, the name of the snapshot is returned. Otherwise, no value is returned for this parameter.'."\n", + 'type' => 'string', + 'example' => 'FinanceJoshua', + ], + 'EncryptType' => [ + 'description' => 'Indicates whether the snapshot is encrypted.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'* 0: The snapshot is not encrypted.'."\n" + .'* 1: The snapshot is encrypted.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '1', + ], + 'Description' => [ + 'description' => 'The description of the snapshot.'."\n", + 'type' => 'string', + 'example' => 'FinanceDept', + ], + 'SnapshotId' => [ + 'description' => 'The snapshot ID.'."\n", + 'type' => 'string', + 'example' => 's-extreme-snapsho****', + ], + 'FileSystemType' => [ + 'description' => 'The type of the file system.'."\n", + 'type' => 'string', + 'example' => 'extreme', + ], + 'SnapshotType' => [ + 'description' => 'The snapshot type. Valid values:'."\n" + ."\n" + .'* auto: automatically created snapshots'."\n" + .'* user: manually created snapshots'."\n", + 'type' => 'string', + 'example' => 'user', + ], + 'CompletedTime' => [ + 'description' => 'The time when snapshot creation was complete.'."\n" + ."\n" + .'The time follows the [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) standard in UTC. The time is displayed in the `yyyy-MM-ddThh:mmZ` format.'."\n" + ."\n" + .'> This parameter is valid only when the snapshot is created. During snapshot creation, the value of this parameter is the same as that of CreateTime.'."\n", + 'type' => 'string', + 'example' => '2014-07-24T13:10:52Z', + ], + ], + 'description' => '', + ], + ], + ], + ], + ], + 'description' => '', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"TotalCount\\": 36,\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-A3DC0DE3****\\",\\n \\"PageSize\\": 10,\\n \\"PageNumber\\": 1,\\n \\"Snapshots\\": {\\n \\"Snapshot\\": [\\n {\\n \\"Status\\": \\"accomplished\\",\\n \\"Progress\\": \\"100\\",\\n \\"CreateTime\\": \\"2014-07-24T13:00:52Z\\",\\n \\"SourceFileSystemId\\": \\"extreme-012****\\",\\n \\"RetentionDays\\": 30,\\n \\"RemainTime\\": 38,\\n \\"SourceFileSystemSize\\": 2000,\\n \\"SourceFileSystemVersion\\": \\"1\\",\\n \\"SnapshotName\\": \\"FinanceJoshua\\",\\n \\"EncryptType\\": 1,\\n \\"Description\\": \\"FinanceDept\\",\\n \\"SnapshotId\\": \\"s-extreme-snapsho****\\",\\n \\"FileSystemType\\": \\"extreme\\",\\n \\"SnapshotType\\": \\"user\\",\\n \\"CompletedTime\\": \\"2014-07-24T13:10:52Z\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<DescribeSnapshotsResponse>\\n <TotalCount>36</TotalCount>\\n <PageSize>10</PageSize>\\n <RequestId>473469C7-AA6F-4DC5-B3DB-A3DC0DE3****</RequestId>\\n <PageNumber>1</PageNumber>\\n <Snapshots>\\n <Snapshot>\\n <Status>accomplished</Status>\\n <Progress>100</Progress>\\n <Description>FinanceDept</Description>\\n <SourceFileSystemVersion>1</SourceFileSystemVersion>\\n <CreateTime>2014-07-24T13:00:52Z</CreateTime>\\n <SourceFileSystemId>extreme-012****</SourceFileSystemId>\\n <RetentionDays>30</RetentionDays>\\n <SnapshotName>FinanceJoshua</SnapshotName>\\n <SnapshotId>s-extreme-snapsho****</SnapshotId>\\n <SourceFileSystemSize>2000</SourceFileSystemSize>\\n <EncryptType>1</EncryptType>\\n <RemainTime>38</RemainTime>\\n </Snapshot>\\n </Snapshots>\\n</DescribeSnapshotsResponse>","errorExample":""}]', + 'title' => 'DescribeSnapshots', + 'description' => '* The snapshot feature is in public preview and is provided free of charge. [File Storage NAS Service Level Agreement (SLA)](https://www.alibabacloud.com/help/legal/latest/network-attached-storage-service-level-agreement) is not guaranteed in public preview.'."\n" + .'* Only advanced Extreme NAS file systems support this feature.', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'CreateAutoSnapshotPolicy' => [ + 'summary' => 'Creates an automatic snapshot policy.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'readAndWrite', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'create', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '13929', + 'abilityTreeNodes' => [ + 'FEATUREnas5QOAQE', + ], + 'autoTest' => true, + 'tenantRelevance' => 'publicInformation', + ], + 'parameters' => [ + [ + 'name' => 'RepeatWeekdays', + 'in' => 'query', + 'schema' => [ + 'description' => 'The days of a week on which to create automatic snapshots.'."\n" + ."\n" + .'Cycle: week.'."\n" + ."\n" + .'Valid values: 1 to 7. The values from 1 to 7 indicate the seven days in a week from Monday to Sunday.'."\n" + ."\n" + .'If you want to create multiple auto snapshots within a week, you can specify multiple days from Monday to Sunday and separate the days with commas (,). You can specify a maximum of seven days.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '1,2,3', + ], + ], + [ + 'name' => 'TimePoints', + 'in' => 'query', + 'schema' => [ + 'description' => 'The points in time at which auto snapshots were created.'."\n" + ."\n" + .'Unit: hours.'."\n" + ."\n" + .'Valid values: 0 to 23. The values from 0 to 23 indicate a total of 24 hours from 00:00 to 23:00. For example, the value 1 indicates 01:00.'."\n" + ."\n" + .'If you want to create multiple auto snapshots within a day, you can specify multiple points in time and separate the points in time with commas (,). You can specify a maximum of 24 points in time.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '0,1,…23', + ], + ], + [ + 'name' => 'RetentionDays', + 'in' => 'query', + 'schema' => [ + 'description' => 'The retention period of auto snapshots.'."\n" + ."\n" + .'Unit: days.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'* \\-1 (default). Auto snapshots are permanently retained. After the number of auto snapshots exceeds the upper limit, the earliest auto snapshot is automatically deleted.'."\n" + .'* 1 to 65536: Auto snapshots are retained for the specified days. After the retention period of auto snapshots expires, the auto snapshots are automatically deleted.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'maximum' => '65536', + 'minimum' => '-1', + 'example' => '30', + 'default' => '-1', + ], + ], + [ + 'name' => 'AutoSnapshotPolicyName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the automatic snapshot policy.'."\n" + ."\n" + .'Limits:'."\n" + ."\n" + .'* The name must be 2 to 128 characters in length.'."\n" + .'* The name must start with a letter.'."\n" + .'* The name can contain digits, colons (:), underscores (\\_), and hyphens (-). It cannot start with `http://` or `https://`.'."\n" + .'* This parameter is empty by default.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'FinanceJoshua', + ], + ], + [ + 'name' => 'FileSystemType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The type of the file system.'."\n" + ."\n" + .'Valid value: extreme, which indicates Extreme NAS file systems.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'extreme', + 'enum' => [ + 'extreme', + ], + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3****', + ], + 'AutoSnapshotPolicyId' => [ + 'description' => 'The ID of the automatic snapshot policy.'."\n", + 'type' => 'string', + 'example' => 'sp-extreme-233e6****', + ], + ], + 'description' => '', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-A3DC0DE3****\\",\\n \\"AutoSnapshotPolicyId\\": \\"sp-extreme-233e6****\\"\\n}","errorExample":""},{"type":"xml","example":"<RequestId>473469C7-AA6F-4DC5-B3DB-A3DC0DE3****</RequestId>\\n<AutoSnapshotPolicyId>sp-extreme-233e6****</AutoSnapshotPolicyId>","errorExample":""}]', + 'title' => 'CreateAutoSnapshotPolicy', + 'description' => '* The snapshot feature is in public preview and is provided free of charge. [File Storage NAS Service Level Agreement (SLA)](https://www.alibabacloud.com/help/legal/latest/network-attached-storage-service-level-agreement) is not guaranteed in public preview.'."\n" + .'* Only advanced Extreme NAS file systems support the snapshot feature.'."\n" + .'* You can create a maximum of 100 automatic snapshot policies in each region for an Alibaba Cloud account.'."\n" + .'* If an auto snapshot is being created when the scheduled time for a new auto snapshot arrives, the creation of the new snapshot is skipped. This occurs if the file system stores a large volume of data. For example, you have scheduled auto snapshots to be created at 09:00:00, 10:00:00, 11:00:00, and 12:00:00 for a file system. The system starts to create an auto snapshot at 09:00:00 and does not complete the process until 10:20:00. The process takes 80 minutes because the file system has a large volume of data. In this case, the system does not create an auto snapshot at 10:00:00, but creates an auto snapshot at 11:00:00.'."\n" + .'* A maximum of 128 auto snapshots can be created for a file system. If the upper limit is reached, the earliest auto snapshot is deleted. This rule does not apply to manual snapshots.'."\n" + .'* If you modify the retention period of an automatic snapshot policy, the modification applies only to subsequent snapshots, but not to the existing snapshots.'."\n" + .'* If an auto snapshot is being created for a file system, you cannot create a manual snapshot for the file system. You must wait after the auto snapshot is created.'."\n" + .'* You can only apply automatic snapshot policies to a file system that is in the Running state.'."\n" + .'* All auto snapshots are named in the `auto_yyyyMMdd_X` format, where: `auto` indicates that the snapshot is created based on an automatic snapshot policy. `yyyyMMdd` indicates the date on which the snapshot is created. `y` indicates the year. `M` indicates the month. `d` indicates the day. `X` indicates the ordinal number of the snapshot on the current day. For example, `auto_20201018_1` indicates the first auto snapshot that was created on October 18, 2020.'."\n" + .'* After an automatic snapshot policy is created, you can call the ApplyAutoSnapshotPolicy operation to apply the policy to a file system and call the ModifyAutoSnapshotPolicy operation to modify the policy.', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'DeleteAutoSnapshotPolicy' => [ + 'summary' => 'Deletes an automatic snapshot policy.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'delete', + 'riskType' => 'high', + 'chargeType' => 'free', + 'abilityTreeCode' => '13938', + 'abilityTreeNodes' => [ + 'FEATUREnas5QOAQE', + ], + 'autoTest' => true, + 'tenantRelevance' => 'tenant', + ], + 'parameters' => [ + [ + 'name' => 'AutoSnapshotPolicyId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the automatic snapshot policy.'."\n" + ."\n" + .'You can call the [DescribeAutoSnapshotPolicies](~~126583~~) operation to view available automatic snapshot policies.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'sp-extreme-233e6****', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n" + ."\n" + .'Every response returns a unique request ID regardless of whether the request is successful.'."\n", + 'type' => 'string', + 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3****', + ], + ], + 'description' => '', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-A3DC0DE3****\\"\\n}","errorExample":""},{"type":"xml","example":"<RequestId>473469C7-AA6F-4DC5-B3DB-A3DC0DE3****</RequestId>","errorExample":""}]', + 'title' => 'DeleteAutoSnapshotPolicy', + 'description' => '* The snapshot feature is in public preview and is provided free of charge. [File Storage NAS Service Level Agreement (SLA)](https://www.alibabacloud.com/help/legal/latest/network-attached-storage-service-level-agreement) is not guaranteed in public preview.'."\n" + .'* Only advanced Extreme NAS file systems support the snapshot feature.'."\n" + .'* If you delete an automatic snapshot policy that is applied to a file system, snapshots for the file system are no longer created based on the policy.', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'ModifyAutoSnapshotPolicy' => [ + 'summary' => 'An automatic snapshot policy is modified. After you modify an automatic snapshot policy that is applied to a file system, the modification immediately applies to subsequent snapshots that are created for the file system.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '13975', + 'abilityTreeNodes' => [ + 'FEATUREnas5QOAQE', + ], + 'autoTest' => true, + 'tenantRelevance' => 'tenant', + ], + 'parameters' => [ + [ + 'name' => 'AutoSnapshotPolicyId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the automatic snapshot policy.'."\n" + ."\n" + .'You can call the DescribeAutoSnapshotPolicies operation to view available automatic snapshot policies.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'sp-extreme-233e6****', + ], + ], + [ + 'name' => 'AutoSnapshotPolicyName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the automatic snapshot policy. If you do not specify this parameter, the policy name is not changed.'."\n" + ."\n" + .'Limits:'."\n" + ."\n" + .'* The name must be 2 to 128 characters in length.'."\n" + .'* The name must start with a letter.'."\n" + .'* The name can contain digits, letters, colons (:), underscores (\\_), and hyphens (-). It cannot start with `http://` or `https://`.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'FinanceJoshua', + ], + ], + [ + 'name' => 'RepeatWeekdays', + 'in' => 'query', + 'schema' => [ + 'description' => 'The days of a week on which auto snapshots are created.'."\n" + ."\n" + .'Cycle: week.'."\n" + ."\n" + .'Valid values: 1 to 7. The value 1 indicates Monday. If you want to create multiple auto snapshots within a week, you can specify multiple days from Monday to Sunday and separate the days with commas (,). You can specify a maximum of seven days.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '1,7', + ], + ], + [ + 'name' => 'RetentionDays', + 'in' => 'query', + 'schema' => [ + 'description' => 'The retention period of auto snapshots.'."\n" + ."\n" + .'Unit: days.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'* \\-1 (default): Auto snapshots are permanently retained. After the number of auto snapshots exceeds the upper limit, the earliest auto snapshot is automatically deleted.'."\n" + .'* 1 to 65536: Auto snapshots are retained for the specified number of days. After the retention period of auto snapshots expires, the auto snapshots are automatically deleted.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'maximum' => '65536', + 'minimum' => '-1', + 'example' => '30', + 'default' => '-1', + ], + ], + [ + 'name' => 'TimePoints', + 'in' => 'query', + 'schema' => [ + 'description' => 'The points in time at which auto snapshots are created.'."\n" + ."\n" + .'Unit: hours.'."\n" + ."\n" + .'Valid values: 0 to 23. The values from 0 to 23 indicate a total of 24 hours from 00:00 to 23:00. For example, the value 1 indicates 01:00. If you want to create multiple auto snapshots within a day, you can specify multiple points in time and separate the points in time with commas (,). You can specify a maximum of 24 points in time.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '0,1', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n" + ."\n" + .'Every response returns a unique request ID regardless of whether the request is successful.'."\n", + 'type' => 'string', + 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3****', + ], + ], + 'description' => '', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-A3DC0DE3****\\"\\n}","errorExample":""},{"type":"xml","example":"<ModifyAutoSnapshotPolicyResponse>\\n <RequestId>473469C7-AA6F-4DC5-B3DB-A3DC0DE3****</RequestId>\\n</ModifyAutoSnapshotPolicyResponse>","errorExample":""}]', + 'title' => 'ModifyAutoSnapshotPolicy', + 'description' => '* The snapshot feature is in public preview and is provided free of charge. [File Storage NAS Service Level Agreement (SLA)](https://www.alibabacloud.com/help/legal/latest/network-attached-storage-service-level-agreement) is not guaranteed in public preview.'."\n" + .'* Only advanced Extreme NAS file systems support this feature.', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'ApplyAutoSnapshotPolicy' => [ + 'summary' => 'Applies an automatic snapshot policy to one or more file systems.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '13918', + 'abilityTreeNodes' => [ + 'FEATUREnasI92PYN', + ], + 'autoTest' => true, + 'tenantRelevance' => 'tenant', + ], + 'parameters' => [ + [ + 'name' => 'AutoSnapshotPolicyId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the automatic snapshot policy.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'sp-extreme-233e6****', + ], + ], + [ + 'name' => 'FileSystemIds', + 'in' => 'query', + 'schema' => [ + 'description' => 'The IDs of advanced Extreme NAS file systems.'."\n" + ."\n" + .'You can specify a maximum of 100 file system IDs at a time. If you want to apply an automatic snapshot policy to multiple file systems, separate the file system IDs with commas (,).'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'extreme-233e6****,extreme -23vbp****,extreme -23vas****', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3****', + ], + ], + 'description' => '', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-A3DC0DE3****\\"\\n}","errorExample":""},{"type":"xml","example":"<RequestId>473469C7-AA6F-4DC5-B3DB-A3DC0DE3****</RequestId>","errorExample":""}]', + 'title' => 'ApplyAutoSnapshotPolicy', + 'description' => '* The snapshot feature is in public preview and is provided free of charge. [File Storage NAS Service Level Agreement (SLA)](https://www.alibabacloud.com/help/legal/latest/network-attached-storage-service-level-agreement) is not guaranteed in public preview.'."\n" + .'* Only advanced Extreme NAS file systems support this feature.'."\n" + .'* You can apply only one automatic snapshot policy to each file system.'."\n" + .'* Each automatic snapshot policy can be applied to multiple file systems.'."\n" + .'* If an automatic snapshot policy is applied to a file system, you can call the ApplyAutoSnapshotPolicy operation to change the automatic snapshot policy.', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'CancelAutoSnapshotPolicy' => [ + 'summary' => 'Removes automatic snapshot policies from one or more file systems.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'high', + 'chargeType' => 'free', + 'abilityTreeCode' => '13920', + 'abilityTreeNodes' => [ + 'FEATUREnas5QOAQE', + ], + 'autoTest' => true, + 'tenantRelevance' => 'tenant', + ], + 'parameters' => [ + [ + 'name' => 'FileSystemIds', + 'in' => 'query', + 'schema' => [ + 'description' => 'The IDs of file systems.'."\n" + ."\n" + .'You can specify a maximum of 100 file system IDs. If you want to remove automatic snapshot policies from multiple file systems, separate the file system IDs with commas (,).'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'extreme-233e6****,extreme-23vbp****,extreme-23vas****', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n" + ."\n" + .'Every response returns a unique request ID regardless of whether the request is successful.'."\n", + 'type' => 'string', + 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DED****', + ], + ], + 'description' => '', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-A3DC0DED****\\"\\n}","errorExample":""},{"type":"xml","example":"<RequestId>473469C7-AA6F-4DC5-B3DB-A3DC0DED****</RequestId>","errorExample":""}]', + 'title' => 'CancelAutoSnapshotPolicy', + 'description' => '* The snapshot feature is in public preview and is provided free of charge. [File Storage NAS Service Level Agreement (SLA)](https://www.alibabacloud.com/help/legal/latest/network-attached-storage-service-level-agreement) is not guaranteed in public preview.'."\n" + .'* Only advanced Extreme NAS file systems support this feature.', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'DescribeAutoSnapshotPolicies' => [ + 'summary' => 'Queries automatic snapshot policies.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'list', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '13947', + 'abilityTreeNodes' => [ + 'FEATUREnas5QOAQE', + ], + 'autoTest' => true, + 'tenantRelevance' => 'tenant', + ], + 'parameters' => [ + [ + 'name' => 'AutoSnapshotPolicyId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the automatic snapshot policy.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'sp-extreme-233e6****', + ], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of entries per page.'."\n" + ."\n" + .'Valid values: 1 to 100.'."\n" + ."\n" + .'Default value: 10.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'maximum' => '100', + 'minimum' => '1', + 'example' => '10', + 'default' => '10', + ], + ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => [ + 'description' => 'The page number.'."\n" + ."\n" + .'Pages start from page 1. Default value: 1.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'minimum' => '1', + 'example' => '1', + 'default' => '1', + ], + ], + [ + 'name' => 'FileSystemType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The type of the file system.'."\n" + ."\n" + .'Valid value: extreme, which indicates Extreme File Storage NAS (NAS) file systems.', + 'type' => 'string', + 'required' => false, + 'example' => 'extreme', + 'enum' => [ + 'extreme', + ], + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'TotalCount' => [ + 'description' => 'The total number of automatic snapshot policies.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '2', + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E', + ], + 'PageSize' => [ + 'description' => 'The number of entries per page.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '10', + ], + 'PageNumber' => [ + 'description' => 'The page number.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '1', + ], + 'AutoSnapshotPolicies' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'AutoSnapshotPolicy' => [ + 'description' => 'The queried automatic snapshot policies.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'TimePoints' => [ + 'description' => 'The points in time at which auto snapshots are created.'."\n" + ."\n" + .'Unit: hours.'."\n" + ."\n" + .'Valid values: `0 to 23`. The values from 0 to 23 indicate a total of 24 hours from `00:00 to 23:00`. For example, 1 indicates 01:00. A maximum of 24 points in time can be returned. Multiple points in time are separated with commas (,).'."\n", + 'type' => 'string', + 'example' => '4,19', + ], + 'Status' => [ + 'description' => 'The status of the automatic snapshot policy.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'* Creating: The automatic snapshot policy is being created.'."\n" + .'* Available: The automatic snapshot policy is available.'."\n", + 'type' => 'string', + 'example' => 'Available', + ], + 'RepeatWeekdays' => [ + 'description' => 'The days of a week on which auto snapshots are created.'."\n" + ."\n" + .'Auto snapshots are created on a weekly basis.'."\n" + ."\n" + .'Valid values: 1 to 7. The values from 1 to 7 indicate 7 days in a week from Monday to Sunday.'."\n", + 'type' => 'string', + 'example' => '1,5', + ], + 'AutoSnapshotPolicyName' => [ + 'description' => 'The name of the automatic snapshot policy.'."\n", + 'type' => 'string', + 'example' => 'FinanceJoshua', + ], + 'CreateTime' => [ + 'description' => 'The time when the automatic snapshot policy was created.'."\n" + ."\n" + .'The time follows the [ISO8601](https://www.iso.org/iso-8601-date-and-time-format.html) standard in the `yyyy-MM-ddTHH:mm:ssZ` format. The time is displayed in UTC.'."\n", + 'type' => 'string', + 'example' => '2014-04-21T12:08:52Z', + ], + 'AutoSnapshotPolicyId' => [ + 'description' => 'The ID of the automatic snapshot policy.'."\n", + 'type' => 'string', + 'example' => 'sp-extreme-233e6****', + ], + 'RetentionDays' => [ + 'description' => 'The retention period of auto snapshots.'."\n" + ."\n" + .'Unit: days.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'* \\-1: Auto snapshots are permanently retained. After the number of auto snapshots exceeds the upper limit, the earliest auto snapshot is automatically deleted.'."\n" + .'* 1 to 65536: Auto snapshots are retained for the specified days. After the retention period of auto snapshots expires, the auto snapshots are automatically deleted.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '30', + ], + 'FileSystemNums' => [ + 'description' => 'The number of file systems to which the automatic snapshot policy applies.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '2', + ], + 'RegionId' => [ + 'description' => 'The region ID of the automatic snapshot policy.'."\n", + 'type' => 'string', + 'example' => 'cn-hangzhou', + ], + 'FileSystemType' => [ + 'description' => 'The type of the file system.'."\n", + 'type' => 'string', + 'example' => 'extreme', + ], + ], + 'description' => '', + ], + ], + ], + ], + ], + 'description' => '', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"TotalCount\\": 2,\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E\\",\\n \\"PageSize\\": 10,\\n \\"PageNumber\\": 1,\\n \\"AutoSnapshotPolicies\\": {\\n \\"AutoSnapshotPolicy\\": [\\n {\\n \\"TimePoints\\": \\"4,19\\",\\n \\"Status\\": \\"Available\\",\\n \\"RepeatWeekdays\\": \\"1,5\\",\\n \\"AutoSnapshotPolicyName\\": \\"FinanceJoshua\\",\\n \\"CreateTime\\": \\"2014-04-21T12:08:52Z\\",\\n \\"AutoSnapshotPolicyId\\": \\"sp-extreme-233e6****\\",\\n \\"RetentionDays\\": 30,\\n \\"FileSystemNums\\": 2,\\n \\"RegionId\\": \\"cn-hangzhou\\",\\n \\"FileSystemType\\": \\"extreme\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<DescribeAutoSnapshotPoliciesResponse>\\n <TotalCount>2</TotalCount>\\n <RequestId>473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E</RequestId>\\n <PageSize>10</PageSize>\\n <PageNumber>1</PageNumber>\\n <AutoSnapshotPolicies>\\n <TimePoints>4,19</TimePoints>\\n <Status>Available</Status>\\n <RepeatWeekdays>1,5</RepeatWeekdays>\\n <AutoSnapshotPolicyName>FinanceJoshua</AutoSnapshotPolicyName>\\n <CreateTime>2014-04-21T12:08:52Z</CreateTime>\\n <AutoSnapshotPolicyId>sp-extreme-233e6****</AutoSnapshotPolicyId>\\n <RetentionDays>30</RetentionDays>\\n <FileSystemNums>2</FileSystemNums>\\n <RegionId>cn-hangzhou</RegionId>\\n </AutoSnapshotPolicies>\\n</DescribeAutoSnapshotPoliciesResponse>","errorExample":""}]', + 'title' => 'DescribeAutoSnapshotPolicies', + 'description' => '* The snapshot feature is in public preview and is provided free of charge. [File Storage NAS Service Level Agreement (SLA)](https://www.alibabacloud.com/help/legal/latest/network-attached-storage-service-level-agreement) is not guaranteed in public preview.'."\n" + .'* Only advanced Extreme NAS file systems support this feature.', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'DescribeAutoSnapshotTasks' => [ + 'summary' => 'Queries automatic snapshot tasks.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'list', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '13948', + 'abilityTreeNodes' => [ + 'FEATUREnas5QOAQE', + ], + 'autoTest' => true, + 'tenantRelevance' => 'tenant', + ], + 'parameters' => [ + [ + 'name' => 'FileSystemIds', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the file system.'."\n" + ."\n" + .'You can specify a maximum of 100 file system IDs. If you want to query the snapshots of multiple file systems, you must separate the file system IDs with commas (,).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'extreme-233e6****,extreme -23vbp****,extreme -23vas****', + ], + ], + [ + 'name' => 'AutoSnapshotPolicyIds', + 'in' => 'query', + 'schema' => [ + 'description' => 'The IDs of automatic snapshot policies.'."\n" + ."\n" + .'You can specify a maximum of 100 policy IDs. If you want to query the tasks of multiple automatic snapshot policies, you must separate the policy IDs with commas (,).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'sp-extreme-233e6****,sp-extreme-233e6****, sp-extreme-233e6****', + ], + ], + [ + 'name' => 'FileSystemType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The type of the file system.'."\n" + ."\n" + .'Valid value: extreme, which indicates Extreme NAS file systems.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'extreme', + 'enum' => [ + 'extreme', + ], + ], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => [ + 'description' => 'The page number.'."\n" + ."\n" + .'Pages start from page 1. Default value: 1.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'maximum' => '100', + 'minimum' => '1', + 'example' => '1', + 'default' => '10', + ], + ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of entries per page.'."\n" + ."\n" + .'Valid values: 1 to 100.'."\n" + ."\n" + .'Default value: 10.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'minimum' => '1', + 'example' => '10', + 'default' => '1', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'TotalCount' => [ + 'description' => 'The total number of automatic snapshot tasks.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '9', + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3****', + ], + 'PageSize' => [ + 'description' => 'The number of entries per page.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '10', + ], + 'PageNumber' => [ + 'description' => 'The page number.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '1', + ], + 'AutoSnapshotTasks' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'AutoSnapshotTask' => [ + 'description' => 'The queried automatic snapshot tasks.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'SourceFileSystemId' => [ + 'description' => 'The ID of the file system.'."\n", + 'type' => 'string', + 'example' => 'extreme-233e6****', + ], + 'AutoSnapshotPolicyId' => [ + 'description' => 'The ID of the automatic snapshot policy.'."\n", + 'type' => 'string', + 'example' => 'sp-extreme-233e6****', + ], + ], + ], + ], + ], + ], + ], + 'description' => '', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"TotalCount\\": 9,\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-A3DC0DE3****\\",\\n \\"PageSize\\": 10,\\n \\"PageNumber\\": 1,\\n \\"AutoSnapshotTasks\\": {\\n \\"AutoSnapshotTask\\": [\\n {\\n \\"SourceFileSystemId\\": \\"extreme-233e6****\\",\\n \\"AutoSnapshotPolicyId\\": \\"sp-extreme-233e6****\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<DescribeAutoSnapshotTasksResponse>\\n <TotalCount>9</TotalCount>\\n <PageSize>10</PageSize>\\n <RequestId>473469C7-AA6F-4DC5-B3DB-A3DC0DE3****</RequestId>\\n <PageNumber>1</PageNumber>\\n <AutoSnapshotTasks>\\n <AutoSnapshotTask>\\n <SourceFileSystemId>extreme-233e6****</SourceFileSystemId>\\n <AutoSnapshotPolicyId>sp-extreme-233e6****</AutoSnapshotPolicyId>\\n </AutoSnapshotTask>\\n </AutoSnapshotTasks>\\n</DescribeAutoSnapshotTasksResponse>","errorExample":""}]', + 'title' => 'DescribeAutoSnapshotTasks', + 'description' => '* The snapshot feature is in public preview and is provided free of charge. [File Storage NAS Service Level Agreement (SLA)](https://www.alibabacloud.com/help/legal/latest/network-attached-storage-service-level-agreement) is not guaranteed in public preview.'."\n" + .'* Only advanced Extreme NAS file systems support the snapshot feature.', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'ResetFileSystem' => [ + 'summary' => 'Rolls back a file system to a snapshot of the file system.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'high', + 'chargeType' => 'paid', + 'abilityTreeCode' => '13984', + 'abilityTreeNodes' => [ + 'FEATUREnas5QOAQE', + 'FEATUREnas6KFX9N', + ], + 'autoTest' => true, + 'tenantRelevance' => 'tenant', + ], + 'parameters' => [ + [ + 'name' => 'FileSystemId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the advanced Extreme NAS file system.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'extreme-012dd****', + ], + ], + [ + 'name' => 'SnapshotId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The snapshot ID.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 's-extreme-snapsho****', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3****', + ], + ], + 'description' => '', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-A3DC0DE3****\\"\\n}","errorExample":""},{"type":"xml","example":"<RequestId>473469C7-AA6F-4DC5-B3DB-A3DC0DE3****</RequestId>","errorExample":""}]', + 'title' => 'ResetFileSystem', + 'description' => '* The snapshot feature is in public preview and is provided free of charge. [File Storage NAS Service Level Agreement (SLA)](https://www.alibabacloud.com/help/legal/latest/network-attached-storage-service-level-agreement) is not guaranteed in public preview.'."\n" + .'* Only advanced Extreme NAS file systems support this feature.'."\n" + .'* The file system must be in the Running state.'."\n" + .'* To roll back a file system to a snapshot, you must specify the ID of the snapshot that is created from the file system.', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'TagResources' => [ + 'summary' => 'Creates and adds tags to specified resources. File systems and access points are supported.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'create', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '13986', + 'abilityTreeNodes' => [ + 'FEATUREnasI92PYN', + ], + 'autoTest' => true, + 'tenantRelevance' => 'tenant', + ], + 'parameters' => [ + [ + 'name' => 'ResourceType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The resource type. Set the value to filesystem.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'filesystem', + ], + ], + [ + 'name' => 'ResourceId', + 'in' => 'query', + 'style' => 'repeatList', + 'schema' => [ + 'description' => 'The resource IDs. Valid values of N: 1 to 50.', + 'type' => 'array', + 'items' => [ + 'description' => 'The ID of the file system.'."\n" + ."\n" + .'* Sample ID of a General-purpose NAS file system: 31a8e4\\*\\*\\*\\*.'."\n" + .'* The IDs of Extreme NAS file systems must start with `extreme-`, for example, `extreme-0015****`.'."\n" + .'* The IDs of CPFS file systems must start with `cpfs-`, for example, `cpfs-125487****`.'."\n" + ."\n" + .'> * You can bind a tag to one or more file systems. You can specify up to 50 file system IDs.'."\n" + .'> * CPFS file systems are available only on the China site (aliyun.com).', + 'type' => 'string', + 'required' => false, + 'example' => '31a8e4****', + ], + 'required' => true, + 'example' => '03e08484f0', + 'maxItems' => 51, + ], + ], + [ + 'name' => 'Tag', + 'in' => 'query', + 'style' => 'repeatList', + 'schema' => [ + 'description' => 'The details about the tags.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Key' => [ + 'description' => 'The key of tag N to add to the resource.'."\n" + ."\n" + .'Limits:'."\n" + ."\n" + .'* The tag key cannot be left empty.'."\n" + .'* Valid values of N: 1 to 20.'."\n" + .'* The tag key must be 1 to 128 characters in length.'."\n" + .'* The tag key cannot start with `aliyun` or `acs:`.'."\n" + .'* The tag key cannot contain `http://` or `https://`.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'nastest', + ], + 'Value' => [ + 'description' => 'The value of tag N to add to the resource.'."\n" + ."\n" + .'Limits:'."\n" + ."\n" + .'* Valid values of N: 1 to 20.'."\n" + .'* The tag value must be 1 to 128 characters in length.'."\n" + .'* The tag value cannot start with `aliyun` or `acs:`.'."\n" + .'* The tag value cannot contain `http://` or `https://`.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'filetest', + ], + ], + 'required' => false, + ], + 'required' => true, + 'maxItems' => 21, + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '2D69A58F-345C-4FDE-88E4-BF518948****', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'NumberExceed.ResourceIds', + 'errorMessage' => 'The maximum number of ResourceIds is exceeded. The maximum is 50.', + ], + [ + 'errorCode' => 'MissingParameter.ResourceIds', + 'errorMessage' => 'You must specify ResourceIds.', + ], + [ + 'errorCode' => 'Duplicate.ResourceId', + 'errorMessage' => 'The request contains duplicated ResourceId.', + ], + [ + 'errorCode' => 'NumberExceed.Tags', + 'errorMessage' => 'The maximum number of Tags is exceeded. The maximum is 20.', + ], + [ + 'errorCode' => 'Duplicate.TagKey', + 'errorMessage' => 'The Tag.N.Key contains a duplicated key.', + ], + [ + 'errorCode' => 'InvalidResourceId.NotFound', + 'errorMessage' => 'The ResourceId does not exist.', + ], + [ + 'errorCode' => 'InvalidParameter.TagKey', + 'errorMessage' => 'The specified Tag.n.Key is invalid.', + ], + [ + 'errorCode' => 'InvalidParameter.TagValue', + 'errorMessage' => 'The specified Tag.n.Value is invalid.', + ], + [ + 'errorCode' => 'CustomTag.NumberExceed', + 'errorMessage' => 'The maximum number of system tags for each resource is 20.', + ], + ], + 403 => [ + [ + 'errorCode' => 'OperationDenied.KeyValueNotNull', + 'errorMessage' => 'The key value cannot be null.', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"2D69A58F-345C-4FDE-88E4-BF518948****\\"\\n}","errorExample":""},{"type":"xml","example":"<TagResorucesResponse>\\r\\n <RequestId>2D69A58F-345C-4FDE-88E4-BF518948****</RequestId>\\r\\n</TagResourcesResponse>","errorExample":""}]', + 'title' => 'TagResources', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'UntagResources' => [ + 'summary' => 'Deletes a tag from a specified resource.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'delete', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '13987', + 'abilityTreeNodes' => [ + 'FEATUREnasI92PYN', + ], + 'autoTest' => true, + 'tenantRelevance' => 'tenant', + ], + 'parameters' => [ + [ + 'name' => 'ResourceType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The resource type.'."\n" + ."\n" + .'Set the value to filesystem.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'filesystem', + ], + ], + [ + 'name' => 'All', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to remove all tags from the file system.'."\n" + ."\n" + .'This parameter is valid only if the TagKey.N parameter is not specified.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'* true: All tags are removed from the file system. If the file system does not have tags, a success message is returned.'."\n" + .'* false (default): No tags are removed from the file system and a success message is returned.'."\n", + 'type' => 'boolean', + 'required' => false, + 'example' => 'false', + ], + ], + [ + 'name' => 'ResourceId', + 'in' => 'query', + 'style' => 'repeatList', + 'schema' => [ + 'description' => 'The resource IDs. Valid values of N: 1 to 50.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The ID of the file system.'."\n" + ."\n" + .'* Sample ID of a General-purpose NAS file system: 31a8e4\\*\\*\\*\\*.'."\n" + .'* The IDs of Extreme NAS file systems must start with extreme-, for example, extreme-0015\\*\\*\\*\\*.'."\n" + .'* The IDs of Cloud Parallel File Storage (CPFS) file systems must start with gcpfs-g, for example, cpfs-125487\\*\\*\\*\\*.'."\n" + ."\n" + .'> CPFS file systems are available only on the China site (aliyun.com).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '31a8e4****', + ], + 'required' => true, + 'example' => '03e08484f0', + 'maxItems' => 51, + ], + ], + [ + 'name' => 'TagKey', + 'in' => 'query', + 'style' => 'repeatList', + 'schema' => [ + 'description' => 'The tag keys of the resources. Valid values of N: 1 to 20.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The tag key of the file system.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'test', + ], + 'required' => false, + 'example' => 'nastest', + 'maxItems' => 21, + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '2D69A58F-345C-4FDE-88E4-BF518948****', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'NumberExceed.ResourceIds', + 'errorMessage' => 'The maximum number of ResourceIds is exceeded. The maximum is 50.', + ], + [ + 'errorCode' => 'Duplicate.ResourceId', + 'errorMessage' => 'The request contains duplicated ResourceId.', + ], + [ + 'errorCode' => 'MissingParameter.ResourceIds', + 'errorMessage' => 'You must specify ResourceIds.', + ], + [ + 'errorCode' => 'InvalidParameter.TagKey', + 'errorMessage' => 'The specified Tag.n.Key is invalid.', + ], + [ + 'errorCode' => 'InvalidParameter.TagValue', + 'errorMessage' => 'The specified Tag.n.Value is invalid.', + ], + [ + 'errorCode' => 'Duplicate.TagKey', + 'errorMessage' => 'The Tag.N.Key contains a duplicated key.', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"2D69A58F-345C-4FDE-88E4-BF518948****\\"\\n}","errorExample":""},{"type":"xml","example":"<UntagResourcesResponse>\\r\\n <RequestId>2D69A58F-345C-4FDE-88E4-BF518948****</RequestId>\\r\\n</UntagResourcesResponse>","errorExample":""}]', + 'title' => 'UntagResources', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'ListTagResources' => [ + 'summary' => 'Queries tags.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '13971', + 'abilityTreeNodes' => [ + 'FEATUREnasI92PYN', + ], + 'autoTest' => true, + 'tenantRelevance' => 'tenant', + ], + 'parameters' => [ + [ + 'name' => 'ResourceType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The resource type. Set the value to filesystem.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'filesystem', + ], + ], + [ + 'name' => 'NextToken', + 'in' => 'query', + 'schema' => [ + 'description' => 'The pagination token that is used in the next request to retrieve a new page of results.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'MTcyNDU1MTYyNjIxNTMyNzM4NiMzNjExMzQxNw==', + ], + ], + [ + 'name' => 'ResourceId', + 'in' => 'query', + 'style' => 'repeatList', + 'schema' => [ + 'description' => 'The resource IDs.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The resource ID.'."\n" + ."\n" + .'The ID of the file system. Valid values of N: 1 to 50.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '03e08484f0', + ], + 'required' => false, + 'example' => '03e08484f0', + 'maxItems' => 51, + ], + ], + [ + 'name' => 'Tag', + 'in' => 'query', + 'style' => 'repeatList', + 'schema' => [ + 'description' => 'The details about the tags.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Key' => [ + 'description' => 'The tag key.'."\n" + ."\n" + .'Limits:'."\n" + ."\n" + .'* The tag key cannot be left empty.'."\n" + .'* Valid values of N: 1 to 20.'."\n" + .'* The tag key must be 1 to 128 characters in length.'."\n" + .'* The tag key cannot start with `aliyun` or `acs:`.'."\n" + .'* The tag key cannot contain `http://` or `https://`.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'nastest', + ], + 'Value' => [ + 'description' => 'The tag value.'."\n" + ."\n" + .'Limits:'."\n" + ."\n" + .'* Valid values of N: 1 to 20.'."\n" + .'* The tag value must be 1 to 128 characters in length.'."\n" + .'* The tag value cannot start with `aliyun` or `acs:`.'."\n" + .'* The tag value cannot contain `http://` or `https://`.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'filetest', + ], + ], + 'required' => false, + ], + 'required' => false, + 'maxItems' => 21, + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'NextToken' => [ + 'description' => 'A pagination token. It can be used in the next request to retrieve a new page of results. If the value of this parameter is null, no queries are performed after the current query.'."\n", + 'type' => 'string', + 'example' => 'MTcyNDU1MTYyNjIxNTMyNzM4NiMzNjExMzQxNw=='."\n", + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '2D69A58F-345C-4FDE-88E4-BF518948****', + ], + 'TagResources' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'TagResource' => [ + 'description' => 'The list of resources.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'ResourceType' => [ + 'description' => 'The resource type.'."\n", + 'type' => 'string', + 'example' => 'filesystem', + ], + 'TagValue' => [ + 'description' => 'The tag value.'."\n", + 'type' => 'string', + 'example' => 'test', + ], + 'ResourceId' => [ + 'description' => 'The resource ID.'."\n", + 'type' => 'string', + 'example' => 'i-2zebd226fxed6h4iadhe', + ], + 'TagKey' => [ + 'description' => 'The tag key.'."\n", + 'type' => 'string', + 'example' => 'test1', + ], + ], + ], + ], + ], + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'MissingParameter.ResourceIdOrTag', + 'errorMessage' => 'Either ResourceId or Tag must be specified.', + ], + [ + 'errorCode' => 'InvalidNextToken', + 'errorMessage' => 'The NextToken is invalid.', + ], + [ + 'errorCode' => 'NumberExceed.ResourceIds', + 'errorMessage' => 'The maximum number of ResourceIds is exceeded. The maximum is 50.', + ], + [ + 'errorCode' => 'MissingParameter.ResourceIds', + 'errorMessage' => 'You must specify ResourceIds.', + ], + [ + 'errorCode' => 'Duplicate.ResourceId', + 'errorMessage' => 'The request contains duplicated ResourceId.', + ], + [ + 'errorCode' => 'NumberExceed.Tags', + 'errorMessage' => 'The maximum number of Tags is exceeded. The maximum is 20.', + ], + [ + 'errorCode' => 'Duplicate.TagKey', + 'errorMessage' => 'The Tag.N.Key contains a duplicated key.', + ], + [ + 'errorCode' => 'InvalidResourceId.NotFound', + 'errorMessage' => 'The ResourceId does not exist.', + ], + [ + 'errorCode' => 'InvalidParameter.TagKey', + 'errorMessage' => 'The specified Tag.n.Key is invalid.', + ], + [ + 'errorCode' => 'InvalidParameter.TagValue', + 'errorMessage' => 'The specified Tag.n.Value is invalid.', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"NextToken\\": \\" 无\\",\\n \\"RequestId\\": \\"2D69A58F-345C-4FDE-88E4-BF518948****\\",\\n \\"TagResources\\": {\\n \\"TagResource\\": [\\n {\\n \\"ResourceType\\": \\"filesystem\\",\\n \\"TagValue\\": \\"test\\",\\n \\"ResourceId\\": \\"i-2zebd226fxed6h4iadhe\\",\\n \\"TagKey\\": \\"test1\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<ListTagResourcesResponse>\\n <NextToken> 无</NextToken>\\n <RequestId>2D69A58F-345C-4FDE-88E4-BF518948****</RequestId>\\n <TagResources>\\n <ResourceType>filesystem</ResourceType>\\n <TagValue>test</TagValue>\\n <ResourceId>i-2zebd226fxed6h4iadhe</ResourceId>\\n <TagKey>test1</TagKey>\\n </TagResources>\\n</ListTagResourcesResponse>","errorExample":""}]', + 'title' => 'ListTagResources', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'SetDirQuota' => [ + 'summary' => 'Creates a directory quota for a file system.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'create', + 'riskType' => 'high', + 'chargeType' => 'free', + 'abilityTreeCode' => '13985', + 'abilityTreeNodes' => [ + 'FEATUREnasXEQXVN', + ], + 'autoTest' => true, + 'tenantRelevance' => 'tenant', + ], + 'parameters' => [ + [ + 'name' => 'FileSystemId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the file system.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => '1ca404****', + ], + ], + [ + 'name' => 'Path', + 'in' => 'query', + 'schema' => [ + 'description' => 'The absolute path of the directory in the file system.'."\n" + ."\n" + .'> * You can set quotas only for the directories that have been created in a NAS file system. The path of the directory that you specify for a quota is the absolute path of the directory in the NAS file system, but not the local path of the compute node, such as an Elastic Compute Service (ECS) instance or a container.'."\n" + .'> * Directories whose names contain Chinese characters are not supported.', + 'type' => 'string', + 'required' => true, + 'example' => '/data/sub1', + ], + ], + [ + 'name' => 'QuotaType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The type of the quota.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'* Accounting: a statistical quota. If you set this parameter to Accounting, NAS calculates only the storage usage of the directory.'."\n" + .'* Enforcement: a restricted quota. If you set this parameter to Enforcement and the storage usage exceeds the quota, you can no longer create files or subdirectories for the directory, or write data to the directory.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'Accounting', + 'enum' => [ + 'Accounting', + 'Enforcement', + ], + ], + ], + [ + 'name' => 'UserType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The type of the user.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'* Uid: user ID'."\n" + .'* Gid: user group ID'."\n" + .'* AllUsers: all users'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'Uid', + 'enum' => [ + 'Uid', + 'Gid', + 'AllUsers', + ], + ], + ], + [ + 'name' => 'UserId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The UID or GID of the user for whom you want to set a directory quota.'."\n" + ."\n" + .'This parameter is required and valid only if the UserType parameter is set to Uid or Gid.'."\n" + ."\n" + .'Examples:'."\n" + ."\n" + .'* If you want to set a directory quota for a user whose UID is 500, set the UserType parameter to Uid and set the UserId parameter to 500.'."\n" + .'* If you want to set a directory quota for a user group whose GID is 100, set the UserType parameter to Gid and set the UserId parameter to 100.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '500', + ], + ], + [ + 'name' => 'SizeLimit', + 'in' => 'query', + 'schema' => [ + 'description' => 'The size of files that a user can create in the directory.'."\n" + ."\n" + .'Unit: GiB.'."\n" + ."\n" + .'If you set the QuotaType parameter to Enforcement, you must specify at least one of the SizeLimit and FileCountLimit parameters.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'maximum' => '10000000', + 'minimum' => '0', + 'example' => '1024', + ], + ], + [ + 'name' => 'FileCountLimit', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of files that a user can create in the directory.'."\n" + ."\n" + .'This number includes the number of files, subdirectories, and special files.'."\n" + ."\n" + .'If you set the QuotaType parameter to Enforcement, you must specify at least one of the SizeLimit and FileCountLimit parameters.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'maximum' => '1000000000', + 'minimum' => '0', + 'example' => '10000', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '5BC5CB97-9F28-42FE-84A4-0CD0DF42****', + ], + 'Success' => [ + 'description' => 'Indicates whether the request was successful.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'* true'."\n" + .'* false'."\n", + 'type' => 'boolean', + 'example' => 'true', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 404 => [ + [ + 'errorCode' => 'InvalidParameter.DirPathNotExist', + 'errorMessage' => 'The Dir Path does not exist', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"5BC5CB97-9F28-42FE-84A4-0CD0DF42****\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"<RequestId>94CA5264-2C30-4D83-865D-B1CF2BE2****</RequestId>\\n<Success>true</Success>","errorExample":""}]', + 'title' => 'SetDirQuota', + 'description' => 'Only General-purpose File Storage NAS (NAS) file systems support the directory quota feature.', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'CancelDirQuota' => [ + 'summary' => 'Cancels the directory quota of a file system.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'delete', + 'riskType' => 'high', + 'chargeType' => 'free', + 'abilityTreeCode' => '13921', + 'abilityTreeNodes' => [ + 'FEATUREnasM1TG05', + ], + 'autoTest' => true, + 'tenantRelevance' => 'tenant', + ], + 'parameters' => [ + [ + 'name' => 'FileSystemId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the file system.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => '1ca404****', + ], + ], + [ + 'name' => 'Path', + 'in' => 'query', + 'schema' => [ + 'description' => 'The absolute path of a directory.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '/data/sub1', + ], + ], + [ + 'name' => 'UserType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The type of the user.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'* Uid: user ID'."\n" + .'* Gid: user group ID'."\n" + .'* AllUsers: all users'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'Uid', + 'enum' => [ + 'Uid', + 'Gid', + 'AllUsers', + ], + ], + ], + [ + 'name' => 'UserId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The UID or GID of a user for whom you want to cancel the directory quota.'."\n" + ."\n" + .'This parameter is required and valid only if the UserType parameter is set to Uid or Gid.'."\n" + ."\n" + .'Examples:'."\n" + ."\n" + .'* If you want to cancel a quota for a user whose UID is 500, set the UserType parameter to Uid and set the UserId parameter to 500.'."\n" + .'* If you want to cancel a quota for a group whose GID is 100, set the UserType parameter to Gid and set the UserId parameter to 100.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '500', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '5BC5CB97-9F28-42FE-84A4-0CD0DF42****', + ], + 'Success' => [ + 'description' => 'Indicates whether the request is successful.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'* true'."\n" + .'* false'."\n", + 'type' => 'boolean', + 'example' => 'true', + ], + ], + 'description' => '', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"5BC5CB97-9F28-42FE-84A4-0CD0DF42****\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"<RequestId>5BC5CB97-9F28-42FE-84A4-0CD0DF42****</RequestId>\\n<Success>true</Success>","errorExample":""}]', + 'title' => 'CancelDirQuota', + 'description' => 'Only General-purpose file systems support the directory quota feature.', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'DescribeDirQuotas' => [ + 'summary' => 'Queries the directory quotas of a file system.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'list', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '13950', + 'abilityTreeNodes' => [ + 'FEATUREnasXEQXVN', + ], + 'autoTest' => true, + 'tenantRelevance' => 'tenant', + ], + 'parameters' => [ + [ + 'name' => 'FileSystemId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the file system.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '1ca404****', + ], + ], + [ + 'name' => 'Path', + 'in' => 'query', + 'schema' => [ + 'description' => 'The absolute path of a directory.'."\n" + ."\n" + .'If you do not specify this parameter, all directories for which quotas are created are returned.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '/data/sub1', + ], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of entries per page. Default value: 10.'."\n" + ."\n" + .'Valid values: 1 to 100.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'maximum' => '100', + 'minimum' => '1', + 'example' => '1', + 'default' => '10', + ], + ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => [ + 'description' => 'The page number.'."\n" + ."\n" + .'Pages start from page 1. Default value: 1.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'minimum' => '1', + 'example' => '1', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'TotalCount' => [ + 'description' => 'The total number of directories.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '1', + ], + 'DirQuotaInfos' => [ + 'description' => 'The queried directory quotas.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Status' => [ + 'description' => 'The status of the quota created for the directory. Valid values: Initializing and Normal. The Initializing state indicates that the quota is being created. The Normal state indicates that the quota is created.'."\n", + 'type' => 'string', + 'example' => 'Normal', + ], + 'Path' => [ + 'description' => 'The absolute path of a directory.'."\n", + 'type' => 'string', + 'example' => '/data/sub1', + ], + 'DirInode' => [ + 'description' => 'The inode number of the directory.'."\n", + 'type' => 'string', + 'example' => '1123', + ], + 'UserQuotaInfos' => [ + 'description' => 'The information about quotas for all users.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'FileCountReal' => [ + 'description' => 'The total number of files that a user has created in the directory.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '5100', + ], + 'UserType' => [ + 'description' => 'The type of user. Valid values: Uid, Gid, and AllUsers.'."\n" + ."\n" + .'* If Uid or Gid is returned, a value is returned for UserId.'."\n" + .'* If AllUsers is returned, UserId is empty.'."\n", + 'type' => 'string', + 'example' => 'Uid', + ], + 'FileCountLimit' => [ + 'description' => 'The maximum number of files that a user can create in the directory.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '10000', + ], + 'UserId' => [ + 'description' => 'The ID of the user that you specify to create a quota for the directory. The value depends on the value of the UserType parameter. Valid values: Uid and Gid.'."\n", + 'type' => 'string', + 'example' => '500', + ], + 'SizeLimit' => [ + 'description' => 'The maximum size of files that a user can create in the directory. Unit: GiB.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1024', + ], + 'QuotaType' => [ + 'description' => 'The type of the quota. Valid values: Accounting and Enforcement.'."\n", + 'type' => 'string', + 'example' => 'Accounting', + ], + 'SizeReal' => [ + 'description' => 'The total size of files that a user has created in the directory. Unit: GiB.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '800', + ], + 'SizeRealInByte' => [ + 'description' => 'The total size of files that a user has created in the directory. Unit: bytes.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '858995833870', + ], + ], + 'description' => '', + ], + ], + ], + 'description' => '', + ], + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '5BC5CB97-9F28-42FE-84A4-0CD0DF42****', + ], + 'PageSize' => [ + 'description' => 'The number of entries per page.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '1', + ], + 'PageNumber' => [ + 'description' => 'The page number.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '1', + ], + ], + 'description' => '', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"TotalCount\\": 1,\\n \\"DirQuotaInfos\\": [\\n {\\n \\"Status\\": \\"Normal\\",\\n \\"Path\\": \\"/data/sub1\\",\\n \\"DirInode\\": \\"1123\\",\\n \\"UserQuotaInfos\\": [\\n {\\n \\"FileCountReal\\": 5100,\\n \\"UserType\\": \\"Uid\\",\\n \\"FileCountLimit\\": 10000,\\n \\"UserId\\": \\"500\\",\\n \\"SizeLimit\\": 1024,\\n \\"QuotaType\\": \\"Accounting\\",\\n \\"SizeReal\\": 800,\\n \\"SizeRealInByte\\": 858995833870\\n }\\n ]\\n }\\n ],\\n \\"RequestId\\": \\"5BC5CB97-9F28-42FE-84A4-0CD0DF42****\\",\\n \\"PageSize\\": 1,\\n \\"PageNumber\\": 1\\n}","errorExample":""},{"type":"xml","example":"<DescribeDirQuotasResponse>\\n <TotalCount>1</TotalCount>\\n <DirQuotaInfos>\\n <Status>Normal</Status>\\n <Path>/data/sub1</Path>\\n <DirInode>1123</DirInode>\\n <UserQuotaInfos>\\n <FileCountReal>5100</FileCountReal>\\n <UserType>Uid</UserType>\\n <FileCountLimit>10000</FileCountLimit>\\n <UserId>500</UserId>\\n <SizeLimit>1024</SizeLimit>\\n <QuotaType>Accounting</QuotaType>\\n <SizeReal>800</SizeReal>\\n </UserQuotaInfos>\\n </DirQuotaInfos>\\n <RequestId>5BC5CB97-9F28-42FE-84A4-0CD0DF42****</RequestId>\\n <PageSize>1</PageSize>\\n <PageNumber>1</PageNumber>\\n</DescribeDirQuotasResponse>","errorExample":""}]', + 'title' => 'DescribeDirQuotas', + 'description' => 'Only General-purpose NAS file systems support the directory quota feature.', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'CreateLifecyclePolicy' => [ + 'summary' => 'Creates a lifecycle policy.', + 'methods' => [ + 'post', + 'get', + 'put', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'create', + 'riskType' => 'none', + 'chargeType' => 'paid', + 'abilityTreeCode' => '13932', + 'abilityTreeNodes' => [ + 'FEATUREnasZ6WBFV', + ], + 'autoTest' => true, + 'tenantRelevance' => 'tenant', + ], + 'parameters' => [ + [ + 'name' => 'FileSystemId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the file system.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => '31a8e4****', + ], + ], + [ + 'name' => 'LifecyclePolicyName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the lifecycle policy. The name must be 3 to 64 characters in length and must start with a letter. It can contain letters, digits, underscores (\\_), and hyphens (-).'."\n" + ."\n" + .'> Required for General-purpose NAS.'."\n", + 'type' => 'string', + 'required' => false, + 'docRequired' => false, + 'example' => 'lifecyclepolicy_01', + ], + ], + [ + 'name' => 'Path', + 'in' => 'query', + 'schema' => [ + 'description' => 'The absolute path of the directory associated with the lifecycle policy. Only General-purpose NAS supports this parameter.'."\n" + ."\n" + .'* Single value only. The path must start with a forward slash (/) and must be a path that exists in the mount target.'."\n" + ."\n" + .'> We recommend configuring the Paths.N parameter so that you can associate the policy with multiple directories at a time.'."\n" + ."\n" + .'* Path and Paths are mutually exclusive. You must specify one.'."\n", + 'type' => 'string', + 'required' => false, + 'docRequired' => false, + 'example' => '/pathway/to/folder', + ], + ], + [ + 'name' => 'LifecycleRuleName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The management rule associated with the lifecycle policy. Only General-purpose NAS supports this parameter.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'* DEFAULT_ATIME\\_14: Files not accessed for 14 days.'."\n" + .'* DEFAULT_ATIME\\_30: Files not accessed for 30 days.'."\n" + .'* DEFAULT_ATIME\\_60: Files not accessed for 60 days.'."\n" + .'* DEFAULT_ATIME\\_90: Files not accessed for 90 days.'."\n" + .'* DEFAULT_ATIME\\_180: Files not accessed for 180 days. DEFAULT_ATIME\\_180 is supported only when the StorageType parameter is set to Archive.'."\n" + ."\n" + .'> '."\n" + ."\n" + .'* If an IA policy already exists for the directory, the new archive policy must have a longer transition period.'."\n" + ."\n" + .'* Only General-purpose NAS supports this parameter.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'DEFAULT_ATIME_14', + 'enum' => [ + 'DEFAULT_ATIME_14', + 'DEFAULT_ATIME_30', + 'DEFAULT_ATIME_60', + 'DEFAULT_ATIME_90', + 'DEFAULT_ATIME_180', + ], + ], + ], + [ + 'name' => 'StorageType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The storage class.'."\n" + ."\n" + .'* InfrequentAccess: the Infrequent Access (IA) storage class.'."\n" + .'* Archive: the Archive storage class.'."\n" + ."\n" + .'> General-purpose NAS supports InfrequentAccess and Archive. CPFS for Lingjun only supports InfrequentAccess.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'InfrequentAccess', + 'enum' => [ + 'InfrequentAccess', + 'Archive', + 'Capacity', + 'Performance', + ], + ], + ], + [ + 'name' => 'Paths', + 'in' => 'query', + 'style' => 'repeatList', + 'schema' => [ + 'description' => 'The absolute paths of the directories associated with the lifecycle policy.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The absolute paths of the directories associated with the lifecycle policy.'."\n" + ."\n" + .'Supports associating multiple directories. Each path must start with a forward slash (/) and must be a path that exists in the mount target. Valid values of N: 1 to 10.'."\n" + ."\n" + .'> '."\n" + ."\n" + .'* Path and Paths are mutually exclusive. You must specify one.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '“/path1", "/path2"', + ], + 'required' => false, + 'example' => '"/path1", "/path2"', + 'maxItems' => 11, + ], + ], + [ + 'name' => 'Description', + 'in' => 'query', + 'schema' => [ + 'title' => '生命周期策略描述', + 'description' => 'The description of the lifecycle policy.'."\n" + ."\n" + .'Format: The name must be 3 to 64 characters in length and must start with a letter. It can contain letters, digits, underscores (\\_), and hyphens (-).'."\n" + ."\n" + .'> Only CPFS for Lingjun supports this parameter.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'Description'."\n", + ], + ], + [ + 'name' => 'LifecyclePolicyType', + 'in' => 'query', + 'schema' => [ + 'title' => '策略类型', + 'description' => 'The policy type.'."\n" + ."\n" + .'* Auto (default): The job is automatically triggered.'."\n" + .'* OnDemand: On-demand execution.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'Auto', + 'default' => 'Auto', + 'enum' => [ + 'Auto', + 'OnDemand', + ], + ], + ], + [ + 'name' => 'TransitRules', + 'in' => 'query', + 'allowEmptyValue' => false, + 'style' => 'repeatList', + 'schema' => [ + 'title' => '文件数据转储规则', + 'description' => 'The data transition rule. Only one rule can be configured.'."\n" + ."\n" + .'> Supported only for CPFS for Lingjun file systems with LifecyclePolicyType set to Auto.'."\n", + 'type' => 'array', + 'items' => [ + 'title' => '文件数据转储规则', + 'description' => 'The data transition rule. Only one rule can be configured.'."\n" + ."\n" + .'> Supported only for CPFS for Lingjun file systems with LifecyclePolicyType set to Auto.'."\n", + 'type' => 'object', + 'properties' => [ + 'Attribute' => [ + 'title' => '规则的属性', + 'description' => 'Attribute of the rule.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'* Atime: the access time of the file.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'Atime', + 'enum' => [ + 'Atime', + ], + ], + 'Threshold' => [ + 'title' => '规则的阈值', + 'description' => 'Threshold for the rule.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'* If Attribute is set to Atime, this value represents the number of days since the file was last accessed. Valid values: \\[1, 365].'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '3', + ], + ], + 'required' => false, + ], + 'required' => false, + 'maxItems' => 1, + ], + ], + [ + 'name' => 'RetrieveRules', + 'in' => 'query', + 'style' => 'repeatList', + 'schema' => [ + 'title' => '文件数据取回规则', + 'description' => 'The file data retrieval rule. Only one rule can be configured.'."\n" + ."\n" + .'> Only CPFS for Lingjun supports this parameter.'."\n", + 'type' => 'array', + 'items' => [ + 'title' => '文件数据取回规则', + 'description' => 'The file data retrieval rule. Only one rule can be configured.'."\n", + 'type' => 'object', + 'properties' => [ + 'Attribute' => [ + 'title' => '规则的属性', + 'description' => 'The attribute of the rule. Valid value:'."\n" + ."\n" + .'* RetrieveType: the retrieval method.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'RetrieveType', + 'enum' => [ + 'RetrieveType', + ], + ], + 'Threshold' => [ + 'title' => '规则的阈值', + 'description' => 'The threshold of the rule. Valid values:'."\n" + ."\n" + .'* RetrieveType'."\n" + ."\n" + .' * AfterVisit: Supported when LifecyclePolicyType is Auto. Represents a best-effort recall on access.'."\n" + .' * All: Supported when LifecyclePolicyType is OnDemand. Represents retrieving all data.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'All', + 'enum' => [ + 'AfterVisit', + 'All', + ], + ], + ], + 'required' => false, + ], + 'required' => false, + 'maxItems' => 1, + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'BC7C825C-5F65-4B56-BEF6-98C56C7C****', + ], + 'Success' => [ + 'description' => 'Indicates whether the request is successful.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'* true'."\n" + .'* false'."\n", + 'type' => 'boolean', + 'example' => 'true', + ], + 'LifecyclePolicyId' => [ + 'title' => '生命周期策略的 ID', + 'description' => 'The ID of the lifecycle policy.'."\n", + 'type' => 'string', + 'example' => 'lsp-bp1234567890ab****', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'OperationDenied.FileSystemNotSupportedForLifecycle', + 'errorMessage' => 'The file system does not support lifecycle.', + ], + [ + 'errorCode' => 'OperationDenied.EncryptedFileSystemNotSupportedForLifecycle', + 'errorMessage' => 'The encrypted file system does not support lifecycle.', + ], + [ + 'errorCode' => 'OperationDenied.LifecyclePolicyCountLimitExceeded', + 'errorMessage' => 'The maximum number of LifecyclePolicies is exceeded.', + ], + [ + 'errorCode' => 'InvalidLifecyclePolicy.AlreadyExist', + 'errorMessage' => 'The specified LifecyclePolicy already exists.', + ], + [ + 'errorCode' => 'InvalidParameter.PathsNumberExceed', + 'errorMessage' => 'The maximum number of Path.N for this operation is 10.', + ], + [ + 'errorCode' => 'InvalidFilesystemType.NotSupport', + 'errorMessage' => 'The API operation does not support the file system type.', + ], + [ + 'errorCode' => 'InvalidParameter.PathOrPaths', + 'errorMessage' => 'Either Path or Paths.N must be specified.', + ], + [ + 'errorCode' => 'MissingFileSystemId', + 'errorMessage' => 'FileSystemId is mandatory for this action.', + ], + [ + 'errorCode' => 'Lifecycle.Count.Exceeded', + 'errorMessage' => 'The lifecycle policy count exceeds the max limit per type per filesystem.', + ], + ], + 403 => [ + [ + 'errorCode' => 'OperationDenied.NotSupportPaths.N', + 'errorMessage' => 'Your request does not meet the gray condition. The Paths.N parameter is not supported.', + ], + ], + [ + [ + 'errorCode' => 'InvalidFileSystem.NotFound', + 'errorMessage' => 'The specified file system does not exist.', + ], + [ + 'errorCode' => 'InvalidParameter.PathNotExist', + 'errorMessage' => 'The specified path does not exist.', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"BC7C825C-5F65-4B56-BEF6-98C56C7C****\\",\\n \\"Success\\": true,\\n \\"LifecyclePolicyId\\": \\"lsp-bp1234567890ab****\\"\\n}","errorExample":""},{"type":"xml","example":"<RequestId>BC7C825C-5F65-4B56-BEF6-98C56C7C****</RequestId>\\n<Success>true</Success>","errorExample":""}]', + 'title' => 'CreateLifecyclePolicy', + 'description' => '* Only General-purpose NAS and CPFS for Lingjun file systems support this operation.'."\n" + .'* Up to 10 Auto and 100 OnDemand lifecycle policies can be created for each CPFS for Lingjun file system.'."\n" + .'* For general-purpose NAS file systems, up to 20 lifecycle policies can be created in each region.'."\n", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'DeleteLifecyclePolicy' => [ + 'summary' => 'Deletes a lifecycle policy.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'delete', + 'riskType' => 'high', + 'chargeType' => 'paid', + 'abilityTreeCode' => '13941', + 'abilityTreeNodes' => [ + 'FEATUREnasZ6WBFV', + ], + 'autoTest' => true, + 'tenantRelevance' => 'tenant', + ], + 'parameters' => [ + [ + 'name' => 'FileSystemId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the file system.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => '31a8e4****', + ], + ], + [ + 'name' => 'LifecyclePolicyName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the lifecycle policy. The name must be 3 to 64 characters in length and can contain letters, digits, underscores (\\_), and hyphens (-). The name must start with a letter.'."\n" + ."\n" + .'> Optional for General-purpose NAS file systems. If this parameter is provided, it takes precedence over LifecyclePolicyId. If left empty, LifecyclePolicyId is used.'."\n", + 'type' => 'string', + 'required' => false, + 'docRequired' => false, + 'example' => 'lifecyclepolicy1', + ], + ], + [ + 'name' => 'LifecyclePolicyId', + 'in' => 'query', + 'schema' => [ + 'title' => '生命周期策略的 ID', + 'description' => 'The ID of the lifecycle policy. Required for the CPFS for Lingjun file systems.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'lc-xxx', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'BC7C825C-5F65-4B56-BEF6-98C56C7C****', + ], + 'Success' => [ + 'description' => 'Indicates whether the request was successful.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'* true'."\n" + .'* false', + 'type' => 'boolean', + 'example' => 'true', + ], + ], + 'description' => '', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"BC7C825C-5F65-4B56-BEF6-98C56C7C****\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"<RequestId>BC7C825C-5F65-4B56-BEF6-98C56C7C****</RequestId>\\n<Success>true</Success>","errorExample":""}]', + 'title' => 'DeleteLifecyclePolicy', + 'description' => 'Only General-purpose NAS and CPFS for Lingjun file systems support this operation.'."\n", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'ModifyLifecyclePolicy' => [ + 'summary' => 'Modifies a lifecycle policy.', + 'methods' => [ + 'post', + 'get', + 'put', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREnasZ6WBFV', + ], + ], + 'parameters' => [ + [ + 'name' => 'FileSystemId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the file system.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => '31a8e4****', + ], + ], + [ + 'name' => 'LifecyclePolicyName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the lifecycle policy.'."\n" + ."\n" + .'The name must be 3 to 64 characters in length and can contain letters, digits, underscores (\\_), and hyphens (-). The name must start with a letter.'."\n", + 'type' => 'string', + 'required' => false, + 'docRequired' => true, + 'example' => 'lifecyclepolicy_01', + ], + ], + [ + 'name' => 'Path', + 'in' => 'query', + 'schema' => [ + 'description' => 'The absolute path of a directory with which the lifecycle policy is associated.'."\n" + ."\n" + .'The path must start with a forward slash (/) and must be a path that exists in the mount target.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '/pathway/to/folder', + ], + ], + [ + 'name' => 'LifecycleRuleName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The management rule that is associated with the lifecycle policy.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'* DEFAULT_ATIME\\_14: Files not accessed for 14 days.'."\n" + .'* DEFAULT_ATIME\\_30: Files not accessed for 30 days.'."\n" + .'* DEFAULT_ATIME\\_60: Files not accessed for 60 days.'."\n" + .'* DEFAULT_ATIME\\_90: Files not accessed for 90 days.'."\n" + .'* DEFAULT_ATIME\\_180: Files not accessed for 180 days. DEFAULT_ATIME\\_180 is supported only when the StorageType parameter is set to Archive.'."\n" + ."\n" + .'> If an IA policy has already been set for the directory, any subsequent archival policy must have a longer duration than the IA policy.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'DEFAULT_ATIME_14', + 'enum' => [ + 'DEFAULT_ATIME_14', + 'DEFAULT_ATIME_30', + 'DEFAULT_ATIME_60', + 'DEFAULT_ATIME_90', + 'DEFAULT_ATIME_180', + ], + ], + ], + [ + 'name' => 'StorageType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The storage class.'."\n" + ."\n" + .'* InfrequentAccess: the Infrequent Access (IA) storage class.'."\n" + .'* Archive: the Archive storage class.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'InfrequentAccess', + 'default' => 'InfrequentAccess', + 'enum' => [ + 'InfrequentAccess', + 'Archive', + 'Capacity', + 'Performance', + ], + ], + ], + [ + 'name' => 'LifecyclePolicyId', + 'in' => 'query', + 'schema' => [ + 'title' => '生命周期策略的 ID', + 'description' => 'The ID of the lifecycle policy.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'lc-xxx', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'BC7C825C-5F65-4B56-BEF6-98C56C7C****', + ], + 'Success' => [ + 'description' => 'Indicates whether the request was successful.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'* true'."\n" + .'* false'."\n", + 'type' => 'boolean', + 'example' => 'true', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidLifecyclePolicy.NotFound', + 'errorMessage' => 'The specified LifecyclePolicy does not exist.', + ], + ], + 404 => [ + [ + 'errorCode' => 'InvalidLifecycleRule.NotFound', + 'errorMessage' => 'The specified LifecycleRule does not exist.', + ], + [ + 'errorCode' => 'InvalidFileSystem.NotFound', + 'errorMessage' => 'The specified file system does not exist.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"BC7C825C-5F65-4B56-BEF6-98C56C7C****\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"<ModifyLifecyclePolicyResponse>\\n <RequestId>BC7C825C-5F65-4B56-BEF6-98C56C7C****</RequestId>\\n <Success>true</Success>\\n</ModifyLifecyclePolicyResponse>","errorExample":""}]', + 'title' => 'ModifyLifecyclePolicy', + 'description' => 'Only General-purpose NAS file systems support this operation.'."\n", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'GetDirectoryOrFileProperties' => [ + 'summary' => 'Queries whether a directory contains files that are stored in the Infrequent Access (IA) or Archive storage class, or whether a file is stored in the IA or Archive storage class.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '19614', + 'abilityTreeNodes' => [ + 'FEATUREnasZ6WBFV', + ], + 'autoTest' => true, + 'tenantRelevance' => 'tenant', + ], + 'parameters' => [ + [ + 'name' => 'FileSystemId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the file system.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => '31a8e4****', + ], + ], + [ + 'name' => 'Path', + 'in' => 'query', + 'schema' => [ + 'description' => 'The absolute path of the directory.'."\n" + ."\n" + .'The path must start with a forward slash (/) and must be a path that exists in the mount target.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => '/pathway/to/folder', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'Entry' => [ + 'description' => 'The details about the file or directory.'."\n", + 'type' => 'object', + 'properties' => [ + 'Type' => [ + 'description' => 'The type of the query result.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'* File'."\n" + .'* Directory'."\n", + 'type' => 'string', + 'example' => 'File', + ], + 'HasInfrequentAccessFile' => [ + 'description' => 'Indicates whether the directory contains files stored in the IA storage medium.'."\n" + ."\n" + .'This parameter is returned only if the value of the Type parameter is Directory.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'* true: The directory contains files stored in the IA storage medium.'."\n" + .'* false: The directory does not contain files stored in the IA storage medium.'."\n", + 'type' => 'boolean', + 'example' => 'true', + ], + 'MTime' => [ + 'description' => 'The time when the file was modified.'."\n" + ."\n" + .'The time follows the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format.'."\n" + ."\n" + .'This parameter is returned only if the value of the Type parameter is File.'."\n", + 'type' => 'string', + 'example' => '2021-02-11T10:08:08Z', + ], + 'ATime' => [ + 'description' => 'The time when the file was queried.'."\n" + ."\n" + .'The time follows the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format.'."\n" + ."\n" + .'This parameter is returned only if the value of the Type parameter is File.'."\n", + 'type' => 'string', + 'example' => '2021-02-01T10:08:08Z', + ], + 'Size' => [ + 'description' => 'The size of the file.'."\n" + ."\n" + .'Unit: bytes.'."\n" + ."\n" + .'This parameter is returned only if the value of the Type parameter is File.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1024', + ], + 'CTime' => [ + 'description' => 'The time when the metadata was modified.'."\n" + ."\n" + .'The time follows the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format.'."\n" + ."\n" + .'This parameter is returned only if the value of the Type parameter is File.'."\n", + 'type' => 'string', + 'example' => '2021-02-11T10:08:10Z', + ], + 'StorageType' => [ + 'description' => 'The storage class of the file.'."\n" + ."\n" + .'This parameter is returned only if the value of the Type parameter is File.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'* standard: General-purpose NAS file system'."\n" + .'* InfrequentAccess: the IA storage class.'."\n", + 'type' => 'string', + 'example' => 'InfrequentAccess', + ], + 'Name' => [ + 'description' => 'The name of the file or directory.'."\n", + 'type' => 'string', + 'example' => 'file.txt', + ], + 'RetrieveTime' => [ + 'description' => 'The time when the last data retrieval task was run.'."\n" + ."\n" + .'The time follows the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format.'."\n" + ."\n" + .'This parameter is returned only if the value of the Type parameter is File.'."\n", + 'type' => 'string', + 'example' => '2021-02-11T10:08:08Z', + ], + 'Inode' => [ + 'description' => 'The file or directory inode.'."\n", + 'type' => 'string', + 'example' => '40', + ], + 'HasArchiveFile' => [ + 'description' => 'Indicates whether the directory contains files stored in the Archive storage class.'."\n" + ."\n" + .'This parameter is returned only if the Type parameter is set to Directory.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'* true: The directory contains files stored in the Archive storage class.'."\n" + .'* false: The directory does not contain files stored in the Archive storage class.'."\n", + 'type' => 'boolean', + 'example' => 'false', + ], + 'OfflineDuration' => [ + 'type' => 'integer', + 'format' => 'int64', + ], + 'OfflineUnchangedDuration' => [ + 'type' => 'integer', + 'format' => 'int64', + ], + ], + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '2D69A58F-345C-4FDE-88E4-BF518948****', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 404 => [ + [ + 'errorCode' => 'InvalidFileSystem.NotFound', + 'errorMessage' => 'The specified file system does not exist.', + ], + [ + 'errorCode' => 'InvalidParameter.PathNotExist', + 'errorMessage' => 'The specified path does not exist.', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Entry\\": {\\n \\"Type\\": \\"File\\",\\n \\"HasInfrequentAccessFile\\": true,\\n \\"MTime\\": \\"2021-02-11T10:08:08Z\\",\\n \\"ATime\\": \\"2021-02-01T10:08:08Z\\",\\n \\"Size\\": 1024,\\n \\"CTime\\": \\"2021-02-11T10:08:10Z\\",\\n \\"StorageType\\": \\"InfrequentAccess\\",\\n \\"Name\\": \\"file.txt\\",\\n \\"RetrieveTime\\": \\"2021-02-11T10:08:08Z\\",\\n \\"Inode\\": \\"40\\",\\n \\"HasArchiveFile\\": false,\\n \\"OfflineDuration\\": 0,\\n \\"OfflineUnchangedDuration\\": 0\\n },\\n \\"RequestId\\": \\"2D69A58F-345C-4FDE-88E4-BF518948****\\"\\n}","errorExample":""},{"type":"xml","example":"<GetDirectoryOrFilePropertiesResponse>\\n <Entry>\\n <Type>File</Type>\\n <HasInfrequentAccessFile>true</HasInfrequentAccessFile>\\n <MTime>2021-02-11T10:08:08Z</MTime>\\n <ATime>2021-02-01T10:08:08Z</ATime>\\n <Size>1024</Size>\\n <CTime>2021-02-11T10:08:10Z</CTime>\\n <StorageType>InfrequentAccess</StorageType>\\n <Name>file.txt</Name>\\n <RetrieveTime>2021-02-11T10:08:08Z</RetrieveTime>\\n <Inode>Inode</Inode>\\n </Entry>\\n <RequestId>2D69A58F-345C-4FDE-88E4-BF518948****</RequestId>\\n</GetDirectoryOrFilePropertiesResponse>","errorExample":""}]', + 'title' => 'GetDirectoryOrFileProperties', + 'description' => 'Only General-purpose NAS file systems support this operation.'."\n", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'DescribeLifecyclePolicies' => [ + 'summary' => 'Queries lifecycle policies.', + 'methods' => [ + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '13954', + 'abilityTreeNodes' => [ + 'FEATUREnas7AL8PW', + 'FEATUREnasEER7AI', + ], + ], + 'parameters' => [ + [ + 'name' => 'FileSystemId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the file system.'."\n", + 'type' => 'string', + 'required' => false, + 'docRequired' => true, + 'example' => '31a8e4****', + ], + ], + [ + 'name' => 'LifecyclePolicyName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the lifecycle policy. The naming rules are as follows:'."\n" + ."\n" + .'The name must be 3 to 64 characters in length and must start with a letter. It can contain letters, digits, underscores (\\_), and hyphens (-).'."\n" + ."\n" + .'> Optional for General-purpose NAS file systems. If this parameter is provided, it takes precedence over LifecyclePolicyId. If left empty, LifecyclePolicyId is used.'."\n", + 'type' => 'string', + 'required' => false, + 'docRequired' => false, + 'example' => 'lifecyclepolicy_01', + ], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of entries per page.'."\n" + ."\n" + .'Valid values: 1 to 100.'."\n" + ."\n" + .'Default value: 10.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'maximum' => '100', + 'minimum' => '1', + 'example' => '10', + 'default' => '10', + ], + ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => [ + 'description' => 'The page number.'."\n" + ."\n" + .'Pages start from page 1. Default value: 1.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'minimum' => '1', + 'example' => '1', + 'default' => '1', + ], + ], + [ + 'name' => 'StorageType', + 'in' => 'query', + 'allowEmptyValue' => true, + 'schema' => [ + 'description' => 'The storage class.'."\n" + ."\n" + .'* InfrequentAccess: the Infrequent Access (IA) storage class.'."\n" + .'* Archive: the Archive storage class.'."\n" + ."\n" + .'> If StorageType is not specified, all lifecycle policies are returned.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'InfrequentAccess', + 'enum' => [ + 'InfrequentAccess', + 'Archive', + 'Capacity', + 'Performance', + ], + ], + ], + [ + 'name' => 'LifecyclePolicyId', + 'in' => 'query', + 'schema' => [ + 'title' => '生命周期策略的 ID', + 'description' => 'The ID of the lifecycle policy.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'lc-xxx', + ], + ], + [ + 'name' => 'LifecyclePolicyType', + 'in' => 'query', + 'schema' => [ + 'title' => '策略类型', + 'description' => 'The type of the lifecycle policy.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'* Auto: The job is automatically triggered.'."\n" + .'* OnDemand: On-demand execution.'."\n" + ."\n" + .'> Only CPFS for Lingjun supports this parameter.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'Auto', + 'enum' => [ + 'Auto', + 'OnDemand', + ], + ], + ], + [ + 'name' => 'Description', + 'in' => 'query', + 'schema' => [ + 'title' => '策略的描述', + 'description' => 'The description of the policy.'."\n" + ."\n" + .'> Only CPFS for Lingjun supports this parameter.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'Description'."\n", + ], + ], + [ + 'name' => 'Path', + 'in' => 'query', + 'schema' => [ + 'title' => '根据路径筛选', + 'description' => 'Filter by path.'."\n" + ."\n" + .'> Only CPFS for Lingjun supports this parameter.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '/abc/', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'TotalCount' => [ + 'description' => 'The total number of lifecycle policies.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '10', + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'BC7C825C-5F65-4B56-BEF6-98C56C7C****', + ], + 'PageSize' => [ + 'description' => 'The number of entries per page.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '10', + ], + 'PageNumber' => [ + 'description' => 'The page number.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '1', + ], + 'LifecyclePolicies' => [ + 'description' => 'The queried lifecycle policies.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'FileSystemId' => [ + 'description' => 'The ID of the file system.'."\n", + 'type' => 'string', + 'example' => '31a8e4****', + ], + 'LifecycleRuleName' => [ + 'description' => 'The management rule that is associated with the lifecycle policy.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'* DEFAULT_ATIME\\_14: Files that are not accessed in the last 14 days.'."\n" + .'* DEFAULT_ATIME\\_30: Files that are not accessed in the last 30 days.'."\n" + .'* DEFAULT_ATIME\\_60: Files that are not accessed in the last 60 days.'."\n" + .'* DEFAULT_ATIME\\_90: Files that are not accessed in the last 90 days.'."\n", + 'type' => 'string', + 'example' => 'DEFAULT_ATIME_14', + ], + 'CreateTime' => [ + 'description' => 'The time when the lifecycle policy was created.'."\n" + ."\n" + .'The time follows the ISO 8601 standard in the `yyyy-MM-ddTHH:mm:ssZ` format.'."\n", + 'type' => 'string', + 'example' => '2019-10-30T10:08:08Z', + ], + 'Path' => [ + 'description' => 'The absolute path of a directory with which the lifecycle policy is associated.'."\n", + 'type' => 'string', + 'example' => '/pathway/to/folder', + ], + 'StorageType' => [ + 'description' => 'The storage class.'."\n" + ."\n" + .'* InfrequentAccess: the IA storage class.'."\n" + .'* Archive: the Archive storage class.'."\n", + 'type' => 'string', + 'example' => 'InfrequentAccess', + ], + 'LifecyclePolicyName' => [ + 'description' => 'The name of the lifecycle policy.'."\n", + 'type' => 'string', + 'example' => 'lifecyclepolicy_01', + ], + 'Paths' => [ + 'description' => 'The absolute paths of directories with which the lifecycle policy is associated.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The absolute paths of directories with which the lifecycle policy is associated.'."\n", + 'type' => 'string', + 'example' => '["/path1","/path2"]', + ], + ], + 'LifecyclePolicyId' => [ + 'title' => '生命周期策略的 ID', + 'description' => 'The ID of the lifecycle policy.'."\n", + 'type' => 'string', + 'example' => 'lc-xxx', + ], + 'Description' => [ + 'title' => '描述', + 'description' => 'Description'."\n", + 'type' => 'string', + 'example' => 'Description'."\n", + ], + 'LifecyclePolicyType' => [ + 'title' => '策略类型', + 'description' => 'The type of the lifecycle policy.'."\n", + 'type' => 'string', + 'example' => 'Auto', + ], + 'TransitRules' => [ + 'title' => '文件数据转储规则', + 'description' => 'Data transition rules.'."\n", + 'type' => 'array', + 'items' => [ + 'title' => '文件数据转储规则', + 'description' => 'The data transition rule.'."\n", + 'type' => 'object', + 'properties' => [ + 'Attribute' => [ + 'title' => '转储规则的属性', + 'description' => 'Attribute of the rule.'."\n", + 'type' => 'string', + 'example' => 'Atime', + ], + 'Threshold' => [ + 'title' => '转储规则的阈值', + 'description' => 'Threshold for the rule.'."\n", + 'type' => 'string', + 'example' => '3', + ], + ], + ], + ], + 'RetrieveRules' => [ + 'title' => '文件数据取回规则', + 'description' => 'File data retrieval rules.'."\n", + 'type' => 'array', + 'items' => [ + 'title' => '文件数据取回规则', + 'description' => 'The file data retrieval rule.'."\n", + 'type' => 'object', + 'properties' => [ + 'Attribute' => [ + 'title' => '取回规则的属性', + 'description' => 'Attribute of the rule.'."\n", + 'type' => 'string', + 'example' => 'RetrieveType', + ], + 'Threshold' => [ + 'title' => '取回规则的阈值', + 'description' => 'Threshold for the rule.'."\n", + 'type' => 'string', + 'example' => 'All', + ], + ], + ], + ], + ], + 'description' => '', + ], + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 404 => [ + [ + 'errorCode' => 'InvalidFileSystem.NotFound', + 'errorMessage' => 'The specified file system does not exist.', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"TotalCount\\": 10,\\n \\"RequestId\\": \\"BC7C825C-5F65-4B56-BEF6-98C56C7C****\\",\\n \\"PageSize\\": 10,\\n \\"PageNumber\\": 1,\\n \\"LifecyclePolicies\\": [\\n {\\n \\"FileSystemId\\": \\"31a8e4****\\",\\n \\"LifecycleRuleName\\": \\"DEFAULT_ATIME_14\\",\\n \\"CreateTime\\": \\"2019-10-30T10:08:08Z\\",\\n \\"Path\\": \\"/pathway/to/folder\\",\\n \\"StorageType\\": \\"InfrequentAccess\\",\\n \\"LifecyclePolicyName\\": \\"lifecyclepolicy_01\\",\\n \\"Paths\\": [\\n \\"[\\\\\\"/path1\\\\\\",\\\\\\"/path2\\\\\\"]\\"\\n ],\\n \\"LifecyclePolicyId\\": \\"lc-xxx\\",\\n \\"Description\\": \\"描述\\",\\n \\"LifecyclePolicyType\\": \\"Auto\\",\\n \\"TransitRules\\": [\\n {\\n \\"Attribute\\": \\"Atime\\",\\n \\"Threshold\\": \\"3\\"\\n }\\n ],\\n \\"RetrieveRules\\": [\\n {\\n \\"Attribute\\": \\"RetrieveType\\",\\n \\"Threshold\\": \\"All\\"\\n }\\n ]\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"<DescribeLifecyclePoliciesResponse>\\n <TotalCount>10</TotalCount>\\n <RequestId>BC7C825C-5F65-4B56-BEF6-98C56C7C****</RequestId>\\n <PageSize>10</PageSize>\\n <PageNumber>1</PageNumber>\\n <LifecyclePolicies>\\n <FileSystemId>31a8e4****</FileSystemId>\\n <LifecycleRuleName>DEFAULT_ATIME_14</LifecycleRuleName>\\n <CreateTime>2019-10-30T10:08:08Z</CreateTime>\\n <Path>/pathway/to/folder</Path>\\n <StorageType>InfrequentAccess</StorageType>\\n <LifecyclePolicyName>lifecyclepolicy_01</LifecyclePolicyName>\\n <Paths>\\n <0>/path1</0>\\n <1>/path2</1>\\n </Paths>\\n </LifecyclePolicies>\\n</DescribeLifecyclePoliciesResponse>","errorExample":""}]', + 'title' => 'DescribeLifecyclePolicies', + 'description' => 'Only General-purpose NAS and CPFS for Lingjun file systems support this operation.'."\n", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'CreateLifecycleRetrieveJob' => [ + 'summary' => 'Creates a data retrieval task.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'readAndWrite', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'create', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '19616', + 'abilityTreeNodes' => [ + 'FEATUREnasPWYFYN', + ], + 'autoTest' => true, + 'tenantRelevance' => 'tenant', + ], + 'parameters' => [ + [ + 'name' => 'FileSystemId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the file system.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => '31a8e4****', + ], + ], + [ + 'name' => 'Paths', + 'in' => 'query', + 'style' => 'repeatList', + 'schema' => [ + 'description' => 'The directories or files that you want to retrieve. You can specify a maximum of 10 paths.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The directory or file that you want to retrieve.'."\n" + ."\n" + .'The path must start with a forward slash (/) and must be a path that exists in the mount target.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '["/pathway/doc1","/pathway/doc2"]', + ], + 'required' => true, + 'example' => 'Paths.1=/pathway/doc1,Paths.2=/pathway/doc2', + 'maxItems' => 11, + ], + ], + [ + 'name' => 'StorageType', + 'in' => 'query', + 'allowEmptyValue' => true, + 'schema' => [ + 'description' => 'The storage class.'."\n" + ."\n" + .'* InfrequentAccess (default): the Infrequent Access (IA) storage class.'."\n" + .'* Archive: the Archive storage class.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'InfrequentAccess', + 'default' => 'InfrequentAccess', + 'enum' => [ + 'InfrequentAccess', + 'Archive', + ], + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'BC7C825C-5F65-4B56-BEF6-98C56C7C****', + ], + 'JobId' => [ + 'description' => 'The ID of the data retrieval task.'."\n", + 'type' => 'string', + 'example' => 'lrj-nfstest-ia-160****853-hshvw', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'OperationDenied.FileSystemNotSupportedForLifecycle', + 'errorMessage' => 'The file system does not support lifecycle.', + ], + [ + 'errorCode' => 'OperationDenied.EncryptedFileSystemNotSupportedForLifecycle', + 'errorMessage' => 'The encrypted file system does not support lifecycle.', + ], + [ + 'errorCode' => 'OperationDenied.LifecycleRetrieveJobCountLimitExceeded', + 'errorMessage' => 'The maximum number of LifecycleRetrieveJobs is exceeded.', + ], + ], + 404 => [ + [ + 'errorCode' => 'InvalidFileSystem.NotFound', + 'errorMessage' => 'The specified file system does not exist.', + ], + [ + 'errorCode' => 'InvalidParameter.PathNotExist', + 'errorMessage' => 'The specified path does not exist.', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"BC7C825C-5F65-4B56-BEF6-98C56C7C****\\",\\n \\"JobId\\": \\"lrj-nfstest-ia-160****853-hshvw\\"\\n}","errorExample":""},{"type":"xml","example":"<CreateLifecycleRetrieveJobResponse>\\n <RequestId>BC7C825C-5F65-4B56-BEF6-98C56C7C****</RequestId>\\n <JobId>lrj-nfstest-ia-160****853-hshvw</JobId>\\n</CreateLifecycleRetrieveJobResponse>","errorExample":""}]', + 'title' => 'CreateLifecycleRetrieveJob', + 'description' => '* Only General-purpose NAS file systems support this operation.'."\n" + .'* You can run a maximum of 20 data retrieval tasks in each region within an Alibaba Cloud account.'."\n", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'CancelLifecycleRetrieveJob' => [ + 'summary' => 'Cancels a running data retrieval task.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'delete', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '19615', + 'abilityTreeNodes' => [ + 'FEATUREnas7AL8PW', + 'FEATUREnasEER7AI', + ], + 'autoTest' => true, + 'tenantRelevance' => 'tenant', + ], + 'parameters' => [ + [ + 'name' => 'JobId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the data retrieval task.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'lrj-nfstest-ia-160****853-hshvw', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'BC7C825C-5F65-4B56-BEF6-98C56C7C****', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'OperationDenied.LifecycleRetrieveJobEnded', + 'errorMessage' => 'The specified LifecycleRetrieveJob has already ended.', + ], + ], + 404 => [ + [ + 'errorCode' => 'InvalidFileSystem.NotFound', + 'errorMessage' => 'The specified file system does not exist.', + ], + [ + 'errorCode' => 'InvalidLifecycleRetrieveJob.NotFound', + 'errorMessage' => 'The specified LifecycleRetrieveJob does not exist.', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"BC7C825C-5F65-4B56-BEF6-98C56C7C****\\"\\n}","errorExample":""},{"type":"xml","example":"<RequestId>BC7C825C-5F65-4B56-BEF6-98C56C7C****</RequestId>","errorExample":""}]', + 'title' => 'CancelLifecycleRetrieveJob', + 'description' => 'Only General-purpose NAS file systems support this operation.'."\n", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'RetryLifecycleRetrieveJob' => [ + 'summary' => 'Retries failed a data retrieval task.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '19611', + 'abilityTreeNodes' => [ + 'FEATUREnasZ6WBFV', + ], + 'autoTest' => true, + 'tenantRelevance' => 'tenant', + ], + 'parameters' => [ + [ + 'name' => 'JobId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the data retrieval task.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'lrj-nfstest-ia-160****853-hshvw', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'BC7C825C-5F65-4B56-BEF6-98C56C7C****', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'OperationDenied.LifecycleRetrieveJobNotFailed', + 'errorMessage' => 'The specified LifecycleRetrieveJob has not failed.', + ], + [ + 'errorCode' => 'OperationDenied.LifecycleRetrieveJobCountLimitExceeded', + 'errorMessage' => 'The maximum number of LifecycleRetrieveJobs is exceeded.', + ], + ], + 404 => [ + [ + 'errorCode' => 'InvalidFileSystem.NotFound', + 'errorMessage' => 'The specified file system does not exist.', + ], + [ + 'errorCode' => 'InvalidLifecycleRetrieveJob.NotFound', + 'errorMessage' => 'The specified LifecycleRetrieveJob does not exist.', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"BC7C825C-5F65-4B56-BEF6-98C56C7C****\\"\\n}","errorExample":""},{"type":"xml","example":"<RequestId>BC7C825C-5F65-4B56-BEF6-98C56C7C****</RequestId>","errorExample":""}]', + 'title' => 'RetryLifecycleRetrieveJob', + 'description' => 'Only General-purpose NAS file systems support this operation.'."\n", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'ListLifecycleRetrieveJobs' => [ + 'summary' => 'Queries data retrieval tasks.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '19612', + 'abilityTreeNodes' => [ + 'FEATUREnas7AL8PW', + 'FEATUREnasEER7AI', + 'FEATUREnasZ6WBFV', + ], + 'autoTest' => true, + 'tenantRelevance' => 'tenant', + ], + 'parameters' => [ + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of entries to return on each page.'."\n" + ."\n" + .'Valid values: 1 to 100.'."\n" + ."\n" + .'Default value: 10.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'maximum' => '100', + 'minimum' => '1', + 'example' => '10', + 'default' => '10', + ], + ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of the page to return.'."\n" + ."\n" + .'Pages start from page 1. Default value: 1.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'minimum' => '1', + 'example' => '1', + 'default' => '1', + ], + ], + [ + 'name' => 'FileSystemId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the file system.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '31a8e4****', + ], + ], + [ + 'name' => 'Status', + 'in' => 'query', + 'schema' => [ + 'description' => 'The status of the data retrieval task. Valid values:'."\n" + ."\n" + .'* active: The task is running.'."\n" + .'* canceled: The task is canceled.'."\n" + .'* completed: The task is completed.'."\n" + .'* failed: The task has failed.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'completed', + 'default' => '', + 'enum' => [ + 'active', + 'canceled', + 'completed', + 'failed', + ], + ], + ], + [ + 'name' => 'StorageType', + 'in' => 'query', + 'allowEmptyValue' => true, + 'schema' => [ + 'description' => 'The storage class.'."\n" + ."\n" + .'* InfrequentAccess: the Infrequent Access (IA) storage class.'."\n" + .'* Archive: the Archive storage class.'."\n" + ."\n" + .'> If the StorageType parameter is not specified, data retrieval tasks of all types are returned.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'InfrequentAccess', + 'enum' => [ + 'InfrequentAccess', + 'Archive', + ], + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'TotalCount' => [ + 'description' => 'The total number of data retrieval tasks.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '10', + ], + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => 'BC7C825C-5F65-4B56-BEF6-98C56C7C****', + ], + 'PageSize' => [ + 'description' => 'The number of entries returned per page.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '10', + ], + 'PageNumber' => [ + 'description' => 'The page number of the returned page.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '1', + ], + 'LifecycleRetrieveJobs' => [ + 'description' => 'The details about the data retrieval tasks.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'FileSystemId' => [ + 'description' => 'The ID of the file system.'."\n", + 'type' => 'string', + 'example' => '31a8e4****', + ], + 'Status' => [ + 'description' => 'The status of the data retrieval task. Valid values:'."\n" + ."\n" + .'* active: The task is running.'."\n" + .'* canceled: The task is canceled.'."\n" + .'* completed: The task is completed.'."\n" + .'* failed: The task has failed.'."\n", + 'type' => 'string', + 'example' => 'completed', + ], + 'DiscoveredFileCount' => [ + 'description' => 'The total number of files that are read in the data retrieval task.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '100', + ], + 'UpdateTime' => [ + 'description' => 'The time when the task was updated.'."\n" + ."\n" + .'The time follows the ISO 8601 standard in the `yyyy-MM-ddTHH:mm:ssZ` format.'."\n", + 'type' => 'string', + 'example' => '2021-02-30T11:08:08Z', + ], + 'Paths' => [ + 'description' => 'The execution path of the data retrieval task.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The directories or files that are retrieved.'."\n" + ."\n" + .'Each path starts with a forward slash (/) and exists in the mount target.'."\n", + 'type' => 'string', + 'example' => '["/pathway/to/folder","/pathway/to/folder","/pathway/to/folder"]', + ], + ], + 'RetrievedFileCount' => [ + 'description' => 'The total number of files that are retrieved.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '80', + ], + 'JobId' => [ + 'description' => 'The ID of the data retrieval task.'."\n", + 'type' => 'string', + 'example' => 'lrj-nfstest-ia-160****853-hshvw', + ], + 'CreateTime' => [ + 'description' => 'The time when the task was created.'."\n" + ."\n" + .'The time follows the ISO 8601 standard in the `yyyy-MM-ddTHH:mm:ssZ` format.'."\n", + 'type' => 'string', + 'example' => '2021-02-30T10:08:08Z', + ], + 'StorageType' => [ + 'description' => 'The storage class.'."\n" + ."\n" + .'* InfrequentAccess: the IA storage class.'."\n" + .'* Archive: the Archive storage class.'."\n", + 'type' => 'string', + 'example' => 'InfrequentAccess', + ], + ], + ], + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 404 => [ + [ + 'errorCode' => 'InvalidFileSystem.NotFound', + 'errorMessage' => 'The specified file system does not exist.', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"TotalCount\\": 10,\\n \\"RequestId\\": \\"BC7C825C-5F65-4B56-BEF6-98C56C7C****\\",\\n \\"PageSize\\": 10,\\n \\"PageNumber\\": 1,\\n \\"LifecycleRetrieveJobs\\": [\\n {\\n \\"FileSystemId\\": \\"31a8e4****\\",\\n \\"Status\\": \\"completed\\",\\n \\"DiscoveredFileCount\\": 100,\\n \\"UpdateTime\\": \\"2021-02-30T11:08:08Z\\",\\n \\"Paths\\": [\\n \\"[\\\\\\"/pathway/to/folder\\\\\\",\\\\\\"/pathway/to/folder\\\\\\",\\\\\\"/pathway/to/folder\\\\\\"]\\"\\n ],\\n \\"RetrievedFileCount\\": 80,\\n \\"JobId\\": \\"lrj-nfstest-ia-160****853-hshvw\\",\\n \\"CreateTime\\": \\"2021-02-30T10:08:08Z\\",\\n \\"StorageType\\": \\"InfrequentAccess\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"<ListLifecycleRetrieveJobsResponse>\\n <TotalCount>10</TotalCount>\\n <RequestId>BC7C825C-5F65-4B56-BEF6-98C56C7C****</RequestId>\\n <PageSize>10</PageSize>\\n <PageNumber>1</PageNumber>\\n <LifecycleRetrieveJobs>\\n <FileSystemId>31a8e4****</FileSystemId>\\n <Status>completed</Status>\\n <DiscoveredFileCount>100</DiscoveredFileCount>\\n <UpdateTime>2021-02-30T11:08:08Z</UpdateTime>\\n <Paths>[\\"/pathway/to/folder\\",\\"/pathway/to/folder\\",\\"/pathway/to/folder\\"]</Paths>\\n <RetrievedFileCount>80</RetrievedFileCount>\\n <JobId>lrj-nfstest-ia-160****853-hshvw</JobId>\\n <CreateTime>2021-02-30T10:08:08Z</CreateTime>\\n </LifecycleRetrieveJobs>\\n</ListLifecycleRetrieveJobsResponse>","errorExample":""}]', + 'title' => 'ListLifecycleRetrieveJobs', + 'description' => 'Only General-purpose NAS file systems support this operation.', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'ListDirectoriesAndFiles' => [ + 'summary' => 'Queries the infrequently-accessed files in a specified directory of a General-purpose NAS file system and the subdirectories that contain the files.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '19613', + 'abilityTreeNodes' => [ + 'FEATUREnas0A1PB1', + 'FEATUREnasZ6WBFV', + ], + 'autoTest' => true, + 'tenantRelevance' => 'tenant', + ], + 'parameters' => [ + [ + 'name' => 'FileSystemId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the file system.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => '31a8e4****', + ], + ], + [ + 'name' => 'Path', + 'in' => 'query', + 'schema' => [ + 'description' => 'The absolute path of the directory.'."\n" + ."\n" + .'The path must start with a forward slash (/) and must be a path that exists in the mount target.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => '/pathway/to/folder', + ], + ], + [ + 'name' => 'NextToken', + 'in' => 'query', + 'schema' => [ + 'description' => 'The pagination token that is used in the next request to retrieve a new page of results. You do not need to specify this parameter for the first request. You must specify the token that is obtained from the previous query as the value of NextToken.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'TGlzdFJlc291cmNlU****mVzJjE1MTI2NjY4NzY5MTAzOTEmMiZORnI4NDhVeEtrUT0= ', + ], + ], + [ + 'name' => 'StorageType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The storage class.'."\n" + ."\n" + .'* InfrequentAccess: the Infrequent Access (IA) storage class.'."\n" + .'* Archive: the Archive storage class.'."\n" + .'* All: all stored data.'."\n" + ."\n" + .'> If you set the StorageType parameter to All, you must set the DirectoryOnly parameter to true.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'InfrequentAccess', + 'enum' => [ + 'InfrequentAccess', + 'All', + 'Archive', + ], + ], + ], + [ + 'name' => 'DirectoryOnly', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to query only directories.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'* false (default): queries both directories and files.'."\n" + .'* true: queries only directories.'."\n" + ."\n" + .'> If you set the StorageType parameter to All, you must set the DirectoryOnly parameter to true.'."\n", + 'type' => 'boolean', + 'required' => false, + 'example' => 'false', + 'default' => 'false', + ], + ], + [ + 'name' => 'MaxResults', + 'in' => 'query', + 'schema' => [ + 'description' => 'The maximum number of directories or files to include in the results of each query.'."\n" + ."\n" + .'Valid values: 10 to 128.'."\n" + ."\n" + .'Default value: 100.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'maximum' => '128', + 'minimum' => '10', + 'example' => '100', + 'default' => '100', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'NextToken' => [ + 'description' => 'A pagination token. It can be used in the next request to retrieve a new page of results.'."\n", + 'type' => 'string', + 'example' => 'TGlzdFJlc291cmNlU****mVzJjE1MTI2NjY4NzY5MTAzOTEmMiZORnI4NDhVeEtrUT0=', + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '2D69A58F-345C-4FDE-88E4-BF518948****', + ], + 'Entries' => [ + 'description' => 'The details about the files or directories.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The details about the files or directories.'."\n", + 'type' => 'object', + 'properties' => [ + 'Type' => [ + 'description' => 'The type of the query result.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'* File'."\n" + .'* Directory'."\n", + 'type' => 'string', + 'example' => 'Directory', + ], + 'HasInfrequentAccessFile' => [ + 'description' => 'Indicates whether the directory contains files stored in the IA storage class.'."\n" + ."\n" + .'This parameter is returned and valid only if the value of the Type parameter is Directory.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'* true: The directory contains files stored in the IA storage class.'."\n" + .'* false: The directory does not contain files stored in the IA storage class.'."\n", + 'type' => 'boolean', + 'example' => 'true', + ], + 'Ctime' => [ + 'description' => 'The time when the raw data was modified.'."\n" + ."\n" + .'The time follows the ISO 8601 standard in the `yyyy-MM-ddTHH:mm:ssZ` format.'."\n" + ."\n" + .'This parameter is returned and valid only if the value of the Type parameter is File.'."\n", + 'type' => 'string', + 'example' => '2021-02-11T10:08:10Z', + ], + 'Mtime' => [ + 'description' => 'The time when the file was modified.'."\n" + ."\n" + .'The time follows the ISO 8601 standard in the `yyyy-MM-ddTHH:mm:ssZ` format.'."\n" + ."\n" + .'This parameter is returned and valid only if the value of the Type parameter is File.'."\n", + 'type' => 'string', + 'example' => '2021-02-11T10:08:08Z', + ], + 'Size' => [ + 'description' => 'The size of the file.'."\n" + ."\n" + .'Unit: bytes.'."\n" + ."\n" + .'This parameter is returned and valid only if the value of the Type parameter is File.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1024', + ], + 'StorageType' => [ + 'description' => 'The storage class.'."\n" + ."\n" + .'This parameter is returned and valid only if the value of the Type parameter is File.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'* InfrequentAccess: the IA storage class.'."\n" + .'* Archive: the Archive storage class.'."\n", + 'type' => 'string', + 'example' => 'InfrequentAccess', + ], + 'Atime' => [ + 'description' => 'The time when the file was queried.'."\n" + ."\n" + .'The time follows the ISO 8601 standard in the `yyyy-MM-ddTHH:mm:ssZ` format.'."\n" + ."\n" + .'This parameter is returned and valid only if the value of the Type parameter is File.'."\n", + 'type' => 'string', + 'example' => '2021-02-01T10:08:08Z', + ], + 'Name' => [ + 'description' => 'The name of the file or directory.'."\n", + 'type' => 'string', + 'example' => 'file.txt', + ], + 'RetrieveTime' => [ + 'description' => 'The time when the last data retrieval task was run.'."\n" + ."\n" + .'The time follows the ISO 8601 standard in the `yyyy-MM-ddTHH:mm:ssZ` format.'."\n" + ."\n" + .'This parameter is returned and valid only if the value of the Type parameter is File.'."\n", + 'type' => 'string', + 'example' => '2021-02-11T10:08:08Z', + ], + 'Inode' => [ + 'description' => 'The file or directory inode.'."\n", + 'type' => 'string', + 'example' => '66', + ], + 'FileId' => [ + 'description' => 'The ID of the directory or file.'."\n", + 'type' => 'string', + 'example' => '66', + ], + 'Owner' => [ + 'description' => 'The ID of the portable account. This parameter is returned and valid only if the value of the ProtocolType parameter is SMB and RAM-based access control is enabled.'."\n", + 'type' => 'string', + 'example' => '37862c****', + ], + 'HasArchiveFile' => [ + 'description' => 'Indicates whether the directory contains files stored in the Archive storage class.'."\n" + ."\n" + .'This parameter is returned and valid only if the value of the Type parameter is Directory.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'* true: The directory contains files stored in the Archive storage class.'."\n" + .'* false: The directory does not contain files stored in the Archive storage class.'."\n", + 'type' => 'string', + 'example' => 'true', + ], + 'OfflineDuration' => [ + 'type' => 'integer', + 'format' => 'int64', + ], + 'OfflineUnchangedDuration' => [ + 'type' => 'integer', + 'format' => 'int64', + ], + ], + ], + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'OperationDenied.InvalidNextToken', + 'errorMessage' => 'The specified NextToken is invalid.', + ], + ], + 404 => [ + [ + 'errorCode' => 'InvalidFileSystem.NotFound', + 'errorMessage' => 'The specified file system does not exist.', + ], + [ + 'errorCode' => 'InvalidParameter.PathNotExist', + 'errorMessage' => 'The specified path does not exist.', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"NextToken\\": \\"TGlzdFJlc291cmNlU****mVzJjE1MTI2NjY4NzY5MTAzOTEmMiZORnI4NDhVeEtrUT0=\\",\\n \\"RequestId\\": \\"2D69A58F-345C-4FDE-88E4-BF518948****\\",\\n \\"Entries\\": [\\n {\\n \\"Type\\": \\"File\\",\\n \\"HasInfrequentAccessFile\\": true,\\n \\"Ctime\\": \\"2021-02-11T10:08:10Z\\",\\n \\"Mtime\\": \\"2021-02-11T10:08:08Z\\",\\n \\"Size\\": 1024,\\n \\"StorageType\\": \\"InfrequentAccess\\",\\n \\"Atime\\": \\"2021-02-01T10:08:08Z\\",\\n \\"Name\\": \\"file.txt\\",\\n \\"RetrieveTime\\": \\"2021-02-11T10:08:08Z\\",\\n \\"Inode\\": \\"66\\",\\n \\"FileId\\": \\"66\\",\\n \\"Owner\\": \\"37862c****\\",\\n \\"HasArchiveFile\\": \\"true\\",\\n \\"OfflineDuration\\": 0,\\n \\"OfflineUnchangedDuration\\": 0\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"<ListDirectoriesAndFilesResponse>\\n <NextToken>TGlzdFJlc291cmNlU****mVzJjE1MTI2NjY4NzY5MTAzOTEmMiZORnI4NDhVeEtrUT0=</NextToken>\\n <RequestId>2D69A58F-345C-4FDE-88E4-BF518948****</RequestId>\\n <Entries>\\n <Type>File</Type>\\n <HasInfrequentAccessFile>true</HasInfrequentAccessFile>\\n <Ctime>2021-02-11T10:08:10Z</Ctime>\\n <Mtime>2021-02-11T10:08:08Z</Mtime>\\n <Size>1024</Size>\\n <StorageType>InfrequentAccess</StorageType>\\n <Atime>2021-02-01T10:08:08Z</Atime>\\n <Name>file.txt</Name>\\n <RetrieveTime>2021-02-11T10:08:08Z</RetrieveTime>\\n <Inode>66</Inode>\\n <FileId>66</FileId>\\n <Owner>37862c****</Owner>\\n </Entries>\\n</ListDirectoriesAndFilesResponse>","errorExample":""}]', + 'title' => 'ListDirectoriesAndFiles', + 'description' => 'Only General-purpose NAS file systems support this operation.'."\n", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'EnableRecycleBin' => [ + 'summary' => 'Enables the recycle bin feature for a file system.', + 'methods' => [ + 'get', + 'post', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'paid', + 'abilityTreeCode' => '14453', + 'abilityTreeNodes' => [ + 'FEATUREnasI92PYN', + ], + 'autoTest' => true, + 'tenantRelevance' => 'tenant', + ], + 'parameters' => [ + [ + 'name' => 'FileSystemId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the file system for which you want to enable the recycle bin feature.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => '1ca404****', + ], + ], + [ + 'name' => 'ReservedDays', + 'in' => 'query', + 'schema' => [ + 'description' => 'The retention period of the files in the recycle bin. Unit: days.'."\n" + ."\n" + .'Valid values: 1 to 180.'."\n" + ."\n" + .'Default value: 3.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'maximum' => '180', + 'minimum' => '1', + 'example' => '3', + 'default' => '3', + ], + ], + ], + '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' => '9E15E394-38A6-457A-A62A-D9797C9A****', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'IllegalCharacters', + 'errorMessage' => 'The parameter contains illegal characters.', + ], + [ + 'errorCode' => 'MissingFileSystemId', + 'errorMessage' => 'FileSystemId is mandatory for this action.', + ], + ], + 403 => [ + [ + 'errorCode' => 'OperationDenied.RecycleBinEnabled', + 'errorMessage' => 'The recycle bin is already enabled.', + ], + ], + [ + [ + 'errorCode' => 'InvalidFileSystem.NotFound', + 'errorMessage' => 'The specified file system does not exist.', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"9E15E394-38A6-457A-A62A-D9797C9A****\\"\\n}","errorExample":""},{"type":"xml","example":"<EnableRecycleBinResponse>\\n <RequestId>9E15E394-38A6-457A-A62A-D9797C9A****</RequestId>\\n</EnableRecycleBinResponse>","errorExample":""}]', + 'title' => 'EnableRecycleBin', + 'description' => 'Only General-purpose NAS file systems support this operation.'."\n", + ], + 'DisableAndCleanRecycleBin' => [ + 'summary' => 'Disables and empties the recycle bin of a General-purpose NAS file system.', + 'methods' => [ + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'high', + 'chargeType' => 'paid', + 'abilityTreeCode' => '14454', + 'abilityTreeNodes' => [ + 'FEATUREnas0A1PB1', + ], + 'autoTest' => true, + 'tenantRelevance' => 'tenant', + ], + 'parameters' => [ + [ + 'name' => 'FileSystemId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the file system.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => '1ca404****', + ], + ], + ], + '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' => '9E15E394-38A6-457A-A62A-D9797C9A****', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'IllegalCharacters', + 'errorMessage' => 'The parameter contains illegal characters.', + ], + [ + 'errorCode' => 'MissingFileSystemId', + 'errorMessage' => 'FileSystemId is mandatory for this action.', + ], + ], + 403 => [ + [ + 'errorCode' => 'OperationDenied.RecycleBinDisabled', + 'errorMessage' => 'The operation is denied because the recycle bin is disabled.', + ], + ], + [ + [ + 'errorCode' => 'InvalidFileSystem.NotFound', + 'errorMessage' => 'The specified file system does not exist.', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"9E15E394-38A6-457A-A62A-D9797C9A****\\"\\n}","errorExample":""},{"type":"xml","example":"<DisableAndCleanRecycleBinResponse>\\n <RequestId>9E15E394-38A6-457A-A62A-D9797C9A****</RequestId>\\n</DisableAndCleanRecycleBinResponse>","errorExample":""}]', + 'title' => 'DisableAndCleanRecycleBin', + 'description' => '* Only General-purpose NAS file systems support this operation.'."\n" + .'* If you disable the recycle bin, all files in the recycle bin are permanently deleted.'."\n" + .'* If you disable and then enable the recycle bin, the recycle bin is empty. You cannot retrieve the deleted files.'."\n", + ], + 'UpdateRecycleBinAttribute' => [ + 'summary' => 'Modifies the retention period of data in the recycle bin of a file system.', + 'methods' => [ + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'paid', + 'abilityTreeCode' => '14458', + 'abilityTreeNodes' => [ + 'FEATUREnas0A1PB1', + ], + 'autoTest' => true, + 'tenantRelevance' => 'tenant', + ], + 'parameters' => [ + [ + 'name' => 'FileSystemId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the file system.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => '1ca404****', + ], + ], + [ + 'name' => 'ReservedDays', + 'in' => 'query', + 'schema' => [ + 'description' => 'The retention period of the files in the recycle bin. Unit: days.'."\n" + ."\n" + .'Valid values: 1 to 180.'."\n" + ."\n" + .'Default value: 3.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => true, + 'docRequired' => true, + 'maximum' => '180', + 'minimum' => '1', + 'example' => '3', + ], + ], + ], + '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' => 'BC7C825C-5F65-4B56-BEF6-98C5****546E', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'IllegalCharacters', + 'errorMessage' => 'The parameter contains illegal characters.', + ], + [ + 'errorCode' => 'MissingFileSystemId', + 'errorMessage' => 'FileSystemId is mandatory for this action.', + ], + ], + 403 => [ + [ + 'errorCode' => 'OperationDenied.RecycleBinDisabled', + 'errorMessage' => 'The operation is denied because the recycle bin is disabled.', + ], + ], + [ + [ + 'errorCode' => 'InvalidFileSystem.NotFound', + 'errorMessage' => 'The specified file system does not exist.', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"BC7C825C-5F65-4B56-BEF6-98C5****546E\\"\\n}","errorExample":""},{"type":"xml","example":"<UpdateRecycleBinAttributeResponse>\\n <RequestId>BC7C825C-5F65-4B56-BEF6-98C5****546E</RequestId>\\n</UpdateRecycleBinAttributeResponse>","errorExample":""}]', + 'title' => 'UpdateRecycleBinAttribute', + 'description' => 'Only General-purpose NAS file systems support this operation.'."\n", + ], + 'GetRecycleBinAttribute' => [ + 'summary' => 'Queries the recycle bin configurations of a General-purpose NAS file system.', + 'methods' => [ + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '14459', + 'abilityTreeNodes' => [ + 'FEATUREnas0A1PB1', + ], + 'autoTest' => true, + 'tenantRelevance' => 'tenant', + ], + 'parameters' => [ + [ + 'name' => 'FileSystemId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the file system.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => '1ca404****', + ], + ], + ], + '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' => '9E15E394-38A6-457A-A62A-D9797C9A****', + ], + 'RecycleBinAttribute' => [ + 'description' => 'The description of the recycle bin.'."\n", + 'type' => 'object', + 'properties' => [ + 'Size' => [ + 'description' => 'The size of the files that are dumped to the recycle bin. Unit: bytes.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '100', + ], + 'SecondarySize' => [ + 'description' => 'The size of the Infrequent Access (IA) data that is dumped to the recycle bin. Unit: bytes.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '100', + ], + 'Status' => [ + 'description' => 'The status of the recycle bin.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'* Enable: The recycle bin is enabled.'."\n" + .'* Disable: The recycle bin is disabled.'."\n", + 'type' => 'string', + 'example' => 'Disable', + ], + 'ReservedDays' => [ + 'description' => 'The retention period of the files in the recycle bin. Unit: days.'."\n" + ."\n" + .'If the recycle bin is disabled, 0 is returned for this parameter.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '0', + ], + 'EnableTime' => [ + 'description' => 'The time at which the recycle bin was enabled.'."\n", + 'type' => 'string', + 'example' => '2021-05-30T10:08:08Z', + ], + 'ArchiveSize' => [ + 'description' => 'The size of the archived data that is dumped to the recycle bin. Unit: bytes.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1611661312', + ], + ], + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'IllegalCharacters', + 'errorMessage' => 'The parameter contains illegal characters.', + ], + [ + 'errorCode' => 'MissingFileSystemId', + 'errorMessage' => 'FileSystemId is mandatory for this action.', + ], + ], + 404 => [ + [ + 'errorCode' => 'InvalidFileSystem.NotFound', + 'errorMessage' => 'The specified file system does not exist.', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"9E15E394-38A6-457A-A62A-D9797C9A****\\",\\n \\"RecycleBinAttribute\\": {\\n \\"Size\\": 100,\\n \\"SecondarySize\\": 100,\\n \\"Status\\": \\"Disable\\",\\n \\"ReservedDays\\": 0,\\n \\"EnableTime\\": \\"2021-05-30T10:08:08Z\\",\\n \\"ArchiveSize\\": 1611661312\\n }\\n}","errorExample":""},{"type":"xml","example":"<GetRecycleBinAttributeResponse>\\n <RequestId>9E15E394-38A6-457A-A62A-D9797C9A****</RequestId>\\n <RecycleBinAttribute>\\n <Size>100</Size>\\n <SecondarySize>100</SecondarySize>\\n <Status>Disable</Status>\\n <ReservedDays>0</ReservedDays>\\n <EnableTime>2021-05-30T10:08:08Z</EnableTime>\\n </RecycleBinAttribute>\\n</GetRecycleBinAttributeResponse>","errorExample":""}]', + 'title' => 'GetRecycleBinAttribute', + 'description' => 'Only General-purpose File Storage NAS (NAS) file systems support this operation.', + ], + 'CreateRecycleBinRestoreJob' => [ + 'summary' => 'Restores a file or directory from the recycle bin.', + 'methods' => [ + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'readAndWrite', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'create', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '14460', + 'abilityTreeNodes' => [ + 'FEATUREnas0A1PB1', + ], + 'autoTest' => true, + 'tenantRelevance' => 'tenant', + ], + 'parameters' => [ + [ + 'name' => 'FileSystemId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the file system.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => '1ca404****', + ], + ], + [ + 'name' => 'FileId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the file or directory that you want to restore.'."\n" + ."\n" + .'You can call the [ListRecycledDirectoriesAndFiles](~~2412174~~) operation to query the FileId of the deleted data.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => '04***08', + ], + ], + [ + 'name' => 'TargetFileId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the directory to which the file is restored.'."\n" + ."\n" + .'* You can call the [ListRecentlyRecycledDirectories](~~2412173~~) operation to query the TargetFileId for recently deleted directories.'."\n" + .'* You can call the [ListDirectoriesAndFiles](~~2412163~~) operation to query the TargetFileId for existing directories.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => '13***15', + ], + ], + [ + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => [ + 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'You can use the client to generate the token, but you must make sure that the token is unique among different requests. The token can contain only ASCII characters and cannot exceed 64 characters in length. For more information, see [How to ensure idempotence](~~25693~~).'."\n" + ."\n" + .'> If you do not specify this parameter, the system automatically uses the request ID as the client token. The request ID may be different for each request.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '123e4567-e89b-12d3-a456-42665544****', + ], + ], + ], + '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' => '98696EF0-1607-4E9D-B01D-F20930B6****', + ], + 'JobId' => [ + 'description' => 'The job ID.'."\n", + 'type' => 'string', + 'example' => 'rb-10****491ff-r-162****165400', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'IllegalCharacters', + 'errorMessage' => 'The parameter contains illegal characters.', + ], + [ + 'errorCode' => 'MissingFileSystemId', + 'errorMessage' => 'FileSystemId is mandatory for this action.', + ], + [ + 'errorCode' => 'MissingTargetFileId', + 'errorMessage' => 'TargetFileId is mandatory for this action.', + ], + [ + 'errorCode' => 'MissingFileId', + 'errorMessage' => 'FileId is mandatory for this action.', + ], + [ + 'errorCode' => 'InvalidParameter.KMSKeyId.KMSUnauthorized', + 'errorMessage' => 'KMS is not authorized.', + ], + [ + 'errorCode' => 'InvalidParameter.KMSKeyId.CMKNotEnabled', + 'errorMessage' => 'The CMK needs to be enabled.', + ], + ], + 403 => [ + [ + 'errorCode' => 'OperationDenied.RecycleBinDisabled', + 'errorMessage' => 'The operation is denied because the recycle bin is disabled.', + ], + [ + 'errorCode' => 'OperationDenied.Conflict', + 'errorMessage' => 'The operation is in conflict with (% JobId). Please try again later.', + ], + [ + 'errorCode' => 'OperationDenied.TooManyRunningJobs', + 'errorMessage' => 'The maximum number of running job is one. Please try again later.', + ], + [ + 'errorCode' => 'InvalidTargetFileId.NotDirectory', + 'errorMessage' => 'The specified TargetFileId(%'."\n" + ."\n" + .'TargetFileId) is not directory.', + ], + ], + [ + [ + 'errorCode' => 'InvalidFileSystem.NotFound', + 'errorMessage' => 'The specified file system does not exist.', + ], + [ + 'errorCode' => 'InvalidFileId.NotFound', + 'errorMessage' => 'The specified FileId(%FileId) does not exist.', + ], + [ + 'errorCode' => 'InvalidTargetFileId.NotFound', + 'errorMessage' => 'The specified TargetFileId(%TargetFileId) does not exist.', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"98696EF0-1607-4E9D-B01D-F20930B6****\\",\\n \\"JobId\\": \\"rb-10****491ff-r-162****165400\\"\\n}","errorExample":""},{"type":"xml","example":"<CreateRecycleBinRestoreJobResponse>\\n <RequestId>98696EF0-1607-4E9D-B01D-F20930B6****</RequestId>\\n <JobId>8C****C54</JobId>\\n</CreateRecycleBinRestoreJobResponse>","errorExample":""}]', + 'title' => 'CreateRecycleBinRestoreJob', + 'description' => '* Only General-purpose NAS file systems support this operation.'."\n" + .'* You can run only one job at a time for a single file system to restore files to or clear files from the file system. You cannot create a restore or cleanup job when files are being restored from the recycle bin.'."\n" + .'* You can restore only one file or directory in a single restore job. If you restore a specified directory, all files in the directory are recursively restored.'."\n" + .'* After files are restored, the data of the files is defragmented. When the data is being defragmented, the read performance is slightly degraded.'."\n", + ], + 'CreateRecycleBinDeleteJob' => [ + 'summary' => 'Creates a job to permanently delete a file or directory from the recycle bin.', + 'methods' => [ + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'readAndWrite', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'delete', + 'riskType' => 'high', + 'chargeType' => 'free', + 'abilityTreeCode' => '14461', + 'abilityTreeNodes' => [ + 'FEATUREnas0A1PB1', + ], + 'autoTest' => true, + 'tenantRelevance' => 'tenant', + ], + 'parameters' => [ + [ + 'name' => 'FileSystemId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the file system.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => '1ca404****', + ], + ], + [ + 'name' => 'FileId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the file or directory that you want to permanently delete.'."\n" + ."\n" + .'You can call the [ListRecycledDirectoriesAndFiles](~~2412174~~) operation to query the FileId of the deleted data.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => '04***08', + ], + ], + [ + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => [ + 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'You can use the client to generate the token, but you must make sure that the token is unique among different requests. The token can contain only ASCII characters and cannot exceed 64 characters in length. For more information, see [How do I ensure the idempotence?](~~25693~~)'."\n" + ."\n" + .'> If you do not specify this parameter, the system automatically uses the request ID as the client token. The request ID may be different for each request.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '123e4567-e89b-12d3-a456-42665544****', + ], + ], + ], + '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' => '98696EF0-1607-4E9D-B01D-F20930B6****', + ], + 'JobId' => [ + 'description' => 'The job ID.'."\n", + 'type' => 'string', + 'example' => '8C****C54', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'IllegalCharacters', + 'errorMessage' => 'The parameter contains illegal characters.', + ], + [ + 'errorCode' => 'MissingFileSystemId', + 'errorMessage' => 'FileSystemId is mandatory for this action.', + ], + [ + 'errorCode' => 'MissingFileId', + 'errorMessage' => 'FileId is mandatory for this action.', + ], + [ + 'errorCode' => 'InvalidParameter.KMSKeyId.KMSUnauthorized', + 'errorMessage' => 'KMS is not authorized.', + ], + [ + 'errorCode' => 'InvalidParameter.KMSKeyId.CMKNotEnabled', + 'errorMessage' => 'The CMK needs to be enabled.', + ], + ], + 403 => [ + [ + 'errorCode' => 'OperationDenied.Conflict', + 'errorMessage' => 'The operation is in conflict with (% JobId). Please try again later.', + ], + [ + 'errorCode' => 'OperationDenied.TooManyRunningJobs', + 'errorMessage' => 'The maximum number of running job is one. Please try again later.', + ], + ], + [ + [ + 'errorCode' => 'InvalidFileSystem.NotFound', + 'errorMessage' => 'The specified file system does not exist.', + ], + [ + 'errorCode' => 'InvalidFileId.NotFound', + 'errorMessage' => 'The specified FileId(%FileId) does not exist.', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"98696EF0-1607-4E9D-B01D-F20930B6****\\",\\n \\"JobId\\": \\"8C****C54\\"\\n}","errorExample":""},{"type":"xml","example":"<CreateRecycleBinDeleteJobResponse>\\n <RequestId>98696EF0-1607-4E9D-B01D-F20930B6****</RequestId>\\n <JobId>8C****C54</JobId>\\n</CreateRecycleBinDeleteJobResponse>","errorExample":""}]', + 'title' => 'CreateRecycleBinDeleteJob', + 'description' => '* Only General-purpose NAS file systems support this operation.'."\n" + .'* If you permanently delete a directory, the files in the directory are recursively cleared.'."\n" + .'* You can run only one job at a time for a single file system to permanently delete the files from the file system. You cannot create a restoration or deletion job when a file or directory is being deleted.'."\n", + ], + 'CancelRecycleBinJob' => [ + 'summary' => 'Cancels a running job of the recycle bin.', + 'methods' => [ + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '14462', + 'abilityTreeNodes' => [ + 'FEATUREnas0A1PB1', + ], + 'autoTest' => true, + 'tenantRelevance' => 'tenant', + ], + 'parameters' => [ + [ + 'name' => 'JobId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The job ID.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'rb-15****ed-r-1625****2441', + ], + ], + ], + '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' => '98696EF0-1607-4E9D-B01D-F20930B6****', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'IllegalCharacters', + 'errorMessage' => 'The parameter contains illegal characters.', + ], + [ + 'errorCode' => 'MissingJobId', + 'errorMessage' => 'JobId is mandatory for this action.', + ], + ], + 403 => [ + [ + 'errorCode' => 'OperationDenied.Conflict', + 'errorMessage' => 'The operation is in conflict with (% JobId). Please try again later.', + ], + ], + [ + [ + 'errorCode' => 'InvalidJobId.NotFound', + 'errorMessage' => 'The specified JobId(%JobId) does not exist.', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"98696EF0-1607-4E9D-B01D-F20930B6****\\"\\n}","errorExample":""},{"type":"xml","example":"<CancelRecycleBinJobResponse>\\n <RequestId>98696EF0-1607-4E9D-B01D-F20930B6****</RequestId>\\n</CancelRecycleBinJobResponse>","errorExample":""}]', + 'title' => 'CancelRecycleBinJob', + 'description' => '* Only General-purpose NAS file systems support this operation.'."\n" + .'* You can cancel only jobs that are in the Running state. You cannot cancel jobs that are in the PartialSuccess, Success, Fail, or Cancelled state.'."\n" + .'* If you cancel a running job that permanently deletes files, you cannot restore the files that are already permanently deleted.'."\n" + .'* If you cancel a running job that restores files, you can query the restored files from the file system, and query the unrestored files from the recycle bin.', + ], + 'ListRecycleBinJobs' => [ + 'summary' => 'Queries the jobs of the recycle bin.', + 'methods' => [ + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '14463', + 'abilityTreeNodes' => [ + 'FEATUREnasI92PYN', + ], + 'autoTest' => true, + 'tenantRelevance' => 'tenant', + ], + 'parameters' => [ + [ + 'name' => 'FileSystemId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the file system.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => '1ca404****', + ], + ], + [ + 'name' => 'JobId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The job ID.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rb-15****ed-r-1625****2441', + ], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of entries per page.'."\n" + ."\n" + .'Valid values: 1 to 100.'."\n" + ."\n" + .'Default value: 10.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'maximum' => '100', + 'minimum' => '1', + 'example' => '10', + 'default' => '10', + ], + ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => [ + 'description' => 'The page number.'."\n" + ."\n" + .'Pages start from page 1. Default value: 1.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'minimum' => '1', + 'example' => '1', + 'default' => '1', + ], + ], + [ + 'name' => 'Status', + 'in' => 'query', + 'schema' => [ + 'description' => 'The job status. Valid values:'."\n" + ."\n" + .'* Running: The job is running.'."\n" + .'* Defragmenting: The job is defragmenting data.'."\n" + .'* PartialSuccess: The job is partially completed.'."\n" + .'* Success: The job is completed.'."\n" + .'* Fail: The job failed.'."\n" + .'* Cancelled: The job is canceled.'."\n" + .'* all (default)'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'All', + 'default' => 'All', + 'enum' => [ + 'Running', + 'Defragmenting', + 'PartialSuccess', + 'Success', + 'Fail', + 'Cancelled', + 'All', + ], + ], + ], + ], + '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' => '9E15E394-38A6-457A-A62A-D9797C9A****', + ], + 'TotalCount' => [ + 'description' => 'The total number of jobs.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1', + ], + 'PageNumber' => [ + 'description' => 'The page number.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1', + ], + 'PageSize' => [ + 'description' => 'The number of jobs returned per page.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '10', + ], + 'Jobs' => [ + 'description' => 'The information about the jobs of the recycle bin.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Id' => [ + 'description' => 'The job ID.'."\n", + 'type' => 'string', + 'example' => '8C****C54', + ], + 'Type' => [ + 'description' => 'The type of the job. Valid values:'."\n" + ."\n" + .'* Restore: a file restoration job'."\n" + .'* Delete: a file deletion job'."\n", + 'type' => 'string', + 'example' => 'Restore', + ], + 'FileId' => [ + 'description' => 'The ID of the file or directory in the job.'."\n", + 'type' => 'string', + 'example' => '04***08', + ], + 'Status' => [ + 'description' => 'The status of the job. Valid values:'."\n" + ."\n" + .'* Running: The job is running.'."\n" + .'* Defragmenting: The job is defragmenting data.'."\n" + .'* PartialSuccess: The job is partially completed.'."\n" + .'* Success: The job is completed.'."\n" + .'* Fail: The job failed.'."\n" + .'* Cancelled: The job is canceled.', + 'type' => 'string', + 'example' => 'Fail', + ], + 'ErrorCode' => [ + 'description' => 'The error code returned.'."\n" + ."\n" + .'A valid value is returned only if you set the Status parameter to Fail or PartialSuccess.'."\n", + 'type' => 'string', + 'example' => 'InvalidFileId.NotFound', + ], + 'Progress' => [ + 'description' => 'The progress of the job.'."\n" + ."\n" + .'Valid values: 1 to 100.'."\n", + 'type' => 'string', + 'example' => '100', + ], + 'CreateTime' => [ + 'description' => 'The time when the job was created.'."\n", + 'type' => 'string', + 'example' => '2021-05-30T10:08:08Z', + ], + 'FileName' => [ + 'description' => 'The name of the file or directory that is associated with the job.'."\n", + 'type' => 'string', + 'example' => 'test001', + ], + 'ErrorMessage' => [ + 'description' => 'The error message.'."\n" + ."\n" + .'A valid value is returned only if you set the Status parameter to Fail or PartialSuccess.'."\n", + 'type' => 'string', + 'example' => 'The Target File or Directory does not exist.', + ], + ], + 'description' => '', + ], + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'IllegalCharacters', + 'errorMessage' => 'The parameter contains illegal characters.', + ], + [ + 'errorCode' => 'MissingFileSystemId', + 'errorMessage' => 'FileSystemId is mandatory for this action.', + ], + [ + 'errorCode' => 'InvalidStatus', + 'errorMessage' => 'Specified parameter Status is not valid.', + ], + ], + 404 => [ + [ + 'errorCode' => 'InvalidFileSystem.NotFound', + 'errorMessage' => 'The specified file system does not exist.', + ], + [ + 'errorCode' => 'InvalidJobId.NotFound', + 'errorMessage' => 'The specified JobId(%JobId) does not exist.', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"9E15E394-38A6-457A-A62A-D9797C9A****\\",\\n \\"TotalCount\\": 1,\\n \\"PageNumber\\": 1,\\n \\"PageSize\\": 10,\\n \\"Jobs\\": [\\n {\\n \\"Id\\": \\"8C****C54\\",\\n \\"Type\\": \\"Restore\\",\\n \\"FileId\\": \\"04***08\\",\\n \\"Status\\": \\"Fail\\",\\n \\"ErrorCode\\": \\"InvalidFileId.NotFound\\",\\n \\"Progress\\": \\"100\\",\\n \\"CreateTime\\": \\"2021-05-30T10:08:08Z\\",\\n \\"FileName\\": \\"test001\\",\\n \\"ErrorMessage\\": \\"The Target File or Directory does not exist.\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"<ListRecycleBinJobsResponse>\\n <RequestId>9E15E394-38A6-457A-A62A-D9797C9A****</RequestId>\\n <TotalCount>1</TotalCount>\\n <PageNumber>1</PageNumber>\\n <PageSize>10</PageSize>\\n <Jobs>\\n <Id>8C****C54</Id>\\n <Type>Restore</Type>\\n <FileId>04***08</FileId>\\n <Status>Running</Status>\\n <ErrorCode>无</ErrorCode>\\n <Progress>100</Progress>\\n <CreateTime>2021-05-30T10:08:08Z</CreateTime>\\n <FileName>test001</FileName>\\n <ErrorMessage>无</ErrorMessage>\\n </Jobs>\\n</ListRecycleBinJobsResponse>","errorExample":""}]', + 'title' => 'ListRecycleBinJobs', + 'description' => '* Only General-purpose NAS file systems support this operation.'."\n" + .'* You can query a maximum of 50 jobs that are recently executed.'."\n", + ], + 'ListRecentlyRecycledDirectories' => [ + 'summary' => 'Queries the directories that are recently deleted.', + 'methods' => [ + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '14465', + 'abilityTreeNodes' => [ + 'FEATUREnasI92PYN', + ], + 'autoTest' => true, + 'tenantRelevance' => 'tenant', + ], + 'parameters' => [ + [ + 'name' => 'FileSystemId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the file system.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => '1ca404****', + ], + ], + [ + 'name' => 'NextToken', + 'in' => 'query', + 'schema' => [ + 'description' => 'The pagination token that is used in the next request to retrieve a new page of results. You do not need to specify this parameter for the first request.'."\n" + ."\n" + .'If not all directories are returned in a query, the return value of the NextToken parameter is not empty. In this case, you can specify a valid value for the NextToken parameter to continue the query.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '1256****25', + ], + ], + [ + 'name' => 'MaxResults', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of directories to return for each query.'."\n" + ."\n" + .'Valid values: 10 to 1000.'."\n" + ."\n" + .'Default value: 100.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'maximum' => '1000', + 'minimum' => '10', + 'example' => '100', + 'default' => '100', + ], + ], + ], + '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' => '9E15E394-38A6-457A-A62A-D9797C9A****', + ], + 'NextToken' => [ + 'title' => 'Id of the request', + 'description' => 'A pagination token.'."\n" + ."\n" + .'If not all directories are returned in a query, the return value of the NextToken parameter is not empty. In this case, you can specify a valid value for the NextToken parameter to continue the query.'."\n", + 'type' => 'string', + 'example' => '1256****25', + ], + 'Entries' => [ + 'description' => 'The information about the directories that are recently deleted.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'FileId' => [ + 'description' => 'The ID of the directory.'."\n", + 'type' => 'string', + 'example' => '04***08', + ], + 'Path' => [ + 'description' => 'The absolute path to the directory.'."\n", + 'type' => 'string', + 'example' => '/a/b', + ], + 'Name' => [ + 'description' => 'The name of the directory.'."\n", + 'type' => 'string', + 'example' => 'b', + ], + 'LastDeleteTime' => [ + 'description' => 'The time when the directory was last deleted.'."\n", + 'type' => 'string', + 'example' => '2021-05-30T10:08:08Z', + ], + ], + ], + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'IllegalCharacters', + 'errorMessage' => 'The parameter contains illegal characters.', + ], + [ + 'errorCode' => 'MissingFileSystemId', + 'errorMessage' => 'FileSystemId is mandatory for this action.', + ], + [ + 'errorCode' => 'InvalidParameter.KMSKeyId.KMSUnauthorized', + 'errorMessage' => 'KMS is not authorized.', + ], + [ + 'errorCode' => 'InvalidParameter.KMSKeyId.CMKNotEnabled', + 'errorMessage' => 'The CMK needs to be enabled.', + ], + ], + 404 => [ + [ + 'errorCode' => 'InvalidFileSystem.NotFound', + 'errorMessage' => 'The specified file system does not exist.', + ], + [ + 'errorCode' => 'InvalidParameter.InvalidNextToken', + 'errorMessage' => 'The specified NextToken is invaild.', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"9E15E394-38A6-457A-A62A-D9797C9A****\\",\\n \\"NextToken\\": \\"1256****25\\",\\n \\"Entries\\": [\\n {\\n \\"FileId\\": \\"04***08\\",\\n \\"Path\\": \\"/a/b\\",\\n \\"Name\\": \\"b\\",\\n \\"LastDeleteTime\\": \\"2021-05-30T10:08:08Z\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"<ListRecentlyRecycledDirectoriesResponse>\\n <RequestId>9E15E394-38A6-457A-A62A-D9797C9A****</RequestId>\\n <NextToken>1256****25</NextToken>\\n <Entries>\\n <FileId>04***08</FileId>\\n <Path>/a/b</Path>\\n <Name>b</Name>\\n <LastDeleteTime>2021-05-30T10:08:08Z</LastDeleteTime>\\n </Entries>\\n</ListRecentlyRecycledDirectoriesResponse>","errorExample":""}]', + 'title' => 'ListRecentlyRecycledDirectories', + 'description' => 'Only General-purpose NAS file systems support this operation.'."\n", + ], + 'ListRecycledDirectoriesAndFiles' => [ + 'summary' => 'Queries deleted files or directories.', + 'methods' => [ + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '14464', + 'abilityTreeNodes' => [ + 'FEATUREnasI92PYN', + ], + 'autoTest' => true, + 'tenantRelevance' => 'tenant', + ], + 'parameters' => [ + [ + 'name' => 'FileSystemId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the file system.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => '1ca404****', + ], + ], + [ + 'name' => 'FileId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the directory that you want to query.'."\n" + ."\n" + .'You can call the [ListRecentlyRecycledDirectories ](~~2412173~~)operation to query the file ID.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => '04***08', + ], + ], + [ + 'name' => 'NextToken', + 'in' => 'query', + 'schema' => [ + 'description' => 'The pagination token that is used in the next request to retrieve a new page of results. You do not need to specify this parameter for the first request.'."\n" + ."\n" + .'If all the files and directories are incompletely returned in a query, the return value of the NextToken parameter is not empty. In this case, you can specify a valid value for the NextToken parameter to continue the query.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'CJyNARIsMTY5OTI2NjQ3NTEzMjY2OTMwOF8xODA5NF8ufnl0YkROTl9uZXcuaXB5bmI=', + ], + ], + [ + 'name' => 'MaxResults', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of files or directories to return for each query.'."\n" + ."\n" + .'Valid values: 10 to 1000.'."\n" + ."\n" + .'Default value: 100.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'maximum' => '1000', + 'minimum' => '10', + 'example' => '100', + 'default' => '100', + ], + ], + ], + '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' => '98696EF0-1607-4E9D-B01D-F20930B6****', + ], + 'NextToken' => [ + 'title' => 'Id of the request', + 'description' => 'A pagination token.'."\n" + ."\n" + .'If all the files and directories are incompletely returned in a query, the return value of the NextToken parameter is not empty. In this case, you can specify a valid value for the NextToken parameter to continue the query.'."\n", + 'type' => 'string', + 'example' => 'CKuO8QMSIjE2OTc3NzI0NjI5MTcyMTYyNDVfMzEzNTUyMF81MjEzODY=', + ], + 'Entries' => [ + 'description' => 'The information about files or directories in the recycle bin.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'FileId' => [ + 'description' => 'The IDs of the files or directories.'."\n", + 'type' => 'string', + 'example' => '04***08', + ], + 'Type' => [ + 'description' => 'The type of the returned object. Valid values:'."\n" + ."\n" + .'* File'."\n" + .'* Directory'."\n", + 'type' => 'string', + 'example' => 'File', + ], + 'Name' => [ + 'description' => 'The name of the file or directory before it was deleted.'."\n", + 'type' => 'string', + 'example' => 'test001', + ], + 'DeleteTime' => [ + 'description' => 'The time when the file or directory was deleted.'."\n", + 'type' => 'string', + 'example' => '2021-05-30T10:08:08Z', + ], + 'Inode' => [ + 'description' => 'The inode of the file or directory.'."\n", + 'type' => 'string', + 'example' => '04***08', + ], + 'ATime' => [ + 'description' => 'The time when the file or directory was last accessed.'."\n", + 'type' => 'string', + 'example' => '2019-10-30T10:08:08Z', + ], + 'MTime' => [ + 'description' => 'The time when the file or directory was last modified.'."\n", + 'type' => 'string', + 'example' => '2019-10-30T10:08:08Z', + ], + 'CTime' => [ + 'description' => 'The time when the metadata was last modified.'."\n", + 'type' => 'string', + 'example' => '2019-10-30T10:08:08Z', + ], + 'Size' => [ + 'description' => 'The size of the file. Unit: bytes.'."\n" + ."\n" + .'The value 0 is returned for this parameter if Directory is returned for the Type parameter.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1073741824', + ], + ], + ], + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'IllegalCharacters', + 'errorMessage' => 'The parameter contains illegal characters.', + ], + [ + 'errorCode' => 'MissingFileSystemId', + 'errorMessage' => 'FileSystemId is mandatory for this action.', + ], + [ + 'errorCode' => 'InvalidParameter.KMSKeyId.KMSUnauthorized', + 'errorMessage' => 'KMS is not authorized.', + ], + [ + 'errorCode' => 'InvalidParameter.KMSKeyId.CMKNotEnabled', + 'errorMessage' => 'The CMK needs to be enabled.', + ], + ], + 404 => [ + [ + 'errorCode' => 'InvalidFileSystem.NotFound', + 'errorMessage' => 'The specified file system does not exist.', + ], + [ + 'errorCode' => 'InvalidFileId.NotFound', + 'errorMessage' => 'The specified FileId(%FileId) does not exist.', + ], + [ + 'errorCode' => 'InvalidParameter.InvalidNextToken', + 'errorMessage' => 'The specified NextToken is invaild.', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"98696EF0-1607-4E9D-B01D-F20930B6****\\",\\n \\"NextToken\\": \\"无\\",\\n \\"Entries\\": [\\n {\\n \\"FileId\\": \\"04***08\\",\\n \\"Type\\": \\"File\\",\\n \\"Name\\": \\"test001\\",\\n \\"DeleteTime\\": \\"2021-05-30T10:08:08Z\\",\\n \\"Inode\\": \\"04***08\\",\\n \\"ATime\\": \\"2019-10-30T10:08:08Z\\",\\n \\"MTime\\": \\"2019-10-30T10:08:08Z\\",\\n \\"CTime\\": \\"2019-10-30T10:08:08Z\\",\\n \\"Size\\": 1073741824\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"<ListRecycledDirectoriesAndFilesResponse>\\n <RequestId>98696EF0-1607-4E9D-B01D-F20930B6****</RequestId>\\n <NextToken>无</NextToken>\\n <Entries>\\n <FileId>04***08</FileId>\\n <Type>File</Type>\\n <Name>test001</Name>\\n <DeleteTime>2021-05-30T10:08:08Z</DeleteTime>\\n <Inode>04***08</Inode>\\n <ATime>2019-10-30T10:08:08Z</ATime>\\n <MTime>2019-10-30T10:08:08Z</MTime>\\n <CTime>2019-10-30T10:08:08Z</CTime>\\n <Size>1073741824</Size>\\n </Entries>\\n</ListRecycledDirectoriesAndFilesResponse>","errorExample":""}]', + 'title' => 'ListRecycledDirectoriesAndFiles', + 'description' => 'Only General-purpose NAS file systems support this operation.'."\n", + ], + 'EnableSmbAcl' => [ + 'summary' => 'Enables the access control list (ACL) feature for a Server Message Block (SMB) file system that resides in an Active Directory (AD) domain.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'high', + 'chargeType' => 'free', + 'abilityTreeCode' => '13968', + 'abilityTreeNodes' => [ + 'FEATUREnasWJVZ38', + ], + 'autoTest' => true, + 'tenantRelevance' => 'tenant', + ], + 'parameters' => [ + [ + 'name' => 'FileSystemId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the file system.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => '31a8e4****', + ], + ], + [ + 'name' => 'Keytab', + 'in' => 'query', + 'schema' => [ + 'description' => 'The string that is generated after the system encodes the keytab file by using Base64.'."\n", + 'type' => 'string', + 'required' => false, + 'docRequired' => true, + 'example' => 'BQIAAABHAAIADUFMSUFEVEVTVC5DT00ABGNpZnMAGXNtYnNlcnZlcjI0LmFsaWFkdGVzdC5jb20AAAABAAAAAAEAAQAIqIx6v7p11oUAAABHAAIADUFMSUFEVEVTVC5DT00ABGNpZnMAGXNtYnNlcnZlcjI0LmFsaWFkdGVzdC5jb20AAAABAAAAAAEAAwAIqIx6v7p11oUAAABPAAIADUFMSUFEVEVTVC5DT00ABGNpZnMAGXNtYnNlcnZlcjI0LmFsaWFkdGVzdC5jb20AAAABAAAAAAEAFwAQnQZWB3RAPHU7PMIJyBWePAAAAF8AAgANQUxJQURURVNULkNPTQAEY2lmcwAZc21ic2VydmVyMjQuYWxpYWR0ZXN0LmNvbQAAAAEAAAAAAQASACAGJ7F0s+bcBjf6jD5HlvlRLmPSOW+qDZe0Qk0lQcf8WwAAAE8AAgANQUxJQURURVNULkNPTQAEY2lmcwAZc21ic2VydmVyMjQuYWxpYWR0ZXN0LmNvbQAAAAEAAAAAAQARABDdFmanrSIatnDDhxxxxx', + ], + ], + [ + 'name' => 'KeytabMd5', + 'in' => 'query', + 'schema' => [ + 'description' => 'The string that is generated after the system encodes the keytab file by using MD5.'."\n", + 'type' => 'string', + 'required' => false, + 'docRequired' => true, + 'example' => 'E3CCF7E2416DF04FA958AA4513EAxxxx', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '98696EF0-1607-4E9D-B01D-F20930B6****', + ], + ], + 'description' => '', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"98696EF0-1607-4E9D-B01D-F20930B6****\\"\\n}","errorExample":""},{"type":"xml","example":"<EnableSmbAclResponse>\\n <RequestId>98696EF0-1607-4E9D-B01D-F20930B6****</RequestId>\\n</EnableSmbAclResponse>","errorExample":""}]', + 'title' => 'EnableSmbAcl', + ], + 'DisableSmbAcl' => [ + 'summary' => 'Disables the access control list (ACL) feature for a Server Message Block (SMB) file system that resides in an Active Directory (AD) domain.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'high', + 'chargeType' => 'free', + 'abilityTreeCode' => '13966', + 'abilityTreeNodes' => [ + 'FEATUREnasWJVZ38', + ], + 'autoTest' => true, + 'tenantRelevance' => 'tenant', + ], + 'parameters' => [ + [ + 'name' => 'FileSystemId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the file system.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => '1ca404****', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '98696EF0-1607-4E9D-B01D-F20930B6****', + ], + ], + 'description' => '', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"98696EF0-1607-4E9D-B01D-F20930B6****\\"\\n}","errorExample":""},{"type":"xml","example":"<DisableSmbAclResponse>\\n <RequestId>98696EF0-1607-4E9D-B01D-F20930B6****</RequestId>\\n</DisableSmbAclResponse>","errorExample":""}]', + 'title' => 'DisableSmbAcl', + ], + 'ModifySmbAcl' => [ + 'summary' => 'Updates the information about the access control list (ACL) feature of a Server Message Block (SMB) file system that resides in an Active Directory (AD) domain.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '13980', + 'abilityTreeNodes' => [ + 'FEATUREnasWJVZ38', + ], + 'autoTest' => true, + 'tenantRelevance' => 'tenant', + ], + 'parameters' => [ + [ + 'name' => 'FileSystemId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the file system.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => '1ca404****', + ], + ], + [ + 'name' => 'Keytab', + 'in' => 'query', + 'schema' => [ + 'description' => 'The string that is generated after the system encodes the keytab file by using Base64.'."\n", + 'type' => 'string', + 'required' => false, + 'docRequired' => false, + 'example' => 'BQIAAABHAAIADUFMSUFEVEVTVC5DT00ABGNpZnMAGXNtYnNlcnZlcjI0LmFsaWFkdGVzdC5jb20AAAABAAAAAAEAAQAIqIx6v7p11oUAAABHAAIADUFMSUFEVEVTVC5DT00ABGNpZnMAGXNtYnNlcnZlcjI0LmFsaWFkdGVzdC5jb20AAAABAAAAAAEAAwAIqIx6v7p11oUAAABPAAIADUFMSUFEVEVTVC5DT00ABGNpZnMAGXNtYnNlcnZlcjI0LmFsaWFkdGVzdC5jb20AAAABAAAAAAEAFwAQnQZWB3RAPHU7PMIJyBWePAAAAF8AAgANQUxJQURURVNULkNPTQAEY2lmcwAZc21ic2VydmVyMjQuYWxpYWR0ZXN0LmNvbQAAAAEAAAAAAQASACAGJ7F0s+bcBjf6jD5HlvlRLmPSOW+qDZe0Qk0lQcf8WwAAAE8AAgANQUxJQURURVNULkNPTQAEY2lmcwAZc21ic2VydmVyMjQuYWxpYWR0ZXN0LmNvbQAAAAEAAAAAAQARABDdFmanrSIatnDDh****', + ], + ], + [ + 'name' => 'KeytabMd5', + 'in' => 'query', + 'schema' => [ + 'description' => 'The string that is generated after the system encodes the keytab file by using MD5.'."\n", + 'type' => 'string', + 'required' => false, + 'docRequired' => false, + 'example' => 'E3CCF7E2416DF04FA958AA4513EA****', + ], + ], + [ + 'name' => 'EnableAnonymousAccess', + 'in' => 'query', + 'allowEmptyValue' => false, + 'schema' => [ + 'description' => 'Specifies whether to allow anonymous access. Valid values:'."\n" + ."\n" + .'* true: The file system allows anonymous access.'."\n" + .'* false (default): The file system denies anonymous access.'."\n", + 'type' => 'boolean', + 'required' => false, + 'docRequired' => false, + 'example' => 'false', + 'default' => 'false', + ], + ], + [ + 'name' => 'EncryptData', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to enable encryption in transit. Valid values:'."\n" + ."\n" + .'* true: enables encryption in transit.'."\n" + .'* false (default): disables encryption in transit.'."\n", + 'type' => 'boolean', + 'required' => false, + 'docRequired' => false, + 'example' => 'false', + 'default' => 'false', + ], + ], + [ + 'name' => 'RejectUnencryptedAccess', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to deny access from non-encrypted clients. Valid values:'."\n" + ."\n" + .'* true: The file system denies access from non-encrypted clients.'."\n" + .'* false (default): The file system allows access from non-encrypted clients.'."\n", + 'type' => 'boolean', + 'required' => false, + 'docRequired' => false, + 'example' => 'false', + 'default' => 'false', + ], + ], + [ + 'name' => 'SuperAdminSid', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of a super admin. The ID must meet the following requirements:'."\n" + ."\n" + .'* The ID starts with `S` and does not contain letters except S.'."\n" + .'* The ID contains at least three hyphens (-) as delimiters.'."\n" + ."\n" + .'Examples: `S-1-5-22` and `S-1-5-22-23`.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'S-1-5-22', + ], + ], + [ + 'name' => 'HomeDirPath', + 'in' => 'query', + 'schema' => [ + 'description' => 'The home directory of each user. Each user-specific home directory must meet the following requirements:'."\n" + ."\n" + .'* Each segment starts with a forward slash (/) or a backward slash (\\\\).'."\n" + .'* Each segment does not contain the following special characters: `<>":|?*`.'."\n" + .'* Each segment is 0 to 255 characters in length.'."\n" + .'* The total length is 0 to 32,767 characters.'."\n" + ."\n" + .'For example, if you create a user named A and the home directory is `/home`, the file system automatically creates a directory named `/home/A` when User A logs on to the file system. If the `/home/A` directory already exists, the file system does not create the directory.'."\n" + ."\n" + .'> User A must have the permissions to create folders in the \\home directory. Otherwise, the file system cannot create the `/home/A` directory when User A logs on to the file system.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '/home', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '98696EF0-1607-4E9D-B01D-F20930B6****', + ], + ], + 'description' => '', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"98696EF0-1607-4E9D-B01D-F20930B6****\\"\\n}","errorExample":""},{"type":"xml","example":"<ModifySmbAclResponse>\\n <RequestId>98696EF0-1607-4E9D-B01D-F20930B6***</RequestId>\\n</ModifySmbAclResponse>","errorExample":""}]', + 'title' => 'ModifySmbAcl', + ], + 'DescribeSmbAcl' => [ + 'summary' => 'Queries the information about the access control list (ACL) feature of a Server Message Block (SMB) file system that resides in an Active Directory (AD) domain.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '13960', + 'abilityTreeNodes' => [ + 'FEATUREnasWJVZ38', + ], + 'autoTest' => true, + 'tenantRelevance' => 'tenant', + ], + 'parameters' => [ + [ + 'name' => 'FileSystemId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the file system.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => '31a8e4****', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '98696EF0-1607-4E9D-B01D-F20930B6****', + ], + 'Acl' => [ + 'description' => 'The information about the ACL feature.'."\n", + 'type' => 'object', + 'properties' => [ + 'EnableAnonymousAccess' => [ + 'description' => 'Indicates whether the file system allows anonymous access. Valid values:'."\n" + ."\n" + .'* true: The file system allows anonymous access.'."\n" + .'* false: The file system does not allow anonymous access.'."\n", + 'type' => 'boolean', + 'example' => 'true', + ], + 'Enabled' => [ + 'description' => 'Indicates whether the ACL feature is enabled. Valid values:'."\n" + ."\n" + .'* true: The ACL feature is enabled.'."\n" + .'* false: The ACL feature is disabled.'."\n", + 'type' => 'boolean', + 'example' => 'true', + ], + 'EncryptData' => [ + 'description' => 'Indicates whether encryption in transit is enabled. Valid values:'."\n" + ."\n" + .'* true: Encryption in transit is enabled.'."\n" + .'* false: Encryption in transit is disabled.'."\n", + 'type' => 'boolean', + 'example' => 'true', + ], + 'RejectUnencryptedAccess' => [ + 'description' => 'Indicates whether the file system denies access from non-encrypted clients. Valid values:'."\n" + ."\n" + .'* true: The file system denies access from non-encrypted clients.'."\n" + .'* false: The file system allows access from non-encrypted clients.'."\n", + 'type' => 'boolean', + 'example' => 'true', + ], + 'SuperAdminSid' => [ + 'description' => 'The ID of a super admin.'."\n", + 'type' => 'string', + 'example' => 'S-1-0-0', + ], + 'HomeDirPath' => [ + 'description' => 'The home directory of each user.'."\n", + 'type' => 'string', + 'example' => '/home', + ], + ], + ], + ], + 'description' => '', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"98696EF0-1607-4E9D-B01D-F20930B6****\\",\\n \\"Acl\\": {\\n \\"EnableAnonymousAccess\\": true,\\n \\"Enabled\\": true,\\n \\"EncryptData\\": true,\\n \\"RejectUnencryptedAccess\\": true,\\n \\"SuperAdminSid\\": \\"S-1-0-0\\",\\n \\"HomeDirPath\\": \\"/home\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"<DescribeSmbAclResponse>\\n <RequestId>98696EF0-1607-4E9D-B01D-F20930B6****</RequestId>\\n <Acl>\\n <AuthMethod>Kerberos</AuthMethod>\\n <EnableAnonymousAccess>true</EnableAnonymousAccess>\\n <Enabled>true</Enabled>\\n <EncryptData>true</EncryptData>\\n <RejectUnencryptedAccess>true</RejectUnencryptedAccess>\\n <SuperAdminSid>S-1-0-0</SuperAdminSid>\\n <HomeDirPath>/home</HomeDirPath>\\n </Acl>\\n</DescribeSmbAclResponse>","errorExample":""}]', + 'title' => 'DescribeSmbAcl', + ], + 'CreateFile' => [ + 'summary' => 'Creates a directory or file.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'create', + 'riskType' => 'high', + 'chargeType' => 'free', + 'abilityTreeCode' => '137907', + 'abilityTreeNodes' => [ + 'FEATUREnasI92PYN', + ], + 'autoTest' => false, + 'notSupportAutoTestReason' => '为特殊用户使用API', + 'tenantRelevance' => 'publicInformation', + ], + 'parameters' => [ + [ + 'name' => 'FileSystemId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the file system.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => '1ca404****', + ], + ], + [ + 'name' => 'Path', + 'in' => 'query', + 'schema' => [ + 'description' => 'The absolute path of the directory or file. The path must start and end with a forward slash (/) and must be 2 to 1024 characters in length.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => '/test/', + ], + ], + [ + 'name' => 'Type', + 'in' => 'query', + 'schema' => [ + 'description' => 'The type of the object. Valid values:'."\n" + ."\n" + .'* File'."\n" + .'* Directory'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'File', + ], + ], + [ + 'name' => 'Owner', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the portable account. The ID must be a 16-digit string. The string can contain digits and lowercase letters.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '378cc7630f26****', + ], + ], + [ + 'name' => 'OwnerAccessInheritable', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to share the directory. Valid values:'."\n" + ."\n" + .'* false (default): does not share the directory.'."\n" + .'* true: shares the directory.'."\n" + ."\n" + .'> * This parameter takes effect only if the Type parameter is set to Directory and the Owner parameter is not empty.'."\n" + .'> * The permissions on a directory can be inherited by the owner. The owner has read and write permissions on the subdirectories and subfiles created in the directory, even if they are created by others.', + 'type' => 'boolean', + 'required' => false, + 'docRequired' => false, + 'example' => 'false', + 'default' => 'false', + ], + ], + ], + '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' => '2D69A58F-345C-4FDE-88E4-BF518948****', + ], + ], + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"2D69A58F-345C-4FDE-88E4-BF518948****\\"\\n}","errorExample":""},{"type":"xml","example":"<CreateFileResponse>\\n <RequestId>2D69A58F-345C-4FDE-88E4-BF518948****</RequestId>\\n</CreateFileResponse>","errorExample":""}]', + 'title' => 'CreateFile', + 'description' => '* This operation is only available to some users.'."\n" + .'* This operation supports only General-purpose NAS file systems that use the Server Message Block (SMB) protocol and have Resource Access Management (RAM) enabled.'."\n", + ], + 'EnableNfsAcl' => [ + 'summary' => 'Enables the NFS ACL feature for a file system.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'high', + 'chargeType' => 'free', + 'abilityTreeCode' => '13967', + 'abilityTreeNodes' => [ + 'FEATUREnasWJVZ38', + ], + 'autoTest' => true, + 'tenantRelevance' => 'tenant', + ], + 'parameters' => [ + [ + 'name' => 'FileSystemId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the file system.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => '43f264xxxx', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '29F4F360-A6A8-561A-A45B-A0F6882969BA', + ], + ], + 'description' => '', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"29F4F360-A6A8-561A-A45B-A0F6882969BA\\"\\n}","errorExample":""},{"type":"xml","example":"<EnableNfsAclResponse>\\n <RequestId>29F4F360-A6A8-561A-A45B-A0F6882969BA</RequestId>\\n</EnableNfsAclResponse>","errorExample":""}]', + 'title' => 'EnableNfsAcl', + ], + 'DisableNfsAcl' => [ + 'summary' => 'Disables the NFS ACL feature for a file system.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'high', + 'chargeType' => 'free', + 'abilityTreeCode' => '13965', + 'abilityTreeNodes' => [ + 'FEATUREnasWJVZ38', + ], + 'autoTest' => true, + 'tenantRelevance' => 'tenant', + ], + 'parameters' => [ + [ + 'name' => 'FileSystemId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the file system.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => '91fcdxxxx', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '24487C24-AE54-57EC-B4E4-4EDEEEB83B01', + ], + ], + 'description' => '', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"24487C24-AE54-57EC-B4E4-4EDEEEB83B01\\"\\n}","errorExample":""},{"type":"xml","example":"<DisableNfsAclResponse>\\n <RequestId>24487C24-AE54-57EC-B4E4-4EDEEEB83B01</RequestId>\\n</DisableNfsAclResponse>","errorExample":""}]', + 'title' => 'DisableNfsAcl', + ], + 'DescribeNfsAcl' => [ + 'summary' => 'Queries whether the NFS ACL feature is enabled for a file system.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '13958', + 'abilityTreeNodes' => [ + 'FEATUREnasWJVZ38', + ], + 'autoTest' => true, + 'tenantRelevance' => 'tenant', + ], + 'parameters' => [ + [ + 'name' => 'FileSystemId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the file system.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => '206614xxxx', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'A1098673-1746-505E-A5F1-08527B7EDBDF', + ], + 'Acl' => [ + 'description' => 'The information about the ACL feature.'."\n", + 'type' => 'object', + 'properties' => [ + 'Enabled' => [ + 'description' => 'Indicates whether the NFS ACL feature is enabled.'."\n" + ."\n" + .'* true: The NFS ACL feature is enabled.'."\n" + .'* false: The NFS ACL feature is disabled.'."\n", + 'type' => 'boolean', + 'example' => 'true', + ], + ], + ], + ], + 'description' => '', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"A1098673-1746-505E-A5F1-08527B7EDBDF\\",\\n \\"Acl\\": {\\n \\"Enabled\\": true\\n }\\n}","errorExample":""},{"type":"xml","example":"<DescribeNfsAclResponse>\\n <RequestId>A1098673-1746-505E-A5F1-08527B7EDBDF</RequestId>\\n <Acl>\\n <Enabled>true</Enabled>\\n </Acl>\\n</DescribeNfsAclResponse>","errorExample":""}]', + 'title' => 'DescribeNfsAcl', + ], + 'CreateLogAnalysis' => [ + 'summary' => 'Dumps the logs of a General-purpose NAS file system to Simple Log Service.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'create', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '13933', + 'abilityTreeNodes' => [ + 'FEATUREnasA0C6YC', + ], + 'autoTest' => true, + 'tenantRelevance' => 'tenant', + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'FileSystemId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the file system.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => '174494xxxx', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '5B4511A7-C99E-4071-AA8C-32E2529DA963', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'SubAccount.NoLogSLRPermission', + 'errorMessage' => 'The RAM user does not have the permission to create service linked role AliyunServiceRoleForNasLogDelivery. Please authorize the RAM user the permission ram:CreateServiceLinkedRole.', + ], + [ + 'errorCode' => 'InvalidFilesystemType.NotSupport', + 'errorMessage' => 'The API operation does not support the file system type.', + ], + ], + 404 => [ + [ + 'errorCode' => 'InvalidFileSystem.NotFound', + 'errorMessage' => 'The specified file system does not exist.', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"5B4511A7-C99E-4071-AA8C-32E2529DA963\\"\\n}","errorExample":""},{"type":"xml","example":"<CreateLogAnalysisResponse>\\n <RequestId>5B4511A7-C99E-4071-AA8C-32E2529DA963</RequestId>\\n</CreateLogAnalysisResponse>","errorExample":""}]', + 'title' => 'CreateLogAnalysis', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'DeleteLogAnalysis' => [ + 'summary' => 'Disables log dumping for a General-purpose NAS file system.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'delete', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '13942', + 'abilityTreeNodes' => [ + 'FEATUREnas0MLWQI', + 'FEATUREnas3DACY7', + 'FEATUREnas71NBOZ', + 'FEATUREnasA0C6YC', + ], + 'autoTest' => true, + 'tenantRelevance' => 'tenant', + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'FileSystemId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the file system.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => '174494xxxx', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '70EACC9C-D07A-4A34-ADA4-77506C42B023', + ], + ], + 'description' => '', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"70EACC9C-D07A-4A34-ADA4-77506C42B023\\"\\n}","errorExample":""},{"type":"xml","example":"<DeleteLogAnalysisResponse>\\n <RequestId>70EACC9C-D07A-4A34-ADA4-77506C42B023</RequestId>\\n</DeleteLogAnalysisResponse>","errorExample":""}]', + 'title' => 'DeleteLogAnalysis', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'DescribeLogAnalysis' => [ + 'summary' => 'Queries the log dump information configured in log analysis.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '13955', + 'abilityTreeNodes' => [ + 'FEATUREnasA0C6YC', + ], + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of entries per page. Valid values: 1 to 100. Default value: 10.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'maximum' => '100', + 'minimum' => '1', + 'example' => '1', + 'default' => '10', + ], + ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => [ + 'description' => 'The page number. Default value: 1.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'minimum' => '1', + 'example' => '1', + ], + ], + [ + 'name' => 'FileSystemType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The type of the file system.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'* standard: General-purpose NAS file system'."\n" + .'* extreme: Extreme NAS file system'."\n" + .'* all (default): all types'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'all', + 'default' => 'all', + 'enum' => [ + 'all', + 'standard', + 'extreme', + ], + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'TotalCount' => [ + 'description' => 'The total number of log dump entries in the region.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '10', + ], + 'PageSize' => [ + 'description' => 'The number of log dump entries returned per page.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '10', + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'C84F77AF-3DE5-48F1-B19B-37FCBE24****', + ], + 'PageNumber' => [ + 'description' => 'The page number.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '1', + ], + 'Analyses' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'Analysis' => [ + 'description' => 'The collection of log dump information.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'MetaKey' => [ + 'description' => 'The ID of the file system.'."\n", + 'type' => 'string', + 'example' => '0c7154xxxx', + ], + 'MetaValue' => [ + 'description' => 'The log dump information of the file system.'."\n", + 'type' => 'object', + 'properties' => [ + 'RoleArn' => [ + 'description' => 'The role that is used by NAS to access Simple Log Service.'."\n", + 'type' => 'string', + 'example' => 'acs:ram::162165525211xxxx:role/aliyunnaslogarchiverole', + ], + 'Region' => [ + 'description' => 'The region where the dedicated Logstore resides.'."\n", + 'type' => 'string', + 'example' => 'cn-hangzhou', + ], + 'Logstore' => [ + 'description' => 'The name of the dedicated Logstore that is used to store NAS operation logs.'."\n", + 'type' => 'string', + 'example' => 'nas-nfs', + ], + 'Project' => [ + 'description' => 'The name of the project where the dedicated Logstore resides.'."\n", + 'type' => 'string', + 'example' => 'nas-1746495857602745-cn-hangzhou', + ], + ], + ], + ], + ], + ], + ], + ], + 'Code' => [ + 'description' => 'The HTTP status code.'."\n", + 'type' => 'string', + 'example' => '200', + ], + ], + 'description' => '', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"TotalCount\\": 10,\\n \\"PageSize\\": 10,\\n \\"RequestId\\": \\"C84F77AF-3DE5-48F1-B19B-37FCBE24****\\",\\n \\"PageNumber\\": 1,\\n \\"Analyses\\": {\\n \\"Analysis\\": [\\n {\\n \\"MetaKey\\": \\"0c7154xxxx\\",\\n \\"MetaValue\\": {\\n \\"RoleArn\\": \\"acs:ram::162165525211xxxx:role/aliyunnaslogarchiverole\\",\\n \\"Region\\": \\"cn-hangzhou\\",\\n \\"Logstore\\": \\"nas-nfs\\",\\n \\"Project\\": \\"nas-1746495857602745-cn-hangzhou\\"\\n }\\n }\\n ]\\n },\\n \\"Code\\": \\"200\\"\\n}","errorExample":""},{"type":"xml","example":"<DescribeLogAnalysisResponse>\\n <TotalCount>10</TotalCount>\\n <PageSize>10</PageSize>\\n <RequestId>C84F77AF-3DE5-48F1-B19B-37FCBE24****</RequestId>\\n <PageNumber>1</PageNumber>\\n <Analyses>\\n <MetaKey>0c7154xxxx</MetaKey>\\n <MetaValue>\\n <RoleArn>acs:ram::162165525211xxxx:role/aliyunnaslogarchiverole</RoleArn>\\n <Region>cn-hangzhou</Region>\\n <Logstore>nas-nfs</Logstore>\\n <Project>nas-1746495857602745-cn-hangzhou</Project>\\n </MetaValue>\\n </Analyses>\\n <Code>200</Code>\\n</DescribeLogAnalysisResponse>","errorExample":""}]', + 'title' => 'DescribeLogAnalysis', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'CreateFileset' => [ + 'summary' => 'Creates a fileset.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'create', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '55589', + 'abilityTreeNodes' => [ + 'FEATUREnasPWYFYN', + 'FEATUREnasXEQXVN', + ], + ], + 'parameters' => [ + [ + 'name' => 'FileSystemId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the file system.'."\n" + ."\n" + .'* The IDs of CPFS file systems must start with `cpfs-`. Example: cpfs-099394bd928c\\*\\*\\*\\*.'."\n" + .'* The IDs of CPFS for Lingjun file systems must start with `bmcpfs-`. Example: bmcpfs-290w65p03ok64ya\\*\\*\\*\\*.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'bmcpfs-290w65p03ok64ya****', + ], + ], + [ + 'name' => 'FileSystemPath', + 'in' => 'query', + 'schema' => [ + 'description' => 'The absolute path of the fileset.'."\n" + ."\n" + .'* CPFS path limits.'."\n" + ."\n" + .' * The parent directory of the path that you specify must be an existing directory in the file system.'."\n" + .' * The path must be 2 to 1024 characters in length.'."\n" + .' * The path must start and end with a forward slash (/).'."\n" + ."\n" + .'* Path limit of CPFS for Lingjun'."\n" + ."\n" + .' * The path must be 2 to 1024 characters in length.'."\n" + .' * The path must start and end with a forward slash (/).'."\n" + .' * The fileset path must be a new path and cannot be an existing path. Fileset paths cannot be renamed and cannot be symbolic links.'."\n" + .' * The maximum depth supported by a fileset path is eight levels. The depth of the root directory / is 0 levels. For example, the fileset path /test/aaa/ccc/ has three levels.'."\n" + .' * If the fileset path is a multi-level path, the parent directory must be an existing directory.'."\n" + .' * Nested filesets are not supported. If a fileset is specified as a parent directory, its subdirectory cannot be a fileset. A fileset path supports only one quota.'."\n" + .' * The path cannot exceed 990 characters in length.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => '/test/', + ], + ], + [ + 'name' => 'DryRun', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to perform a dry run.'."\n" + ."\n" + .'During the dry run, the system checks whether the request parameters are valid and whether the requested resources are available. During the dry run, no fileset is created and no fee is incurred.'."\n" + ."\n" + .'Valid value:'."\n" + ."\n" + .'* true: performs a dry run. The system checks the required parameters, request syntax, service limits, and available Apsara File Storage NAS (NAS) resources. Otherwise, an error message is returned. If the request passes the dry run, the HTTP status code 200 is returned. No value is returned for the FsetId parameter.'."\n" + .'* false (default): performs a dry run and sends the request. If the request passes the dry run, a fileset is created.'."\n", + 'type' => 'boolean', + 'required' => false, + 'example' => 'false', + 'default' => 'false', + ], + ], + [ + 'name' => 'DeletionProtection', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to enable deletion protection to allow you to release the fileset by using the console or by calling the [DeleteFileset](~~2402263~~) operation.'."\n" + ."\n" + .'* true: enables release protection.'."\n" + .'* false (default): disables release protection.'."\n" + ."\n" + .'> This parameter can protect filesets only against manual releases, but not against automatic releases.'."\n", + 'type' => 'boolean', + 'required' => false, + 'example' => 'false', + 'default' => 'false', + ], + ], + [ + 'name' => 'Description', + 'in' => 'query', + 'allowEmptyValue' => false, + 'schema' => [ + 'description' => 'The description of the fileset.'."\n" + ."\n" + .'* The description must be 2 to 128 characters in length.'."\n" + .'* The name must start with a letter and cannot start with http:// or https://.'."\n" + .'* The description can contain letters, digits, colons (:), underscores (\\_), periods (.), and hyphens (-).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'test', + ], + ], + [ + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => [ + 'description' => 'The client token that is used to ensure the idempotence of the request. You can use the client to generate the token, but you must make sure that the token is unique among different requests.'."\n" + ."\n" + .'The token can contain only ASCII characters and cannot exceed 64 characters in length. For more information, see [How to ensure idempotence](~~25693~~).'."\n" + ."\n" + .'> If you do not specify this parameter, the system automatically uses the request ID as the client token. The request ID may be different for each request.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '123e4567-e89b-12d3-a456-42665544****', + 'maxLength' => 64, + 'minLength' => 1, + ], + ], + [ + 'name' => 'Quota', + 'in' => 'query', + 'style' => 'flat', + 'schema' => [ + 'description' => 'The quota information.'."\n" + ."\n" + .'> Only CPFS for Lingjun V2.7.0 and later support this parameter.'."\n", + 'type' => 'object', + 'properties' => [ + 'FileCountLimit' => [ + 'description' => 'The file quantity quota. Valid values:'."\n" + ."\n" + .'* Minimum value: 100000.'."\n" + .'* Maximum value: 10000000000.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'example' => '10000', + ], + 'SizeLimit' => [ + 'description' => 'The total quota capacity limit. Unit: bytes.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'* Minimum value: 10,737,418,240 (10 GiB).'."\n" + .'* Step size: 1073741824 (1 GiB).'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'example' => '10737418240', + ], + ], + 'required' => false, + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'Request ID.'."\n", + 'type' => 'string', + 'example' => '98696EF0-1607-4E9D-B01D-F20930B6****', + ], + 'FsetId' => [ + 'description' => 'The fileset ID.'."\n", + 'type' => 'string', + 'example' => 'fset-1902718ea0ae****', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'IllegalCharacters', + 'errorMessage' => 'The parameter contains illegal characters.', + ], + [ + 'errorCode' => 'MissingFileSystemId', + 'errorMessage' => 'FileSystemId is mandatory for this action.', + ], + [ + 'errorCode' => 'MissingFileSystemPath', + 'errorMessage' => 'FileSystemPath is mandatory for this action.', + ], + [ + 'errorCode' => 'InvalidFilesystemType.NotSupport', + 'errorMessage' => 'This Api does not support this fileSystem type.', + ], + [ + 'errorCode' => 'InvalidFilesystemVersion.NotSupport', + 'errorMessage' => 'This Api does not support this fileSystem version.', + ], + [ + 'errorCode' => 'InvalidRequest', + 'errorMessage' => 'The request is invalid.', + ], + [ + 'errorCode' => 'Quota.Invalid.Limit', + 'errorMessage' => 'Quota limit is invalid.', + ], + [ + 'errorCode' => 'Resource.Exceed.Limit', + 'errorMessage' => 'Resource exceed limit.', + ], + [ + 'errorCode' => 'Resource.Check.Fail', + 'errorMessage' => 'Resource check failed.', + ], + [ + 'errorCode' => 'Fileset.Path.Duplicate', + 'errorMessage' => 'Fileset path is duplicate.', + ], + [ + 'errorCode' => 'Fileset.Path.Nested', + 'errorMessage' => 'Fileset path is nested.', + ], + [ + 'errorCode' => 'Fileset.Path.NotExist', + 'errorMessage' => 'Fileset.Path.Not.Exist.', + ], + [ + 'errorCode' => 'Fileset.Path.Exist', + 'errorMessage' => 'Fileset already exist.', + ], + ], + 403 => [ + [ + 'errorCode' => 'OperationDenied.AlreadyExists', + 'errorMessage' => 'The operation is denied due to IdirName already exists in parent path.', + ], + [ + 'errorCode' => 'OperationDenied.TooManyFilesets', + 'errorMessage' => 'The operation is denied due to too many fileset in filesystem.', + ], + [ + 'errorCode' => 'OperationDenied.TooManyDepths', + 'errorMessage' => 'The operation is denied due to Fileset path too deep.', + ], + [ + 'errorCode' => 'OperationDenied.NestedDir', + 'errorMessage' => 'The operation is denied due to nested directory.', + ], + [ + 'errorCode' => 'OperationDenied.DependencyViolation', + 'errorMessage' => 'The operation is denied due to dependancy violation.', + ], + [ + 'errorCode' => 'OperationDenied.FilesetNotSupported', + 'errorMessage' => 'The operation is not supported.', + ], + ], + [ + [ + 'errorCode' => 'InvalidFileSystem.NotFound', + 'errorMessage' => 'The specified file system does not exist.', + ], + [ + 'errorCode' => 'InvalidFileSystemPath.ParentNotFound', + 'errorMessage' => 'The specified parent path does not exist.', + ], + [ + 'errorCode' => 'InvalidFileSystemPath.NotDirectory', + 'errorMessage' => 'The specified idir parent path is not directory.', + ], + [ + 'errorCode' => 'InvalidFileSystemPath.InvalidCharacters', + 'errorMessage' => 'The specified fileset path contains invalid characters.', + ], + [ + 'errorCode' => 'InvalidFilesetPath.InvalidParameter', + 'errorMessage' => 'Fileset path is invalid.', + ], + ], + ], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"98696EF0-1607-4E9D-B01D-F20930B6****\\",\\n \\"FsetId\\": \\"fset-1902718ea0ae****\\"\\n}","errorExample":""},{"type":"xml","example":"<CreateFilesetResponse>\\n <RequestId>98696EF0-1607-4E9D-B01D-F20930B6****</RequestId>\\n <FsetId>fset-1902718ea0ae****</FsetId>\\n</CreateFilesetResponse>","errorExample":""}]', + 'title' => 'CreateFileset', + 'description' => '* CPFS usage notes'."\n" + ."\n" + .' * Only CPFS V2.2.0 and later support fileset creation. You can view the version information on the file system details page in the console.'."\n" + .' * A maximum of 10 filesets can be created for a CPFS file system.'."\n" + .' * The parent directory must be an existing directory.'."\n" + .' * The maximum depth supported by a fileset path is eight levels. The depth of the root directory / is 0 levels. For example, the fileset path /test/aaa/ccc/ has three levels.'."\n" + .' * Nested filesets are not supported. If a fileset is specified as a parent directory, its subdirectory cannot be a fileset.'."\n" + .' * A fileset supports a maximum of one million files. If the number of files exceeds the upper limit, the `no space` error message is returned when you add new files.'."\n" + ."\n" + .'* CPFS for Lingjun usage notes'."\n" + ."\n" + .' * Only CPFS for Lingjun V2.7.0 and later support this operation. You can view the version information on the file system details page in the console.'."\n" + .' * A maximum of 500 filesets can be created for a CPFS file system.'."\n" + .' * The fileset path must be a new path and cannot be an existing path. Fileset paths cannot be renamed and cannot be symbolic links.'."\n" + .' * The maximum depth supported by a fileset path is eight levels. The depth of the root directory / is 0 levels. For example, the fileset path /test/aaa/ccc/ has three levels.'."\n" + .' * If the fileset path is a multi-level path, the parent directory must be an existing directory.'."\n" + .' * Nested filesets are not supported. If a fileset is specified as a parent directory, its subdirectory cannot be a fileset. A fileset path supports only one quota.'."\n" + .' * The minimum capacity quota of a fileset is 10 GiB. The scaling step size is 1 GiB.'."\n" + .' * A fileset supports a minimum of 10,000 files or directories and a maximum of 10 billion files or directories. The scaling step size is 1.'."\n" + .' * When you modify a directory quota, you must set the quota capacity or the number of files to be greater than the capacity or file quantity that has been used.'."\n" + .' * The quota statistics have a 15-minute latency. The actual usage takes effect after 15 minutes.'."\n", + ], + 'DeleteFileset' => [ + 'summary' => 'Deletes a fileset.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'delete', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '55630', + 'abilityTreeNodes' => [ + 'FEATUREnasPWYFYN', + ], + ], + 'parameters' => [ + [ + 'name' => 'FileSystemId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the file system.'."\n" + ."\n" + .'* The IDs of CPFS file systems must start with `cpfs-`. Example: cpfs-099394bd928c\\*\\*\\*\\*.'."\n" + .'* The IDs of CPFS for Lingjun file systems must start with `bmcpfs-`. Example: bmcpfs-290w65p03ok64ya\\*\\*\\*\\*.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'cpfs-099394bd928c****', + ], + ], + [ + 'name' => 'FsetId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The fileset ID.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'fset-1902718ea0ae****', + ], + ], + [ + 'name' => 'DryRun', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to perform a dry run.'."\n" + ."\n" + .'During the dry run, the system checks whether the request parameters are valid and whether the requested resources are available. During the dry run, no fileset is deleted.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'* true: performs only a dry run. The system checks the required parameters, request syntax, and service limits. If the request fails the dry run, an error message is returned. If the request passes the dry run, the HTTP status code 200 is returned.'."\n" + .'* false (default): performs a dry run and sends the request. If the request passes the dry run, the fileset is deleted.'."\n", + 'type' => 'boolean', + 'required' => false, + 'example' => 'false', + 'default' => 'false', + ], + ], + [ + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => [ + 'description' => 'The client token that is used to ensure the idempotence of the request. You can use the client to generate the token, but you must make sure that the token is unique among different requests.'."\n" + ."\n" + .'The token can contain only ASCII characters and cannot exceed 64 characters in length. For more information, see [How do I ensure the idempotence?](~~25693~~)'."\n" + ."\n" + .'> If you do not specify this parameter, the system automatically uses the request ID as the client token. The request ID may be different for each request.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '123e4567-e89b-12d3-a456-42665544****', + ], + ], + ], + 'responses' => [ + 200 => [ + 'headers' => [], + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '2D69A58F-345C-4FDE-88E4-BF518948****', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'IllegalCharacters', + 'errorMessage' => 'The parameter contains illegal characters.', + ], + [ + 'errorCode' => 'MissingFileSystemId', + 'errorMessage' => 'FileSystemId is mandatory for this action.', + ], + [ + 'errorCode' => 'MissingFsetId', + 'errorMessage' => 'FsetId is mandatory for this action.', + ], + [ + 'errorCode' => 'InvalidFilesetId.NotFound', + 'errorMessage' => 'Invalid FilesetId.', + ], + ], + 403 => [ + [ + 'errorCode' => 'OperationDenied.DependencyViolation', + 'errorMessage' => 'The operation is denied due to dependancy violation.', + ], + [ + 'errorCode' => 'OperationDenied.FilesetNotSupported', + 'errorMessage' => 'The operation is not supported.', + ], + [ + 'errorCode' => 'InvalidOperation.DeletionProtection', + 'errorMessage' => 'The operation is not allowed due to resource is protected by deletion protection.', + ], + ], + [ + [ + 'errorCode' => 'InvalidFileSystem.NotFound', + 'errorMessage' => 'The specified file system does not exist.', + ], + [ + 'errorCode' => 'InvalidFsetId.NotFound', + 'errorMessage' => 'The specified Fileset ID does not exist.', + ], + ], + 429 => [ + [ + 'errorCode' => 'Throttling.Api', + 'errorMessage' => 'Request was denied due to api flow control.', + ], + ], + ], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"2D69A58F-345C-4FDE-88E4-BF518948****\\"\\n}","errorExample":""},{"type":"xml","example":"<DeleteFilesetResponse>\\n <RequestId>2D69A58F-345C-4FDE-88E4-BF518948****</RequestId>\\n</DeleteFilesetResponse>","errorExample":""}]', + 'title' => 'DeleteFileset', + 'description' => '* Only Cloud Parallel File Storage (CPFS) V2.2.0 and CPFS for Lingjun V2.7.0 and later support this operation. After you delete a fileset, all data in the fileset is deleted and cannot be restored. Proceed with caution.'."\n" + .'* If deletion protection is enabled for the fileset, you must disable deletion protection before you delete the fileset.'."\n" + .'* After you delete a fileset of CPFS for Lingjun, the storage space is not immediately released and will be recycled within 24 hours. If you want to release storage space immediately, you can clear the data in the fileset and then delete the fileset. Deleted data cannot be restored. Proceed with caution.'."\n", + ], + 'ModifyFileset' => [ + 'summary' => 'Modifies a fileset.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '55631', + 'abilityTreeNodes' => [ + 'FEATUREnasPWYFYN', + ], + ], + 'parameters' => [ + [ + 'name' => 'FileSystemId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the file system.'."\n" + ."\n" + .'* The IDs of CPFS file systems must start with `cpfs-`. Example: cpfs-099394bd928c\\*\\*\\*\\*.'."\n" + .'* The IDs of CPFS for LINGJUN file systems must start with `bmcpfs-`. Example: bmcpfs-290w65p03ok64ya\\*\\*\\*\\*.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'bmcpfs-290w65p03ok64ya****', + ], + ], + [ + 'name' => 'FsetId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The fileset ID.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'fset-1902718ea0ae****', + ], + ], + [ + 'name' => 'Description', + 'in' => 'query', + 'allowEmptyValue' => false, + 'schema' => [ + 'description' => 'The fileset description.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'test', + ], + ], + [ + 'name' => 'DryRun', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to perform only a dry run, without performing the actual request.'."\n" + ."\n" + .'During the dry run, the system checks whether the request parameters are valid and whether the requested resources are available. During the dry run, no fileset is modified and no fees incurred.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'* true: performs only a dry run. The system checks the required parameters, request syntax, service limits, and Apsara File Storage NAS (NAS) inventory data. If the request fails the dry run, an error message is returned. If the request passes the dry run, the HTTP status code 200 is returned.'."\n" + .'* false (default): performs a dry run and sends the request. If the request passes the dry run, the specified fileset is modified.'."\n", + 'type' => 'boolean', + 'required' => false, + 'example' => 'false', + 'default' => 'false', + ], + ], + [ + 'name' => 'DeletionProtection', + 'in' => 'query', + 'allowEmptyValue' => true, + 'schema' => [ + 'description' => 'Specifies whether to enable deletion protection to allow you to release the fileset by using the console or by calling the [DeleteFileset](~~2402263~~) operation. Valid values:'."\n" + ."\n" + .'* true: enables release protection.'."\n" + .'* false: disables release protection.'."\n" + ."\n" + .'> This parameter can protect filesets only against manual releases, but not against automatic releases.'."\n", + 'type' => 'boolean', + 'required' => false, + 'example' => 'false', + ], + ], + [ + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => [ + 'description' => 'The client token that is used to ensure the idempotence of the request. You can use the client to generate the token, but you must make sure that the token is unique among different requests.'."\n" + ."\n" + .'The token can contain only ASCII characters and cannot exceed 64 characters in length. For more information, see [How do I ensure the idempotence?](~~25693~~)'."\n" + ."\n" + .'> If you do not specify this parameter, the system automatically uses the request ID as the client token. The request ID may be different for each request.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '123e4567-e89b-12d3-a456-42665544****', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '2D69A58F-345C-4FDE-88E4-BF518948****', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'IllegalCharacters', + 'errorMessage' => 'The parameter contains illegal characters.', + ], + [ + 'errorCode' => 'MissingFileSystemId', + 'errorMessage' => 'FileSystemId is mandatory for this action.', + ], + [ + 'errorCode' => 'MissingFsetId', + 'errorMessage' => 'FsetId is mandatory for this action.', + ], + [ + 'errorCode' => 'InvalidFilesetId.NotFound', + 'errorMessage' => 'Invalid FilesetId.', + ], + ], + 403 => [ + [ + 'errorCode' => 'OperationDenied.DependencyViolation', + 'errorMessage' => 'The operation is denied due to dependancy violation.', + ], + [ + 'errorCode' => 'OperationDenied.FilesetNotSupported', + 'errorMessage' => 'The operation is not supported.', + ], + ], + [ + [ + 'errorCode' => 'InvalidFileSystem.NotFound', + 'errorMessage' => 'The specified file system does not exist.', + ], + [ + 'errorCode' => 'InvalidFsetId.NotFound', + 'errorMessage' => 'The specified Fileset ID does not exist.', + ], + ], + ], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"2D69A58F-345C-4FDE-88E4-BF518948****\\"\\n}","errorExample":""},{"type":"xml","example":"<ModifyFilesetResponse>\\n <RequestId>2D69A58F-345C-4FDE-88E4-BF518948****</RequestId>\\n</ModifyFilesetResponse>","errorExample":""}]', + 'title' => 'ModifyFileset', + 'description' => 'Only Cloud Parallel File Storage (CPFS) V2.2.0 and CPFS for Lingjun V2.7.0 and later support this operation.'."\n", + ], + 'GetFileset' => [ + 'summary' => 'Queries the information about the created fileset.', + 'path' => '', + 'methods' => [ + 'get', + 'post', + ], + 'schemes' => [ + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREnasPWYFYN', + ], + ], + 'parameters' => [ + [ + 'name' => 'FileSystemId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the file system.'."\n" + ."\n" + .'* The IDs of CPFS file systems must start with `cpfs-`. Example: cpfs-125487\\*\\*\\*\\*.'."\n" + .'* The IDs of CPFS for Lingjun file systems must start with `bmcpfs-`. Example: bmcpfs-0015\\*\\*\\*\\*.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'cpfs-099394bd928c****', + ], + ], + [ + 'name' => 'FsetId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The fileset ID.'."\n" + ."\n" + .'> This parameter is required for CPFS file systems.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'fset-1902718ea0ae****', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'Response information'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'title' => 'Id of the request', + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'BC7C825C-5F65-4B56-BEF6-98C56C7C****', + ], + 'Data' => [ + 'description' => 'The response parameters.'."\n", + 'type' => 'object', + 'properties' => [ + 'Description' => [ + 'description' => 'The description of the fileset.'."\n", + 'type' => 'string', + 'example' => 'Description', + ], + 'FileSystemPath' => [ + 'description' => 'The directory of the fileset in the CPFS file system.'."\n", + 'type' => 'string', + 'example' => 'pathtoroot/fset/', + ], + 'FsetId' => [ + 'description' => 'The fileset ID.'."\n" + ."\n" + .'> This parameter is required for CPFS file systems.'."\n", + 'type' => 'string', + 'example' => 'fset-03250e8fe78d****', + ], + 'Status' => [ + 'description' => 'The fileset status. Valid values:'."\n" + ."\n" + .'* CREATING: The fileset is being created.'."\n" + .'* CREATED: The fileset has been created and is running properly.'."\n" + .'* RELEASING: The fileset is being released.'."\n" + .'* RELEASED: The fileset has been deleted.'."\n", + 'type' => 'string', + 'example' => 'CREATED', + ], + 'CreateTime' => [ + 'description' => 'The time when the fileset was created.'."\n" + ."\n" + .'Return format: `yyyy-MM-dd HH:mm:ss`'."\n", + 'type' => 'string', + 'example' => '2025-11-21 12:49:25', + ], + 'UpdateTime' => [ + 'description' => 'The time when the fileset was last updated.'."\n" + ."\n" + .'Return format: `yyyy-MM-dd HH:mm:ss`'."\n", + 'type' => 'string', + 'example' => '2025-11-22 12:49:25', + ], + 'DeletionProtection' => [ + 'description' => 'Specifies whether the fileset is protected from being released through the console or the [DeleteFileset](~~2402263~~) operation.'."\n" + ."\n" + .'* true: Enables release protection. The fileset cannot be released.'."\n" + .'* false (default): Disables release protection. The fileset can be released.'."\n" + ."\n" + .'> This parameter can protect filesets only against manual releases, but not against automatic releases.'."\n", + 'type' => 'boolean', + 'example' => 'false', + ], + 'FileCountUsage' => [ + 'description' => 'The usage of the file quantity.'."\n" + ."\n" + .'> Only CPFS for LINGJUN V2.7.0 and later support this parameter.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1024', + ], + 'SpaceUsage' => [ + 'description' => 'The capacity usage. Unit: bytes.'."\n" + ."\n" + .'> Only CPFS for Lingjun V2.7.0 and later support this parameter.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1024', + ], + 'Quota' => [ + 'description' => 'The quota information.'."\n" + ."\n" + .'> Only CPFS for Lingjun V2.7.0 and later support this parameter.'."\n", + 'type' => 'object', + 'properties' => [ + 'SizeLimit' => [ + 'description' => 'The total quota capacity limit. Unit: bytes.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'* Minimum value: 10,737,418,240 (10 GiB).'."\n" + .'* Step size: 1,073,741,824 (1 GiB).'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '10,737,418,240', + ], + 'FileCountLimit' => [ + 'description' => 'The file quantity quota. Valid values:'."\n" + ."\n" + .'* Minimum value: 10,000.'."\n" + .'* Maximum value: 10,000,000,000.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '10001', + ], + ], + ], + 'FileSystemId' => [ + 'description' => 'The ID of the file system.'."\n" + ."\n" + .'* The IDs of CPFS file systems must start with `cpfs-`. Example: cpfs-125487\\*\\*\\*\\*.'."\n" + .'* The IDs of CPFS for Lingjun file systems must start with `bmcpfs-`. Example: bmcpfs-0015\\*\\*\\*\\*.'."\n", + 'type' => 'string', + 'example' => 'cpfs-0244729a8ef8****', + ], + ], + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'IllegalCharacters', + 'errorMessage' => 'The parameter contains illegal characters.', + ], + [ + 'errorCode' => 'MissingFileSystemId', + 'errorMessage' => 'FileSystemId is mandatory for this action.', + ], + ], + 403 => [ + [ + 'errorCode' => 'OperationDenied.FilesetNotSupported', + 'errorMessage' => 'The operation is not supported.', + ], + ], + [ + [ + 'errorCode' => 'InvalidFileSystem.NotFound', + 'errorMessage' => 'The specified filesystem does not exist.', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"BC7C825C-5F65-4B56-BEF6-98C56C7C****\\",\\n \\"Data\\": {\\n \\"Description\\": \\"Description\\",\\n \\"FileSystemPath\\": \\"pathtoroot/fset/\\",\\n \\"FsetId\\": \\"fset-03250e8fe78d****\\",\\n \\"Status\\": \\"CREATED\\",\\n \\"CreateTime\\": \\"2025-11-21 12:49:25\\",\\n \\"UpdateTime\\": \\"2025-11-22 12:49:25\\",\\n \\"DeletionProtection\\": false,\\n \\"FileCountUsage\\": 1024,\\n \\"SpaceUsage\\": 1024,\\n \\"Quota\\": {\\n \\"SizeLimit\\": 0,\\n \\"FileCountLimit\\": 10001\\n },\\n \\"FileSystemId\\": \\"cpfs-0244729a8ef8****\\"\\n }\\n}","type":"json"}]', + 'title' => 'GetFileset', + 'description' => 'Only CPFS V2.2.0 and CPFS for Lingjun V2.7.0 and later support this operation. You can view the version information on the file system details page in the console.'."\n", + ], + 'DescribeFilesets' => [ + 'summary' => 'Queries the information about created filesets.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'list', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '55590', + 'abilityTreeNodes' => [ + 'FEATUREnasPWYFYN', + ], + ], + 'parameters' => [ + [ + 'name' => 'FileSystemId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the file system.'."\n" + ."\n" + .'* The IDs of CPFS file systems must start with `cpfs-`. Example: cpfs-099394bd928c\\*\\*\\*\\*.'."\n" + .'* The IDs of CPFS for LINGJUN file systems must start with `bmcpfs-`. Example: bmcpfs-290w65p03ok64ya\\*\\*\\*\\*.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'bmcpfs-290w65p03ok64ya****', + ], + ], + [ + 'name' => 'Filters', + 'in' => 'query', + 'style' => 'repeatList', + 'schema' => [ + 'description' => 'The filter that is used to query filesets.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Key' => [ + 'description' => 'The filter name. Valid values:'."\n" + ."\n" + .'* FsetIds: filters filesets by fileset ID.'."\n" + .'* FileSystemPath: filters filesets based on the path of a fileset in a CPFS file system.'."\n" + .'* Description: filters filesets based on the fileset description.'."\n" + .'* QuotaExists: filters filesets based on whether quotas exist.'."\n" + ."\n" + .'> Only CPFS for LINGJUN V2.7.0 and later support the QuotaExists parameter.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'FsetIds', + 'enum' => [ + 'FsetIds', + 'FileSystemPath', + 'Description', + 'QuotaExists', + ], + ], + 'Value' => [ + 'description' => 'The filter value. This parameter does not support wildcards.'."\n" + ."\n" + .'* If Key is set to FsetIds, set Value to a fileset ID or a part of the fileset ID. You can specify a fileset ID or a group of fileset IDs. You can specify a maximum of 10 fileset IDs. Example: `fset-1902718ea0ae****` or `fset-1902718ea0ae****,fset-3212718ea0ae****`.'."\n" + .'* If Key is set to FileSystemPath, set Value to the path or a part of the path of a fileset in a CPFS file system. The value must be 2 to 1024 characters in length. The value must be encoded in UTF-8.'."\n" + .'* If Key is set to Description, set Value to a fileset description or a part of the fileset description.'."\n" + .'* If Key is set to QuotaExists, set Value to true or false. If you do not specify the parameter, all filesets are returned.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'fset-1902718ea0ae****,fset-3212718ea0ae****', + ], + ], + 'required' => false, + 'description' => '', + ], + 'required' => false, + 'docRequired' => false, + 'maxItems' => 5, + ], + ], + [ + 'name' => 'NextToken', + 'in' => 'query', + 'schema' => [ + 'description' => 'The pagination token that is used in the next request to retrieve a new page of results. You do not need to specify this parameter for the first request. You must specify the token that is obtained from the previous query as the value of NextToken.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'TGlzdFJlc291cmNlU****mVzJjE1MTI2NjY4NzY5MTAzOTEmMiZORnI4NDhVeEtrUT0=', + ], + ], + [ + 'name' => 'MaxResults', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of results for each query.'."\n" + ."\n" + .'Valid values: 10 to 100. Default value: 20.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'maximum' => '100', + 'minimum' => '10', + 'example' => '20', + 'default' => '20', + ], + ], + [ + 'name' => 'OrderByField', + 'in' => 'query', + 'schema' => [ + 'description' => 'The condition by which the results are sorted. Valid values:'."\n" + ."\n" + .'* FileCountLimit: the file quantity quota'."\n" + .'* SizeLimit: the capacity quota'."\n" + .'* FileCountUsage: the usage of the file quantity quota'."\n" + .'* SpaceUsage: the capacity usage'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'FileCountLimit', + 'enum' => [ + 'SpaceUsage', + 'FileCountUsage', + 'SizeLimit', + 'FileCountLimit', + ], + ], + ], + [ + 'name' => 'SortOrder', + 'in' => 'query', + 'schema' => [ + 'description' => 'The order in which you want to sort the results. Valid values:'."\n" + ."\n" + .'* asc (default): ascending order'."\n" + .'* desc: descending order'."\n" + ."\n" + .'> This parameter takes effect only if you specify the OrderByField parameter.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'asc', + 'enum' => [ + 'asc', + 'desc', + ], + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '2D69A58F-345C-4FDE-88E4-BF518948****', + ], + 'NextToken' => [ + 'description' => 'A pagination token. It can be used in the next request to retrieve a new page of results.'."\n", + 'type' => 'string', + 'example' => 'TGlzdFJlc291cmNlU****mVzJjE1MTI2NjY4NzY5MTAzOTEmMiZORnI4NDhVeEtrUT0=', + ], + 'FileSystemId' => [ + 'description' => 'The ID of the file system.'."\n" + ."\n" + .'* The IDs of CPFS file systems must start with `cpfs-`. Example: cpfs-099394bd928c\\*\\*\\*\\*.'."\n" + .'* The IDs of CPFS for LINGJUN file systems must start with `bmcpfs-`. Example: bmcpfs-290w65p03ok64ya\\*\\*\\*\\*.'."\n", + 'type' => 'string', + 'deprecated' => true, + 'example' => 'bmcpfs-290w65p03ok64ya****', + ], + 'Entries' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'Entrie' => [ + 'description' => 'The fileset information.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The file information.'."\n", + 'type' => 'object', + 'properties' => [ + 'Description' => [ + 'description' => 'The fileset description.'."\n", + 'type' => 'string', + 'example' => 'test', + ], + 'FileSystemPath' => [ + 'description' => 'The fileset path.'."\n", + 'type' => 'string', + 'example' => 'pathtoroot/fset', + ], + 'FsetId' => [ + 'description' => 'The fileset ID.'."\n", + 'type' => 'string', + 'example' => 'fset-1902718ea0ae****', + ], + 'Status' => [ + 'description' => 'The fileset status. Valid values:'."\n" + ."\n" + .'* CREATING: The fileset is being created.'."\n" + .'* CREATED: The fileset has been created and is running properly.'."\n" + .'* RELEASING: The fileset is being released.'."\n" + .'* RELEASED: The fileset has been deleted.'."\n", + 'type' => 'string', + 'example' => 'CREATED', + ], + 'CreateTime' => [ + 'description' => 'The time when the fileset was created.'."\n" + ."\n" + .'The time follows the ISO 8601 standard in the `yyyy-MM-ddTHH:mm:ssZ` format.'."\n", + 'type' => 'string', + 'example' => '2021-09-30T10:08:08Z', + ], + 'UpdateTime' => [ + 'description' => 'The time when the fileset was last updated.'."\n" + ."\n" + .'The time follows the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format.'."\n", + 'type' => 'string', + 'example' => '2021-09-30T10:08:08Z', + ], + 'DeletionProtection' => [ + 'description' => 'Specifies whether to enable deletion protection to allow you to release the fileset by using the console or by calling the [DeleteFileset](~~2402263~~) operation. Valid values:'."\n" + ."\n" + .'* true: enables release protection.'."\n" + .'* false: disables release protection.'."\n" + ."\n" + .'> This parameter can protect filesets only against manual releases, but not against automatic releases.'."\n", + 'type' => 'boolean', + 'example' => 'true', + ], + 'FileCountUsage' => [ + 'description' => 'The usage of the file quantity.'."\n" + ."\n" + .'> Only CPFS for LINGJUN V2.7.0 and later support this parameter.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1024', + ], + 'SpaceUsage' => [ + 'description' => 'The capacity usage. Unit: bytes.'."\n" + ."\n" + .'> Only CPFS for LINGJUN V2.7.0 and later support this parameter.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1024', + ], + 'Quota' => [ + 'description' => 'The quota information.'."\n" + ."\n" + .'> Only CPFS for Lingjun V2.7.0 and later support this parameter.'."\n", + 'type' => 'object', + 'properties' => [ + 'SizeLimit' => [ + 'description' => 'The capacity quota. Unit: bytes.'."\n" + ."\n" + .'* Minimum value: 10737418240 (10 GiB).'."\n" + .'* Step size: 1073741824 (1 GiB).'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '10737418240', + ], + 'FileCountLimit' => [ + 'description' => 'The file quantity quota. Valid values:'."\n" + ."\n" + .'* Minimum value: 10000.'."\n" + .'* Maximum value: 10000000000.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '10000', + ], + ], + ], + 'FileSystemId' => [ + 'description' => 'The ID of the file system.'."\n" + ."\n" + .'* The IDs of CPFS file systems must start with `cpfs-`. Example: cpfs-099394bd928c\\*\\*\\*\\*.'."\n" + .'* The IDs of CPFS for LINGJUN file systems must start with `bmcpfs-`. Example: bmcpfs-290w65p03ok64ya\\*\\*\\*\\*.'."\n", + 'type' => 'string', + 'example' => 'bmcpfs-290w65p03ok64ya****', + ], + ], + ], + ], + ], + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'IllegalCharacters', + 'errorMessage' => 'The parameter contains illegal characters.', + ], + [ + 'errorCode' => 'MissingFileSystemId', + 'errorMessage' => 'FileSystemId is mandatory for this action.', + ], + [ + 'errorCode' => 'InvalidParameter.SortOrder', + 'errorMessage' => 'Invalid sort order.', + ], + [ + 'errorCode' => 'InvalidParameter.SortOrderField', + 'errorMessage' => 'Invalid sort order field.', + ], + ], + 403 => [ + [ + 'errorCode' => 'OperationDenied.FilesetNotSupported', + 'errorMessage' => 'The operation is not supported.', + ], + ], + [ + [ + 'errorCode' => 'InvalidFileSystem.NotFound', + 'errorMessage' => 'The specified file system does not exist.', + ], + [ + 'errorCode' => 'InvalidFilterParam', + 'errorMessage' => 'The specified Filter.N.Key is invalid.', + ], + [ + 'errorCode' => 'InvalidFilterValue', + 'errorMessage' => 'The specified Filter.N.Value is invalid.', + ], + [ + 'errorCode' => 'InvalidParameter.InvalidNextToken', + 'errorMessage' => 'The specified NextToken is invaild.', + ], + [ + 'errorCode' => 'InvalidParameter.InvalidMaxResults', + 'errorMessage' => 'The specified MaxResults is invalid.', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"2D69A58F-345C-4FDE-88E4-BF518948****\\",\\n \\"NextToken\\": \\"TGlzdFJlc291cmNlU****mVzJjE1MTI2NjY4NzY5MTAzOTEmMiZORnI4NDhVeEtrUT0=\\",\\n \\"FileSystemId\\": \\"bmcpfs-290w65p03ok64ya****\\",\\n \\"Entries\\": {\\n \\"Entrie\\": [\\n {\\n \\"Description\\": \\"test\\",\\n \\"FileSystemPath\\": \\"pathtoroot/fset\\",\\n \\"FsetId\\": \\"fset-1902718ea0ae****\\",\\n \\"Status\\": \\"CREATED\\",\\n \\"CreateTime\\": \\"2021-09-30T10:08:08Z\\",\\n \\"UpdateTime\\": \\"2021-09-30T10:08:08Z\\",\\n \\"DeletionProtection\\": true,\\n \\"FileCountUsage\\": 1024,\\n \\"SpaceUsage\\": 1024,\\n \\"Quota\\": {\\n \\"SizeLimit\\": 10737418240,\\n \\"FileCountLimit\\": 10000\\n },\\n \\"FileSystemId\\": \\"bmcpfs-290w65p03ok64ya****\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"","errorExample":""}]', + 'title' => 'DescribeFilesets', + 'description' => '* Only Cloud Parallel File Storage (CPFS) V2.2.0 and CPFS for Lingjun V2.7.0 and later support this operation. You can view the version information on the file system details page in the console.'."\n" + .'* In Filters, FsetIds supports exact match only. FileSystemPath and Description support fuzzy match.'."\n" + .'* Combined query is supported.'."\n", + ], + 'SetFilesetQuota' => [ + 'summary' => 'Sets the quota for a fileset.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '238301', + 'abilityTreeNodes' => [ + 'FEATUREnasXEQXVN', + ], + 'autoTest' => false, + 'notSupportAutoTestReason' => '特殊用户支持的API', + 'tenantRelevance' => 'publicInformation', + ], + 'parameters' => [ + [ + 'name' => 'FileSystemId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the CPFS for LINGJUN file system. The IDs of CPFS for LINGJUN file systems must start with `bmcpfs-`. Example: bmcpfs-290w65p03ok64ya\\*\\*\\*\\*.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'bmcpfs-290w65p03ok64ya****', + ], + ], + [ + 'name' => 'FsetId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The fileset ID.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'fset-1902718ea0ae****', + ], + ], + [ + 'name' => 'DryRun', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to perform a dry run. The dry run checks parameter validity and prerequisites. The dry run does not delete the specified quota or incur fees.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'* true: performs only a dry run. The system checks the required parameters, request syntax, and service limits. If the request fails the dry run, an error code is returned. If the request passes the dry run, the HTTP status code 200 is returned.'."\n" + .'* false (default): performs a dry run and sends the request. If the request passes the dry run, the quota is deleted.'."\n", + 'type' => 'boolean', + 'required' => false, + 'example' => 'false', + 'default' => 'false', + ], + ], + [ + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => [ + 'description' => 'The client token that is used to ensure the idempotence of the request. You can use the client to generate the token, but you must make sure that the token is unique among different requests.'."\n" + ."\n" + .'The token can contain only ASCII characters and cannot exceed 64 characters in length. For more information, see [How do I ensure the idempotence?](~~25693~~)'."\n" + ."\n" + .'> If you do not specify this parameter, the system automatically uses the request ID as the client token. The request ID may be different for each request.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '123e4567-e89b-12d3-a456-42665544****', + ], + ], + [ + 'name' => 'FileCountLimit', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of files of the quota. Valid values:'."\n" + ."\n" + .'* Minimum value: 10,000.'."\n" + .'* Maximum value: 10,000,000,000.'."\n" + ."\n" + .'> If you do not specify this parameter, the number of files is unlimited.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'example' => '10000', + ], + ], + [ + 'name' => 'SizeLimit', + 'in' => 'query', + 'schema' => [ + 'description' => 'The total capacity of the quota. Unit: bytes.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'* Minimum value: 10,737,418,240 (10 GiB).'."\n" + .'* Step size: 1,073,741,824 (1 GiB).'."\n" + ."\n" + .'> If you do not specify this parameter, the capacity is unlimited.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'example' => '10737418240', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '2D69A58F-345C-4FDE-88E4-BF518948****', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'IllegalCharacters', + 'errorMessage' => 'The parameter contains illegal characters.', + ], + [ + 'errorCode' => 'MissingFileSystemId', + 'errorMessage' => 'FileSystemId is mandatory for this action.', + ], + [ + 'errorCode' => 'MissingFsetId', + 'errorMessage' => 'FsetId is mandatory for this action.', + ], + [ + 'errorCode' => 'Quota.Invalid.Limit', + 'errorMessage' => 'Quota limit is invalid.', + ], + [ + 'errorCode' => 'Quota.Exceed.Limit', + 'errorMessage' => 'Quota exceed limit.', + ], + [ + 'errorCode' => 'InvalidFilesetId.NotFound', + 'errorMessage' => 'Invalid FilesetId.', + ], + ], + 403 => [ + [ + 'errorCode' => 'OperationDenied.DependencyViolation', + 'errorMessage' => 'The operation is denied due to dependancy violation.', + ], + [ + 'errorCode' => 'OperationDenied.FilesetNotSupported', + 'errorMessage' => 'The operation is not supported.', + ], + ], + [ + [ + 'errorCode' => 'InvalidFileSystem.NotFound', + 'errorMessage' => 'The specified file system does not exist.', + ], + [ + 'errorCode' => 'InvalidFsetId.NotFound', + 'errorMessage' => 'The specified Fileset ID does not exist.', + ], + ], + 429 => [ + [ + 'errorCode' => 'Throttling.Api', + 'errorMessage' => 'Request was denied due to api flow control.', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"2D69A58F-345C-4FDE-88E4-BF518948****\\"\\n}","type":"json"}]', + 'title' => 'SetFilesetQuota', + 'description' => '* Only Cloud Parallel File Storage (CPFS) for Lingjun V2.7.0 and later support this operation.'."\n" + .'* The minimum capacity quota of a fileset is 10 GiB. The scaling step size is 1 GiB.'."\n" + .'* A fileset supports a minimum of 10,000 files or directories and a maximum of 10 billion files or directories. The scaling step size is 1.'."\n" + .'* When modifying a directory quota, you must set the new capacity or file quantity higher than what is currently used.'."\n" + .'* You must configure at least one of the Capacity Limit (GiB) and File Limit parameters.'."\n" + .'* The quota statistics have a 15-minute latency. The actual usage takes effect after 15 minutes.'."\n", + ], + 'CancelFilesetQuota' => [ + 'summary' => 'Cancels the quota set for a fileset.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '238649', + 'abilityTreeNodes' => [ + 'FEATUREnasXEQXVN', + ], + 'autoTest' => false, + 'notSupportAutoTestReason' => '为特殊用户使用API', + 'tenantRelevance' => 'publicInformation', + ], + 'parameters' => [ + [ + 'name' => 'FileSystemId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the CPFS for LINGJUN file system. The IDs of CPFS for LINGJUN file systems must start with `bmcpfs-`. Example: bmcpfs-290w65p03ok64ya\\*\\*\\*\\*.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'bmcpfs-290w65p03ok64ya****', + ], + ], + [ + 'name' => 'FsetId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The fileset ID.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'fset-1902718ea0ae****'."\n", + ], + ], + [ + 'name' => 'DryRun', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to perform a dry run.'."\n" + ."\n" + .'During the dry run, the system checks whether the request parameters are valid and whether the requested resources are available. During the dry run, no fileset quota is canceled and no fee is incurred.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'* true: performs a dry run. The system checks the required parameters, request syntax, and service limits. If the request fails the dry run, an error message is returned. If the request passes the dry run, the HTTP status code 200 is returned. No value is returned for the DataFlowld parameter.'."\n" + .'* false (default): performs a dry run and sends the request. If the request passes the dry run, the fileset quota is canceled.'."\n", + 'type' => 'boolean', + 'required' => false, + 'example' => 'false', + 'default' => 'false', + ], + ], + [ + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => [ + 'description' => 'The client token that is used to ensure the idempotence of the request. You can use the client to generate the token, but you must make sure that the token is unique among different requests.'."\n" + ."\n" + .'The token can contain only ASCII characters and cannot exceed 64 characters in length. For more information, see [How do I ensure the idempotence?](~~25693~~)'."\n" + ."\n" + .'> If you do not specify this parameter, the system automatically uses the request ID as the client token. The request ID may be different for each request.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '123e4567-e89b-12d3-a456-42665544****', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '98696EF0-1607-4E9D-B01D-F20930B6****'."\n", + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'IllegalCharacters', + 'errorMessage' => 'The parameter contains illegal characters.', + ], + [ + 'errorCode' => 'MissingFileSystemId', + 'errorMessage' => 'FileSystemId is mandatory for this action.', + ], + [ + 'errorCode' => 'MissingFsetId', + 'errorMessage' => 'FsetId is mandatory for this action.', + ], + [ + 'errorCode' => 'InvalidFilesetId.NotFound', + 'errorMessage' => 'Invalid FilesetId.', + ], + ], + 403 => [ + [ + 'errorCode' => 'OperationDenied.DependencyViolation', + 'errorMessage' => 'The operation is denied due to dependancy violation.', + ], + [ + 'errorCode' => 'OperationDenied.FilesetNotSupported', + 'errorMessage' => 'The operation is not supported.', + ], + ], + [ + [ + 'errorCode' => 'InvalidFileSystem.NotFound', + 'errorMessage' => 'The specified file system does not exist.', + ], + [ + 'errorCode' => 'InvalidFsetId.NotFound', + 'errorMessage' => 'The specified Fileset ID does not exist.', + ], + ], + 429 => [ + [ + 'errorCode' => 'Throttling.Api', + 'errorMessage' => 'Request was denied due to api flow control.', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"98696EF0-1607-4E9D-B01D-F20930B6****\\\\n\\"\\n}","type":"json"}]', + 'title' => 'CancelFilesetQuota', + 'description' => 'Only Cloud Parallel File Storage (CPFS) for LINGJUN V2.7.0 and later support this operation.'."\n", + ], + 'CreateDataFlow' => [ + 'summary' => 'Creates a dataflow for a Cloud Parallel File Storage (CPFS) file system and source storage.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'create', + 'abilityTreeCode' => '49006', + 'abilityTreeNodes' => [ + 'FEATUREnasPWYFYN', + ], + ], + 'parameters' => [ + [ + 'name' => 'FileSystemId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the file system.'."\n" + ."\n" + .'* The IDs of CPFS file systems must start with `cpfs-`. Example: cpfs-125487\\*\\*\\*\\*.'."\n" + .'* The IDs of CPFS for Lingjun file systems must start with `bmcpfs-`. Example: bmcpfs-0015\\*\\*\\*\\*.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'cpfs-099394bd928c****', + ], + ], + [ + 'name' => 'FsetId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The fileset ID.'."\n" + ."\n" + .'> This parameter is required for CPFS file systems.'."\n", + 'type' => 'string', + 'required' => false, + 'docRequired' => false, + 'example' => 'fset-1902718ea0ae****', + ], + ], + [ + 'name' => 'SourceStorage', + 'in' => 'query', + 'schema' => [ + 'description' => 'The access path of the source storage. Format: `<storage type>://[<account id>:]<path>`.'."\n" + ."\n" + .'Parameters:'."\n" + ."\n" + .'* storage type: Only OSS is supported.'."\n" + ."\n" + .'* account id (optional): the UID of the account of the source storage. This parameter is required when you use OSS buckets across accounts.'."\n" + ."\n" + .'* path: the name of the OSS bucket. Limits:'."\n" + ."\n" + .' * The name can contain only lowercase letters, digits, and hyphens (-). The name must start and end with a lowercase letter or digit.'."\n" + .' * The name can be up to 128 characters in length.'."\n" + .' * The name must be encoded in UTF-8.'."\n" + ."\n" + .'> * The OSS bucket must be an existing bucket in the region.'."\n" + .'> * Only CPFS for LINGJUN V2.6.0 and later support the account id parameter.', + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'oss://bucket1', + 'maxLength' => 128, + ], + ], + [ + 'name' => 'SourceSecurityType', + 'in' => 'query', + 'allowEmptyValue' => false, + 'schema' => [ + 'description' => 'The type of security mechanism for the source storage. This parameter must be specified if the source storage is accessed with a security mechanism. Valid values:'."\n" + ."\n" + .'* None (default): The source storage can be accessed without a security mechanism.'."\n" + .'* SSL: The source storage must be accessed with an SSL certificate.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'SSL', + ], + ], + [ + 'name' => 'Throughput', + 'in' => 'query', + 'schema' => [ + 'description' => 'The maximum data flow throughput. Unit: MB/s. Valid values:'."\n" + ."\n" + .'* 600'."\n" + .'* 1200'."\n" + .'* 1500'."\n" + ."\n" + .'> The data flow throughput must be less than the I/O throughput of the file system. This parameter is required for CPFS file systems.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'docRequired' => false, + 'example' => '600', + 'enum' => [ + '600', + '1200', + '1500', + '2000', + ], + ], + ], + [ + 'name' => 'Description', + 'in' => 'query', + 'allowEmptyValue' => true, + 'schema' => [ + 'description' => 'The description of the dataflow.'."\n" + ."\n" + .'Limits:'."\n" + ."\n" + .'* The description must be 2 to 128 characters in length.'."\n" + .'* The description must start with a letter but cannot start with `http://` or `https://`.'."\n" + .'* The description can contain letters, digits, colons (:), underscores (\\_), and hyphens (-).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'Bucket01 DataFlow', + ], + ], + [ + 'name' => 'AutoRefreshs', + 'in' => 'query', + 'allowEmptyValue' => false, + 'style' => 'repeatList', + 'schema' => [ + 'description' => 'The automatic update configurations.'."\n" + ."\n" + .'> This parameter takes effect only for CPFS file systems.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'RefreshPath' => [ + 'description' => 'The automatic update directory. CPFS registers the data update event in the source storage, and automatically checks whether the source data in the directory is updated and imports the updated data.'."\n" + ."\n" + .'This parameter is empty by default. Updated data in the source storage is not automatically imported into the CPFS file system. You must import the updated data by running a manual task.'."\n" + ."\n" + .'Limits:'."\n" + ."\n" + .'* The directory must be 2 to 1,024 characters in length.'."\n" + .'* The directory must be encoded in UTF-8.'."\n" + .'* The directory must start and end with a forward slash (/).'."\n" + .'* The directory must be an existing directory in the CPFS file system and must be in a fileset where the data flow is enabled.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '/prefix1/prefix2/', + 'maxLength' => 1024, + 'minLength' => 2, + ], + ], + 'required' => false, + 'description' => '', + ], + 'required' => false, + 'maxItems' => 10, + ], + ], + [ + 'name' => 'AutoRefreshPolicy', + 'in' => 'query', + 'schema' => [ + 'description' => 'The automatic update policy. The updated data in the source storage is imported into the CPFS file system based on the policy.'."\n" + ."\n" + .'* None (default): Updated data in the source storage is not automatically imported into the CPFS file system. You can run a data flow task to import the updated data from the source storage.'."\n" + .'* ImportChanged: Updated data in the source storage is automatically imported into the CPFS file system.'."\n" + ."\n" + .'> This parameter takes effect only for CPFS file systems.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'None', + 'default' => 'None', + 'enum' => [ + 'None', + 'ImportChanged', + ], + ], + ], + [ + 'name' => 'AutoRefreshInterval', + 'in' => 'query', + 'schema' => [ + 'description' => 'The automatic update interval. CPFS checks whether data is updated in the directory at the interval specified by this parameter. If data is updated, CPFS starts an automatic update task. Unit: minutes.'."\n" + ."\n" + .'Valid values: 10 to 525600. Default value: 10.'."\n" + ."\n" + .'> This parameter takes effect only for CPFS file systems.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'maximum' => '525600', + 'minimum' => '5', + 'example' => '10', + 'default' => '10', + ], + ], + [ + 'name' => 'DryRun', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to perform a dry run.'."\n" + ."\n" + .'During the dry run, the system checks whether the request parameters are valid and whether the requested resources are available. During the dry run, no file system is created and no fee is incurred.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'* true: performs a dry run. The system checks the required parameters, request syntax, limits, and available NAS resources. If the request fails the dry run, an error message is returned. If the request passes the dry run, the HTTP status code 200 is returned. No value is returned for the FileSystemId parameter.'."\n" + .'* false (default): performs a dry run and sends the request. If the request passes the dry run, a file system is created.'."\n", + 'type' => 'boolean', + 'required' => false, + 'example' => 'false', + 'default' => 'false', + ], + ], + [ + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => [ + 'description' => 'The client token that is used to ensure the idempotence of the request. You can use the client to generate the token, but you must make sure that the token is unique among different requests.'."\n" + ."\n" + .'The token can contain only ASCII characters and cannot exceed 64 characters in length. For more information, see [How do I ensure the idempotence?](~~25693~~)'."\n" + ."\n" + .'> If you do not specify this parameter, the system automatically uses the request ID as the client token. The value of RequestId may be different for each API request.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '123e4567-e89b-12d3-a456-42665544****', + 'maxLength' => 64, + 'minLength' => 1, + ], + ], + [ + 'name' => 'SourceStoragePath', + 'in' => 'query', + 'schema' => [ + 'title' => '源端存储内的访问路径。', + 'description' => 'The access path in the bucket of the source storage. Limits:'."\n" + ."\n" + .'* The path must start and end with a forward slash (/).'."\n" + .'* The path is case-sensitive.'."\n" + .'* The path must be 1 to 1023 characters in length.'."\n" + .'* The path must be encoded in UTF-8.'."\n" + ."\n" + .'> This parameter is required for CPFS for LINGJUN file systems.'."\n", + 'type' => 'string', + 'required' => false, + 'docRequired' => false, + 'example' => '/prefix/', + 'maxLength' => 1023, + 'minLength' => 1, + ], + ], + [ + 'name' => 'FileSystemPath', + 'in' => 'query', + 'schema' => [ + 'title' => 'CPFS文件系统内的目录。', + 'description' => 'The directory in the CPFS for LINGJUN file system. Limits:'."\n" + ."\n" + .'* The directory must start and end with a forward slash (/).'."\n" + .'* The directory must be an existing directory in the CPFS for LINGJUN file system.'."\n" + .'* The directory must be 1 to 1023 characters in length.'."\n" + .'* The directory must be encoded in UTF-8.'."\n" + ."\n" + .'> This parameter is required for CPFS for LINGJUN file systems.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '/path/', + 'maxLength' => 1023, + 'minLength' => 1, + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0D****3E', + ], + 'DataFlowId' => [ + 'description' => 'The ID of the dataflow.'."\n", + 'type' => 'string', + 'example' => 'df-194433a5be31****', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'IllegalCharacters', + 'errorMessage' => 'The parameter contains illegal characters.', + ], + [ + 'errorCode' => 'MissingFsetId', + 'errorMessage' => 'FsetId is mandatory for this action.', + ], + [ + 'errorCode' => 'MissingSourceStorage', + 'errorMessage' => 'SourceStorage is mandatory for this action.', + ], + [ + 'errorCode' => 'MissingThroughput', + 'errorMessage' => 'Throughput is mandatory for this action.', + ], + [ + 'errorCode' => 'MissingFileSystemId', + 'errorMessage' => 'FileSystemId is mandatory for this action.', + ], + [ + 'errorCode' => 'InvalidFilesystemVersion.NotSupport', + 'errorMessage' => 'This Api does not support this fileSystem version.', + ], + [ + 'errorCode' => 'DataFlow.Bucket.RegionUnmatched', + 'errorMessage' => 'The bucket and file system are not in the same region.', + ], + ], + 403 => [ + [ + 'errorCode' => 'OperationDenied.DependencyViolation', + 'errorMessage' => 'The operation is denied due to dependancy violation.', + ], + [ + 'errorCode' => 'OperationDenied.NoStock', + 'errorMessage' => 'The operation is denied due to no stock.', + ], + [ + 'errorCode' => 'OperationDenied.DependFset', + 'errorMessage' => 'The operation is denied due to invalid fileset state.', + ], + [ + 'errorCode' => 'OperationDenied.ConflictOperation', + 'errorMessage' => 'The operation is denied due to a conflict with an ongoing operation.', + ], + [ + 'errorCode' => 'OperationDenied.DependMountpoint', + 'errorMessage' => 'The operation is denied because no mount point is found.', + ], + [ + 'errorCode' => 'OperationDenied.FsetAlreadyInUse', + 'errorMessage' => 'The Fset is already bound to another data flow.', + ], + [ + 'errorCode' => 'OperationDenied.AutoRefreshNotSupport', + 'errorMessage' => 'The operation is denied. Auto refresh is not supported.', + ], + [ + 'errorCode' => 'OperationDenied.DependBucketTag', + 'errorMessage' => 'The operation is denied. The OSS Bucket tag cpfs-dataflow is missing.', + ], + [ + 'errorCode' => 'OperationDenied.DataFlowNotSupported', + 'errorMessage' => 'The operation is not supported.', + ], + [ + 'errorCode' => 'InvalidOperation.DeletionProtection', + 'errorMessage' => 'The operation is not allowed due to resource is protected by deletion protection.', + ], + [ + 'errorCode' => 'DataFlow.Bucket.AccessDenied', + 'errorMessage' => 'Bucket access denied.', + ], + ], + [ + [ + 'errorCode' => 'InvalidFileSystem.NotFound', + 'errorMessage' => 'The specified file system does not exist.', + ], + [ + 'errorCode' => 'InvalidThroughput.OutOfBounds', + 'errorMessage' => 'Throughput is out of bounds.', + ], + [ + 'errorCode' => 'InvalidDescription.InvalidFormat', + 'errorMessage' => 'Description format is invalid.', + ], + [ + 'errorCode' => 'InvalidRefreshPath.InvalidParameter', + 'errorMessage' => 'Refresh path is invalid.', + ], + [ + 'errorCode' => 'InvalidRefreshPath.Duplicated', + 'errorMessage' => 'Refresh path is duplicated.', + ], + [ + 'errorCode' => 'InvalidRefreshPath.NotFound', + 'errorMessage' => 'Refresh path does not exist.', + ], + [ + 'errorCode' => 'InvalidRefreshPolicy.InvalidParameter', + 'errorMessage' => 'Refresh policy is invalid.', + ], + [ + 'errorCode' => 'InvalidRefreshInterval.OutOfBounds', + 'errorMessage' => 'Refresh interval is out of bounds.', + ], + [ + 'errorCode' => 'InvalidSourceStorage.Unreachable', + 'errorMessage' => 'Source storage cannot be accessed.', + ], + [ + 'errorCode' => 'InvalidSourceStorage.NotFound', + 'errorMessage' => 'Source storage is not found.', + ], + [ + 'errorCode' => 'InvalidSourceStorage.NotSupport', + 'errorMessage' => 'Source storage type is not supported.', + ], + [ + 'errorCode' => 'InvalidSourceStorage.PermissionDenied', + 'errorMessage' => 'The source storage access permission is denied.', + ], + [ + 'errorCode' => 'InvalidSourceStorage.InvalidRegion', + 'errorMessage' => 'Source storage region is invalid.', + ], + [ + 'errorCode' => 'InvalidSourceStorage.InvalidParameter', + 'errorMessage' => 'Source storage has invalid parameters.', + ], + [ + 'errorCode' => 'InvalidSourceSecurityType.NotSupport', + 'errorMessage' => 'The source security type is not supported.', + ], + [ + 'errorCode' => 'InvalidAutoRefresh.TooManyAutoRefreshes', + 'errorMessage' => 'The number of auto refreshes exceeds the limit.', + ], + [ + 'errorCode' => 'InvalidSourceStorage.NeedVersioning', + 'errorMessage' => 'Source storage must enable versioning.', + ], + [ + 'errorCode' => 'InvalidFsetId.NotFound', + 'errorMessage' => 'The specified Fileset ID does not exist.', + ], + [ + 'errorCode' => 'DataFlow.Bucket.NotExist', + 'errorMessage' => 'Bucket does not exist.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-A3DC0D****3E\\",\\n \\"DataFlowId\\": \\"df-194433a5be31****\\"\\n}","errorExample":""},{"type":"xml","example":"<CreateDataFlowResponse>\\n <RequestId>473469C7-AA6F-4DC5-B3DB-A3DC0D****3E</RequestId>\\n <DataFlowId>dfid-194433a5be31****</DataFlowId>\\n</CreateDataFlowResponse>","errorExample":""}]', + 'title' => 'CreateDataFlow', + 'description' => '* Basic operations'."\n" + ."\n" + .' * Only Cloud Parallel File Storage (CPFS) V2.2.0 and later and CPFS for Lingjun V2.4.0 and later support data flows.'."\n" + .' * You can create a data flow only when a CPFS or CPFS for Lingjun file system is in the Running state.'."\n" + .' * A maximum of 10 data flows can be created for a CPFS or CPFS for Lingjun file system.'."\n" + .' * It generally takes 2 to 5 minutes to create a data flow. You can call the DescribeDataFlows operation to check whether the data flow has been created.'."\n" + ."\n" + .'* Permission'."\n" + ."\n" + .' When you create a data flow, CPFS obtains the following two service-linked roles: `AliyunServiceRoleForNasOssDataflow` and `AliyunServiceRoleForNasEventNotification`. For more information, see [CPFS service-linked roles](~~185138~~).'."\n" + ."\n" + .'* CPFS usage notes'."\n" + ."\n" + .' * Billing'."\n" + ."\n" + .' * If you create a data flow, you are charged for using the data flow throughput. For more information, see [Billing of CPFS](~~111858~~).'."\n" + .' * When you configure the AutoRefresh feature for a data flow, CPFS must use EventBridge to collect object modification events from the source Object Storage Service (OSS) bucket. Event fees are incurred. For more information, see [Billing of EventBridge](~~163752~~).'."\n" + ."\n" + .' * Data flow specifications'."\n" + ."\n" + .' * The data flow throughput supports the following specifications: 600 MB/s, 1,200 MB/s, and 1,500 MB/s. The data flow throughput is the maximum transmission bandwidth that can be reached when data is imported or exported for a data flow.'."\n" + .' * When you create a data flow, the vSwitch IP addresses used by a CPFS mount target are consumed. Make sure that the vSwitch can provide sufficient IP addresses.'."\n" + .' * Inventory query: If you set the DryRun parameter to true, you can check whether the resources for the data flow whose throughput is changed meet the requirements.'."\n" + ."\n" + .' * Fileset'."\n" + ."\n" + .' * The destination for a data flow is a fileset in the CPFS file system. A fileset is a new directory tree structure (a small file directory) in a CPFS file system. Each fileset independently manages an inode space.'."\n" + .' * When you create a data flow for a CPFS file system, the related fileset must already exist and cannot be nested with other filesets. Only one data flow can be created in a fileset, which corresponds to one source storage.'."\n" + .' * A fileset supports a maximum of one million files. If the number of files imported from an OSS bucket into the fileset exceeds the upper limit, the `no space` error message is returned when you add new files.'."\n" + ."\n" + .' **'."\n" + ."\n" + .' **Note **If data already exists in the fileset, after you create a data flow, the existing data in the fileset is cleared and replaced with the data synchronized from the OSS bucket.'."\n" + ."\n" + .' * AutoRefresh'."\n" + ."\n" + .' * After AutoRefresh is configured, if the data in the source OSS bucket is updated, the updated metadata is automatically synchronized to the CPFS file system. You can load the updated data when you access files, or run a data flow task to load the updated data.'."\n" + .' * AutoRefresh depends on the object modification events collected by EventBridge from the source OSS bucket. You must first [activate EventBridge](~~182246~~).'."\n" + .' * The AutoRefresh configuration applies only to the prefix and is specified by the RefreshPath parameter. You can configure a maximum of five AutoRefresh directories for a data flow.'."\n" + .' * AutoRefreshInterval refers to the interval at which CPFS checks whether data is updated in the prefix of the source OSS bucket. If data is updated, CPFS runs an AutoRefresh task. If the frequency of triggering the object modification event in the source OSS bucket exceeds the processing capability of the CPFS data flow, AutoRefresh tasks are accumulated, metadata updates are delayed, and the data flow status becomes `Misconfigured`. To resolve these issues, you can increase the data flow specifications or reduce the frequency of triggering the object modification event.'."\n" + .' * When you add an AutoRefresh configuration to the prefix for a CPFS data flow, an event bus is created at the user side and an event rule is created for the prefix of the source OSS bucket. When an object is modified in the prefix of the source OSS bucket, an OSS event is generated in the EventBridge console. The event is processed by the CPFS data flow.'."\n" + ."\n" + .' **'."\n" + ."\n" + .' **Note **The event buses and event rules created for CPFS in the EventBridge console contain the `Create for cpfs auto refresh` description. The event buses and event rules cannot be modified or deleted. Otherwise, AutoRefresh cannot work properly.'."\n" + ."\n" + .' * Source storage'."\n" + ."\n" + .' * The source storage is an OSS bucket. SourceStorage for a data flow must be an OSS bucket.'."\n" + .' * CPFS data flows support both encrypted and unencrypted access to OSS. If you select SSL-encrypted access to OSS, make sure that encryption in transit for OSS buckets supports encrypted access.'."\n" + .' * If data flows for multiple CPFS file systems or multiple data flows for the same CPFS file system are stored in the same OSS bucket, you must enable versioning for the OSS bucket to prevent data conflicts caused by data export from multiple CPFS file systems to one OSS bucket.'."\n" + .' * Data flows are not supported for OSS buckets across regions. The OSS bucket must reside in the same region as the CPFS file system.'."\n" + ."\n" + .' **'."\n" + ."\n" + .' **Note **Before you create a data flow, you must configure a tag (key: cpfs-dataflow, value: true) for the source OSS bucket. This way, the created data flow can access the data in the OSS bucket. When a data flow is being used, do not delete or modify the tag. Otherwise, the data flow for CPFS cannot access the data in the OSS bucket.'."\n" + ."\n" + .'* CPFS for Lingjun usage notes'."\n" + ."\n" + .' * Source storage'."\n" + ."\n" + .' * The source storage is an OSS bucket. SourceStorage for a data flow must be an OSS bucket.'."\n" + ."\n" + .' * CPFS for Lingjun data flows support both encrypted and unencrypted access to OSS. If you select SSL-encrypted access to OSS, make sure that encryption in transit for OSS buckets supports encrypted access.'."\n" + ."\n" + .' * If data flows for multiple CPFS for Lingjun file systems or multiple data flows for the same CPFS for Lingjun file system are stored in the same OSS bucket, you must enable versioning for the OSS bucket to prevent data conflicts caused by data export from multiple CPFS for Lingjun file systems to one OSS bucket.'."\n" + ."\n" + .' * Data flows are not supported for OSS buckets across regions. The OSS bucket must reside in the same region as the CPFS file system.'."\n" + ."\n" + .' * CPFS for Lingjun V2.6.0 and later allow you to create data flows for OSS buckets across accounts.'."\n" + ."\n" + .' * The account id parameter is required only when you use OSS buckets across accounts.'."\n" + ."\n" + .' * To use OSS buckets across accounts, you must first grant permissions to the related accounts. For more information, see [Cross-account authorization on data flows](~~2713462~~).'."\n" + ."\n" + .' **'."\n" + ."\n" + .' **Note **Before you create a data flow, you must configure a tag (key: cpfs-dataflow, value: true) for the source OSS bucket. This way, the created data flow can access the data in the OSS bucket. When a data flow is being used, do not delete or modify the tag. Otherwise, the data flow for CPFS for Lingjun cannot access the data in the OSS bucket.'."\n" + ."\n" + .' * Limits of data flows on file systems'."\n" + ."\n" + .' * You cannot rename a non-empty directory in a path that is associated with a data flow. Otherwise, the Permission Denied error message or an error message indicating that the directory is not empty is returned.'."\n" + .' * Proceed with caution when you use special characters in the names of directories and files. The following characters are supported: letters, digits, exclamation points (!), hyphens (-), underscores (\\_), periods (.), asterisks (\\*), and parentheses (()).'."\n" + .' * The path can be up to 1,023 characters in length.'."\n" + ."\n" + .' * Limits of data flows on import'."\n" + ."\n" + .' * After a symbolic link is imported to CPFS for Lingjun, the symbolic link is converted into a common data file that contains no symbolic link information.'."\n" + .' * If an OSS bucket has multiple versions, only data of the latest version is used.'."\n" + .' * The name of a file or a subdirectory can be up to 255 bytes in length.'."\n" + ."\n" + .' * Limits of data flows on export'."\n" + ."\n" + .' * After a symbolic link is synchronized to OSS, the file that the symbolic link points to is not synchronized to OSS. In this case, the symbolic link is converted into a common object that contains no data.'."\n" + .' * Hard links can be synchronized to OSS only as common files that contain no link information.'."\n" + .' * After a file of the Socket, Device, or Pipe type is exported to an OSS bucket, the file is converted into a common object that contains no data.'."\n" + .' * The directory path can be up to 1,023 characters in length.'."\n", + ], + 'DeleteDataFlow' => [ + 'summary' => 'Deletes a dataflow.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'delete', + 'riskType' => 'high', + 'chargeType' => 'free', + 'abilityTreeCode' => '49024', + 'abilityTreeNodes' => [ + 'FEATUREnasPWYFYN', + ], + 'autoTest' => true, + 'tenantRelevance' => 'tenant', + ], + 'parameters' => [ + [ + 'name' => 'FileSystemId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the file system.'."\n" + ."\n" + .'* The IDs of CPFS file systems must start with `cpfs-`. Example: cpfs-125487\\*\\*\\*\\*.'."\n" + .'* The IDs of CPFS for Lingjun file systems must start with `bmcpfs-`. Example: bmcpfs-0015\\*\\*\\*\\*.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'cpfs-099394bd928c****'."\n", + ], + ], + [ + 'name' => 'DataFlowId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the dataflow.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'df-194433a5be31****', + ], + ], + [ + 'name' => 'DryRun', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to perform a dry run.'."\n" + ."\n" + .'During the dry run, the system checks whether the request parameters are valid and whether the requested resources are available. During the dry run, no file system is created and no fee is incurred.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'* true: performs a dry run. The system checks the required parameters, request syntax, limits, and available NAS resources. If the request fails the dry run, an error message is returned. If the request passes the dry run, the HTTP status code 200 is returned. No value is returned for the FileSystemId parameter.'."\n" + .'* false (default): performs a dry run and sends the request. If the request passes the dry run, a file system is created.'."\n", + 'type' => 'boolean', + 'required' => false, + 'example' => 'false', + 'default' => 'false', + ], + ], + [ + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => [ + 'description' => 'The client token that is used to ensure the idempotence of the request. You can use the client to generate the token, but you must make sure that the token is unique among different requests.'."\n" + ."\n" + .'The token can contain only ASCII characters and cannot exceed 64 characters in length. For more information, see [How do I ensure the idempotence?](~~25693~~)'."\n" + ."\n" + .'> If you do not specify this parameter, the system automatically uses the request ID as the client token. The value of RequestId may be different for each API request.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '123e4567-e89b-12d3-a456-42665544****', + 'maxLength' => 64, + 'minLength' => 1, + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '98696EF0-1607-4E9D-B01D-F20930B6****', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'IllegalCharacters', + 'errorMessage' => 'The parameter contains illegal characters.', + ], + [ + 'errorCode' => 'MissingFileSystemId', + 'errorMessage' => 'FileSystemId is mandatory for this action.', + ], + [ + 'errorCode' => 'MissingDataFlowId', + 'errorMessage' => 'DataFlowId is mandatory for this action.', + ], + ], + 403 => [ + [ + 'errorCode' => 'OperationDenied.InvalidState', + 'errorMessage' => 'The operation is not permitted when the status is processing.', + ], + [ + 'errorCode' => 'OperationDenied.DependencyViolation', + 'errorMessage' => 'The operation is denied due to dependancy violation.', + ], + [ + 'errorCode' => 'OperationDenied.ConflictOperation', + 'errorMessage' => 'The operation is denied due to a conflict with an ongoing operation.', + ], + [ + 'errorCode' => 'OperationDenied.DataFlowNotSupported', + 'errorMessage' => 'The operation is not supported.', + ], + ], + [ + [ + 'errorCode' => 'InvalidFileSystem.NotFound', + 'errorMessage' => 'The specified file system does not exist.', + ], + [ + 'errorCode' => 'InvalidDataFlow.NotFound', + 'errorMessage' => 'The specified data flow does not exist.', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"98696EF0-1607-4E9D-B01D-F20930B6****\\"\\n}","errorExample":""},{"type":"xml","example":"<DeleteDataFlowResponse>\\n <RequestId>98696EF0-1607-4E9D-B01D-F20930B6****</RequestId>\\n</DeleteDataFlowResponse>","errorExample":""}]', + 'title' => 'DeleteDataFlow', + 'description' => '* Only Cloud Parallel File Storage (CPFS) V2.2.0 and later and CPFS for Lingjun V2.4.0 and later support data flows. You can view the version information on the file system details page in the console.'."\n" + .'* You can delete the data flows that are only in the `Running` or `Stopped` state.'."\n" + .'* After a data flow is deleted, the resources related to the data flow are released and cannot be restored. You must create a data flow again if required.'."\n", + ], + 'ModifyDataFlow' => [ + 'summary' => 'Modifies the attributes of a dataflow.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'paid', + 'abilityTreeCode' => '49026', + 'abilityTreeNodes' => [ + 'FEATUREnasPWYFYN', + ], + 'autoTest' => true, + 'tenantRelevance' => 'tenant', + ], + 'parameters' => [ + [ + 'name' => 'FileSystemId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the file system.'."\n" + ."\n" + .'* The IDs of CPFS file systems must start with `cpfs-`. Example: cpfs-125487\\*\\*\\*\\*.'."\n" + .'* The IDs of CPFS for Lingjun file systems must start with `bmcpfs-`. Example: bmcpfs-0015\\*\\*\\*\\*.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'cpfs-099394bd928c****', + ], + ], + [ + 'name' => 'DataFlowId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the dataflow.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'df-194433a5be31****', + ], + ], + [ + 'name' => 'Description', + 'in' => 'query', + 'allowEmptyValue' => false, + 'schema' => [ + 'description' => 'The description of the dataflow.'."\n" + ."\n" + .'Limits:'."\n" + ."\n" + .'* The description must be 2 to 128 characters in length.'."\n" + .'* The description must start with a letter but cannot start with http:// or https://.'."\n" + .'* The description can contain letters, digits, colons (:), underscores (\\_), and hyphens (-).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'test', + ], + ], + [ + 'name' => 'Throughput', + 'in' => 'query', + 'allowEmptyValue' => true, + 'schema' => [ + 'description' => 'The maximum data flow throughput. Unit: MB/s. Valid values:'."\n" + ."\n" + .'* 600'."\n" + .'* 1200'."\n" + .'* 1500'."\n" + ."\n" + .'> The data flow throughput must be less than the I/O throughput of the file system. This parameter is required for CPFS file systems.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'example' => '600', + 'enum' => [ + '600', + '1200', + '1500', + '1800', + ], + ], + ], + [ + 'name' => 'DryRun', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to perform a dry run.'."\n" + ."\n" + .'During the dry run, the system checks whether the request parameters are valid and whether the requested resources are available. During the dry run, no file system is created and no fee is incurred.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'* true: performs a dry run. The system checks the required parameters, request syntax, limits, and available NAS resources. If the request fails the dry run, an error message is returned. If the request passes the dry run, the HTTP status code 200 is returned. No value is returned for the FileSystemId parameter.'."\n" + .'* false (default): performs a dry run and sends the request. If the request passes the dry run, a file system is created.'."\n", + 'type' => 'boolean', + 'required' => false, + 'example' => 'false', + 'default' => 'false', + ], + ], + [ + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => [ + 'description' => 'The client token that is used to ensure the idempotence of the request. You can use the client to generate the token, but you must make sure that the token is unique among different requests.'."\n" + ."\n" + .'The token can contain only ASCII characters and cannot exceed 64 characters in length. For more information, see [How do I ensure the idempotence?](~~25693~~)'."\n" + ."\n" + .'> If you do not specify this parameter, the system automatically uses the request ID as the client token. The value of RequestId may be different for each API request.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '123e4567-e89b-12d3-a456-42665544****', + 'maxLength' => 64, + 'minLength' => 1, + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '98696EF0-1607-4E9D-B01D-F20930B6****', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'IllegalCharacters', + 'errorMessage' => 'The parameter contains illegal characters.', + ], + [ + 'errorCode' => 'MissingFileSystemId', + 'errorMessage' => 'FileSystemId is mandatory for this action.', + ], + [ + 'errorCode' => 'MissingDataFlowId', + 'errorMessage' => 'DataFlowId is mandatory for this action.', + ], + ], + 403 => [ + [ + 'errorCode' => 'OperationDenied.DependencyViolation', + 'errorMessage' => 'The operation is denied due to dependancy violation.', + ], + [ + 'errorCode' => 'OperationDenied.NoStock', + 'errorMessage' => 'The operation is denied due to no stock.', + ], + [ + 'errorCode' => 'OperationDenied.ConflictOperation', + 'errorMessage' => 'The operation is denied due to a conflict with an ongoing operation.', + ], + [ + 'errorCode' => 'OperationDenied.InvalidState', + 'errorMessage' => 'The operation is not permitted when the status is processing.', + ], + [ + 'errorCode' => 'OperationDenied.DataFlowNotSupported', + 'errorMessage' => 'The operation is not supported.', + ], + ], + [ + [ + 'errorCode' => 'InvalidFileSystem.NotFound', + 'errorMessage' => 'The specified file system does not exist.', + ], + [ + 'errorCode' => 'InvalidDataFlow.NotFound', + 'errorMessage' => 'The specified data flow does not exist.', + ], + [ + 'errorCode' => 'InvalidThroughput.OutOfBounds', + 'errorMessage' => 'Throughput is out of bounds.', + ], + [ + 'errorCode' => 'InvalidDescription.InvalidFormat', + 'errorMessage' => 'Description format is invalid.', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"98696EF0-1607-4E9D-B01D-F20930B6****\\"\\n}","errorExample":""},{"type":"xml","example":"<ModifyDataFlowResponse>\\n <RequestId>98696EF0-1607-4E9D-B01D-F20930B6****</RequestId>\\n</ModifyDataFlowResponse>","errorExample":""}]', + 'title' => 'ModifyDataFlow', + 'description' => '* Only Cloud Parallel File Storage (CPFS) V2.2.0 and later and CPFS for Lingjun V2.4.0 and later support data flows.'."\n" + ."\n" + .'* You can modify the attributes only of the data flows that are in the `Running` state.'."\n" + ."\n" + .'* It generally takes 2 to 5 minutes to modify the attributes of a data flow. You can call the [DescribeDataFlows](~~2402270~~) operation to query the status of the data flow to be modified.'."\n" + ."\n" + .'* CPFS data flow specifications:'."\n" + ."\n" + .' * The data flow throughput supports the following specifications: 600 MB/s, 1,200 MB/s, and 1,500 MB/s. The data flow throughput is the maximum transmission bandwidth that can be reached when data is imported or exported for a data flow.'."\n" + .' * Inventory query: If you set the DryRun parameter to true, you can check whether the resources for the dataflow whose throughput is changed meet the requirements.'."\n" + ."\n" + .'* Billing of CPFS file systems'."\n" + ."\n" + .' Changing the dataflow throughput involves the billing of dataflow bandwidth. We recommend that you understand CPFS billing methods in advance. For more information, see [Billing methods and billable items of CPFS](~~111858~~).'."\n", + ], + 'DescribeDataFlows' => [ + 'summary' => 'Queries the dataflows of a CPFS file system.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'list', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '49017', + 'abilityTreeNodes' => [ + 'FEATUREnasPWYFYN', + ], + 'autoTest' => true, + 'tenantRelevance' => 'tenant', + ], + 'parameters' => [ + [ + 'name' => 'FileSystemId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the file system.'."\n" + ."\n" + .'* The IDs of CPFS file systems must start with `cpfs-`. Example: cpfs-125487\\*\\*\\*\\*.'."\n" + .'* The IDs of CPFS for Lingjun file systems must start with `bmcpfs-`. Example: bmcpfs-0015\\*\\*\\*\\*.', + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'bmcpfs-290w65p03ok64ya****', + ], + ], + [ + 'name' => 'Filters', + 'in' => 'query', + 'allowEmptyValue' => false, + 'style' => 'repeatList', + 'schema' => [ + 'description' => 'The filter that is used to query dataflows.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Key' => [ + 'description' => 'The filter name. Valid value:'."\n" + ."\n" + .'* DataFlowIds: filters dataflow tasks by dataflow ID.'."\n" + .'* FsetIds: filters dataflows by fileset ID.'."\n" + .'* FileSystemPath: filters dataflows based on the path of a fileset in a CPFS file system.'."\n" + .'* SourceStorage: filters dataflows based on the access path of the source storage.'."\n" + .'* ThroughputList: filters dataflows based on dataflow throughput.'."\n" + .'* Description: filters dataflows based on the fileset description.'."\n" + .'* Status: filters dataflows based on dataflow status.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'FsetIds', + 'enum' => [ + 'DataFlowIds', + 'FsetIds', + 'FileSystemPath', + 'SourceStorage', + 'ThroughputList', + 'Description', + 'Status', + 'SourceStoragePath', + ], + ], + 'Value' => [ + 'description' => 'The value of the filter. This parameter does not support wildcards.'."\n" + ."\n" + .'* If Key is set to DataFlowIds, set Value to a dataflow ID or a part of the dataflow ID. You can specify a dataflow ID or a group of dataflow IDs. You can specify a maximum of 10 dataflow IDs. Example: `df-194433a5be31****` or `df-194433a512a2****,df-234533a5be31****`.'."\n" + .'* If Key is set to FsetIds, set Value to a fileset ID or a part of the fileset ID. You can specify a fileset ID or a group of fileset IDs. You can specify a maximum of 10 fileset IDs. For example, `fset-1902718ea0ae****` or `fset-235718ea0ae****,fset-5122718ea0ae****`.'."\n" + .'* If Key is set to FileSystemPath, set Value to the path or a part of the path of a fileset in a CPFS file system. The value of the parameter must be 1 to 1,024 characters in length.'."\n" + .'* If Key is set to SourceStorage, set Value to the access path or a part of the access path of the source storage. The path can be up to 1,024 characters in length.'."\n" + .'* If Key is set to ThroughputList, set Value to the dataflow throughput. Combined query is supported.'."\n" + .'* If Key is set to Description, set Value to a dataflow description or a part of the dataflow description.'."\n" + .'* If Key is set to Status, set Value to the dataflow status.'."\n" + .'* If Key is set to SourceStoragePath, set Value to the access path or a part of the access path of the source storage. The path can be up to 1,024 characters in length.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'FsetIds', + ], + ], + 'required' => false, + 'description' => '', + ], + 'required' => false, + 'docRequired' => false, + 'maxItems' => 10, + ], + ], + [ + 'name' => 'NextToken', + 'in' => 'query', + 'schema' => [ + 'description' => 'The pagination token that is used in the next request to retrieve a new page of results. You do not need to specify this parameter for the first request. You must specify the token that is obtained from the previous query as the value of NextToken.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'TGlzdFJlc291cmNlU****mVzJjE1MTI2NjY4NzY5MTAzOTEmMiZORnI4NDhVeEtrUT0=', + ], + ], + [ + 'name' => 'MaxResults', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of results for each query.'."\n" + ."\n" + .'Valid values: 10 to 100. Default value: 20.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'maximum' => '100', + 'minimum' => '10', + 'example' => '20', + 'default' => '20', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '2D69A58F-345C-4FDE-88E4-BF518948****', + ], + 'NextToken' => [ + 'description' => 'A pagination token. It can be used in the next request to retrieve a new page of results.'."\n", + 'type' => 'string', + 'example' => 'TGlzdFJlc291cmNlU****mVzJjE1MTI2NjY4NzY5MTAzOTEmMiZORnI4NDhVeEtrUT0=', + ], + 'DataFlowInfo' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'DataFlow' => [ + 'description' => 'The dataflow details.', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'FileSystemId' => [ + 'description' => 'The ID of the file system.'."\n", + 'type' => 'string', + 'example' => 'cpfs-099394bd928c****'."\n", + ], + 'DataFlowId' => [ + 'description' => 'The ID of the dataflow.'."\n", + 'type' => 'string', + 'example' => 'df-194433a5be31****'."\n", + ], + 'FsetId' => [ + 'description' => 'The fileset ID.'."\n" + ."\n" + .'> Only CPFS supports this parameter.', + 'type' => 'string', + 'example' => 'fset-1902718ea0ae****', + ], + 'Status' => [ + 'description' => 'The dataflow status. The following information is displayed:'."\n" + ."\n" + .'* Starting: The dataflow is being created or enabled.'."\n" + .'* Running: The dataflow has been created and is running properly.'."\n" + .'* Updating: The dataflow is being modified. For example, the dataflow throughput is increased and the automatic update interval is modified.'."\n" + .'* Deleting: The dataflow is being deleted.'."\n" + .'* Stopping: The dataflow is being disabled.'."\n" + .'* Stopped: The dataflow has been disabled.'."\n" + .'* Misconfigured: The dataflow configuration is abnormal. For example, the source storage is inaccessible, and the automatic update cannot be completed due to low dataflow throughput.'."\n", + 'type' => 'string', + 'example' => 'Running', + ], + 'ErrorMessage' => [ + 'description' => 'The error message. Valid values:'."\n" + ."\n" + .'* None (default): The dataflow status is normal.'."\n" + .'* SourceStorageUnreachable: The access path of the source storage is not found.'."\n" + .'* ThroughputTooLow: The dataflow throughput is low.'."\n", + 'type' => 'string', + 'example' => 'SourceStorageUnreachable', + ], + 'SourceStorage' => [ + 'description' => 'The access path of the source storage. Format: `<storage type>://[<account id>:]<path>`.'."\n" + ."\n" + .'Among them:'."\n" + ."\n" + .'* storage type: Only OSS is supported.'."\n" + ."\n" + .'* account id: The UID of the account of the source storage.'."\n" + ."\n" + .'* path: The name of the OSS bucket.'."\n" + ."\n" + .' * The name can contain only lowercase letters, digits, and hyphens (-). The name must start and end with a lowercase letter or digit.'."\n" + .' * The name must be 8 to 128 characters in length.'."\n" + .' * Must be encoded in UTF-8.'."\n" + .' * The name cannot start with http:// or https://.'."\n" + ."\n" + .'> '."\n" + ."\n" + .'* The OSS bucket must be an existing bucket in the region.'."\n" + ."\n" + .'* Only CPFS for Lingjun V2.6.0 and later support the account id parameter.'."\n", + 'type' => 'string', + 'example' => 'oss://bucket1', + ], + 'SourceSecurityType' => [ + 'description' => 'The type of security mechanism for the source storage. This parameter must be specified if the source storage is accessed with a security mechanism. Valid value:'."\n" + ."\n" + .'* Null (default): The OSS bucket can be accessed without a security mechanism.'."\n" + .'* SSL: The source storage must be accessed with an SSL certificate.'."\n", + 'type' => 'string', + 'example' => 'SSL', + ], + 'Throughput' => [ + 'description' => 'The maximum dataflow throughput. Unit: MB/s. Valid value:'."\n" + ."\n" + .'* 600'."\n" + .'* 1200'."\n" + .'* 1500'."\n" + ."\n" + .'> '."\n" + ."\n" + .'* The dataflow throughput must be less than the I/O throughput of the file system.'."\n" + ."\n" + .'* Only CPFS supports this parameter.', + 'type' => 'integer', + 'format' => 'int64', + 'example' => '600', + ], + 'Description' => [ + 'description' => 'The description of the dataflow.'."\n" + ."\n" + .'Limits:'."\n" + ."\n" + .'* The name must be 2 to 128 characters in length and'."\n" + .'* start with a letter but cannot start with `http://` or `https://`.'."\n" + .'* The name can contain digits, letters, colons (:), underscores (\\_), and hyphens (-).'."\n", + 'type' => 'string', + 'example' => 'test', + ], + 'CreateTime' => [ + 'description' => 'The time when the fileset was created.'."\n" + ."\n" + .'The time follows the ISO 8601 standard in the `yyyy-MM-ddTHH:mm:ssZ` format.'."\n" + ."\n" + .'> Only CPFS supports this parameter.', + 'type' => 'string', + 'example' => '2021-09-30T10:08:08Z', + ], + 'UpdateTime' => [ + 'description' => 'The time when the fileset was last updated.'."\n" + ."\n" + .'The time follows the ISO 8601 standard in the `yyyy-MM-ddTHH:mm:ssZ` format.'."\n" + ."\n" + .'> Only CPFS supports this parameter.', + 'type' => 'string', + 'example' => '2021-09-30T10:08:08Z', + ], + 'AutoRefresh' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'AutoRefresh' => [ + 'description' => 'The details about automatic update policies.'."\n" + ."\n" + .'> Only CPFS supports this parameter.', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'RefreshPath' => [ + 'description' => 'The automatic update directory. CPFS automatically checks whether the source data only in the directory is updated and imports the updated data.'."\n" + ."\n" + .'Limits:'."\n" + ."\n" + .'* The directory must be 2 to 1,024 characters in length.'."\n" + .'* The directory must be encoded in UTF-8.'."\n" + .'* The directory must start and end with a forward slash (/).'."\n" + ."\n" + .'> The directory must be an existing directory in the CPFS file system and must be in a fileset where the dataflow is enabled.'."\n", + 'type' => 'string', + 'example' => '/prefix1/prefix2/', + ], + ], + 'description' => '', + ], + ], + ], + ], + 'FileSystemPath' => [ + 'description' => 'The directory of the fileset in the CPFS file system.'."\n" + ."\n" + .'Limits:'."\n" + ."\n" + .'* The directory must be 2 to 1024 characters in length.'."\n" + .'* The directory must be encoded in UTF-8.'."\n" + .'* The directory must start and end with a forward slash (/).'."\n" + .'* The directory must be a fileset directory in the CPFS file system.'."\n" + ."\n" + .'> Only CPFS is supported.'."\n", + 'type' => 'string', + 'example' => '/a/b/c/', + ], + 'FsetDescription' => [ + 'description' => 'The description of the automatic update.'."\n" + ."\n" + .'> Only CPFS supports this parameter.', + 'type' => 'string', + 'example' => 'FsetTest', + ], + 'AutoRefreshInterval' => [ + 'description' => 'The automatic update interval. CPFS checks whether data is updated in the directory at the interval specified by this parameter. If data is updated, CPFS starts an automatic update task. Unit: minutes.'."\n" + ."\n" + .'Valid values: 5 to 526600. Default value: 10.'."\n" + ."\n" + .'> Only CPFS supports this parameter.', + 'type' => 'integer', + 'format' => 'int64', + 'example' => '10', + ], + 'AutoRefreshPolicy' => [ + 'description' => 'The automatic update policy. The updated data in the source storage is imported into the CPFS file system based on the policy. The following information is displayed:'."\n" + ."\n" + .'* None: Updated data in the source storage is not automatically imported into the CPFS file system. You can run a dataflow task to import the updated data from the source storage.'."\n" + .'* ImportChanged: Updated data in the source storage is automatically imported into the CPFS file system.'."\n" + ."\n" + .'> Only CPFS is supported.'."\n", + 'type' => 'string', + 'example' => 'None', + ], + 'SourceStoragePath' => [ + 'title' => '源端存储内的访问路径。', + 'description' => 'The access path in the bucket of the source storage.'."\n" + ."\n" + .'> Only CPFS for Lingjun supports this parameter.'."\n", + 'type' => 'string', + 'deprecated' => false, + 'required' => false, + 'example' => '/prefix/'."\n", + 'maxLength' => 1024, + ], + ], + 'description' => '', + ], + ], + ], + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'IllegalCharacters', + 'errorMessage' => 'The parameter contains illegal characters.', + ], + [ + 'errorCode' => 'MissingFileSystemId', + 'errorMessage' => 'FileSystemId is mandatory for this action.', + ], + [ + 'errorCode' => 'InvalidFilesystemVersion.NotSupport', + 'errorMessage' => 'This Api does not support this fileSystem version.', + ], + ], + 403 => [ + [ + 'errorCode' => 'OperationDenied.DataFlowNotSupported', + 'errorMessage' => 'The operation is not supported.', + ], + ], + [ + [ + 'errorCode' => 'InvalidFilterValue', + 'errorMessage' => 'The specified parameter Filter.1.Value is invalid.', + ], + [ + 'errorCode' => 'InvalidFileSystem.NotFound', + 'errorMessage' => 'The specified file system does not exist.', + ], + [ + 'errorCode' => 'InvalidFilterParam', + 'errorMessage' => 'The specified Filter.N.Key is invalid.', + ], + [ + 'errorCode' => 'InvalidParameter.InvalidMaxResults', + 'errorMessage' => 'The specified MaxResults is invalid.', + ], + [ + 'errorCode' => 'InvalidParameter.InvalidNextToken', + 'errorMessage' => 'The specified NextToken is invalid.', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"2D69A58F-345C-4FDE-88E4-BF518948****\\",\\n \\"NextToken\\": \\"TGlzdFJlc291cmNlU****mVzJjE1MTI2NjY4NzY5MTAzOTEmMiZORnI4NDhVeEtrUT0=\\",\\n \\"DataFlowInfo\\": {\\n \\"DataFlow\\": [\\n {\\n \\"FileSystemId\\": \\"cpfs-099394bd928c****\\",\\n \\"DataFlowId\\": \\"df-194433a5be31****\\",\\n \\"FsetId\\": \\"fset-1902718ea0ae****\\",\\n \\"Status\\": \\"Running\\",\\n \\"ErrorMessage\\": \\"SourceStorageUnreachable\\",\\n \\"SourceStorage\\": \\"oss://178321033379****:bucket-01\\",\\n \\"SourceSecurityType\\": \\"SSL\\",\\n \\"Throughput\\": 600,\\n \\"Description\\": \\"Bucket01数据流动\\",\\n \\"CreateTime\\": \\"2021-09-30T10:08:08Z\\",\\n \\"UpdateTime\\": \\"2021-09-30T10:08:08Z\\",\\n \\"AutoRefresh\\": {\\n \\"AutoRefresh\\": [\\n {\\n \\"RefreshPath\\": \\"/prefix1/prefix2/\\"\\n }\\n ]\\n },\\n \\"FileSystemPath\\": \\"/a/b/c/\\",\\n \\"FsetDescription\\": \\"自动更新01\\",\\n \\"AutoRefreshInterval\\": 10,\\n \\"AutoRefreshPolicy\\": \\"None\\",\\n \\"SourceStoragePath\\": \\"/prefix/\\\\n\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<DescribeDataFlowsResponse>\\n <RequestId>2D69A58F-345C-4FDE-88E4-BF518948****</RequestId>\\n <NextToken>TGlzdFJlc291cmNlU****mVzJjE1MTI2NjY4NzY5MTAzOTEmMiZORnI4NDhVeEtrUT0=</NextToken>\\n <DataFlowInfo>\\n <FileSystemId>cpfs-099394bd928c****</FileSystemId>\\n <DataFlowId>dfid-194433a5be31****</DataFlowId>\\n <FsetId>fset-1902718ea0ae****</FsetId>\\n <Status>Running</Status>\\n <ErrorMessage>无</ErrorMessage>\\n <SourceStorage>oss://bucket1</SourceStorage>\\n <SourceSecurityType>SSL</SourceSecurityType>\\n <Throughput>600</Throughput>\\n <Description>Bucket01数据流动</Description>\\n <CreateTime>2021-09-30T10:08:08Z</CreateTime>\\n <UpdateTime>2021-09-30T10:08:08Z</UpdateTime>\\n <AutoRefresh>\\n <RefreshPath>/prefix1/prefix2/</RefreshPath>\\n </AutoRefresh>\\n <FileSystemPath>/a/b/c/</FileSystemPath>\\n <FsetDescription>自动更新01</FsetDescription>\\n <AutoRefreshInterval>10</AutoRefreshInterval>\\n <AutoRefreshPolicy>None</AutoRefreshPolicy>\\n </DataFlowInfo>\\n</DescribeDataFlowsResponse>","errorExample":""}]', + 'title' => 'DescribeDataFlows', + 'description' => '* Only Cloud Parallel File Storage (CPFS) V2.2.0 and later and CPFS for Lingjun V2.4.0 and later support dataflows. You can view the version information on the file system details page in the console.'."\n" + .'* In Filters, FsetIds, DataFlowlds, SourceStorage, ThroughputList, and Status support exact match only. FileSystemPath, Description, and SourceStoragePath support fuzzy match.'."\n" + .'* Combined query is supported.'."\n", + ], + 'StopDataFlow' => [ + 'summary' => 'Disables a dataflow.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '49021', + 'abilityTreeNodes' => [ + 'FEATUREnasPWYFYN', + ], + 'autoTest' => true, + 'tenantRelevance' => 'tenant', + ], + 'parameters' => [ + [ + 'name' => 'FileSystemId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the file system.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'cpfs-099394bd928c****', + ], + ], + [ + 'name' => 'DataFlowId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the dataflow.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'df-194433a5be31****'."\n", + ], + ], + [ + 'name' => 'DryRun', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to perform a dry run.'."\n" + ."\n" + .'During the dry run, the system checks whether the request parameters are valid and whether the requested resources are available. During the dry run, no fileset quota is canceled and no fee is incurred.'."\n" + ."\n" + .'Valid value:'."\n" + ."\n" + .'* true: performs a dry run. The system checks the required parameters, request syntax, service limits, and available Apsara File Storage NAS (NAS) resources. Otherwise, an error message is returned. If the request passes the dry run, the HTTP status code 200 is returned. No value is returned for the FileSystemId parameter.'."\n" + .'* false (default): performs a dry run and sends the request. If the request passes the dry run, the fileset quota is canceled.'."\n", + 'type' => 'boolean', + 'required' => false, + 'example' => 'false', + 'default' => 'false', + ], + ], + [ + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => [ + 'description' => 'The client token that is used to ensure the idempotence of the request. You can use the client to generate the token, but you must make sure that the token is unique among different requests.'."\n" + ."\n" + .'The token can contain only ASCII characters and cannot exceed 64 characters in length. For more information, see [How to ensure idempotence](~~25693~~).'."\n" + ."\n" + .'> If you do not specify this parameter, the system automatically uses the request ID as the client token. The request ID may be different for each request.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '123e4567-e89b-12d3-a456-42665544****', + 'maxLength' => 64, + 'minLength' => 1, + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '98696EF0-1607-4E9D-B01D-F20930B6****', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'IllegalCharacters', + 'errorMessage' => 'The parameter contains illegal characters.', + ], + [ + 'errorCode' => 'MissingFileSystemId', + 'errorMessage' => 'FileSystemId is mandatory for this action.', + ], + [ + 'errorCode' => 'MissingDataFlowId', + 'errorMessage' => 'DataFlowId is mandatory for this action.', + ], + ], + 403 => [ + [ + 'errorCode' => 'OperationDenied.InvalidState', + 'errorMessage' => 'The operation is not permitted when the status is processing.', + ], + [ + 'errorCode' => 'OperationDenied.DependencyViolation', + 'errorMessage' => 'The operation is denied due to dependancy violation.', + ], + [ + 'errorCode' => 'OperationDenied.ConflictOperation', + 'errorMessage' => 'The operation is denied due to a conflict with an ongoing operation.', + ], + [ + 'errorCode' => 'OperationDenied.DataFlowNotSupported', + 'errorMessage' => 'The operation is not supported.', + ], + ], + [ + [ + 'errorCode' => 'InvalidFileSystem.NotFound', + 'errorMessage' => 'The specified file system does not exist.', + ], + [ + 'errorCode' => 'InvalidDataFlow.NotFound', + 'errorMessage' => 'The specified data flow does not exist.', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"98696EF0-1607-4E9D-B01D-F20930B6****\\"\\n}","errorExample":""},{"type":"xml","example":"<StopDataFlowResponse>\\n <RequestId>98696EF0-1607-4E9D-B01D-F20930B6****</RequestId>\\n</StopDataFlowResponse>","errorExample":""}]', + 'title' => 'StopDataFlow', + 'description' => '* This operation is available only to CPFS file systems.'."\n" + .'* Only CPFS V2.2.0 and later support dataflows. You can view the version information on the file system details page in the console.'."\n" + .'* You can disable only the dataflows that are in the `Running` state.'."\n" + .'* After a dataflow is disabled, you cannot create a dataflow task for the dataflow. If AutoRefresh is configured, source data updates are not synchronized to CPFS.'."\n" + .'* After a dataflow is disabled, the dataflow throughput is no longer billed because resources are reclaimed. However, the dataflow may fail to be restarted due to insufficient resources.'."\n" + .'* It generally takes 2 to 5 minutes to disable a dataflow. You can call the [DescribeDataFlows](~~2402271~~) operation to query the dataflow status.'."\n", + ], + 'StartDataFlow' => [ + 'summary' => 'Enables a dataflow.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '49022', + 'abilityTreeNodes' => [ + 'FEATUREnasPWYFYN', + ], + 'autoTest' => true, + 'tenantRelevance' => 'tenant', + ], + 'parameters' => [ + [ + 'name' => 'FileSystemId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the file system.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'cpfs-099394bd928c****', + ], + ], + [ + 'name' => 'DataFlowId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the dataflow.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'df-194433a5be31****', + ], + ], + [ + 'name' => 'DryRun', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to perform only a dry run, without performing the actual request.'."\n" + ."\n" + .'During the dry run, the system checks whether the request parameters are valid and whether the requested resources are available. The dry run does not enable the specified dataflow or incur fees.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'* true: performs only a dry run. The system checks the required parameters, request syntax, service limits, and available NAS resources. If the request fails the dry run, an error message is returned. If the request passes the dry run, the HTTP status code 200 is returned.'."\n" + .'* false (default): performs a dry run and sends the request. If the request passes the dry run, the specified dataflow is enabled.'."\n", + 'type' => 'boolean', + 'required' => false, + 'example' => 'false', + 'default' => 'false', + ], + ], + [ + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => [ + 'description' => 'The client token that is used to ensure the idempotence of the request. You can use the client to generate the token, but you must make sure that the token is unique among different requests.'."\n" + ."\n" + .'The token can contain only ASCII characters and cannot exceed 64 characters in length. For more information, see [How do I ensure the idempotence?](~~25693~~)'."\n" + ."\n" + .'> If you do not specify this parameter, the system automatically uses the request ID as the client token. The request ID may be different for each request.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '123e4567-e89b-12d3-a456-42665544****', + 'maxLength' => 64, + 'minLength' => 1, + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '98696EF0-1607-4E9D-B01D-F20930B6****', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'IllegalCharacters', + 'errorMessage' => 'The parameter contains illegal characters.', + ], + [ + 'errorCode' => 'MissingFileSystemId', + 'errorMessage' => 'FileSystemId is mandatory for this action.', + ], + [ + 'errorCode' => 'MissingDataFlowId', + 'errorMessage' => 'DataFlowId is mandatory for this action.', + ], + ], + 403 => [ + [ + 'errorCode' => 'OperationDenied.InvalidState', + 'errorMessage' => 'The operation is not permitted when the status is processing.', + ], + [ + 'errorCode' => 'OperationDenied.DependencyViolation', + 'errorMessage' => 'The operation is denied due to dependancy violation.', + ], + [ + 'errorCode' => 'OperationDenied.NoStock', + 'errorMessage' => 'The operation is denied due to no stock.', + ], + [ + 'errorCode' => 'OperationDenied.ConflictOperation', + 'errorMessage' => 'The operation is denied due to a conflict with an ongoing operation.', + ], + [ + 'errorCode' => 'OperationDenied.DataFlowNotSupported', + 'errorMessage' => 'The operation is not supported.', + ], + ], + [ + [ + 'errorCode' => 'InvalidFileSystem.NotFound', + 'errorMessage' => 'The specified file system does not exist.', + ], + [ + 'errorCode' => 'InvalidDataFlow.NotFound', + 'errorMessage' => 'The specified data flow does not exist.', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"98696EF0-1607-4E9D-B01D-F20930B6****\\"\\n}","errorExample":""},{"type":"xml","example":"<StartDataFlowResponse>\\n <RequestId>98696EF0-1607-4E9D-B01D-F20930B6****</RequestId>\\n</StartDataFlowResponse>","errorExample":""}]', + 'title' => 'StartDataFlow', + 'description' => '* This operation is available only to Cloud Parallel File Storage (CPFS) file systems.'."\n" + .'* Only CPFS V2.2.0 and later support data flows. You can view the version information on the file system details page in the console.'."\n" + .'* You can enable the data flows that are only in the `Stopped` state.'."\n" + .'* If the value of DryRun is `true`, you can check whether sufficient resources are available to enable the specified data flow. If the resources are insufficient, the data flow cannot be enabled.'."\n" + .'* It generally takes 2 to 5 minutes to enable a data flow. You can query the data flow status by calling the [DescribeDataFlows](~~2402270~~) operation.'."\n", + ], + 'CreateDataFlowTask' => [ + 'summary' => 'Creates a dataflow task.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'create', + 'riskType' => 'high', + 'chargeType' => 'paid', + 'abilityTreeCode' => '49027', + 'abilityTreeNodes' => [ + 'FEATUREnasPWYFYN', + ], + ], + 'parameters' => [ + [ + 'name' => 'FileSystemId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the file system.'."\n" + ."\n" + .'* The IDs of CPFS file systems must start with `cpfs-`. Example: cpfs-125487\\*\\*\\*\\*.'."\n" + .'* The IDs of CPFS for Lingjun file systems must start with `bmcpfs-`. Example: bmcpfs-0015\\*\\*\\*\\*.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'bmcpfs-290w65p03ok64ya****', + ], + ], + [ + 'name' => 'DataFlowId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the dataflow.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'df-194433a5be31****', + ], + ], + [ + 'name' => 'SrcTaskId', + 'in' => 'query', + 'schema' => [ + 'description' => 'If you specify SrcTaskId, you must enter the ID of the dataflow task. The system copies the TaskAction, DataType, and EntryList parameters from the destination dataflow task. You do not need to specify them.'."\n" + ."\n" + .'> Streaming dataflow tasks are not supported.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'task-27aa8e890f45****', + ], + ], + [ + 'name' => 'TaskAction', + 'in' => 'query', + 'allowEmptyValue' => true, + 'schema' => [ + 'description' => 'Select the type of the dataflow task.'."\n" + ."\n" + .'Valid value:'."\n" + ."\n" + .'* Import: imports data stored in the source storage to a CPFS file system.'."\n" + .'* Export: exports specified data from a CPFS file system to the source storage.'."\n" + .'* StreamImport: batch imports the specified data from the source storage to a CPFS file system.'."\n" + .'* StreamExport: batch exports specified data from a CPFS file system to the source storage.'."\n" + .'* Evict: releases the data blocks of a file in a CPFS file system. After the eviction, only the metadata of the file is retained in the CPFS file system. You can still query the file. However, the data blocks of the file are cleared and do not occupy the storage space in the CPFS file system. When you access the file data, the file is loaded from the source storage as required.'."\n" + .'* Inventory: obtains the inventory list managed by a dataflow from the CPFS file system, providing the cache status of inventories in the dataflow.'."\n" + ."\n" + .'> CPFS for Lingjun supports only Import, Export, StreamImport, and StreamExport. Only CPFS for Lingjun V2.6.0 and later support StreamImport and StreamExport.'."\n", + 'type' => 'string', + 'required' => false, + 'docRequired' => false, + 'example' => 'Import', + 'enum' => [ + 'Import', + 'Export', + 'Evict', + 'Inventory', + 'StreamImport', + 'StreamExport', + ], + ], + ], + [ + 'name' => 'DataType', + 'in' => 'query', + 'allowEmptyValue' => true, + 'schema' => [ + 'description' => 'The type of data on which operations are performed by the dataflow task.'."\n" + ."\n" + .'Valid value:'."\n" + ."\n" + .'* Metadata: the metadata of a file, including the timestamp, ownership, and permission information of the file. If you select Metadata, only the metadata of the file is imported. You can only query the file. When you access the file data, the file is loaded from the source storage as required.'."\n" + .'* Data: the data blocks of a file.'."\n" + .'* MetaAndData: the metadata and data blocks of the file.'."\n", + 'type' => 'string', + 'required' => false, + 'docRequired' => false, + 'example' => 'Metadata', + 'enum' => [ + 'Metadata', + 'Data', + 'MetaAndData', + '', + ], + ], + ], + [ + 'name' => 'Directory', + 'in' => 'query', + 'allowEmptyValue' => false, + 'schema' => [ + 'description' => 'The source directory of the data.'."\n" + ."\n" + .'Limits:'."\n" + ."\n" + .'* The directory must be 1 to 1,023 characters in length.'."\n" + .'* Must be encoded in UTF-8.'."\n" + .'* The directory must start and end with a forward slash (/).'."\n" + .'* Only one directory can be listed at a time.'."\n" + .'* If the TaskAction parameter is set to Export, the directory must be a relative path within the FileSystemPath.'."\n" + .'* If the TaskAction parameter is set to Import, the directory must be a relative path within the SourceStoragePath.'."\n" + .'* If the TaskAction parameter is set to StreamExport, the directory must be a relative path within the FileSystemPath.'."\n" + .'* If the TaskAction parameter is set to StreamImport, the directory must be a relative path within the SourceStoragePath.'."\n" + ."\n" + .'> Only CPFS for Lingjun V2.6.0 and later support StreamImport and StreamExport.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '/path_in_cpfs/', + 'maxLength' => 1023, + ], + ], + [ + 'name' => 'EntryList', + 'in' => 'query', + 'schema' => [ + 'description' => 'The list of files that are executed by the dataflow task.'."\n" + ."\n" + .'Limits:'."\n" + ."\n" + .'* The list must be encoded in UTF-8.'."\n" + .'* The total length of the file list cannot exceed 64 KB.'."\n" + .'* The file list is in JSON format.'."\n" + .'* The path of a single file must be 1 to 1,023 characters in length and must start with a forward slash (/).'."\n" + .'* If the TaskAction parameter is set to Import, each element in the list represents an OSS object name.'."\n" + .'* If the TaskAction parameter is set to Export, each element in the list represents a CPFS file path.'."\n", + 'type' => 'string', + 'required' => false, + 'docRequired' => false, + 'example' => '["/path_in_cpfs/file1", "/path_in_cpfs/file2"]', + 'maxItems' => 10, + ], + ], + [ + 'name' => 'DryRun', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to perform a dry run.'."\n" + ."\n" + .'During the dry run, the system checks whether the request parameters are valid and whether the requested resources are available. During the dry run, no dataflow task is created and no fee is incurred.'."\n" + ."\n" + .'Valid value:'."\n" + ."\n" + .'* true: performs a dry run. The system checks the required parameters, request syntax, service limits, and available Apsara File Storage NAS (NAS) resources. Otherwise, an error message is returned. If the request passes the dry run, the HTTP status code 200 is returned. No value is returned for the TaskId parameter.'."\n" + .'* false (default): performs a dry run and sends the request. If the request passes the dry run, a dataflow task is created.'."\n", + 'type' => 'boolean', + 'required' => false, + 'example' => 'false', + 'default' => 'false', + ], + ], + [ + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => [ + 'description' => 'The client token that is used to ensure the idempotence of the request. You can use the client to generate the token, but you must make sure that the token is unique among different requests.'."\n" + ."\n" + .'The token can contain only ASCII characters and cannot exceed 64 characters in length. For more information, see [How to ensure idempotence](~~25693~~).'."\n" + ."\n" + .'> If you do not specify this parameter, the system automatically uses the request ID as the client token. The request ID may be different for each request.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '123e4567-e89b-12d3-a456-42665544****', + ], + ], + [ + 'name' => 'ConflictPolicy', + 'in' => 'query', + 'schema' => [ + 'title' => '同名文件冲突策略。', + 'description' => 'The conflict policy for files with the same name. Valid value:'."\n" + ."\n" + .'* SKIP_THE_FILE: skips files with the same name.'."\n" + .'* KEEP_LATEST: compares the update time and keeps the latest version.'."\n" + .'* OVERWRITE_EXISTING: forcibly overwrites the existing file.'."\n" + ."\n" + .'> This parameter is required for CPFS for Lingjun file systems.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'SKIP_THE_FILE', + 'enum' => [ + 'SKIP_THE_FILE', + 'KEEP_LATEST', + 'OVERWRITE_EXISTING', + ], + ], + ], + [ + 'name' => 'DstDirectory', + 'in' => 'query', + 'schema' => [ + 'description' => 'The directory mapped to the dataflow task. Limits:'."\n" + ."\n" + .'* The directory must start and end with a forward slash (/). The directory cannot be /../.'."\n" + .'* The directory must be 1 to 1,023 characters in length.'."\n" + .'* Must be encoded in UTF-8.'."\n" + .'* Only one directory can be listed at a time.'."\n" + .'* If the TaskAction parameter is set to Export, the directory must be a relative path within the SourceStoragePath.'."\n" + .'* If the TaskAction parameter is set to Import, the directory must be a relative path within the FileSystemPath.'."\n" + .'* If the TaskAction parameter is set to StreamExport, the directory must be a relative path within the SourceStoragePath.'."\n" + .'* If the TaskAction parameter is set to StreamImport, the directory must be a relative path within the FileSystemPath.'."\n" + ."\n" + .'> Only CPFS for Lingjun V2.6.0 and later support StreamImport and StreamExport.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '/path_in_cpfs/', + ], + ], + [ + 'name' => 'CreateDirIfNotExist', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to automatically create a directory if no directory exists. Valid value:'."\n" + ."\n" + .'* true: automatically creates a directory.'."\n" + .'* false (default): does not automatically create a directory.'."\n" + ."\n" + .'> '."\n" + ."\n" + .'* This parameter is required if the TaskAction parameter is set to Import.'."\n" + ."\n" + .'* Only CPFS for Lingjun V2.6.0 and later support this parameter.'."\n", + 'type' => 'boolean', + 'required' => false, + 'example' => 'false', + ], + ], + [ + 'name' => 'Includes', + 'in' => 'query', + 'schema' => [ + 'description' => 'Filters subdirectories and transfers their contents.'."\n" + ."\n" + .'> '."\n" + ."\n" + .'* This parameter takes effect only when the Directory parameter is specified.'."\n" + ."\n" + .'* The path length of a single folder must be 1 to 1023 characters, start and end with a forward slash (/), and the total length must not exceed 3000 characters.'."\n" + ."\n" + .'* Only CPFS for Lingjun supports this parameter.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '["/test/","/test1/"]', + ], + ], + [ + 'name' => 'TransferFileListPath', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specify the OSS directory and synchronize data based on the content of the CSV file in the OSS directory. Requirements:'."\n" + ."\n" + .'* Must start and end with a forward slash (/).'."\n" + .'* Case-sensitive.'."\n" + .'* Must be 1 to 1023 characters in length.'."\n" + .'* Must be encoded in UTF-8.'."\n" + ."\n" + .'> '."\n" + ."\n" + .'* TransferFileListPath,Directory, and EntryList are mutually exclusive, and only one of the three can be selected.'."\n" + ."\n" + .'* This parameter is the actual path that exists in OSS. The \\*.csv file in the path is stored in OSS.'."\n" + ."\n" + .'* TransferFileListPath only supports Import and Export functions.'."\n" + ."\n" + .'* In the import scenario, the file or directory specified in the CSV file is imported from OSS to CPFS.'."\n" + ."\n" + .'* In the export scenario, the file or directory specified in the CSV file is exported from CPFS to OSS.'."\n" + ."\n" + .'* The CSV file format should include the columns Name and Type. Name refers to the relative path, while Type supports two values: dir and file. If Type is dir, the Name must end with a "/".'."\n" + ."\n" + .'* Only CPFS for Lingjun supports this operation.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '/test_oss_path/', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '2D69A58F-345C-4FDE-88E4-BF518948****', + ], + 'TaskId' => [ + 'description' => 'The ID of the dataflow task.'."\n", + 'type' => 'string', + 'example' => 'task-38aa8e890f45****', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'IllegalCharacters', + 'errorMessage' => 'The parameter contains illegal characters.', + ], + [ + 'errorCode' => 'MissingFileSystemId', + 'errorMessage' => 'FileSystemId is mandatory for this action.', + ], + [ + 'errorCode' => 'MissingDataFlowId', + 'errorMessage' => 'DataFlowId is mandatory for this action.', + ], + [ + 'errorCode' => 'InvalidFilesystemVersion.NotSupport', + 'errorMessage' => 'This Api does not support this fileSystem version.', + ], + ], + 403 => [ + [ + 'errorCode' => 'OperationDenied.InvalidState', + 'errorMessage' => 'The operation is not permitted when the status is processing.', + ], + [ + 'errorCode' => 'OperationDenied.DependencyViolation', + 'errorMessage' => 'The operation is denied due to dependancy violation.', + ], + [ + 'errorCode' => 'OperationDenied.DataFlowNotSupported', + 'errorMessage' => 'The operation is not supported.', + ], + ], + [ + [ + 'errorCode' => 'InvalidParameter.InvalidFormat', + 'errorMessage' => 'The EntryList format is invalid.', + ], + [ + 'errorCode' => 'InvalidParameter.SizeTooLarge', + 'errorMessage' => 'The specified EntryList size exceeds 64 KB.', + ], + [ + 'errorCode' => 'InvalidDataFlow.NotFound', + 'errorMessage' => 'The specified data flow does not exist.', + ], + [ + 'errorCode' => 'InvalidTaskAction.NotSupported', + 'errorMessage' => 'The task action is not supported.', + ], + [ + 'errorCode' => 'InvalidTaskAction.PermissionDenied', + 'errorMessage' => 'The task action is not allowed.', + ], + [ + 'errorCode' => 'InvalidSrcTaskId.NotFound', + 'errorMessage' => 'The SrcTaskId is not found.', + ], + [ + 'errorCode' => 'InvalidDataType.NotSupported', + 'errorMessage' => 'The data type is not supported.', + ], + [ + 'errorCode' => 'InvalidSrcTaskId.TaskIdInvalid', + 'errorMessage' => 'Source task ID is invalid.', + ], + [ + 'errorCode' => 'InvalidSrcTaskId.TaskIdNotFound', + 'errorMessage' => 'Source task ID is not found.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"2D69A58F-345C-4FDE-88E4-BF518948****\\",\\n \\"TaskId\\": \\"task-38aa8e890f45****\\"\\n}","errorExample":""},{"type":"xml","example":"<CreateDataFlowTaskResponse>\\n <RequestId>2D69A58F-345C-4FDE-88E4-BF518948****</RequestId>\\n <TaskId>taskId-1345768****</TaskId>\\n</CreateDataFlowTaskResponse>","errorExample":""}]', + 'title' => 'CreateDataFlowTask', + 'description' => '* CPFS usage notes'."\n" + ."\n" + .' * Only CPFS V2.2.0 and later support dataflows. You can view the version information on the file system details page in the console.'."\n" + .' * Dataflow tasks are executed asynchronously. You can call the [DescribeDataFlowTasks](~~2402275~~) operation to query the task execution status. The task duration depends on the amount of data to be imported and exported. If a large amount of data exists, we recommend that you create multiple tasks.'."\n" + .' * You can create a dataflow task only for a dataflow that is in the Running state.'."\n" + .' * When you manually run a dataflow task, the automatic data update task for the dataflow is interrupted and enters the pending state.'."\n" + .' * When you create an export task, make sure that the total length of the absolute path of the files to be exported from a CPFS file system does not exceed 1,023 characters.'."\n" + ."\n" + .'* CPFS for Lingjun usage notes'."\n" + ."\n" + .' * Only CPFS for Lingjun V2.4.0 and later support dataflow. You can view the version information on the file system details page in the console.'."\n" + .' * Dataflow tasks are executed asynchronously. You can call the [DescribeDataFlowTasks](~~2402275~~) operation to query the task execution status. The task duration depends on the amount of data to be imported and exported. If a large amount of data exists, we recommend that you create multiple tasks.'."\n" + .' * You can create a dataflow task only for a dataflow that is in the Running state.'."\n" + .' * When you create an export task, make sure that the total length of the absolute path of the files to be exported from a CPFS for Lingjun file system does not exceed 1,023 characters.'."\n" + .' * CPFS for Lingjun supports two types of tasks: batch tasks and streaming tasks. For more information, see [Task types](~~2845429~~).'."\n", + ], + 'CreateDataFlowSubTask' => [ + 'summary' => 'Creates a data streaming subtask.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'create', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '225698', + 'abilityTreeNodes' => [ + 'FEATUREnasPWYFYN', + ], + 'autoTest' => false, + 'notSupportAutoTestReason' => '特殊用户使用', + 'tenantRelevance' => 'publicInformation', + ], + 'parameters' => [ + [ + 'name' => 'FileSystemId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the file system.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'bmcpfs-370lx1ev9ss27o0****', + ], + ], + [ + 'name' => 'DataFlowId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the data flow.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'df-194433a5be31****', + ], + ], + [ + 'name' => 'DataFlowTaskId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the data flow task.'."\n" + ."\n" + .'> Only the IDs of data streaming tasks are supported.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'task-38aa8e890f45****'."\n", + ], + ], + [ + 'name' => 'DryRun', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to perform a dry run.'."\n" + ."\n" + .'During the dry run, the system checks whether the request parameters are valid and whether the requested resources are available. During the dry run, no data streaming subtask is created and no fee is incurred.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'* true: performs a dry run. The system checks the required parameters, request syntax, and service limits. If the request fails the dry run, an error message is returned. If the request passes the dry run, the HTTP status code 200 is returned. No value is returned for the DataFlowSubTaskId parameter.'."\n" + .'* false (default): performs a dry run and sends the request. If the request passes the dry run, a data streaming subtask is created.'."\n", + 'type' => 'boolean', + 'required' => false, + 'example' => 'false', + 'default' => 'false', + ], + ], + [ + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => [ + 'description' => 'The client token that is used to ensure the idempotence of the request. You can use the client to generate the token, but you must make sure that the token is unique among different requests.'."\n" + ."\n" + .'The token can contain only ASCII characters and cannot exceed 64 characters in length. For more information, see [How do I ensure the idempotence?](~~25693~~)'."\n" + ."\n" + .'> If you do not specify this parameter, the system automatically uses the request ID as the client token. The request ID may be different for each request.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '123e4567-e89b-12d3-a456-42665544****', + ], + ], + [ + 'name' => 'SrcFilePath', + 'in' => 'query', + 'schema' => [ + 'description' => 'The path of the source file. Limits:'."\n" + ."\n" + .'* The path must be 1 to 1,023 characters in length.'."\n" + .'* The path must be encoded in UTF-8.'."\n" + .'* The path must start with a forward slash (/).'."\n" + .'* The path must end with the file name.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '/test/file.png', + ], + ], + [ + 'name' => 'DstFilePath', + 'in' => 'query', + 'schema' => [ + 'description' => 'The path of the destination file. Limits:'."\n" + ."\n" + .'* The path must be 1 to 1,023 characters in length.'."\n" + .'* The path must be encoded in UTF-8.'."\n" + .'* The path must start with a forward slash (/).'."\n" + .'* The path must end with the file name.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '/mnt/file.png', + ], + ], + [ + 'name' => 'Condition', + 'in' => 'query', + 'style' => 'flat', + 'schema' => [ + 'description' => 'The check conditions. The check must be passed after the following conditions are specified.'."\n", + 'type' => 'object', + 'properties' => [ + 'ModifyTime' => [ + 'description' => 'The modification time. The value must be a UNIX timestamp. Unit: ns.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'example' => '1725897600000000000', + ], + 'Size' => [ + 'description' => 'The file size. Unit: bytes.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'example' => '68', + ], + ], + 'required' => false, + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'A70BEE5D-76D3-49FB-B58F-1F398211A5C3', + ], + 'DataFlowSubTaskId' => [ + 'description' => 'The ID of the data streaming task.'."\n", + 'type' => 'string', + 'example' => 'subTaskId-370kyfmyknxcyzw****', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'IllegalCharacters', + 'errorMessage' => 'The parameter contains illegal characters.', + ], + [ + 'errorCode' => 'MissingFileSystemId', + 'errorMessage' => 'FileSystemId is mandatory for this action.', + ], + [ + 'errorCode' => 'MissingDataFlowId', + 'errorMessage' => 'DataFlowId is mandatory for this action.', + ], + [ + 'errorCode' => 'InvalidFilesystemVersion.NotSupport', + 'errorMessage' => 'This Api does not support this fileSystem version.', + ], + ], + 403 => [ + [ + 'errorCode' => 'OperationDenied.InvalidState', + 'errorMessage' => 'The operation is not permitted when the status is processing.', + ], + [ + 'errorCode' => 'OperationDenied.DependencyViolation', + 'errorMessage' => 'The operation is denied due to dependancy violation.', + ], + [ + 'errorCode' => 'OperationDenied.DataFlowNotSupported', + 'errorMessage' => 'The operation is not supported.', + ], + ], + [ + [ + 'errorCode' => 'InvalidParameter.InvalidFormat', + 'errorMessage' => 'The EntryList format is invalid.', + ], + [ + 'errorCode' => 'InvalidParameter.SizeTooLarge', + 'errorMessage' => 'The specified EntryList size exceeds 64 KB.', + ], + [ + 'errorCode' => 'InvalidDataFlow.NotFound', + 'errorMessage' => 'The specified data flow does not exist.', + ], + [ + 'errorCode' => 'InvalidTaskAction.NotSupported', + 'errorMessage' => 'The task action is not supported.', + ], + [ + 'errorCode' => 'InvalidTaskAction.PermissionDenied', + 'errorMessage' => 'The task action is not allowed.', + ], + [ + 'errorCode' => 'InvalidSrcTaskId.NotFound', + 'errorMessage' => 'The SrcTaskId is not found.', + ], + [ + 'errorCode' => 'InvalidDataType.NotSupported', + 'errorMessage' => 'The data type is not supported.', + ], + [ + 'errorCode' => 'InvalidSrcTaskId.TaskIdInvalid', + 'errorMessage' => 'Source task ID is invalid.', + ], + [ + 'errorCode' => 'InvalidSrcTaskId.TaskIdNotFound', + 'errorMessage' => 'Source task ID is not found.', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"A70BEE5D-76D3-49FB-B58F-1F398211A5C3\\",\\n \\"DataFlowSubTaskId\\": \\"subTaskId-370kyfmyknxcyzw****\\"\\n}","type":"json"}]', + 'title' => 'CreateDataFlowSubTask', + 'description' => '* Only Cloud Parallel File Storage (CPFS) for LINGJUN V2.6.0 and later support this operation. You can view the version information on the file system details page in the console.'."\n" + .'* You can create subtasks only for a data streaming subtask in the Executing state.'."\n" + .'* Data streaming tasks are executed asynchronously. You can call the DescribeDataFlowSubTasks operation to query the task execution status.'."\n" + .'* When the type of data flow task is streaming, the running status only indicates that a streaming import or export task can be created. It does not indicate that the import or export task is running.'."\n", + ], + 'CancelDataFlowTask' => [ + 'summary' => 'Cancels a batch or streaming task that is in the Pending or Execute state.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'delete', + 'riskType' => 'high', + 'chargeType' => 'free', + 'abilityTreeCode' => '49029', + 'abilityTreeNodes' => [ + 'FEATUREnasQ7YV89', + 'FEATUREnas0GUIX5', + ], + 'autoTest' => true, + 'tenantRelevance' => 'tenant', + ], + 'parameters' => [ + [ + 'name' => 'FileSystemId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the file system.'."\n" + ."\n" + .'* The IDs of CPFS file systems must start with `cpfs-`. Example: cpfs-125487\\*\\*\\*\\*.'."\n" + .'* The IDs of CPFS for LINGJUN file systems must start with `bmcpfs-`. Example: bmcpfs-0015\\*\\*\\*\\*.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'cpfs-099394bd928c****', + ], + ], + [ + 'name' => 'DataFlowId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the dataflow.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'df-194433a5be31****', + ], + ], + [ + 'name' => 'TaskId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the dataflow task.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'task-38aa8e890f45****', + ], + ], + [ + 'name' => 'DryRun', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to perform only a dry run, without performing the actual request.'."\n" + ."\n" + .'During the dry run, the system checks whether the request parameters are valid and whether the requested resources are available. The dry run does not cancel the specified dataflow task or incur fees.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'* true: performs only a dry run. The system checks the required parameters, request syntax, service limits, and available NAS resources. If the request fails the dry run, an error message is returned. If the request passes the dry run, the HTTP status code 200 is returned.'."\n" + .'* false (default): performs a dry run and sends the request. If the request passes the dry run, the specified dataflow task is canceled.'."\n", + 'type' => 'boolean', + 'required' => false, + 'example' => 'false', + 'default' => 'false', + ], + ], + [ + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => [ + 'description' => 'The client token that is used to ensure the idempotence of the request. You can use the client to generate the token, but you must make sure that the token is unique among different requests.'."\n" + ."\n" + .'The token can contain only ASCII characters and cannot exceed 64 characters in length. For more information, see [How do I ensure the idempotence?](~~25693~~)'."\n" + ."\n" + .'> If you do not specify this parameter, the system automatically uses the request ID as the client token. The request ID may be different for each request.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '123e4567-e89b-12d3-a456-42665544****', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '2D69A58F-345C-4FDE-88E4-BF518948****', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'IllegalCharacters', + 'errorMessage' => 'The parameter contains illegal characters.', + ], + [ + 'errorCode' => 'MissingFileSystemId', + 'errorMessage' => 'FileSystemId is mandatory for this action.', + ], + [ + 'errorCode' => 'MissingDataFlowId', + 'errorMessage' => 'DataFlowId is mandatory for this action.', + ], + [ + 'errorCode' => 'MissingTaskId', + 'errorMessage' => 'TaskId is mandatory for this action.', + ], + ], + 403 => [ + [ + 'errorCode' => 'OperationDenied.ConflictOperation', + 'errorMessage' => 'The operation is denied due to a conflict with an ongoing operation.', + ], + [ + 'errorCode' => 'OperationDenied.DependencyViolation', + 'errorMessage' => 'The operation is denied due to dependancy violation.', + ], + [ + 'errorCode' => 'OperationDenied.DataFlowNotSupported', + 'errorMessage' => 'The operation is not supported.', + ], + ], + [ + [ + 'errorCode' => 'InvalidFileSystem.NotFound', + 'errorMessage' => 'The specified file system does not exist.', + ], + [ + 'errorCode' => 'InvalidDataFlow.NotFound', + 'errorMessage' => 'The specified data flow does not exist.', + ], + [ + 'errorCode' => 'InvalidTaskId.NotFound', + 'errorMessage' => 'The specified task ID does not exist.', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"2D69A58F-345C-4FDE-88E4-BF518948****\\"\\n}","errorExample":""},{"type":"xml","example":"<CancelDataFlowTaskResponse>\\n <RequestId>2D69A58F-345C-4FDE-88E4-BF518948****</RequestId>\\n</CancelDataFlowTaskResponse>","errorExample":""}]', + 'title' => 'CancelDataFlowTask', + 'description' => '* Only Cloud Parallel File Storage (CPFS) V2.2.0 and later and CPFS for Lingjun V2.4.0 and later support this operation. You can view the version information on the file system details page in the console.'."\n" + .'* You can cancel only the data flow tasks that are in the `Pending` and `Executing` states.'."\n" + .'* It generally takes 5 to 10 minutes to cancel a data flow task. You can query the task execution status by calling the [DescribeDataFlowTasks](~~2402275~~) operation.'."\n" + .'* If a data streaming task contains running subtasks, you cannot cancel the streaming task. Otherwise, an InvalidStatus.ResourceMismatch error message is returned.'."\n", + ], + 'CancelDataFlowSubTask' => [ + 'summary' => 'Cancels a data streaming task.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '225734', + 'abilityTreeNodes' => [ + 'FEATUREnasPWYFYN', + ], + 'autoTest' => true, + 'tenantRelevance' => 'tenant', + ], + 'parameters' => [ + [ + 'name' => 'FileSystemId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the file system.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'bmcpfs-370lx1ev9ss27o0****'."\n", + ], + ], + [ + 'name' => 'DataFlowId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the data flow.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'df-194433a5be31****', + ], + ], + [ + 'name' => 'DataFlowTaskId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the data flow task.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'task-38aa8e890f45****'."\n", + ], + ], + [ + 'name' => 'DryRun', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to perform a dry run.'."\n" + ."\n" + .'During the dry run, the system checks whether the request parameters are valid and whether the requested resources are available. During the dry run, no data streaming task is created and no fee is incurred.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'* true: performs a dry run. The system checks the required parameters, request syntax, service limits, and available File Storage NAS (NAS) resources. If the request fails the dry run, an error message is returned. If the request passes the dry run, the HTTP status code 200 is returned.'."\n" + .'* false (default): performs a dry run and sends the request. If the request passes the dry run, a data streaming task is created.', + 'type' => 'boolean', + 'required' => false, + 'example' => 'false', + 'default' => 'false', + ], + ], + [ + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => [ + 'description' => 'The client token that is used to ensure the idempotence of the request. You can use the client to generate the token, but you must make sure that the token is unique among different requests.'."\n" + ."\n" + .'The token can contain only ASCII characters and cannot exceed 64 characters in length. For more information, see [How do I ensure the idempotence?](~~25693~~)'."\n" + ."\n" + .'> If you do not specify this parameter, the system automatically uses the request ID as the client token. The request ID may be different for each request.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '123e4567-e89b-12d3-a456-42665544****', + ], + ], + [ + 'name' => 'DataFlowSubTaskId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the data streaming task.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'subTaskId-370kyfmyknxcyzw****', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3****', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'IllegalCharacters', + 'errorMessage' => 'The parameter contains illegal characters.', + ], + [ + 'errorCode' => 'MissingFileSystemId', + 'errorMessage' => 'FileSystemId is mandatory for this action.', + ], + [ + 'errorCode' => 'MissingDataFlowId', + 'errorMessage' => 'DataFlowId is mandatory for this action.', + ], + [ + 'errorCode' => 'MissingTaskId', + 'errorMessage' => 'TaskId is mandatory for this action.', + ], + ], + 403 => [ + [ + 'errorCode' => 'OperationDenied.ConflictOperation', + 'errorMessage' => 'The operation is denied due to a conflict with an ongoing operation.', + ], + [ + 'errorCode' => 'OperationDenied.DependencyViolation', + 'errorMessage' => 'The operation is denied due to dependancy violation.', + ], + [ + 'errorCode' => 'OperationDenied.DataFlowNotSupported', + 'errorMessage' => 'The operation is not supported.', + ], + ], + [ + [ + 'errorCode' => 'InvalidFileSystem.NotFound', + 'errorMessage' => 'The specified file system does not exist.', + ], + [ + 'errorCode' => 'InvalidDataFlow.NotFound', + 'errorMessage' => 'The specified data flow does not exist.', + ], + [ + 'errorCode' => 'InvalidTaskId.NotFound', + 'errorMessage' => 'The specified task ID does not exist.', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-A3DC0DE3****\\"\\n}","type":"json"}]', + 'title' => 'CancelDataFlowSubTask', + 'description' => '* Only Cloud Parallel File Storage (CPFS) for LINGJUN V2.6.0 and later support this operation. You can view the version information on the file system details page in the console.'."\n" + .'* You can cancel a data streaming task only when the task is in the CREATED or RUNNING state.'."\n" + .'* Data streaming tasks are executed asynchronously. You can call the DescribeDataFlowSubTasks operation to query the task execution status.'."\n", + ], + 'DescribeDataFlowTasks' => [ + 'summary' => 'Queries the details of dataflow tasks.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '49028', + 'abilityTreeNodes' => [ + 'FEATUREnasPWYFYN', + ], + ], + 'parameters' => [ + [ + 'name' => 'FileSystemId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the file system.'."\n" + ."\n" + .'* The IDs of CPFS file systems must start with `cpfs-`. Example: cpfs-099394bd928c\\*\\*\\*\\*.'."\n" + .'* The IDs of CPFS for Lingjun file systems must start with `bmcpfs-`. Example: bmcpfs-290w65p03ok64ya\\*\\*\\*\\*. .'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'cpfs-099394bd928c****', + ], + ], + [ + 'name' => 'Filters', + 'in' => 'query', + 'allowEmptyValue' => false, + 'style' => 'repeatList', + 'schema' => [ + 'description' => 'The details about filters.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Key' => [ + 'description' => 'The filter name.'."\n" + ."\n" + .'Valid value:'."\n" + ."\n" + .'* DataFlowIds: filters dataflow tasks by dataflow ID.'."\n" + .'* TaskIds: filters dataflow tasks by task ID.'."\n" + .'* Originator: filters dataflow tasks by task initiator.'."\n" + .'* TaskActions: filters dataflow tasks by task type.'."\n" + .'* DataTypes: filters dataflow tasks by data type.'."\n" + .'* Status: filters dataflow tasks by dataflow status.'."\n" + .'* CreateTimeBegin: filters dataflow tasks that are created after a specified time.'."\n" + .'* CreateTimeEnd: filters dataflow tasks that are created before a specified time.'."\n" + .'* StartTimeBegin: filters dataflow tasks that are started after a specified time.'."\n" + .'* StartTimeEnd: filters dataflow tasks that are started before a specified time.'."\n" + .'* EndTimeBegin: filters dataflow tasks that are stopped after a specified time.'."\n" + .'* EndTimeEnd: filters dataflow tasks that are stopped before a specified time.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'DataFlowIds', + 'enum' => [ + 'DataFlowIds', + 'TaskIds', + 'Originator', + 'TaskActions', + 'DataTypes', + 'Status', + 'CreateTimeBegin', + 'CreateTimeEnd', + 'StartTimeBegin', + 'StartTimeEnd', + 'EndTimeBegin', + 'EndTimeEnd', + ], + ], + 'Value' => [ + 'description' => 'The value of the filter. This parameter does not support wildcards.'."\n" + ."\n" + .'* If Key is set to DataFlowIds, set Value to a dataflow ID or a part of the dataflow ID. You can specify a dataflow ID or a group of dataflow IDs. You can specify a maximum of 10 dataflow IDs. Example: `df-194433a5be31****` or `df-194433a512a2****,df-234533a5be31****`.'."\n" + .'* If Key is set to TaskId, set Value to a dataflow task ID or a part of the dataflow task ID. You can specify a dataflow task ID or a group of dataflow task IDs. You can specify a maximum of 10 dataflow task IDs. Example: `task-38aa8e890f45****` or `task-38aa8e890f45****,task-29ae8e890f45****`.'."\n" + .'* If Key is set to TaskActions, set Value to the type of dataflow task. The task type can be **Import**, **Export**, **Evict**, **Inventory**, **StreamImport**, or **StreamExport**. Combined query is supported. CPFS for Lingjun supports only the Import, Export, StreamImport, and StreamExport tasks. Only CPFS for Lingjun V2.6.0 and later support the StreamImport and StreamExport tasks.'."\n" + .'* If Key is set to DataTypes, set Value to the data type of the dataflow task. The data type can be MetaAndData, Metadata, or Data. Combined query is supported.'."\n" + .'* If Key is set to Originator, set Value to the initiator of the dataflow task. The initiator can be User or System.'."\n" + .'* If Key is set to Status, set Value to the status of the dataflow task. The status can be Pending, Executing, Failed, Completed, Canceling, or Canceled. Combined query is supported.'."\n" + .'* If Key is set to CreateTimeBegin, set Value to the beginning of the time range to create the dataflow task. Time format: `yyyy-MM-ddThh:mmZ`.'."\n" + .'* If Key is set to CreateTimeEnd, set Value to the end of the time range to create the dataflow task. Time format: `yyyy-MM-ddThh:mmZ`.'."\n" + .'* If Key is set to StartTimeBegin, set Value to the beginning of the time range to start the dataflow task. Time format: `yyyy-MM-ddThh:mmZ`.'."\n" + .'* If Key is set to StartTimeEnd, set Value to the end of the time range to start the dataflow task. Time format: `yyyy-MM-ddThh:mmZ`.'."\n" + .'* If Key is set to EndTimeBegin, set Value to the beginning of the time range to stop the dataflow task. Time format: `yyyy-MM-ddThh:mmZ`.'."\n" + .'* If Key is set to EndTimeEnd, set Value to the end of the time range to stop the dataflow task. Time format: `yyyy-MM-ddThh:mmZ`.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'dfid-12345678', + ], + ], + 'required' => false, + 'description' => '', + ], + 'required' => false, + 'maxItems' => 12, + ], + ], + [ + 'name' => 'NextToken', + 'in' => 'query', + 'schema' => [ + 'description' => 'The pagination token that is used in the next request to retrieve a new page of results. You do not need to specify this parameter for the first request. You must specify the token that is obtained from the previous query as the value of NextToken.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'TGlzdFJlc291cmNlU****mVzJjE1MTI2NjY4NzY5MTAzOTEmMiZORnI4NDhVeEtrUT0=', + ], + ], + [ + 'name' => 'MaxResults', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of results for each query.'."\n" + ."\n" + .'Valid values: 10 to 100.'."\n" + ."\n" + .'Default value: 20.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'maximum' => '100', + 'minimum' => '10', + 'example' => '20', + 'default' => '20', + ], + ], + [ + 'name' => 'WithReports', + 'in' => 'query', + 'schema' => [ + 'description' => 'Whether to query report information.'."\n" + ."\n" + .'* True (default)'."\n" + .'* False'."\n" + ."\n" + .'> '."\n" + ."\n" + .'* Set it to False to speed up the query.'."\n" + ."\n" + .'* Only CPFS for Lingjun supports this parameter.'."\n", + 'type' => 'boolean', + 'required' => false, + 'example' => 'True', + 'default' => 'true', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '2D69A58F-345C-4FDE-88E4-BF518948****', + ], + 'NextToken' => [ + 'description' => 'A pagination token. It can be used in the next request to retrieve a new page of results.'."\n", + 'type' => 'string', + 'example' => 'TGlzdFJlc291cmNlU****mVzJjE1MTI2NjY4NzY5MTAzOTEmMiZORnI4NDhVeEtrUT0=', + ], + 'TaskInfo' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'Task' => [ + 'description' => 'The information about dataflow tasks.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'FilesystemId' => [ + 'description' => 'The ID of the file system.'."\n", + 'type' => 'string', + 'example' => 'cpfs-099394bd928c****', + ], + 'DataFlowId' => [ + 'description' => 'The ID of the dataflow.'."\n", + 'type' => 'string', + 'example' => 'dfid-194433a5be3****', + ], + 'TaskId' => [ + 'description' => 'The ID of the dataflow task.'."\n", + 'type' => 'string', + 'example' => 'taskId-12345678', + ], + 'SourceStorage' => [ + 'description' => 'The access path of the source storage. Format: `<storage type>://[<account id>:]<path>`.'."\n" + ."\n" + .'Among them:'."\n" + ."\n" + .'* storage type: Only Object Storage Service (OSS) is supported.'."\n" + ."\n" + .'* account id: the UID of the account of the source storage.'."\n" + ."\n" + .'* path: the name of the OSS bucket. Limits:'."\n" + ."\n" + .' * The name can contain only lowercase letters, digits, and hyphens (-). The name must start and end with a lowercase letter or digit.'."\n" + .' * The name can be up to 128 characters in length.'."\n" + .' * The name must be encoded in UTF-8.'."\n" + ."\n" + .'> '."\n" + ."\n" + .'* The OSS bucket must be an existing bucket in the region.'."\n" + ."\n" + .'* Only CPFS for Lingjun V2.6.0 and later support the account id parameter.'."\n", + 'type' => 'string', + 'example' => 'oss://bucket1', + ], + 'FileSystemPath' => [ + 'description' => 'The directory of the fileset in the CPFS file system.'."\n" + ."\n" + .'Limits:'."\n" + ."\n" + .'* The directory must be 2 to 1024 characters in length.'."\n" + .'* The directory must be encoded in UTF-8.'."\n" + .'* The directory must start and end with a forward slash (/).'."\n" + .'* The directory must be a fileset directory in the CPFS file system.'."\n" + ."\n" + .'> Only CPFS supports this parameter.'."\n", + 'type' => 'string', + 'example' => '/a/b/c/', + ], + 'Originator' => [ + 'description' => 'The initiator of the dataflow task. The following information is displayed:'."\n" + ."\n" + .'* User: The task is initiated by a user.'."\n" + .'* System: The task is automatically initiated by CPFS based on the automatic update interval.'."\n" + ."\n" + .'> Only CPFS supports this parameter.'."\n", + 'type' => 'string', + 'example' => 'User', + ], + 'TaskAction' => [ + 'description' => 'The type of the dataflow task. The following information is displayed:'."\n" + ."\n" + .'* Import: imports data stored in the source storage to a CPFS file system.'."\n" + .'* Export: exports specified data from a CPFS file system to the source storage.'."\n" + .'* StreamImport: imports the specified data from the source storage to a CPFS file system in streaming mode.'."\n" + .'* StreamExport: exports specified data from a CPFS file system to the source storage in streaming mode.'."\n" + .'* Evict: releases the data blocks of a file in a CPFS file system. After the eviction, only the metadata of the file is retained in the CPFS file system. You can still query the file. However, the data blocks of the file are cleared and do not occupy the storage space in the CPFS file system. When you access the file data, the file is loaded from the source storage as required.'."\n" + .'* Inventory: obtains the inventory list managed by a dataflow from the CPFS file system, providing the cache status of inventories in the dataflow.'."\n" + ."\n" + .'> Only CPFS for Lingjun V2.6.0 and later support StreamImport and StreamExport.'."\n", + 'type' => 'string', + 'example' => 'Import', + ], + 'DataType' => [ + 'description' => 'The type of data on which operations are performed by the dataflow task. The following information is displayed:'."\n" + ."\n" + .'* Metadata: the metadata of a file, including the timestamp, ownership, and permission information of the file. If you select Metadata, only the metadata of the file is imported. You can only query the file. When you access the file data, the file is loaded from the source storage as required.'."\n" + .'* Data: the data blocks of the file.'."\n" + .'* MetaAndData: the metadata and data blocks of the file.'."\n" + ."\n" + .'> CPFS for Lingjun supports only the MetaAndData type.'."\n", + 'type' => 'string', + 'example' => 'Metadata', + ], + 'Progress' => [ + 'description' => 'The progress of the dataflow task. The number of operations that have been performed by the dataflow task.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '240', + ], + 'Status' => [ + 'description' => 'The status of the dataflow task. The following information is displayed:'."\n" + ."\n" + .'* Pending: The dataflow task has been created and has not started.'."\n" + .'* Executing: The dataflow task is being executed.'."\n" + .'* Failed: The dataflow task failed to be executed. You can view the cause of the failure in the dataflow task report.'."\n" + .'* Completed: The dataflow task is completed. You can check that all the files have been correctly transferred in the dataflow task report.'."\n" + .'* Canceled: The dataflow task is canceled and is not completed.'."\n" + .'* Canceling: The dataflow task is being canceled.'."\n", + 'type' => 'string', + 'example' => 'Executing', + ], + 'ReportPath' => [ + 'description' => 'The save path of dataflow task reports in the CPFS file system.'."\n" + ."\n" + .'* The task reports for a CPFS file system are generated in the `.dataflow_report` directory of the CPFS file system.'."\n" + .'* CPFS for Lingjun returns an OSS download link for you to download the task reports.'."\n", + 'type' => 'string', + 'deprecated' => true, + 'example' => '/path_in_cpfs/reportfile.cvs', + ], + 'CreateTime' => [ + 'description' => 'The time when the task was created.'."\n", + 'type' => 'string', + 'example' => '2021-08-04 18:27:35', + ], + 'StartTime' => [ + 'description' => 'The start time of the task.'."\n", + 'type' => 'string', + 'example' => '2021-08-04 18:27:35', + ], + 'EndTime' => [ + 'description' => 'The end time of the task.'."\n", + 'type' => 'string', + 'example' => '2021-08-04 18:27:35', + ], + 'FsPath' => [ + 'description' => 'The path of the smart directory.'."\n", + 'type' => 'string', + 'example' => '/aa/', + ], + 'ConflictPolicy' => [ + 'title' => '同名文件冲突策略', + 'description' => 'The conflict policy for files with the same name. Valid values:'."\n" + ."\n" + .'* SKIP_THE_FILE: skips files with the same name.'."\n" + .'* KEEP_LATEST: compares the update time and keeps the latest version.'."\n" + .'* OVERWRITE_EXISTING: forcibly overwrites the existing file.'."\n", + 'type' => 'string', + 'example' => 'KEEP_LATEST', + 'enum' => [ + 'SKIP_THE_FILE', + 'KEEP_LATEST', + 'OVERWRITE_EXISTING', + ], + ], + 'Directory' => [ + 'title' => '数据流动任务执行的目录', + 'description' => 'The directory in which the dataflow task is executed.'."\n", + 'type' => 'string', + 'example' => '/path_in_cpfs/', + ], + 'DstDirectory' => [ + 'description' => 'The directory mapped to the dataflow task.'."\n", + 'type' => 'string', + 'example' => '/path_in_cpfs/'."\n", + ], + 'ErrorMsg' => [ + 'description' => 'The cause of the task exception.'."\n" + ."\n" + .'> If this parameter is not returned or the return value is empty, no error occurs.'."\n", + 'type' => 'string', + 'example' => '{"ErrorKey":"PATH_NOT_ACCESSIBLE","ErrorDetail":"lstat /cpfs/370lx1ev9ss27o****/test/abcdfnotfound: no such file or directory"}', + ], + 'ProgressStats' => [ + 'description' => 'The progress of the dataflow task.'."\n", + 'type' => 'object', + 'properties' => [ + 'FilesTotal' => [ + 'description' => 'The number of files scanned on the source.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '3', + ], + 'FilesDone' => [ + 'description' => 'The number of files (including skipped files) for which the dataflow task is complete.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '3', + ], + 'ActualFiles' => [ + 'description' => 'The actual number of files for which the dataflow task is complete.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '3', + ], + 'BytesTotal' => [ + 'description' => 'The amount of data scanned on the source. Unit: bytes.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '131092971520', + ], + 'BytesDone' => [ + 'description' => 'The amount of data (including skipped data) for which the dataflow task is complete. Unit: bytes.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '131092971520', + ], + 'ActualBytes' => [ + 'description' => 'The actual amount of data for which the dataflow task is complete. Unit: bytes.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '131092971520', + ], + 'RemainTime' => [ + 'description' => 'The estimated remaining execution time. Unit: seconds.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '437', + ], + 'AverageSpeed' => [ + 'description' => 'The average flow velocity. Unit: bytes/s.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '342279299', + ], + ], + ], + 'Reports' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'Report' => [ + 'description' => 'The reports.'."\n" + ."\n" + .'> '."\n" + ."\n" + .'* Streaming tasks do not support reports.'."\n" + ."\n" + .'* If the WithReport parameter is set to True, the CPFS for Lingjun report data is returned.'."\n" + ."\n" + .'* Only CPFS for Lingjun supports the WithReport parameter.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Name' => [ + 'description' => 'The name of the report.'."\n" + ."\n" + .'* CPFS:'."\n" + ."\n" + .' TotalFilesReport: task reports.'."\n" + ."\n" + .'* CPFS for Lingjun:'."\n" + ."\n" + .' * FailedFilesReport: failed file reports.'."\n" + .' * SkippedFilesReport: skipped file reports.'."\n" + .' * SuccessFilesReport: successful file reports.'."\n", + 'type' => 'string', + 'example' => 'TotalFilesReport', + ], + 'Path' => [ + 'description' => 'The report URL.'."\n", + 'type' => 'string', + 'example' => 'https://a-hbr-temp-cn-hangzhou-staging.oss-cn-hangzhou.aliyuncs.com/temp/report/162319438359****/job-000bb6fwqficjbxk****/job-000bb6fwqficjbxk****_failed.zip?Expires=1721201422&OSSAccessKeyId=LTA****************&Signature=Fp%2BvauORTIVxooXY2tec6z0T%2Bp4%3D', + ], + ], + 'description' => '', + ], + ], + ], + ], + 'Includes' => [ + 'description' => 'Filters subdirectories and transfers their contents.'."\n" + ."\n" + .'> Only CPFS for Lingjun supports this operation.'."\n", + 'type' => 'string', + 'example' => '["/test/","/test1/"]'."\n", + ], + 'TransferFileListPath' => [ + 'description' => 'Specify the OSS directory and synchronize data based on the content of the CSV file in the OSS directory.'."\n" + ."\n" + .'> Only CPFS for Lingjun supports this operation.'."\n", + 'type' => 'string', + 'example' => '/path_in_cpfs/'."\n", + ], + ], + 'description' => '', + ], + ], + ], + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'IllegalCharacters', + 'errorMessage' => 'The parameter contains illegal characters.', + ], + [ + 'errorCode' => 'MissingFileSystemId', + 'errorMessage' => 'FileSystemId is mandatory for this action.', + ], + [ + 'errorCode' => 'InvalidFilesystemVersion.NotSupport', + 'errorMessage' => 'This Api does not support this fileSystem version.', + ], + ], + 403 => [ + [ + 'errorCode' => 'OperationDenied.DataFlowNotSupported', + 'errorMessage' => 'The operation is not supported.', + ], + ], + [ + [ + 'errorCode' => 'InvalidParameter.InvalidNextToken', + 'errorMessage' => 'The specified NextToken is invaild.', + ], + [ + 'errorCode' => 'InvalidFileSystem.NotFound', + 'errorMessage' => 'The specified file system does not exist.', + ], + [ + 'errorCode' => 'InvalidDataFlow.NotFound', + 'errorMessage' => 'The specified data flow does not exist.', + ], + [ + 'errorCode' => 'InvalidParameter.InvalidMaxResults', + 'errorMessage' => 'The specified MaxResults is invalid.', + ], + [ + 'errorCode' => 'InvalidFilterParam', + 'errorMessage' => 'The specified Filter.N.Key is invalid.', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"2D69A58F-345C-4FDE-88E4-BF518948****\\",\\n \\"NextToken\\": \\"TGlzdFJlc291cmNlU****mVzJjE1MTI2NjY4NzY5MTAzOTEmMiZORnI4NDhVeEtrUT0=\\",\\n \\"TaskInfo\\": {\\n \\"Task\\": [\\n {\\n \\"FilesystemId\\": \\"bmcpfs-290w65p03ok64ya****\\",\\n \\"DataFlowId\\": \\"df-194433a5be31****\\",\\n \\"TaskId\\": \\"task-38aa8e890f45****\\",\\n \\"SourceStorage\\": \\"oss://178321033379****:bucket-01\\",\\n \\"FileSystemPath\\": \\"/a/b/c/\\",\\n \\"Originator\\": \\"User\\",\\n \\"TaskAction\\": \\"Import\\",\\n \\"DataType\\": \\"MetaAndData \\",\\n \\"Progress\\": 50,\\n \\"Status\\": \\"Failed\\",\\n \\"ReportPath\\": \\"/path_in_cpfs/reportfile.cvs\\",\\n \\"CreateTime\\": \\"2021-08-04 18:27:35\\",\\n \\"StartTime\\": \\"2021-08-04 18:27:35\\",\\n \\"EndTime\\": \\"2021-08-04 18:27:35\\",\\n \\"FsPath\\": \\"/aa/\\",\\n \\"ConflictPolicy\\": \\"KEEP_LATEST\\",\\n \\"Directory\\": \\"/path_in_cpfs/\\",\\n \\"DstDirectory\\": \\"/path_in_cpfs/\\\\n\\",\\n \\"ErrorMsg\\": \\"{\\\\\\"ErrorKey\\\\\\":\\\\\\"PATH_NOT_ACCESSIBLE\\\\\\",\\\\\\"ErrorDetail\\\\\\":\\\\\\"lstat /cpfs/370lx1ev9ss27o****/test/abcdfnotfound: no such file or directory\\\\\\"}\\",\\n \\"ProgressStats\\": {\\n \\"FilesTotal\\": 3,\\n \\"FilesDone\\": 3,\\n \\"ActualFiles\\": 3,\\n \\"BytesTotal\\": 131092971520,\\n \\"BytesDone\\": 131092971520,\\n \\"ActualBytes\\": 131092971520,\\n \\"RemainTime\\": 437,\\n \\"AverageSpeed\\": 342279299\\n },\\n \\"Reports\\": {\\n \\"Report\\": [\\n {\\n \\"Name\\": \\"TotalFilesReport\\",\\n \\"Path\\": \\"https://a-hbr-temp-cn-hangzhou-staging.oss-cn-hangzhou.aliyuncs.com/temp/report/162319438359****/job-000bb6fwqficjbxk****/job-000bb6fwqficjbxk****_failed.zip?Expires=1721201422&OSSAccessKeyId=LTA****************&Signature=Fp%2BvauORTIVxooXY2tec6z0T%2Bp4%3D\\"\\n }\\n ]\\n },\\n \\"Includes\\": \\"[\\\\\\"/test/\\\\\\",\\\\\\"/test1/\\\\\\"]\\\\n\\",\\n \\"TransferFileListPath\\": \\"/path_in_cpfs/\\\\n\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<DescribeDataFlowTasksResponse>\\n <RequestId>2D69A58F-345C-4FDE-88E4-BF518948****</RequestId>\\n <NextToken>TGlzdFJlc291cmNlU****mVzJjE1MTI2NjY4NzY5MTAzOTEmMiZORnI4NDhVeEtrUT0=</NextToken>\\n <TaskInfo>\\n <FilesystemId>cpfs-099394bd928c****</FilesystemId>\\n <DataFlowId>dfid-194433a5be3****</DataFlowId>\\n <TaskId>taskId-12345678</TaskId>\\n <SourceStorage>oss://bucket1</SourceStorage>\\n <FileSystemPath>/a/b/c/</FileSystemPath>\\n <Originator>User</Originator>\\n <TaskAction>Import</TaskAction>\\n <DataType>Metadata</DataType>\\n <Progress>240</Progress>\\n <Status>Executing</Status>\\n <ReportPath>/path_in_cpfs/reportfile.cvs</ReportPath>\\n <CreateTime>2021-08-04 18:27:35</CreateTime>\\n <StartTime>2021-08-04 18:27:35</StartTime>\\n <EndTime>2021-08-04 18:27:35</EndTime>\\n <FsPath>/aa/</FsPath>\\n </TaskInfo>\\n</DescribeDataFlowTasksResponse>","errorExample":""}]', + 'title' => 'DescribeDataFlowTasks', + 'description' => 'Only CPFS V2.2.0 and later and CPFS for Lingjun V2.4.0 and later support this operation. You can view the version information on the file system details page in the console.'."\n", + ], + 'DescribeDataFlowSubTasks' => [ + 'summary' => 'Queries data flow subtasks in batches.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'list', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '225738', + 'abilityTreeNodes' => [ + 'FEATUREnasPWYFYN', + ], + 'autoTest' => false, + 'notSupportAutoTestReason' => '特殊用户使用', + 'tenantRelevance' => 'publicInformation', + ], + 'parameters' => [ + [ + 'name' => 'FileSystemId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the file system.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'bmcpfs-370lx1ev9ss27o0****'."\n", + ], + ], + [ + 'name' => 'Filters', + 'in' => 'query', + 'allowEmptyValue' => false, + 'style' => 'repeatList', + 'schema' => [ + 'description' => 'The filter that is used to query data streaming tasks.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Key' => [ + 'description' => 'The filter name.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'* DataFlowIds: filters data flow subtasks by data flow ID.'."\n" + .'* DataFlowTaskIds: filters data flow subtasks by data flow task ID.'."\n" + .'* DataFlowSubTaskIds: filters data flow subtasks by data streaming task ID.'."\n" + .'* Status: filters data flow subtasks by status.'."\n" + .'* SrcFilePath: filters data flow subtasks by source file path.'."\n" + .'* DstFilePath: filters data flow subtasks by destination file path.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'DataFlowSubTaskIds', + 'enum' => [ + 'DataFlowIds', + 'DataFlowTaskIds', + 'DataFlowSubTaskIds', + 'Status', + 'SrcFilePath', + 'DstFilePath', + ], + ], + 'Value' => [ + 'description' => 'The filter value. This parameter does not support wildcards.'."\n" + ."\n" + .'* If Key is set to DataFlowIds, set Value to a data flow ID or a part of the data flow ID. You can specify a data flow ID or a group of data flow IDs. You can specify a maximum of 10 data flow IDs. Example: `df-194433a5be31****` or `df-194433a5be31****,df-244433a5be31****`.'."\n" + .'* If Key is set to DataFlowTaskIds, set Value to a data flow task ID or a part of the data flow task ID. You can specify a data flow task ID or a group of data flow task IDs. You can specify a maximum of 10 data flow task IDs. Example: `task-38aa8e890f45****` or `task-38aa8e890f45****,task-27aa8e890f45****`.'."\n" + .'* If Key is set to DataFlowSubTaskIds, set Value to a data streaming task ID or a part of the data streaming task ID. You can specify a data streaming task ID or a group of data streaming task IDs. You can specify a maximum of 10 data streaming task IDs. Example: ` subTaskId-370kyfmyknxcyzw**** `or `subTaskId-370kyfmyknxcyzw****,subTaskId-280kyfmyknxcyzw****`.'."\n" + .'* If Key is set to Status, set Value to the status of the data flow task. The status can be EXPIRED, CREATED, RUNNING, COMPLETE, CANCELING, FAILED, or CANCELED. Combined query is supported.'."\n" + .'* If Key is set to SrcFilePath, set Value to the path of the source file. The path can be up to 1,023 characters in length.'."\n" + .'* If Key is set to DstFilePath, set Value to the path of the destination file. The path can be up to 1,023 characters in length.', + 'type' => 'string', + 'required' => false, + 'example' => 'subTaskId-370kyfmyknxcyzw****'."\n", + ], + ], + 'required' => false, + 'description' => '', + ], + 'required' => false, + 'maxItems' => 12, + ], + ], + [ + 'name' => 'NextToken', + 'in' => 'query', + 'schema' => [ + 'description' => 'The pagination token that is used in the next request to retrieve a new page of results. You do not need to specify this parameter for the first request. You must specify the token that is obtained from the previous query as the value of NextToken.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'iWk0AQAAAAAvY2FzZS8=', + ], + ], + [ + 'name' => 'MaxResults', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of results for each query.'."\n" + ."\n" + .'* Valid values: 20 to 100.'."\n" + .'* Default value: 20.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'maximum' => '100', + 'minimum' => '10', + 'example' => '20', + 'default' => '20', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '98696EF0-1607-4E9D-B01D-F20930B6****', + ], + 'NextToken' => [ + 'description' => 'The pagination token that is used in the next request to retrieve a new page of results. You do not need to specify this parameter for the first request. You must specify the token that is obtained from the previous query as the value of NextToken.'."\n", + 'type' => 'string', + 'example' => 'pUJaUwAAAABhdGUyNTk1MQ==', + ], + 'DataFlowSubTask' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'DataFlowSubTask' => [ + 'description' => 'The details about data streaming tasks.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'FileSystemId' => [ + 'description' => 'The ID of the file system.'."\n", + 'type' => 'string', + 'example' => 'bmcpfs-370lx1ev9ss27o0****'."\n", + ], + 'DataFlowId' => [ + 'description' => 'The ID of the data flow.'."\n", + 'type' => 'string', + 'example' => 'df-194433a5be31****', + ], + 'DataFlowTaskId' => [ + 'description' => 'The ID of the data flow task.'."\n", + 'type' => 'string', + 'example' => 'task-38aa8e890f45****', + ], + 'DataFlowSubTaskId' => [ + 'description' => 'The ID of the data streaming task.'."\n", + 'type' => 'string', + 'example' => 'subTaskId-370kyfmyknxcyzw****'."\n", + ], + 'SrcFilePath' => [ + 'description' => 'The path of the source file. Limits:'."\n" + ."\n" + .'* The path must be 1 to 1,023 characters in length.'."\n" + .'* The path must be encoded in UTF-8.'."\n" + .'* The path must start with a forward slash (/).'."\n" + .'* The path must end with the file name.'."\n", + 'type' => 'string', + 'example' => '/test/file.png'."\n", + ], + 'DstFilePath' => [ + 'description' => 'The path of the destination file. Limits:'."\n" + ."\n" + .'* The path must be 1 to 1,023 characters in length.'."\n" + .'* The path must be encoded in UTF-8.'."\n" + .'* The path must start with a forward slash (/).'."\n" + .'* The path must end with the file name.'."\n", + 'type' => 'string', + 'example' => '/mnt/file.png'."\n", + ], + 'Status' => [ + 'description' => 'The status of the data streaming task. Valid values:'."\n" + ."\n" + .'* EXPIRED: The task is terminated.'."\n" + .'* CREATED: The task is created.'."\n" + .'* RUNNING: The task is running.'."\n" + .'* COMPLETE: The task is complete.'."\n" + .'* CANCELING: The task is being canceled.'."\n" + .'* FAILED: The task failed to be executed.'."\n" + .'* CANCELED: The task is canceled.'."\n", + 'type' => 'string', + 'example' => 'COMPLETE', + ], + 'Progress' => [ + 'description' => 'The progress of the data streaming task. Valid values: 0 to 10000.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '10000', + ], + 'CreateTime' => [ + 'description' => 'The time when the data streaming task was created.'."\n", + 'type' => 'string', + 'example' => '2024-07-01 19:59:29', + ], + 'StartTime' => [ + 'description' => 'The time when the data streaming task started.'."\n", + 'type' => 'string', + 'example' => '2024-07-03 10:43:16', + ], + 'EndTime' => [ + 'description' => 'The time when the data streaming task ended.'."\n", + 'type' => 'string', + 'example' => '2024-07-04 11:14:22', + ], + 'ErrorMsg' => [ + 'description' => 'The error message returned when the task failed.'."\n", + 'type' => 'string', + 'example' => '{"ErrorKey":"PATH_NOT_ACCESSIBLE","ErrorDetail":"lstat /cpfs/370lx1ev9ss27o****/test/abcdfnotfound: no such file or directory"}', + ], + 'ProgressStats' => [ + 'description' => 'The progress information about data streaming tasks.'."\n", + 'type' => 'object', + 'properties' => [ + 'BytesTotal' => [ + 'description' => 'The amount of data scanned on the source. Unit: bytes.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '68', + ], + 'BytesDone' => [ + 'description' => 'The amount of data (including skipped data) for which the data flow task is complete. Unit: bytes.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '68', + ], + 'ActualBytes' => [ + 'description' => 'The actual amount of data for which the data flow task is complete. Unit: bytes.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '68', + ], + 'AverageSpeed' => [ + 'description' => 'The average flow velocity. Unit: bytes/s.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '34', + ], + ], + ], + 'FileDetail' => [ + 'description' => 'The file information.'."\n", + 'type' => 'object', + 'properties' => [ + 'ModifyTime' => [ + 'description' => 'The time when the file was modified. The value is a UNIX timestamp. Unit: ns.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1721167603', + ], + 'Size' => [ + 'description' => 'The file size. Unit: bytes.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '68', + ], + 'Checksum' => [ + 'description' => 'The checksum. Format example: crc64:123456.'."\n", + 'type' => 'string', + 'example' => 'crc64:850309505450944****', + ], + ], + ], + ], + 'description' => '', + ], + ], + ], + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'IllegalCharacters', + 'errorMessage' => 'The parameter contains illegal characters.', + ], + [ + 'errorCode' => 'MissingFileSystemId', + 'errorMessage' => 'FileSystemId is mandatory for this action.', + ], + [ + 'errorCode' => 'InvalidFilesystemVersion.NotSupport', + 'errorMessage' => 'This Api does not support this fileSystem version.', + ], + ], + 403 => [ + [ + 'errorCode' => 'OperationDenied.DataFlowNotSupported', + 'errorMessage' => 'The operation is not supported.', + ], + ], + [ + [ + 'errorCode' => 'InvalidParameter.InvalidNextToken', + 'errorMessage' => 'The specified NextToken is invaild.', + ], + [ + 'errorCode' => 'InvalidFileSystem.NotFound', + 'errorMessage' => 'The specified file system does not exist.', + ], + [ + 'errorCode' => 'InvalidDataFlow.NotFound', + 'errorMessage' => 'The specified data flow does not exist.', + ], + [ + 'errorCode' => 'InvalidParameter.InvalidMaxResults', + 'errorMessage' => 'The specified MaxResults is invalid.', + ], + [ + 'errorCode' => 'InvalidFilterParam', + 'errorMessage' => 'The specified Filter.N.Key is invalid.', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"98696EF0-1607-4E9D-B01D-F20930B6****\\",\\n \\"NextToken\\": \\"pUJaUwAAAABhdGUyNTk1MQ==\\",\\n \\"DataFlowSubTask\\": {\\n \\"DataFlowSubTask\\": [\\n {\\n \\"FileSystemId\\": \\"bmcpfs-370lx1ev9ss27o0****\\\\n\\",\\n \\"DataFlowId\\": \\"df-194433a5be31****\\\\n\\",\\n \\"DataFlowTaskId\\": \\"task-38aa8e890f45****\\",\\n \\"DataFlowSubTaskId\\": \\"subTaskId-370kyfmyknxcyzw****\\\\n\\",\\n \\"SrcFilePath\\": \\"/test/file.png\\\\n\\",\\n \\"DstFilePath\\": \\"/mnt/file.png\\\\n\\",\\n \\"Status\\": \\"FAILED\\",\\n \\"Progress\\": 10000,\\n \\"CreateTime\\": \\"2024-07-01 19:59:29\\",\\n \\"StartTime\\": \\"2024-07-03 10:43:16\\",\\n \\"EndTime\\": \\"2024-07-04 11:14:22\\",\\n \\"ErrorMsg\\": \\"file does not exist\\",\\n \\"ProgressStats\\": {\\n \\"BytesTotal\\": 68,\\n \\"BytesDone\\": 68,\\n \\"ActualBytes\\": 68,\\n \\"AverageSpeed\\": 34\\n },\\n \\"FileDetail\\": {\\n \\"ModifyTime\\": 1725897600000000000,\\n \\"Size\\": 68,\\n \\"Checksum\\": \\"crc64:850309505450944****\\"\\n }\\n }\\n ]\\n }\\n}","type":"json"}]', + 'title' => 'DescribeDataFlowSubTasks', + 'description' => 'Only Cloud Parallel File Storage (CPFS) for LINGJUN V2.6.0 and later support this operation. You can view the version information on the file system details page in the console.'."\n", + ], + 'ApplyDataFlowAutoRefresh' => [ + 'summary' => 'Adds AutoRefresh configurations to a dataflow.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'high', + 'chargeType' => 'free', + 'abilityTreeCode' => '59398', + 'abilityTreeNodes' => [ + 'FEATUREnasQ7YV89', + 'FEATUREnas0GUIX5', + ], + 'autoTest' => true, + 'tenantRelevance' => 'tenant', + ], + 'parameters' => [ + [ + 'name' => 'FileSystemId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the file system.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'cpfs-099394bd928c****', + ], + ], + [ + 'name' => 'DataFlowId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the dataflow.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'df-194433a5be31****'."\n", + ], + ], + [ + 'name' => 'AutoRefreshs', + 'in' => 'query', + 'style' => 'repeatList', + 'schema' => [ + 'description' => 'The automatic update configurations.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'RefreshPath' => [ + 'description' => 'The automatic update directory. CPFS automatically checks whether the source data only in the directory is updated and imports the updated data.'."\n" + ."\n" + .'Limits:'."\n" + ."\n" + .'* The directory must be 2 to 1,024 characters in length.'."\n" + .'* The directory must be encoded in UTF-8.'."\n" + .'* The directory must start and end with a forward slash (/).'."\n" + ."\n" + .'> The directory must be an existing directory in the CPFS file system and must be in a fileset where the dataflow is enabled.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '/prefix1/prefix2/', + 'maxLength' => 1024, + 'minLength' => 2, + ], + ], + 'required' => false, + ], + 'required' => true, + 'docRequired' => true, + 'maxItems' => 5, + ], + ], + [ + 'name' => 'AutoRefreshPolicy', + 'in' => 'query', + 'allowEmptyValue' => true, + 'schema' => [ + 'description' => 'The automatic update policy. The updated data in the source storage is imported into the CPFS file system based on the policy. Valid values:'."\n" + ."\n" + .'* None (default): Updated data in the source storage is not automatically imported into the CPFS file system. You can run a dataflow task to import the updated data from the source storage.'."\n" + .'* ImportChanged: Updated data in the source storage is automatically imported into the CPFS file system.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'None', + 'default' => 'None', + 'enum' => [ + 'None', + 'ImportChanged', + ], + ], + ], + [ + 'name' => 'AutoRefreshInterval', + 'in' => 'query', + 'schema' => [ + 'description' => 'The automatic update interval. CPFS checks whether data is updated in the directory at the interval specified by this parameter. If data is updated, CPFS starts an automatic update task. Unit: minute.'."\n" + ."\n" + .'Valid values: 10 to 525600. Default value: 10.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'maximum' => '525600', + 'minimum' => '5', + 'example' => '10', + ], + ], + [ + 'name' => 'DryRun', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to perform a dry run.'."\n" + ."\n" + .'During the dry run, the system checks whether the request parameters are valid and whether the requested resources are available. During the dry run, no file system is created and no fee is incurred.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'* true: performs a dry run. The system checks the required parameters, request syntax, limits, and available NAS resources. If the request fails the dry run, an error message is returned. If the request passes the dry run, the HTTP status code 200 is returned. No value is returned for the FileSystemId parameter.'."\n" + .'* false (default): performs a dry run and sends the request. If the request passes the dry run, a file system is created.'."\n", + 'type' => 'boolean', + 'required' => false, + 'example' => 'false', + 'default' => 'false', + ], + ], + [ + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => [ + 'description' => 'The client token that is used to ensure the idempotence of the request. You can use the client to generate the token, but you must make sure that the token is unique among different requests.'."\n" + ."\n" + .'The token can contain only ASCII characters and cannot exceed 64 characters in length. For more information, see [How do I ensure the idempotence?](~~25693~~)'."\n" + ."\n" + .'> If you do not specify this parameter, the system automatically uses the request ID as the client token. The value of RequestId may be different for each API request.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '123e4567-e89b-12d3-a456-42665544****', + 'maxLength' => 64, + 'minLength' => 1, + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '98696EF0-1607-4E9D-B01D-F20930B6****', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'IllegalCharacters', + 'errorMessage' => 'The parameter contains illegal characters.', + ], + [ + 'errorCode' => 'MissingFileSystemId', + 'errorMessage' => 'FileSystemId is mandatory for this action.', + ], + [ + 'errorCode' => 'MissingDataFlowId', + 'errorMessage' => 'DataFlowId is mandatory for this action.', + ], + ], + 403 => [ + [ + 'errorCode' => 'OperationDenied.InvalidState', + 'errorMessage' => 'The operation is not permitted when the status is processing.', + ], + [ + 'errorCode' => 'InvalidFileSystem.AlreadyExisted', + 'errorMessage' => 'The specified file system already exists.', + ], + [ + 'errorCode' => 'OperationDenied.DependencyViolation', + 'errorMessage' => 'The operation is denied due to dependancy violation.', + ], + [ + 'errorCode' => 'OperationDenied.NestedDir', + 'errorMessage' => 'The operation is denied due to nested directory.', + ], + [ + 'errorCode' => 'OperationDenied.ConflictOperation', + 'errorMessage' => 'The operation is denied due to a conflict with an ongoing operation.', + ], + [ + 'errorCode' => 'OperationDenied.DataFlowNotSupported', + 'errorMessage' => 'The operation is not supported.', + ], + ], + [ + [ + 'errorCode' => 'InvalidFileSystem.NotFound', + 'errorMessage' => 'The specified file system does not exist.', + ], + [ + 'errorCode' => 'InvalidDataFlow.NotFound', + 'errorMessage' => 'The specified data flow does not exist.', + ], + [ + 'errorCode' => 'InvalidRefreshPath.InvalidParameter', + 'errorMessage' => 'Refresh path is invalid.', + ], + [ + 'errorCode' => 'InvalidRefreshPath.NotFound', + 'errorMessage' => 'Refresh path does not exist.', + ], + [ + 'errorCode' => 'InvalidRefreshPolicy.InvalidParameter', + 'errorMessage' => 'Refresh policy is invalid.', + ], + [ + 'errorCode' => 'InvalidRefreshInterval.OutOfBounds', + 'errorMessage' => 'Refresh interval is out of bounds.', + ], + [ + 'errorCode' => 'InvalidRefreshPath.AlreadyExist', + 'errorMessage' => 'The refresh path already exists.', + ], + [ + 'errorCode' => 'InvalidRefreshPath.TooManyPaths', + 'errorMessage' => 'The number of refresh paths exceeds the limit.', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"98696EF0-1607-4E9D-B01D-F20930B6****\\"\\n}","errorExample":""},{"type":"xml","example":"<ApplyDataFlowAutoRefreshResponse>\\n <RequestId>98696EF0-1607-4E9D-B01D-F20930B6****</RequestId>\\n</ApplyDataFlowAutoRefreshResponse>","errorExample":""}]', + 'title' => 'ApplyDataFlowAutoRefresh', + 'description' => '* This operation is available only to Cloud Parallel File Storage (CPFS) file systems.'."\n" + ."\n" + .'* Only CPFS V2.2.0 and later support data flows. You can view the version information on the file system details page in the console.'."\n" + ."\n" + .'* You can add AutoRefresh configurations only to the dataflows that are in the `Running` state.'."\n" + ."\n" + .'* You can add a maximum of five AutoRefresh configurations to a dataflow.'."\n" + ."\n" + .'* It generally takes 2 to 5 minutes to create an AutoRefresh configuration. You can call the [DescribeDataFlows](~~336901~~) operation to query the dataflow status.'."\n" + ."\n" + .'* AutoRefresh depends on the object modification events collected by EventBridge from the source OSS bucket. You must first [activate EventBridge](~~182246~~).'."\n" + ."\n" + .' **'."\n" + ."\n" + .' **Note** The event buses and event rules created for CPFS in the EventBridge console contain the `Create for cpfs auto refresh` description. The event buses and event rules cannot be modified or deleted. Otherwise, AutoRefresh cannot work properly.'."\n" + ."\n" + .'* The AutoRefresh configuration applies only to the prefix and is specified by the RefreshPath parameter. When you add an AutoRefresh configuration to the prefix for a CPFS dataflow, an event bus is created at the user side and an event rule is created for the prefix of the source OSS bucket. When an object is modified in the prefix of the source OSS bucket, an OSS event is generated in the EventBridge console. The event is processed by the CPFS data flow.'."\n" + ."\n" + .'* After AutoRefresh is configured, if the data in the source OSS bucket is updated, the updated metadata is automatically synchronized to the CPFS file system. You can load the updated data when you access files, or run a data flow task to load the updated data.'."\n" + ."\n" + .'* AutoRefreshInterval refers to the interval at which CPFS checks whether data is updated in the prefix of the source OSS bucket. If data is updated, CPFS runs an AutoRefresh task. If the frequency of triggering the object modification event in the source OSS bucket exceeds the processing capability of the CPFS data flow, AutoRefresh tasks are accumulated, metadata updates are delayed, and the data flow status becomes Misconfigured. To resolve these issues, you can increase the data flow specifications or reduce the frequency of triggering the object modification event.'."\n", + ], + 'CancelDataFlowAutoRefresh' => [ + 'summary' => 'Cancels the AutoRefresh configuration for a dataflow.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'high', + 'chargeType' => 'free', + 'abilityTreeCode' => '59403', + 'abilityTreeNodes' => [ + 'FEATUREnasQ7YV89', + 'FEATUREnas0GUIX5', + ], + 'autoTest' => true, + 'tenantRelevance' => 'tenant', + ], + 'parameters' => [ + [ + 'name' => 'FileSystemId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the file system.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'cpfs-099394bd928c****', + ], + ], + [ + 'name' => 'DataFlowId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the dataflow.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'df-194433a5be31****'."\n", + ], + ], + [ + 'name' => 'RefreshPath', + 'in' => 'query', + 'allowEmptyValue' => true, + 'schema' => [ + 'description' => 'The directory for which you want to cancel AutoRefresh configurations.'."\n" + ."\n" + .'Limits:'."\n" + ."\n" + .'* The directory must be 2 to 1,024 characters in length.'."\n" + .'* The directory must be encoded in UTF-8.'."\n" + .'* The directory must start and end with a forward slash (/).'."\n" + ."\n" + .'> The directory must be an existing directory in the CPFS file system and must be in a fileset where the dataflow is enabled.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '/prefix1/prefix2/', + ], + ], + [ + 'name' => 'DryRun', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to perform a dry run.'."\n" + ."\n" + .'During the dry run, the system checks whether the request parameters are valid and whether the requested resources are available. During the dry run, no file system is created and no fee is incurred.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'* true: performs a dry run. The system checks the request format, service limits, prerequisites, and whether the required parameters are specified. If the request fails the dry run, an error message is returned. If the request passes the dry run, the HTTP status code 200 is returned. No value is returned for the DataFlowld parameter.'."\n" + .'* false (default): performs a dry run and sends the request. If the request passes the dry run, a file system is created.'."\n", + 'type' => 'boolean', + 'required' => false, + 'example' => 'false', + 'default' => 'false', + ], + ], + [ + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => [ + 'description' => 'The client token that is used to ensure the idempotence of the request. You can use the client to generate the token, but you must make sure that the token is unique among different requests.'."\n" + ."\n" + .'The token can contain only ASCII characters and cannot exceed 64 characters in length. For more information, see [How do I ensure the idempotence?](~~25693~~)'."\n" + ."\n" + .'> If you do not specify this parameter, the system automatically uses the request ID as the client token. The value of RequestId may be different for each API request.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '123e4567-e89b-12d3-a456-42665544****', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '98696EF0-1607-4E9D-B01D-F20930B6****', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'IllegalCharacters', + 'errorMessage' => 'The parameter contains illegal characters.', + ], + [ + 'errorCode' => 'MissingFileSystemId', + 'errorMessage' => 'FileSystemId is mandatory for this action.', + ], + [ + 'errorCode' => 'MissingDataFlowId', + 'errorMessage' => 'DataFlowId is mandatory for this action.', + ], + ], + 403 => [ + [ + 'errorCode' => 'OperationDenied.DependencyViolation', + 'errorMessage' => 'The operation is denied due to dependancy violation.', + ], + [ + 'errorCode' => 'OperationDenied.ConflictOperation', + 'errorMessage' => 'The operation is denied due to a conflict with an ongoing operation.', + ], + [ + 'errorCode' => 'OperationDenied.DataFlowNotSupported', + 'errorMessage' => 'The operation is not supported.', + ], + ], + [ + [ + 'errorCode' => 'InvalidFileSystem.NotFound', + 'errorMessage' => 'The specified file system does not exist.', + ], + [ + 'errorCode' => 'InvalidDataFlow.NotFound', + 'errorMessage' => 'The specified data flow does not exist.', + ], + [ + 'errorCode' => 'InvalidRefreshPath.InvalidParameter', + 'errorMessage' => 'Refresh path is invalid.', + ], + [ + 'errorCode' => 'InvalidRefreshPath.NotFound', + 'errorMessage' => 'Refresh path does not exist.', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"98696EF0-1607-4E9D-B01D-F20930B6****\\"\\n}","errorExample":""},{"type":"xml","example":"<CancelDataFlowAutoRefreshResponse>\\n <RequestId>98696EF0-1607-4E9D-B01D-F20930B6****</RequestId>\\n</CancelDataFlowAutoRefreshResponse>","errorExample":""}]', + 'title' => 'CancelDataFlowAutoRefresh', + 'description' => '* This operation is available only to Cloud Parallel File Storage (CPFS) file systems.'."\n" + .'* Only CPFS V2.2.0 and later support data flows. You can view the version information on the file system details page in the console.'."\n" + .'* You can cancel AutoRefresh configurations only for the dataflows that are in the `Running` or `Stopped` state.'."\n" + .'* It generally takes 2 to 5 minutes to cancel the AutoRefresh configurations. You can call the [DescribeDataFlows](~~2402270~~) operation to query the status of the AutoRefresh tasks.'."\n", + ], + 'ModifyDataFlowAutoRefresh' => [ + 'summary' => 'Modifies an AutoRefresh configuration of a dataflow.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '59400', + 'abilityTreeNodes' => [ + 'FEATUREnasPWYFYN', + ], + 'autoTest' => true, + 'tenantRelevance' => 'tenant', + ], + 'parameters' => [ + [ + 'name' => 'FileSystemId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the file system.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'cpfs-099394bd928c****', + ], + ], + [ + 'name' => 'DataFlowId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the dataflow.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'df-194433a5be31****'."\n", + ], + ], + [ + 'name' => 'AutoRefreshPolicy', + 'in' => 'query', + 'allowEmptyValue' => true, + 'schema' => [ + 'description' => 'The automatic update policy. The updated data in the source storage is imported into the CPFS file system based on the policy. The following information is displayed:'."\n" + ."\n" + .'* None: Updated data in the source storage is not automatically imported into the CPFS file system. You can run a dataflow task to import the updated data from the source storage.'."\n" + .'* ImportChanged: Updated data in the source storage is automatically imported into the CPFS file system.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'None', + 'enum' => [ + 'None', + 'ImportChanged', + ], + ], + ], + [ + 'name' => 'AutoRefreshInterval', + 'in' => 'query', + 'schema' => [ + 'description' => 'The automatic update interval. CPFS checks whether data is updated in the directory at the interval specified by this parameter. If data is updated, CPFS starts an automatic update task. Unit: minute.'."\n" + ."\n" + .'Valid values: 5 to 526600. Default value: 10.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'maximum' => '525600', + 'minimum' => '5', + 'example' => '10', + ], + ], + [ + 'name' => 'DryRun', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to perform a dry run.'."\n" + ."\n" + .'During the dry run, the system checks whether the request parameters are valid and whether the requested resources are available. During the dry run, no fileset quota is canceled and no fee is incurred.'."\n" + ."\n" + .'Valid value:'."\n" + ."\n" + .'* true: performs a dry run. The system checks the required parameters, request syntax, service limits, and available Apsara File Storage NAS (NAS) resources. Otherwise, an error message is returned. If the request passes the dry run, the HTTP status code 200 is returned. No value is returned for the FileSystemId parameter.'."\n" + .'* false (default): performs a dry run and sends the request. If the request passes the dry run, a fileset is created.'."\n", + 'type' => 'boolean', + 'required' => false, + 'example' => 'false', + 'default' => 'false', + ], + ], + [ + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => [ + 'description' => 'The client token that is used to ensure the idempotence of the request. You can use the client to generate the token, but you must make sure that the token is unique among different requests.'."\n" + ."\n" + .'The token can contain only ASCII characters and cannot exceed 64 characters in length. For more information, see [How to ensure idempotence](~~25693~~).'."\n" + ."\n" + .'> If you do not specify this parameter, the system automatically uses the request ID as the client token. The request ID may be different for each request.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '123e4567-e89b-12d3-a456-42665544****', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '98696EF0-1607-4E9D-B01D-F20930B6****', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'IllegalCharacters', + 'errorMessage' => 'The parameter contains illegal characters.', + ], + [ + 'errorCode' => 'MissingFileSystemId', + 'errorMessage' => 'FileSystemId is mandatory for this action.', + ], + [ + 'errorCode' => 'MissingDataFlowId', + 'errorMessage' => 'DataFlowId is mandatory for this action.', + ], + ], + 403 => [ + [ + 'errorCode' => 'OperationDenied.DependencyViolation', + 'errorMessage' => 'The operation is denied due to dependancy violation.', + ], + [ + 'errorCode' => 'OperationDenied.ConflictOperation', + 'errorMessage' => 'The operation is denied due to a conflict with an ongoing operation.', + ], + [ + 'errorCode' => 'OperationDenied.DataFlowNotSupported', + 'errorMessage' => 'The operation is not supported.', + ], + ], + [ + [ + 'errorCode' => 'InvalidFileSystem.NotFound', + 'errorMessage' => 'The specified file system does not exist.', + ], + [ + 'errorCode' => 'InvalidDataFlow.NotFound', + 'errorMessage' => 'The specified data flow does not exist.', + ], + [ + 'errorCode' => 'InvalidRefreshPolicy.InvalidParameter', + 'errorMessage' => 'Refresh policy is invalid.', + ], + [ + 'errorCode' => 'InvalidRefreshInterval.OutOfBounds', + 'errorMessage' => 'Refresh interval is out of bounds.', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"98696EF0-1607-4E9D-B01D-F20930B6****\\"\\n}","errorExample":""},{"type":"xml","example":"<ModifyDataFlowAutoRefreshResponse>\\n <RequestId>98696EF0-1607-4E9D-B01D-F20930B6****</RequestId>\\n</ModifyDataFlowAutoRefreshResponse>","errorExample":""}]', + 'title' => 'ModifyDataFlowAutoRefresh', + 'description' => '* This operation is available only to CPFS file systems.'."\n" + .'* Only CPFS V2.2.0 and later support dataflows. You can view the version information on the file system details page in the console.'."\n" + .'* You can modify the AutoRefresh configurations only for the dataflows that are in the `Running` or `Stopped` state.'."\n" + .'* It generally takes 2 to 5 minutes to modify an AutoRefresh configuration. You can call the [DescribeDataFlows](~~2402270~~) operation to query the task of modifying an AutoRefresh configuration.'."\n", + ], + 'ChangeResourceGroup' => [ + 'summary' => 'Changes the resource group to which a file system belongs.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '202852', + 'abilityTreeNodes' => [ + 'FEATUREnasI92PYN', + ], + 'autoTest' => true, + 'tenantRelevance' => 'tenant', + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the zone.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~2412111~~) operation to query the latest region list.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceId', + 'in' => 'query', + 'schema' => [ + 'title' => '资源Id', + 'description' => 'The resource ID.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '31a8e4****', + ], + ], + [ + 'name' => 'NewResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the new resource group.'."\n" + ."\n" + .'You can log on to the [Resource Management console](https://resourcemanager.console.aliyun.com/resource-groups?) to view resource group IDs.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'rg-acfmwavnfdf****', + ], + ], + [ + 'name' => 'ResourceType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The resource type.'."\n" + ."\n" + .'Set the value to filesystem.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'filesystem', + 'enum' => [ + 'filesystem', + ], + ], + ], + ], + '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' => 'BC7C825C-5F65-4B56-BEF6-98C56C7C****', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 404 => [ + [ + 'errorCode' => 'EntityNotExist.ResourceGroup', + 'errorMessage' => 'The resource group does not exist.', + ], + [ + 'errorCode' => 'EntityNotExist.ResourceId', + 'errorMessage' => 'The resource does not exist.', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"BC7C825C-5F65-4B56-BEF6-98C56C7C****\\"\\n}","type":"json"}]', + 'title' => 'ChangeResourceGroup', + ], + 'CreateProtocolService' => [ + 'summary' => 'Creates a protocol service for a Cloud Parallel File Storage (CPFS) file system. The creation takes about 5 to 10 minutes.', + 'methods' => [ + 'post', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'readAndWrite', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'create', + 'riskType' => 'none', + 'chargeType' => 'paid', + 'abilityTreeCode' => '124566', + 'abilityTreeNodes' => [ + 'FEATUREnas155MFA', + ], + 'autoTest' => true, + 'tenantRelevance' => 'tenant', + ], + 'parameters' => [ + [ + 'name' => 'FileSystemId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the file system.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'cpfs-123****', + 'enum' => [], + ], + ], + [ + 'name' => 'ProtocolSpec', + 'in' => 'query', + 'schema' => [ + 'description' => 'The specification of the protocol service.'."\n" + ."\n" + .'Set the value to General (default).'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'* CL2'."\n" + .'* General'."\n" + .'* CL1'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'General', + 'enum' => [ + 'CL2', + 'General', + 'CL1', + ], + ], + ], + [ + 'name' => 'Throughput', + 'in' => 'query', + 'schema' => [ + 'description' => 'The throughput of the protocol service.'."\n" + ."\n" + .'Unit: MB/s.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '8000', + ], + ], + [ + 'name' => 'ProtocolType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The protocol type of the protocol service.'."\n" + ."\n" + .'Valid value: NFS (default). Only NFSv3 is supported.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'NFS', + ], + ], + [ + 'name' => 'Description', + 'in' => 'query', + 'schema' => [ + 'description' => 'The description of the protocol service. The name of the protocol service appears in the console.'."\n" + ."\n" + .'Limits:'."\n" + ."\n" + .'* The description must be 2 to 128 characters in length.'."\n" + .'* The description must start with a letter and cannot start with `http://` or `https://`.'."\n" + .'* The description can contain letters, digits, colons (:), underscores (\\_), and hyphens (-).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'test', + ], + ], + [ + 'name' => 'VpcId', + 'in' => 'query', + 'allowEmptyValue' => true, + 'schema' => [ + 'description' => 'The virtual private cloud (VPC) ID of the protocol service. The VPC ID of the protocol service must be the same as the VPC ID of the file system.'."\n", + 'type' => 'string', + 'required' => false, + 'docRequired' => false, + 'example' => 'vpc-123****', + ], + ], + [ + 'name' => 'VSwitchId', + 'in' => 'query', + 'allowEmptyValue' => true, + 'schema' => [ + 'description' => 'The vSwitch ID of the protocol service.'."\n", + 'type' => 'string', + 'required' => false, + 'docRequired' => false, + 'example' => 'vsw-123****', + ], + ], + [ + 'name' => 'DryRun', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to perform a dry run.'."\n" + ."\n" + .'The dry run checks parameter validity and prerequisites. The dry run does not create a protocol service or incur fees.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'* true: performs only a dry run and does not create the protocol service. The system checks the request format, service limits, prerequisites, and whether the required parameters are specified. If the request fails the dry run, an error message is returned. If the request passes the dry run, the HTTP status code 200 is returned. No value is returned for the ProtocolServiceId parameter.'."\n" + .'* false (default): performs a dry run and sends the request. If the request passes the dry run, a protocol service is created.'."\n", + 'type' => 'boolean', + 'required' => false, + 'example' => 'false', + 'default' => 'false', + ], + ], + [ + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => [ + 'description' => 'The client token that is used to ensure the idempotence of the request. You can use the client to generate the token, but you must make sure that the token is unique among different requests.'."\n" + ."\n" + .'The token can contain only ASCII characters and cannot exceed 64 characters in length. For more information, see [How do I ensure the idempotence?](~~25693~~)'."\n" + ."\n" + .'> If you do not specify this parameter, the system automatically uses the request ID as the client token. The request ID may be different for each request.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '123e4567-e89b-12d3-a456-42665544****', + 'maxLength' => 64, + 'minLength' => 1, + ], + ], + ], + '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' => '98696EF0-1607-4E9D-B01D-F20930B6****', + ], + 'ProtocolServiceId' => [ + 'description' => 'The ID of the protocol service.'."\n", + 'type' => 'string', + 'example' => 'ptc-123****', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'MissingFileSystemId', + 'errorMessage' => 'FileSystemId is mandatory for this action.', + ], + [ + 'errorCode' => 'MissingVpcId', + 'errorMessage' => 'VpcId is mandatory for this action.', + ], + [ + 'errorCode' => 'MissingVSwitchId', + 'errorMessage' => 'VSwitchId is mandatory for this action.', + ], + ], + 403 => [ + [ + 'errorCode' => 'InvalidProtocolSpec.NotSupported', + 'errorMessage' => 'The specified protocol spec does not supported.', + ], + [ + 'errorCode' => 'InvalidNetworkType.NotSupported', + 'errorMessage' => 'The specified network type does not supported.', + ], + [ + 'errorCode' => 'Instance.IncorrectStatus', + 'errorMessage' => 'The specified instance is in an incorrect status.', + ], + [ + 'errorCode' => 'OperationDenied.ProtocolServiceExceedLimit', + 'errorMessage' => 'The protocol service amount exceed file system limit.', + ], + [ + 'errorCode' => 'PermissionDenied.CapacityTooLow', + 'errorMessage' => 'Capacity of file system too low to subscribe protocol service.', + ], + [ + 'errorCode' => 'PermissionDenied.ThroughputInvalid', + 'errorMessage' => 'Standard protocol service should not specified throughput.', + ], + [ + 'errorCode' => 'PermissionDenied.ThroughputTooSmall', + 'errorMessage' => 'Throughput of protocol service too small.', + ], + [ + 'errorCode' => 'PermissionDenied.ThroughputExceed', + 'errorMessage' => 'Throughput of protocol service must less than throughput of file system.', + ], + [ + 'errorCode' => 'InvalidProtocolType.NotSupported', + 'errorMessage' => 'The specified protocol type does not supported.', + ], + [ + 'errorCode' => 'InvalidVSwitchId.IpShortage', + 'errorMessage' => 'The specified vswitch ip shortage.', + ], + [ + 'errorCode' => 'InvalidFset.InUse', + 'errorMessage' => 'Fset already used by other export.', + ], + [ + 'errorCode' => 'InvalidFileSystemPath.InvalidCharacters', + 'errorMessage' => 'The specified filesystem path contains invalid characters.', + ], + [ + 'errorCode' => 'MntPathConflict.InvalidParam', + 'errorMessage' => 'FilesetId and Path must and can only be specified one.', + ], + [ + 'errorCode' => 'OperationDenied.TooManyDepth', + 'errorMessage' => 'The operation is denied due to Fsets path too deep.', + ], + [ + 'errorCode' => 'OperationDenied.InvalidState', + 'errorMessage' => 'The operation is denied due to invalid file system state.', + ], + [ + 'errorCode' => 'OperationDenied.NoProtocolServiceQuota', + 'errorMessage' => 'No protocol service quota.', + ], + [ + 'errorCode' => 'OperationDenied.NotSupported', + 'errorMessage' => 'The operation is denied due to not supported.', + ], + [ + 'errorCode' => 'PermissionDenied.CLThroughputInvalid', + 'errorMessage' => 'Throughput of caching protocol service is invalid.', + ], + [ + 'errorCode' => 'InvalidVpcId.CrossVpcNotSupport.', + 'errorMessage' => 'Cross VPC not support.', + ], + ], + [ + [ + 'errorCode' => 'InvalidParameter.VpcNotFound', + 'errorMessage' => 'The specified VPC does not exist.', + ], + [ + 'errorCode' => 'InvalidParameter.VswNotFound', + 'errorMessage' => 'The specified VSwitch does not exist.', + ], + [ + 'errorCode' => 'InvalidFileSystem.NotFound', + 'errorMessage' => 'The specified file system does not exist.', + ], + [ + 'errorCode' => 'InvalidDescription.InvalidFormat', + 'errorMessage' => 'Description format is invalid.', + ], + [ + 'errorCode' => 'InvalidVpcId.ConflictVpcCidr', + 'errorMessage' => 'Vpc cidr conflict with file system', + ], + [ + 'errorCode' => 'InvalidAccessGroupName.NotFound', + 'errorMessage' => 'The specified access group does not exist.', + ], + [ + 'errorCode' => 'InvalidAccessGroupName.NotAccessRule', + 'errorMessage' => 'There has no rule in access group.', + ], + [ + 'errorCode' => 'OperationDenied.NoStock', + 'errorMessage' => 'The operation is denied due to no stock.', + ], + [ + 'errorCode' => 'PathNotExistInFileSystem.InvalidParam', + 'errorMessage' => 'Given path does not exist in file system.', + ], + [ + 'errorCode' => 'InvalidFsetId.NotFound', + 'errorMessage' => 'The specified Fileset ID does not exist.', + ], + [ + 'errorCode' => 'InvalidParameter.VpcVswitchMismatch', + 'errorMessage' => 'Given vSwitch mismatch with given VPC.', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"98696EF0-1607-4E9D-B01D-F20930B6****\\",\\n \\"ProtocolServiceId\\": \\"ptc-197ed6a00f2b****\\"\\n}","errorExample":""},{"type":"xml","example":"<CreateProtocolServiceResponse>\\n <RequestId>98696EF0-1607-4E9D-B01D-F20930B6****</RequestId>\\n <ProtocolServiceId>ptc-123****</ProtocolServiceId>\\n</CreateProtocolServiceResponse>","errorExample":""}]', + 'title' => 'CreateProtocolService', + 'description' => '* This operation is available only to Cloud Parallel File Storage (CPFS) file systems.'."\n" + ."\n" + .'* Only CPFS V2.3.0 and later support protocol services. You can query the version information of the file system by calling the [DescribeFileSystems](~~163314~~) operation.'."\n" + ."\n" + .'* Protocol service types'."\n" + ."\n" + .' Protocol services are classified into general-purpose protocol services and cache protocol services. Different from general-purpose protocol services, cache protocol services can cache hot data. If data exists in the cache, the bandwidth of the cache protocol service may exceed the bandwidth of the CPFS file system, reaching the maximum bandwidth specified for the protocol service.'."\n" + ."\n" + .' * General-purpose protocol services: provide NFS access and [directory-level mount targets](~~427175~~) for CPFS file systems. You do not need to configure a POSIX client to manage clusters. The compliance package check feature is free of charge.'."\n" + .' * Cache protocol services: provide the server memory cache based on the least recently used (LRU) policy. When data is cached in the memory, CPFS provides higher internal bandwidth. Cache protocol services are divided into Cache L1 and Cache L2 specifications. The differences are the internal bandwidth size and memory cache size.'."\n" + ."\n" + .' **'."\n" + ."\n" + .' **Note** You are charged for using cache protocol services, which are in invitational preview. For more information about the billing method of cache protocol services, see [Billable items](~~111858~~). If you have any feedback or questions, you can join the DingTalk group (group number: 31045006299).'."\n" + ."\n" + .'* Protocol Type'."\n" + ."\n" + .' Only NFSv3 is supported.'."\n" + ."\n" + .'* Others'."\n" + ."\n" + .' * Only one protocol service can be created for a CPFS file system.'."\n" + .' * A protocol service can use a maximum of 32 IP addresses that are allocated by a specified vSwitch. Make sure that the vSwitch can provide sufficient IP addresses.'."\n", + ], + 'DeleteProtocolService' => [ + 'summary' => 'Deletes a protocol service of a Cloud Parallel File Storage (CPFS) file system.', + 'methods' => [ + 'post', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'delete', + 'riskType' => 'high', + 'chargeType' => 'paid', + 'abilityTreeCode' => '124951', + 'abilityTreeNodes' => [ + 'FEATUREnasQ7YV89', + 'FEATUREnas0GUIX5', + 'FEATUREnasRXWLI5', + ], + 'autoTest' => true, + 'tenantRelevance' => 'tenant', + ], + 'parameters' => [ + [ + 'name' => 'ProtocolServiceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the protocol service.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'ptc-123****', + ], + ], + [ + 'name' => 'FileSystemId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the file system.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'cpfs-123****', + 'enum' => [], + ], + ], + [ + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => [ + 'description' => 'The client token that is used to ensure the idempotence of the request. You can use the client to generate the token, but you must make sure that the token is unique among different requests.'."\n" + ."\n" + .'The token can contain only ASCII characters and cannot exceed 64 characters in length. For more information, see [How do I ensure the idempotence?](~~25693~~)'."\n" + ."\n" + .'> If you do not specify this parameter, the system automatically uses the request ID as the client token. The request ID may be different for each request.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '123e4567-e89b-12d3-a456-42665544****', + 'maxLength' => 64, + 'minLength' => 1, + ], + ], + [ + 'name' => 'DryRun', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to perform only a dry run, without performing the actual request. The dry run checks parameter validity and prerequisites. The dry run does not delete the specified protocol service.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'* true: performs only a dry run. The system checks the required parameters, request syntax, and service limits. If the request fails the dry run, an error message is returned. If the request passes the dry run, the HTTP status code 200 is returned.'."\n" + .'* false (default): performs a dry run and sends the request. If the request passes the dry run, the specified protocol service is deleted.'."\n", + 'type' => 'boolean', + 'required' => false, + 'example' => 'false', + 'default' => 'false', + ], + ], + ], + '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' => '98696EF0-1607-4E9D-B01D-F20930B6****', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'MissingFileSystemId', + 'errorMessage' => 'FileSystemId is mandatory for this action.', + ], + [ + 'errorCode' => 'MissingProtocolServiceId', + 'errorMessage' => 'ProtocolServiceId is mandatory for this action.', + ], + ], + 403 => [ + [ + 'errorCode' => 'Instance.IncorrectStatus', + 'errorMessage' => 'The specified instance is in an incorrect status.', + ], + [ + 'errorCode' => 'OperationDenied.InvalidPtcStatus', + 'errorMessage' => 'The operation is denied due to invalid protocol service status.', + ], + [ + 'errorCode' => 'OperationDenied.InvalidState', + 'errorMessage' => 'The operation is denied due to invalid file system state.', + ], + [ + 'errorCode' => 'OperationDenied.NotSupported', + 'errorMessage' => 'The operation is denied due to not supported.', + ], + ], + [ + [ + 'errorCode' => 'InvalidProtocolService.NotFound', + 'errorMessage' => 'The specified protocol service does not exist.', + ], + [ + 'errorCode' => 'InvalidFileSystem.NotFound', + 'errorMessage' => 'The specified file system does not exist.', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"98696EF0-1607-4E9D-B01D-F20930B6****\\"\\n}","errorExample":""},{"type":"xml","example":"<DeleteProtocolServiceResponse>\\n <RequestId>98696EF0-1607-4E9D-B01D-F20930B6****</RequestId>\\n</DeleteProtocolServiceResponse>","errorExample":""}]', + 'title' => 'DeleteProtocolService', + 'description' => '* This operation is available only to Cloud Parallel File Storage (CPFS) file systems.'."\n" + .'* When you delete a protocol service, the export directories in the protocol service are also deleted.'."\n", + ], + 'ModifyProtocolService' => [ + 'summary' => 'Modifies a protocol service. You can modify the description of a protocol service.', + 'methods' => [ + 'post', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '124952', + 'abilityTreeNodes' => [ + 'FEATUREnasQ7YV89', + 'FEATUREnas0GUIX5', + ], + 'autoTest' => true, + 'tenantRelevance' => 'tenant', + ], + 'parameters' => [ + [ + 'name' => 'ProtocolServiceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the protocol service.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'ptc-123****', + ], + ], + [ + 'name' => 'FileSystemId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the file system.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'cpfs-123****', + 'enum' => [], + ], + ], + [ + 'name' => 'Description', + 'in' => 'query', + 'allowEmptyValue' => true, + 'schema' => [ + 'description' => 'The description of the protocol service.'."\n" + ."\n" + .'Limits:'."\n" + ."\n" + .'* The description must be 2 to 128 characters in length.'."\n" + .'* The description must start with a letter and cannot start with `http://` or `https://`.'."\n" + .'* The description can contain letters, digits, colons (:), underscores (\\_), and hyphens (-).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'test', + ], + ], + [ + 'name' => 'DryRun', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to perform only a dry run, without performing the actual request. The dry run checks parameter validity and prerequisites. The dry run does not modify a file system or incur fees.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'* true: performs only a dry run and does not modify the protocol service. The system checks the request format, service limits, prerequisites, and whether the required parameters are specified. If the request fails the dry run, an error message is returned. If the request passes the dry run, a 200 HTTP status code is returned.'."\n" + .'* false (default): performs a dry run and performs the actual request. If the request passes the dry run, the service protocol is modified.'."\n", + 'type' => 'boolean', + 'required' => false, + 'example' => 'false', + 'default' => 'false', + ], + ], + [ + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => [ + 'description' => 'The client token that is used to ensure the idempotence of the request. You can use the client to generate the token, but you must make sure that the token is unique among different requests.'."\n" + ."\n" + .'The token can contain only ASCII characters and cannot exceed 64 characters in length. For more information, see [How do I ensure the idempotence?](~~25693~~)'."\n" + ."\n" + .'> If you do not specify this parameter, the system automatically uses the request ID as the client token. The request ID may be different for each request.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '123e4567-e89b-12d3-a456-42665544****', + 'maxLength' => 64, + 'minLength' => 1, + ], + ], + ], + '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' => '98696EF0-1607-4E9D-B01D-F20930B6****', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'MissingFileSystemId', + 'errorMessage' => 'FileSystemId is mandatory for this action.', + ], + [ + 'errorCode' => 'MissingProtocolServiceId', + 'errorMessage' => 'ProtocolServiceId is mandatory for this action.', + ], + ], + 403 => [ + [ + 'errorCode' => 'Instance.IncorrectStatus', + 'errorMessage' => 'The specified instance is in an incorrect status.', + ], + [ + 'errorCode' => 'InvalidProtocolSpec.NotSupported', + 'errorMessage' => 'The specified protocol spec does not supported.', + ], + [ + 'errorCode' => 'PermissionDenied.ThroughputInvalid', + 'errorMessage' => 'Standard protocol service should not specified throughput.', + ], + [ + 'errorCode' => 'InvalidVSwitchId.IpShortage', + 'errorMessage' => 'The specified vswitch ip shortage.', + ], + [ + 'errorCode' => 'OperationDenied.InvalidPtcStatus', + 'errorMessage' => 'The operation is denied due to invalid protocol service status.', + ], + [ + 'errorCode' => 'OperationDenied.InvalidState', + 'errorMessage' => 'The operation is denied due to invalid file system state.', + ], + [ + 'errorCode' => 'OperationDenied.NotSupported', + 'errorMessage' => 'The operation is denied due to not supported.', + ], + [ + 'errorCode' => 'PermissionDenied.CLThroughputInvalid', + 'errorMessage' => 'Throughput of caching protocol service is invalid.', + ], + ], + [ + [ + 'errorCode' => 'InvalidFileSystem.NotFound', + 'errorMessage' => 'The specified file system does not exist.', + ], + [ + 'errorCode' => 'InvalidProtocolService.NotFound', + 'errorMessage' => 'The specified protocol service does not exist.', + ], + [ + 'errorCode' => 'InvalidDescription.InvalidFormat', + 'errorMessage' => 'Description format is invalid.', + ], + [ + 'errorCode' => 'OperationDenied.NoStock', + 'errorMessage' => 'The operation is denied due to no stock.', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"98696EF0-1607-4E9D-B01D-F20930B6****\\"\\n}","errorExample":""},{"type":"xml","example":"<ModifyProtocolServiceResponse>\\n <RequestId>98696EF0-1607-4E9D-B01D-F20930B6****</RequestId>\\n</ModifyProtocolServiceResponse>","errorExample":""}]', + 'title' => 'ModifyProtocolService', + 'description' => 'This operation is available only to Cloud Parallel File Storage (CPFS) file systems on the China site (aliyun.com).'."\n", + ], + 'DescribeProtocolService' => [ + 'summary' => 'Queries the information about protocol services.', + 'methods' => [ + 'get', + 'post', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'list', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '124567', + 'abilityTreeNodes' => [ + 'FEATUREnasQ7YV89', + 'FEATUREnas0GUIX5', + ], + 'autoTest' => true, + 'tenantRelevance' => 'tenant', + ], + 'parameters' => [ + [ + 'name' => 'ProtocolServiceIds', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the protocol service.'."\n" + ."\n" + .'* Format: CSV.'."\n" + .'* Limit: You can specify a maximum of 10 protocol service IDs.'."\n", + 'type' => 'string', + 'required' => false, + 'docRequired' => false, + 'example' => 'ptc-197ed6a00f2b****,ptc-196ed6a00f2b****', + ], + ], + [ + 'name' => 'Status', + 'in' => 'query', + 'schema' => [ + 'description' => 'The status of the protocol service.'."\n" + ."\n" + .'Format: CSV.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'* Creating: The protocol service is being created.'."\n" + .'* Starting: The protocol service is being started.'."\n" + .'* Running: The protocol service is running.'."\n" + .'* Updating: The protocol service is being updated.'."\n" + .'* Deleting: The protocol service is being deleted.'."\n" + .'* Stopping: The protocol service is being stopped.'."\n" + .'* Stopped: The protocol service is stopped.'."\n", + 'type' => 'string', + 'required' => false, + 'docRequired' => false, + 'example' => 'Running,Updating', + ], + ], + [ + 'name' => 'NextToken', + 'in' => 'query', + 'allowEmptyValue' => true, + 'schema' => [ + 'description' => 'The pagination token that is used in the next request to retrieve a new page of results. You do not need to specify this parameter for the first request. You must specify the token that is obtained from the previous query as the value of NextToken.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'aBcdg==', + 'enum' => [], + ], + ], + [ + 'name' => 'MaxResults', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of results for each query.'."\n" + ."\n" + .'* Maximum value: 100.'."\n" + .'* Minimum value: 10.'."\n" + .'* Default value: 20.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'maximum' => '100', + 'minimum' => '10', + 'example' => '20', + 'default' => '20', + ], + ], + [ + 'name' => 'FileSystemId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the file system.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'cpfs-099394bd928c****', + 'enum' => [], + ], + ], + [ + 'name' => 'Description', + 'in' => 'query', + 'schema' => [ + 'description' => 'The description or a part of the description of the protocol service.'."\n" + ."\n" + .'Limits:'."\n" + ."\n" + .'* The description must be 2 to 128 characters in length.'."\n" + .'* The description must start with a letter and cannot start with `http://` or `https://`.'."\n" + .'* The description can contain letters, digits, colons (:), underscores (\\_), and hyphens (-).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'test', + 'maxLength' => 128, + 'minLength' => 2, + ], + ], + [ + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => [ + 'description' => 'The client token that is used to ensure the idempotence of the request. You can use the client to generate the token, but you must make sure that the token is unique among different requests. The token can contain only ASCII characters and cannot exceed 64 characters in length. For more information, see [How do I ensure the idempotence?](~~25693~~)'."\n" + ."\n" + .'> If you do not specify this parameter, the system automatically uses the request ID as the client token. The request ID may be different for each request.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E', + 'maxLength' => 64, + 'minLength' => 1, + ], + ], + ], + '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' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E', + ], + 'NextToken' => [ + 'description' => 'A pagination token. It can be used in the next request to retrieve a new page of results.'."\n", + 'type' => 'string', + 'example' => 'aBcdeg==', + ], + 'ProtocolServices' => [ + 'description' => 'The information about protocol service list.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The information about the protocol service.'."\n", + 'type' => 'object', + 'properties' => [ + 'FileSystemId' => [ + 'description' => 'The ID of the file system.'."\n", + 'type' => 'string', + 'example' => 'cpfs-099394bd928c****', + ], + 'ProtocolServiceId' => [ + 'description' => 'The ID of the protocol service.'."\n", + 'type' => 'string', + 'example' => 'ptc-197ed6a00f2b****', + ], + 'ProtocolSpec' => [ + 'description' => 'The specification of the protocol service.'."\n" + ."\n" + .'* Valid value: General.'."\n" + .'* Default value: General.'."\n", + 'type' => 'string', + 'example' => 'General', + ], + 'ProtocolThroughput' => [ + 'description' => 'The throughput of the protocol service. Unit: MB/s.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '500', + ], + 'InstanceRAM' => [ + 'description' => 'The memory cache size of the protocol service. Unit: GiB.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '0', + ], + 'InstanceBaseThroughput' => [ + 'description' => 'The base throughput of the protocol service. Unit: MB/s.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '100', + ], + 'InstanceBurstThroughput' => [ + 'description' => 'The burst throughput of the protocol service. Unit: MB/s.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '100', + ], + 'MountTargetCount' => [ + 'description' => 'The total number of CPFS directories and filesets exported in the protocol service.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '5', + ], + 'ProtocolType' => [ + 'description' => 'The protocol type supported by the protocol service.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'* NFS: The protocol service supports access over the Network File System (NFS) protocol.'."\n", + 'type' => 'string', + 'example' => 'NFS', + ], + 'Status' => [ + 'description' => 'The status of the protocol service.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'* Creating: The protocol service is being created.'."\n" + .'* Starting: The protocol service is being started.'."\n" + .'* Running: The protocol service is running.'."\n" + .'* Updating: The protocol service is being updated.'."\n" + .'* Deleting: The protocol service is being deleted.'."\n" + .'* Stopping: The protocol service is being stopped.'."\n" + .'* Stopped: The protocol service is stopped.'."\n", + 'type' => 'string', + 'example' => 'Running', + ], + 'Description' => [ + 'description' => 'The description of the protocol service.'."\n" + ."\n" + .'Limits:'."\n" + ."\n" + .'* The description must be 2 to 128 characters in length.'."\n" + .'* The description must start with a letter and cannot start with `http://` or `https://`.'."\n" + .'* The description can contain letters, digits, colons (:), underscores (\\_), and hyphens (-).'."\n", + 'type' => 'string', + 'example' => 'test', + ], + 'CreateTime' => [ + 'description' => 'The time when the protocol service was created. The time is displayed in UTC.'."\n", + 'type' => 'string', + 'example' => '2018-12-12T07:28:38Z', + ], + 'ModifyTime' => [ + 'description' => 'The time when the protocol service was modified. The time is displayed in UTC.'."\n", + 'type' => 'string', + 'example' => '2018-12-12T07:28:38Z', + ], + 'VpcId' => [ + 'title' => '协议服务关联的VPC ID', + 'description' => 'The VPC ID associated with the protocol service.'."\n", + 'type' => 'string', + 'example' => 'vpc-123xxx', + ], + 'VSwitchId' => [ + 'title' => '协议服务关联的VSW ID', + 'description' => 'The VSW ID associated with the protocol service.'."\n", + 'type' => 'string', + 'example' => 'vsw-123xxx', + ], + ], + ], + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'MissingFileSystemId', + 'errorMessage' => 'FileSystemId is mandatory for this action.', + ], + [ + 'errorCode' => 'InvalidParam.TooManyProtocolServiceIds', + 'errorMessage' => 'Too many protocol service ids given.', + ], + ], + 403 => [ + [ + 'errorCode' => 'InvalidStatus.NotSupported', + 'errorMessage' => 'The specified protocol service status does not support.', + ], + ], + [ + [ + 'errorCode' => 'InvalidFileSystem.NotFound', + 'errorMessage' => 'The specified file system does not exist.', + ], + [ + 'errorCode' => 'InvalidParameter.InvalidNextToken', + 'errorMessage' => 'The specified NextToken is invaild.', + ], + [ + 'errorCode' => 'InvalidParameter.InvalidMaxResults', + 'errorMessage' => 'The specified MaxResults is invalid.', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E\\",\\n \\"NextToken\\": \\"aBcdeg==\\",\\n \\"ProtocolServices\\": [\\n {\\n \\"FileSystemId\\": \\"cpfs-099394bd928c****\\",\\n \\"ProtocolServiceId\\": \\"ptc-197ed6a00f2b****\\",\\n \\"ProtocolSpec\\": \\"General\\",\\n \\"ProtocolThroughput\\": 500,\\n \\"InstanceRAM\\": 0,\\n \\"InstanceBaseThroughput\\": 100,\\n \\"InstanceBurstThroughput\\": 100,\\n \\"MountTargetCount\\": 5,\\n \\"ProtocolType\\": \\"NFS\\",\\n \\"Status\\": \\"Running\\",\\n \\"Description\\": \\"此协议服务的描述\\",\\n \\"CreateTime\\": \\"2018-12-12T07:28:38Z\\",\\n \\"ModifyTime\\": \\"2018-12-12T07:28:38Z\\",\\n \\"VpcId\\": \\"vpc-123xxx\\",\\n \\"VSwitchId\\": \\"vsw-123xxx\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"<DescribeProtocolServiceResponse>\\n <RequestId>473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E</RequestId>\\n <NextToken>aBcdeg==</NextToken>\\n <ProtocolServices>\\n <ProtocolService>\\n <FileSystemId>cpfs-123****</FileSystemId>\\n <ProtocolServiceId>ptc-123***</ProtocolServiceId>\\n <ProtocolSpec>General</ProtocolSpec>\\n <ProtocolThroughput>500</ProtocolThroughput>\\n <InstanceRAM>0</InstanceRAM>\\n <InstanceBaseThroughput>100</InstanceBaseThroughput>\\n <InstanceBurstThroughput>100</InstanceBurstThroughput>\\n <MountTargetCount>5</MountTargetCount>\\n <ProtocolType>NFS</ProtocolType>\\n <Status>Running</Status>\\n <Description>此协议服务的描述</Description>\\n <CreateTime>2018-12-12T07:28:38Z</CreateTime>\\n <ModifyTime>2018-12-12T07:28:38Z</ModifyTime>\\n </ProtocolService>\\n </ProtocolServices>\\n</DescribeProtocolServiceResponse>","errorExample":""}]', + 'title' => 'DescribeProtocolService', + 'description' => 'This operation is available only to Cloud Parallel File Storage (CPFS) file systems.'."\n", + ], + 'CreateProtocolMountTarget' => [ + 'summary' => 'Creates an export directory for a protocol service.', + 'methods' => [ + 'post', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'readAndWrite', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'create', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '124954', + 'abilityTreeNodes' => [ + 'FEATUREnasQ7YV89', + 'FEATUREnas0GUIX5', + ], + 'autoTest' => true, + 'tenantRelevance' => 'tenant', + ], + 'parameters' => [ + [ + 'name' => 'ProtocolServiceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the protocol service.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'ptc-123****', + ], + ], + [ + 'name' => 'FileSystemId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the file system.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'cpfs-123****', + 'enum' => [], + ], + ], + [ + 'name' => 'VpcId', + 'in' => 'query', + 'allowEmptyValue' => true, + 'schema' => [ + 'description' => 'The VPC ID of the export directory.'."\n", + 'type' => 'string', + 'required' => false, + 'docRequired' => false, + 'example' => 'vpc-123****', + ], + ], + [ + 'name' => 'VSwitchId', + 'in' => 'query', + 'allowEmptyValue' => true, + 'schema' => [ + 'description' => 'The vSwitch ID of the export directory.'."\n" + ."\n" + .'If the storage redundancy type of the file system is not zone-redundant (ZRS) and the VpcId is set, this field is required.'."\n", + 'type' => 'string', + 'required' => false, + 'docRequired' => false, + 'example' => 'vsw-123****', + ], + ], + [ + 'name' => 'FsetId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the fileset that you want to export.'."\n" + ."\n" + .'Limits:'."\n" + ."\n" + .'* The fileset already exists.'."\n" + .'* You can create only one export directory for a fileset.'."\n" + .'* You can specify either a fileset or a path.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'fset-123****', + ], + ], + [ + 'name' => 'Path', + 'in' => 'query', + 'schema' => [ + 'description' => 'The path of the CPFS directory that you want to export.'."\n" + ."\n" + .'Limits:'."\n" + ."\n" + .'* The directory already exists in the CPFS file system.'."\n" + .'* You can create only one export directory for a directory.'."\n" + .'* You can specify either a fileset or a path.'."\n" + ."\n" + .'Format:'."\n" + ."\n" + .'* The path must be 1 to 1,024 characters in length.'."\n" + .'* The path must be encoded in UTF-8.'."\n" + .'* The path must start and end with a forward slash (/). The root directory is `/`.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '/', + 'maxLength' => 1024, + 'minLength' => 1, + ], + ], + [ + 'name' => 'AccessGroupName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the permission group.'."\n" + ."\n" + .'Default value: DEFAULT_VPC_GROUP_NAME.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'DEFAULT_VPC_GROUP_NAME', + 'default' => 'DEFAULT_VPC_GROUP_NAME', + ], + ], + [ + 'name' => 'Description', + 'in' => 'query', + 'schema' => [ + 'description' => 'The description of the export directory for the protocol service. The **name of the export directory** appears in the console.'."\n" + ."\n" + .'Limits:'."\n" + ."\n" + .'* The description must be 2 to 128 characters in length.'."\n" + .'* The description must start with a letter but cannot start with `http://` or `https://`.'."\n" + .'* The description can contain letters, digits, colons (:), underscores (\\_), and hyphens (-).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'test', + ], + ], + [ + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => [ + 'description' => 'The client token that is used to ensure the idempotence of the request. You can use the client to generate the token, but you must make sure that the token is unique among different requests.'."\n" + ."\n" + .'The token can contain only ASCII characters and cannot exceed 64 characters in length. For more information, see [How do I ensure the idempotence?](~~25693~~)'."\n" + ."\n" + .'> If you do not specify this parameter, the system automatically uses the request ID as the client token. The request ID may be different for each request.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3****', + 'maxLength' => 64, + 'minLength' => 1, + ], + ], + [ + 'name' => 'DryRun', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to perform a dry run. The dry run checks parameter validity and prerequisites. The dry run does not create an export directory or incur fees.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'* true: performs a dry run. The system checks the request format, service limits, prerequisites, and whether the required parameters are specified. If the request fails the dry run, an error message is returned. If the request passes the dry run, the HTTP status code 200 is returned. No value is returned for the ExportId parameter.'."\n" + .'* false (default): performs a dry run and sends the request. If the request passes the dry run, an export directory is created.'."\n", + 'type' => 'boolean', + 'required' => false, + 'example' => 'true', + 'default' => 'false', + ], + ], + [ + 'name' => 'VSwitchIds', + 'in' => 'query', + 'allowEmptyValue' => true, + 'style' => 'repeatList', + 'schema' => [ + 'title' => '同城冗余虚拟交换机ID列表', + 'description' => 'The list of vSwitch IDs of the export directory.'."\n", + 'type' => 'array', + 'items' => [ + 'title' => '同城冗余虚拟交换机ID列表', + 'description' => 'The list of vSwitch IDs of the export directory.'."\n" + ."\n" + .'If the storage redundancy type of the file system is zone-redundant (ZRS) and the VpcId is set, this field must be set to the IDs of vSwitches in three different zones under the VPC.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'vsw-123xxx', + ], + 'required' => false, + 'maxItems' => 3, + 'minItems' => 0, + ], + ], + ], + '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' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E', + ], + 'ExportId' => [ + 'description' => 'The ID of the export directory for the protocol service.'."\n", + 'type' => 'string', + 'example' => 'exp-123****', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'MissingFileSystemId', + 'errorMessage' => 'FileSystemId is mandatory for this action.', + ], + [ + 'errorCode' => 'MissingProtocolServiceId', + 'errorMessage' => 'ProtocolServiceId is mandatory for this action.', + ], + ], + 403 => [ + [ + 'errorCode' => 'Instance.IncorrectStatus', + 'errorMessage' => 'The specified instance is in an incorrect status.', + ], + [ + 'errorCode' => 'InvalidVSwitchId.IpShortage', + 'errorMessage' => 'The specified vswitch ip shortage.', + ], + [ + 'errorCode' => 'InvalidFset.InUse', + 'errorMessage' => 'Fset already used by other export.', + ], + [ + 'errorCode' => 'MntPathConflict.InvalidParam', + 'errorMessage' => 'FilesetId and Path must and can only be specified one.', + ], + [ + 'errorCode' => 'OperationDenied.TooManyDepth', + 'errorMessage' => 'The operation is denied due to Fsets path too deep.', + ], + [ + 'errorCode' => 'OperationDenied.InvalidPtcStatus', + 'errorMessage' => 'The operation is denied due to invalid protocol service status.', + ], + [ + 'errorCode' => 'OperationDenied.InvalidState', + 'errorMessage' => 'The operation is denied due to invalid file system state.', + ], + [ + 'errorCode' => 'OperationDenied.CrossVPCExceedLimit', + 'errorMessage' => 'Cross vpc mount exceed limit.', + ], + [ + 'errorCode' => 'OperationDenied.NoMountTargetQuota', + 'errorMessage' => 'No mount target quota on this protocol service.', + ], + [ + 'errorCode' => 'OperationDenied.NotSupported', + 'errorMessage' => 'The operation is denied due to not supported.', + ], + ], + [ + [ + 'errorCode' => 'InvalidFileSystem.NotFound', + 'errorMessage' => 'The specified file system does not exist.', + ], + [ + 'errorCode' => 'InvalidProtocolService.NotFound', + 'errorMessage' => 'The specified protocol service does not exist.', + ], + [ + 'errorCode' => 'InvalidVpcId.ConflictVpcCidr', + 'errorMessage' => 'Vpc cidr conflict with file system', + ], + [ + 'errorCode' => 'InvalidFsetId.NotFound', + 'errorMessage' => 'The specified fileset ID does not exist.', + ], + [ + 'errorCode' => 'Fset.IncorrectStatus', + 'errorMessage' => 'The specified fset is in an incorrect status.', + ], + [ + 'errorCode' => 'InvalidFileSystemPath.InvalidCharacters', + 'errorMessage' => 'The specified fileset path contains invalid characters.', + ], + [ + 'errorCode' => 'InvalidAccessGroupName.NotFound', + 'errorMessage' => 'The specified access group does not exist.', + ], + [ + 'errorCode' => 'InvalidAccessGroupName.NotAccessRule', + 'errorMessage' => 'There has no rule in access group.', + ], + [ + 'errorCode' => 'InvalidDescription.InvalidFormat', + 'errorMessage' => 'Description format is invalid.', + ], + [ + 'errorCode' => 'InvalidParameter.VpcNotFound', + 'errorMessage' => 'The specified VPC does not exist.', + ], + [ + 'errorCode' => 'InvalidParameter.VswNotFound', + 'errorMessage' => 'The specified VSwitch does not exist.', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E\\",\\n \\"ExportId\\": \\"exp-19abf5beab8d****\\"\\n}","errorExample":""},{"type":"xml","example":"<CreateProtocolMountTargetResponse>\\n <RequestId>473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E</RequestId>\\n <ExportId>exp-123****</ExportId>\\n</CreateProtocolMountTargetResponse>","errorExample":""}]', + 'title' => 'CreateProtocolMountTarget', + 'description' => '* This operation is available only to Cloud Parallel File Storage (CPFS) file systems.'."\n" + ."\n" + .'* Prerequisites'."\n" + ."\n" + .' A protocol service is created.'."\n" + ."\n" + .'* Others'."\n" + ."\n" + .' * The virtual private cloud (VPC) CIDR block of the export directory for the protocol service cannot overlap with the VPC CIDR block of the file system.'."\n" + .' * The VPC CIDR blocks of multiple export directories of a protocol service cannot overlap.'."\n" + .' * You can create a maximum of 10 export directories for a protocol service.'."\n" + .' * A protocol service can use a maximum of 32 IP addresses that are allocated by a specified vSwitch. Make sure that the vSwitch can provide sufficient IP addresses.'."\n", + ], + 'DeleteProtocolMountTarget' => [ + 'summary' => 'Deletes an export directory of a protocol service.', + 'methods' => [ + 'post', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'delete', + 'riskType' => 'high', + 'chargeType' => 'free', + 'abilityTreeCode' => '131496', + 'abilityTreeNodes' => [ + 'FEATUREnas5IJRRZ', + ], + 'autoTest' => true, + 'tenantRelevance' => 'tenant', + ], + 'parameters' => [ + [ + 'name' => 'ProtocolServiceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the protocol service.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'ptc-123****', + ], + ], + [ + 'name' => 'FileSystemId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the file system.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'cpfs-123****', + ], + ], + [ + 'name' => 'ExportId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the export directory.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'exp-123****', + ], + ], + [ + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => [ + 'description' => 'The client token that is used to ensure the idempotence of the request. You can use the client to generate the token, but you must make sure that the token is unique among different requests.'."\n" + ."\n" + .'The token can contain only ASCII characters and cannot exceed 64 characters in length. For more information, see [How do I ensure the idempotence?](~~25693~~)'."\n" + ."\n" + .'> If you do not specify this parameter, the system automatically uses the request ID as the client token. The request ID may be different for each request.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '123e4567-e89b-12d3-a456-42665544****', + ], + ], + [ + 'name' => 'DryRun', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to perform only a dry run, without performing the actual request. The dry run checks parameter validity and prerequisites. The dry run does not delete the specified export directory or incur fees.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'* true: performs only a dry run. The system checks the required parameters, request syntax, and service limits. If the request fails the dry run, an error message is returned. If the request passes the dry run, the HTTP status code 200 is returned.'."\n" + .'* false (default): performs a dry run and sends the request. If the request passes the dry run, the specified export directory is deleted.'."\n", + 'type' => 'boolean', + 'required' => false, + 'example' => 'true', + ], + ], + ], + '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' => '98696EF0-1607-4E9D-B01D-F20930B6****', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'MissingFileSystemId', + 'errorMessage' => 'FileSystemId is mandatory for this action.', + ], + [ + 'errorCode' => 'MissingExportId', + 'errorMessage' => 'ExportId is mandatory for this action.', + ], + [ + 'errorCode' => 'MissingProtocolServiceId', + 'errorMessage' => 'ProtocolServiceId is mandatory for this action.', + ], + ], + 403 => [ + [ + 'errorCode' => 'Instance.IncorrectStatus', + 'errorMessage' => 'The specified instance is in an incorrect status.', + ], + [ + 'errorCode' => 'OperationDenied.InvalidMntStatus', + 'errorMessage' => 'The operation is denied due to invalid protocol mount targte status.', + ], + [ + 'errorCode' => 'OperationDenied.InvalidPtcStatus', + 'errorMessage' => 'The operation is denied due to invalid protocol service status.', + ], + [ + 'errorCode' => 'OperationDenied.InvalidState', + 'errorMessage' => 'The operation is denied due to invalid file system state.', + ], + [ + 'errorCode' => 'OperationDenied.NotSupported', + 'errorMessage' => 'The operation is denied due to not supported.', + ], + ], + [ + [ + 'errorCode' => 'InvalidFileSystem.NotFound', + 'errorMessage' => 'The specified file system does not exist.', + ], + [ + 'errorCode' => 'InvalidProtocolService.NotFound', + 'errorMessage' => 'The specified protocol service does not exist.', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"98696EF0-1607-4E9D-B01D-F20930B6****\\"\\n}","errorExample":""},{"type":"xml","example":"<DeleteProtocolMountTargetResponse>\\n <RequestId>473469C7-AA6F-4DC5-B3DB-A3DC0*********</RequestId>\\n</DeleteProtocolMountTargetResponse>","errorExample":""}]', + 'title' => 'DeleteProtocolMountTarget', + 'description' => 'This operation is available only to Cloud Parallel File Storage (CPFS) file systems on the China site (aliyun.com).'."\n", + ], + 'ModifyProtocolMountTarget' => [ + 'summary' => 'Modifies the export directory parameters of a protocol service. Only the description can be modified. The virtual private cloud (VPC) ID and vSwitch ID cannot be changed. To change these IDs, you must delete the export directory and create a new one.', + 'methods' => [ + 'post', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '124957', + 'abilityTreeNodes' => [ + 'FEATUREnasQ7YV89', + 'FEATUREnas0GUIX5', + ], + 'autoTest' => true, + 'tenantRelevance' => 'tenant', + ], + 'parameters' => [ + [ + 'name' => 'ProtocolServiceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the protocol service.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'ptc-197ed6a00f2b****', + ], + ], + [ + 'name' => 'ExportId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the export directory for the protocol service.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'exp-19abf5beab8d****', + ], + ], + [ + 'name' => 'FileSystemId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the file system.'."\n", + 'type' => 'string', + 'deprecated' => false, + 'required' => true, + 'docRequired' => true, + 'example' => 'cpfs-099394bd928c****', + ], + ], + [ + 'name' => 'Description', + 'in' => 'query', + 'schema' => [ + 'description' => 'The description of the export directory for the protocol service.'."\n" + ."\n" + .'Limits:'."\n" + ."\n" + .'* The description must be 2 to 128 characters in length.'."\n" + .'* The description must start with a letter but cannot start with `http://` or `https://`.'."\n" + .'* The description can contain letters, digits, colons (:), underscores (\\_), and hyphens (-).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'test', + ], + ], + [ + 'name' => 'DryRun', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to perform only a dry run, without performing the actual request. The dry run checks parameter validity and prerequisites. The dry run does not modify the specified export directory or incur fees.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'* true: performs only a dry run. The system checks the required parameters, request syntax, and service limits. If the request fails the dry run, an error message is returned. If the request passes the dry run, the HTTP status code 200 is returned.'."\n" + .'* false (default): performs a dry run and sends the request.'."\n", + 'type' => 'boolean', + 'required' => false, + 'example' => 'true', + 'default' => 'false', + ], + ], + [ + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => [ + 'description' => 'The client token that is used to ensure the idempotence of the request. You can use the client to generate the token, but you must make sure that the token is unique among different requests.'."\n" + ."\n" + .'The token can contain only ASCII characters and cannot exceed 64 characters in length. For more information, see [How do I ensure the idempotence?](~~25693~~)'."\n" + ."\n" + .'> If you do not specify this parameter, the system automatically uses the request ID as the client token. The request ID may be different for each request.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E', + 'maxLength' => 64, + 'minLength' => 1, + ], + ], + ], + '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' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'MissingFileSystemId', + 'errorMessage' => 'FileSystemId is mandatory for this action.', + ], + [ + 'errorCode' => 'MissingExportId', + 'errorMessage' => 'ExportId is mandatory for this action.', + ], + [ + 'errorCode' => 'MissingAccessGroupName', + 'errorMessage' => 'AccessGroupName is mandatory for this action.', + ], + [ + 'errorCode' => 'MissingProtocolServiceId', + 'errorMessage' => 'ProtocolServiceId is mandatory for this action.', + ], + ], + 403 => [ + [ + 'errorCode' => 'Instance.IncorrectStatus', + 'errorMessage' => 'The specified instance is in an incorrect status.', + ], + [ + 'errorCode' => 'OperationDenied.InvalidMntStatus', + 'errorMessage' => 'The operation is denied due to invalid protocol mount targte status.', + ], + [ + 'errorCode' => 'OperationDenied.InvalidPtcStatus', + 'errorMessage' => 'The operation is denied due to invalid protocol service status.', + ], + [ + 'errorCode' => 'OperationDenied.InvalidState', + 'errorMessage' => 'The operation is denied due to invalid file system state.', + ], + [ + 'errorCode' => 'OperationDenied.NotSupported', + 'errorMessage' => 'The operation is denied due to not supported.', + ], + ], + [ + [ + 'errorCode' => 'InvalidFileSystem.NotFound', + 'errorMessage' => 'The specified file system does not exist.', + ], + [ + 'errorCode' => 'InvalidProtocolService.NotFound', + 'errorMessage' => 'The specified protocol service does not exist.', + ], + [ + 'errorCode' => 'InvalidExportId.NotFound', + 'errorMessage' => 'The specified ExportId does not exist.', + ], + [ + 'errorCode' => 'InvalidAccessGroupName.NotFound', + 'errorMessage' => 'The specified access group does not exist.', + ], + [ + 'errorCode' => 'InvalidAccessGroupName.NotAccessRule', + 'errorMessage' => 'There has no rule in access group.', + ], + [ + 'errorCode' => 'InvalidDescription.InvalidFormat', + 'errorMessage' => 'Description format is invalid.', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E\\"\\n}","errorExample":""},{"type":"xml","example":"<ModifyProtocolMountTargetResponse>\\n <RequestId>473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E</RequestId>\\n</ModifyProtocolMountTargetResponse>","errorExample":""}]', + 'title' => 'ModifyProtocolMountTarget', + 'description' => 'This operation is available only to Cloud Parallel File Storage (CPFS) file systems.'."\n", + ], + 'DescribeProtocolMountTarget' => [ + 'summary' => 'Queries the export directories of a protocol service.', + 'methods' => [ + 'get', + 'post', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'list', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '124960', + 'abilityTreeNodes' => [ + 'FEATUREnasQ7YV89', + 'FEATUREnas0GUIX5', + ], + 'autoTest' => true, + 'tenantRelevance' => 'tenant', + ], + 'parameters' => [ + [ + 'name' => 'NextToken', + 'in' => 'query', + 'allowEmptyValue' => true, + 'schema' => [ + 'description' => 'The pagination token that is used in the next request to retrieve a new page of results. You do not need to specify this parameter for the first request. You must specify the token that is obtained from the previous query as the value of NextToken.'."\n", + 'type' => 'string', + 'required' => false, + 'docRequired' => false, + 'example' => 'aBcdg==', + ], + ], + [ + 'name' => 'MaxResults', + 'in' => 'query', + 'allowEmptyValue' => true, + 'schema' => [ + 'description' => 'The number of results for each query.'."\n" + ."\n" + .'* Value values: 10 to 100.'."\n" + .'* Default value: 20.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'maximum' => '100', + 'minimum' => '10', + 'example' => '20', + 'default' => '20', + ], + ], + [ + 'name' => 'FileSystemId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the file system.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'cpfs-099394bd928c****', + ], + ], + [ + 'name' => 'Filters', + 'in' => 'query', + 'style' => 'repeatList', + 'schema' => [ + 'description' => 'The filter that is used to query the export directories of the protocol service.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The filter that is used to query the export directories of the protocol service.'."\n", + 'type' => 'object', + 'properties' => [ + 'Key' => [ + 'description' => 'The filter name.'."\n" + ."\n" + .'* ProtocolServiceIds: Filters export directories by protocol service ID.'."\n" + .'* ExportIds: Filters export directories by export directory ID.'."\n" + .'* VpcIds: Filters export directories by VPC ID.'."\n" + .'* FsetIds: Filters export directories by fileset ID.'."\n" + .'* Paths: Filters export directories based on the path of the file system corresponding to the mount target.'."\n" + .'* AccessGroupNames: Filters export directories by permission group name.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'ExportIds', + ], + 'Value' => [ + 'description' => 'The filter value. This parameter does not support wildcards.'."\n" + ."\n" + .'* If Key is set to ProtocolServiceIds, set Value to a protocol service ID. You can specify a maximum of 10 protocol service IDs. Example: `ptc-12345678` or `ptc-12345678,ptc-12345679`.'."\n" + .'* If Key is set to ExportIds, set Value to an export directory ID. You can specify a maximum of 10 export directory IDs. Example: `exp-12345678` or `exp-12345678,exp-12345679`.'."\n" + .'* If Key is set to VpcIds, set Value to a VPC ID of the protocol service. You can specify a maximum of 10 VPC IDs. Example: `vpc-12345678` or `vpc-12345678,vpc-12345679`.'."\n" + .'* If Key is set to FsetIds, set Value to a fileset ID. You can specify a maximum of 10 fileset IDs. Example: `fset-12345678` or `fset-12345678,fset-12345679`.'."\n" + .'* If Key is set to Paths, set Value to a path of the file system corresponding to the mount target. You can specify a maximum of 10 paths. Example: `/cpfs/mnt_1/` or `/cpfs/mnt_1/,/cpfs/mnt_2/`.'."\n" + .'* If Key is set to AccessGroupNames, set Value to a permission group name for the protocol service. You can specify a maximum of 10 permission group names. Example: `ag-12345678` or `ag-12345678,ag-12345679`.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'exp-19abf5beab8d****, exp-19acf6beaf7d****', + ], + ], + 'required' => false, + ], + 'required' => false, + 'maxItems' => 5, + ], + ], + [ + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => [ + 'description' => 'The client token that is used to ensure the idempotence of the request. You can use the client to generate the token, but you must make sure that the token is unique among different requests.'."\n" + ."\n" + .'The token can contain only ASCII characters and cannot exceed 64 characters in length. For more information, see [How do I ensure the idempotence?](~~25693~~)'."\n" + ."\n" + .'> If you do not specify this parameter, the system automatically uses the request ID as the client token. The request ID may be different for each request.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '123e4567-e89b-12d3-a456-42665544****', + 'maxLength' => 64, + 'minLength' => 1, + ], + ], + [ + 'name' => 'ProtocolServiceIds', + 'in' => 'query', + 'schema' => [ + 'title' => '协议服务Id列表', + 'description' => 'Protocol service ID list'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'ptc-123xxx', + ], + ], + ], + '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' => '473469C7-AA6F-4DC5-B3DB-A3DC0****', + ], + 'NextToken' => [ + 'description' => 'A pagination token. It can be used in the next request to retrieve a new page of results.'."\n", + 'type' => 'string', + 'example' => 'aBcdeg==', + ], + 'ProtocolMountTargets' => [ + 'description' => 'The export directories of the protocol service.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The export directory of the protocol service.'."\n", + 'type' => 'object', + 'properties' => [ + 'ExportId' => [ + 'description' => 'The ID of the export directory for the protocol service.'."\n", + 'type' => 'string', + 'example' => 'exp-19abf5beab8d****', + ], + 'ProtocolMountTargetDomain' => [ + 'description' => 'The domain name of the export directory for the protocol service.'."\n", + 'type' => 'string', + 'example' => 'cpfs-123****.cn-hangzhou.cpfs.aliyuncs.com', + ], + 'ProtocolType' => [ + 'description' => 'The protocol type supported by the protocol service.'."\n", + 'type' => 'string', + 'example' => 'NFS', + ], + 'VpcId' => [ + 'description' => 'The VPC ID of the export directory for the protocol service.'."\n", + 'type' => 'string', + 'example' => 'vpc-2vct297b8157bth9z****', + ], + 'VSwitchId' => [ + 'description' => 'The vSwitch ID of the export directory for the protocol service.'."\n", + 'type' => 'string', + 'example' => 'vsw-2vc3c2lybvdllxyq4****', + ], + 'FsetId' => [ + 'description' => 'The fileset ID of the export directory for the protocol service.'."\n", + 'type' => 'string', + 'example' => 'fset-1902718ea0ae****', + ], + 'Path' => [ + 'description' => 'The export directory of the protocol service.'."\n", + 'type' => 'string', + 'example' => '/path/', + ], + 'AccessGroupName' => [ + 'description' => 'The permission group that is associated with the export directory of the protocol service.'."\n", + 'type' => 'string', + 'example' => 'DEFAULT_VPC_GROUP_NAME', + ], + 'CreateTime' => [ + 'description' => 'The time when the export directory of the protocol service was created.'."\n", + 'type' => 'string', + 'example' => '2018-12-12T07:28:38Z', + ], + 'Status' => [ + 'description' => 'The status of the mount target.'."\n", + 'type' => 'string', + 'example' => 'CREATING', + ], + 'ProtocolServiceId' => [ + 'description' => 'The ID of the protocol service.'."\n", + 'type' => 'string', + 'example' => 'ptc-123****', + ], + 'Description' => [ + 'description' => 'The description of the export directory for the protocol service.'."\n", + 'type' => 'string', + 'example' => 'test', + ], + 'VSwitchIds' => [ + 'title' => '同城冗余虚拟交换机ID列表', + 'description' => 'A list of IDs for the zone-redundant vSwitches.'."\n", + 'type' => 'array', + 'items' => [ + 'title' => '同城冗余虚拟交换机ID列表', + 'description' => 'A list of IDs for the zone-redundant vSwitches.'."\n", + 'type' => 'string', + 'example' => 'vsw-123xxx', + ], + ], + ], + ], + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'MissingFileSystemId', + 'errorMessage' => 'FileSystemId is mandatory for this action.', + ], + ], + 404 => [ + [ + 'errorCode' => 'InvalidFileSystem.NotFound', + 'errorMessage' => 'The specified file system does not exist.', + ], + [ + 'errorCode' => 'InvalidParameter.InvalidNextToken', + 'errorMessage' => 'The specified NextToken is invaild.', + ], + [ + 'errorCode' => 'InvalidParameter.InvalidMaxResults', + 'errorMessage' => 'The specified MaxResults is invalid.', + ], + [ + 'errorCode' => 'InvalidFilterValue', + 'errorMessage' => 'The specified Filter.N.Value is invalid.', + ], + [ + 'errorCode' => 'InvalidFilterParam', + 'errorMessage' => 'The specified Filter.N.Key is invalid.', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-A3DC0****\\",\\n \\"NextToken\\": \\"aBcdeg==\\",\\n \\"ProtocolMountTargets\\": [\\n {\\n \\"ExportId\\": \\"exp-19abf5beab8d****\\",\\n \\"ProtocolMountTargetDomain\\": \\"cpfs-123****.cn-hangzhou.cpfs.aliyuncs.com\\",\\n \\"ProtocolType\\": \\"NFS\\",\\n \\"VpcId\\": \\"vpc-2vct297b8157bth9z****\\",\\n \\"VSwitchId\\": \\"vsw-2vc3c2lybvdllxyq4****\\",\\n \\"FsetId\\": \\"fset-1902718ea0ae****\\",\\n \\"Path\\": \\"/path/\\",\\n \\"AccessGroupName\\": \\"DEFAULT_VPC_GROUP_NAME\\",\\n \\"CreateTime\\": \\"2018-12-12T07:28:38Z\\",\\n \\"Status\\": \\"CREATING\\",\\n \\"ProtocolServiceId\\": \\"ptc-123****\\",\\n \\"Description\\": \\"此协议服务导出目录的描述。\\",\\n \\"VSwitchIds\\": [\\n \\"vsw-123xxx\\"\\n ]\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"<DescribeProtocolMountTargetResponse>\\n <RequestId>473469C7-AA6F-4DC5-B3DB-A3DC0****</RequestId>\\n <NextToken>aBcdeg==</NextToken>\\n <ProtocolMountTargets>\\n <ProtocolMountTarget>\\n <ExportId>exp-123****</ExportId>\\n <ProtocolMountTargetDomain>cpfs-123****.cn-hangzhou.cpfs.aliyuncs.com</ProtocolMountTargetDomain>\\n <ProtocolType>NFS</ProtocolType>\\n <VpcId>vpc-123***</VpcId>\\n <VSwitchId>vsw-123****</VSwitchId>\\n <FsetId>fset-123****</FsetId>\\n <Path>/path/</Path>\\n <AccessGroupName>DEFAULT_VPC_GROUP_NAME</AccessGroupName>\\n <CreateTime>2018-12-12T07:28:38Z</CreateTime>\\n <Status>CREATING</Status>\\n <ProtocolServiceId>ptc-123****</ProtocolServiceId>\\n <Description>此协议服务导出目录的描述。</Description>\\n </ProtocolMountTarget>\\n </ProtocolMountTargets>\\n</DescribeProtocolMountTargetResponse>","errorExample":""}]', + 'title' => 'DescribeProtocolMountTarget', + 'description' => 'This operation is available only to Cloud Parallel File Storage (CPFS) file systems.'."\n", + ], + 'GetProtocolMountTarget' => [ + 'summary' => 'Query the export directory information of the protocol service', + 'methods' => [ + 'get', + 'post', + ], + 'schemes' => [ + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '124960', + 'abilityTreeNodes' => [ + 'FEATUREnasQ7YV89', + 'FEATUREnas0GUIX5', + ], + 'autoTest' => true, + 'tenantRelevance' => 'tenant', + ], + 'parameters' => [ + [ + 'name' => 'NextToken', + 'in' => 'query', + 'allowEmptyValue' => true, + 'schema' => [ + 'description' => 'A pagination token. It can be used in the next request to retrieve a new page of results.'."\n", + 'type' => 'string', + 'required' => false, + 'docRequired' => false, + 'example' => 'M18xMA==', + ], + ], + [ + 'name' => 'MaxResults', + 'in' => 'query', + 'allowEmptyValue' => true, + 'schema' => [ + 'description' => 'The number of results for each query.'."\n" + ."\n" + .'Valid values: 10 to 100. Default value: 20.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'maximum' => '100', + 'minimum' => '10', + 'example' => '20', + 'default' => '20', + ], + ], + [ + 'name' => 'FileSystemId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the file system.'."\n" + ."\n" + .'* The IDs of CPFS file systems must start with `cpfs-`. Example: cpfs-125487\\*\\*\\*\\*.'."\n" + .'* The IDs of CPFS for Lingjun file systems must start with `bmcpfs-`. Example: bmcpfs-0015\\*\\*\\*\\*.'."\n" + .'* The IDs of CPFS SE file systems must start with `cpfsse-`. Example: cpfsse-022c71b134\\*\\*\\*\\*.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'cpfs-099394bd928c****', + ], + ], + [ + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => [ + 'description' => 'A client-generated, case-sensitive token that you can use to ensure the idempotency of the request. The token must be unique for each request.'."\n" + ."\n" + .'It must be an ASCII string with a maximum length of 64 characters. For more information, see [How to ensure idempotence](~~25693~~).'."\n" + ."\n" + .'> If you do not specify this parameter, the system automatically uses the request ID as the client token. The request ID may be different for each request.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '123e4567-e89b-12d3-a456-42665544****', + 'maxLength' => 64, + 'minLength' => 1, + ], + ], + [ + 'name' => 'ProtocolServiceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the protocol service.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'ptc-197ed6a00f2b****', + ], + ], + [ + 'name' => 'ExportId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the export directory for the protocol service.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'exp-19abf5beab8d****', + ], + ], + ], + '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' => '6299428C-3861-435D-AE54-9B330A00****', + ], + 'NextToken' => [ + 'description' => 'A pagination token. It can be used in the next request to retrieve a new page of results.'."\n", + 'type' => 'string', + 'example' => 'M18xMA==', + ], + 'ProtocolMountTarget' => [ + 'description' => 'Information of the export directory for the protocol service'."\n", + 'type' => 'object', + 'properties' => [ + 'ExportId' => [ + 'description' => 'The ID of the export directory.'."\n", + 'type' => 'string', + 'example' => 'exp-19abf5beab8d****', + ], + 'ProtocolMountTargetDomain' => [ + 'description' => 'The domain name of the export directory for the protocol service.'."\n", + 'type' => 'string', + 'example' => 'cpfs-0229cb80bcc0****-x******.cn-*****.cpfs.aliyuncs.com', + ], + 'ProtocolType' => [ + 'description' => 'The protocol type of the file system.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'* NFS: Network File System (NFS)'."\n" + .'* SMB: Server Message Block (SMB)'."\n" + .'* cpfs: The protocol type supported by the CPFS file system.'."\n", + 'type' => 'string', + 'example' => 'NFS', + ], + 'VpcId' => [ + 'description' => 'The VPC ID of the export directory.'."\n", + 'type' => 'string', + 'example' => 'vpc-bp1h5mxoqfuo3xurf****', + ], + 'VSwitchId' => [ + 'description' => 'The vSwitch ID of the export directory.'."\n", + 'type' => 'string', + 'example' => 'vsw-8vb2qjnxs6hiobzve****', + ], + 'VSwitchIds' => [ + 'description' => 'The vSwitch ID list of the export directory.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The vSwitch ID of the export directory.'."\n", + 'type' => 'string', + 'example' => 'vsw-bp1q3ro8erikjjrb2****', + ], + ], + 'FsetId' => [ + 'description' => 'The fileset ID.'."\n", + 'type' => 'string', + 'example' => 'fset-299b4ca04de8****', + ], + 'Path' => [ + 'description' => 'The path of the CPFS directory that was queried.'."\n" + ."\n" + .'Format:'."\n" + ."\n" + .'* Must be 1 to 1,024 characters in length.'."\n" + .'* Must be encoded in UTF-8.'."\n" + .'* Must start and end with a forward slash (/). The root directory is `/`.'."\n", + 'type' => 'string', + 'example' => '/', + ], + 'AccessGroupName' => [ + 'description' => 'The name of the permission group.'."\n" + ."\n" + .'Default permission group: DEFAULT\\\\\\_VPC\\\\\\_GROUP\\\\\\_NAME'."\n", + 'type' => 'string', + 'example' => 'DEFAULT_VPC_GROUP_NAME', + ], + 'CreateTime' => [ + 'description' => 'The time when the export directory was created. Return format: yyyy-MM-dd HH:mm:ss'."\n", + 'type' => 'string', + 'example' => '2025-12-22 17:49:25', + ], + 'Status' => [ + 'description' => 'The status of the export directory. Valid values:'."\n" + ."\n" + .'* CREATING: The export directory is being created.'."\n" + .'* AVAILABLE : The export directory is available.'."\n" + .'* MODIFYING: The export directory is being modified.'."\n" + .'* DELETING: The export directory is being deleted.'."\n" + .'* STOPPING: The export directory is being stopped.'."\n", + 'type' => 'string', + 'example' => 'AVAILABLE', + ], + 'Description' => [ + 'description' => 'The description of the export directory.'."\n", + 'type' => 'string', + 'example' => 'The description of the export directory.', + ], + ], + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'MissingFileSystemId', + 'errorMessage' => 'FileSystemId is mandatory for this action.', + ], + [ + 'errorCode' => 'MissingExportId', + 'errorMessage' => 'ExportId is mandatory for this action.', + ], + ], + 404 => [ + [ + 'errorCode' => 'InvalidFileSystem.NotFound', + 'errorMessage' => 'The specified file system does not exist.', + ], + [ + 'errorCode' => 'Resource.NotFound', + 'errorMessage' => 'The specified resource does not exist.', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"6299428C-3861-435D-AE54-9B330A00****\\",\\n \\"NextToken\\": \\"M18xMA==\\",\\n \\"ProtocolMountTarget\\": {\\n \\"ExportId\\": \\"exp-19abf5beab8d****\\",\\n \\"ProtocolMountTargetDomain\\": \\"cpfs-0229cb80bcc0****-x******.cn-*****.cpfs.aliyuncs.com\\",\\n \\"ProtocolType\\": \\"NFS\\",\\n \\"VpcId\\": \\"vpc-bp1h5mxoqfuo3xurf****\\",\\n \\"VSwitchId\\": \\"vsw-8vb2qjnxs6hiobzve****\\",\\n \\"VSwitchIds\\": [\\n \\"vsw-bp1q3ro8erikjjrb2****\\"\\n ],\\n \\"FsetId\\": \\"fset-299b4ca04de8****\\",\\n \\"Path\\": \\"/\\",\\n \\"AccessGroupName\\": \\"DEFAULT_VPC_GROUP_NAME\\",\\n \\"CreateTime\\": \\"2025-12-22 17:49:25\\",\\n \\"Status\\": \\"AVAILABLE\\",\\n \\"Description\\": \\"此协议服务导出的描述。\\"\\n }\\n}","type":"json"}]', + 'title' => 'GetProtocolMountTarget', + ], + 'DetachVscFromFilesystems' => [ + 'summary' => 'Unassociates a VSC device from a file system.', + 'path' => '', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'readAndWrite', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREnasI92PYN', + ], + 'autoTest' => false, + 'notSupportAutoTestReason' => '特定账户使用', + 'tenantRelevance' => 'publicInformation', + ], + 'parameters' => [ + [ + 'name' => 'ResourceIds', + 'in' => 'query', + 'style' => 'flat', + 'schema' => [ + 'description' => 'The ID information of the file system and virtual storage channel. Each batch can contain up to 10 IDs.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The ID information of the file system and virtual storage channel. Each batch can contain up to 10 IDs.'."\n", + 'type' => 'object', + 'properties' => [ + 'FileSystemId' => [ + 'description' => 'The ID of the file system.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'bmcpfs-290t15yn4uo8lid****'."\n", + ], + 'VscId' => [ + 'description' => 'The ID of the virtual storage channel.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'vsc-8vb864o3ppwfvh****'."\n", + ], + ], + 'required' => false, + ], + 'required' => true, + 'docRequired' => true, + ], + ], + [ + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => [ + 'description' => 'The client token that is used to ensure the idempotence of the request. You can use the client to generate the token, but you must make sure that the token is unique among different requests.'."\n" + ."\n" + .'The token can contain only ASCII characters and cannot exceed 64 characters in length. For more information, see [How do I ensure the idempotence?](~~25693~~)'."\n" + ."\n" + .'> If you do not specify this parameter, the system automatically uses the request ID as the client token. The request ID may be different for each request.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '123e4567-e89b-12d3-a456-42665544****', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => '', + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => '2D69A58F-345C-4FDE-88E4-BF518948****', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The parameter is invalid.', + ], + [ + 'errorCode' => 'InvalidParameter.FileSystem', + 'errorMessage' => 'Invalid FileSystem in ResourceIds.', + ], + [ + 'errorCode' => 'InvalidParameter.ResourceIds', + 'errorMessage' => 'Invalid ResourceIds, can not be empty or batch size large than 10.', + ], + [ + 'errorCode' => 'InvalidFilesystemType.NotSupport', + 'errorMessage' => 'This Api does not support this fileSystem type.', + ], + [ + 'errorCode' => 'InvalidParameter.VscId', + 'errorMessage' => 'Invalid VscId in ResourceIds.', + ], + [ + 'errorCode' => 'InvalidParameter.VscIds', + 'errorMessage' => 'Invalid VscId in ResourceIds.VscIds must be the same.', + ], + [ + 'errorCode' => 'Ram.AddRamParamFailed', + 'errorMessage' => 'Ram check has failed due to param invalid, please check param.', + ], + [ + 'errorCode' => 'FeatureOrAPI.NotSupported', + 'errorMessage' => 'The Feature/API is not supported in this region now.', + ], + ], + 403 => [ + [ + 'errorCode' => 'Forbbiden.Ram', + 'errorMessage' => 'User not authorized to operate on the specified resource, or this API doesn\'t support RAM.', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"2D69A58F-345C-4FDE-88E4-BF518948****\\"\\n}","type":"json"}]', + 'title' => 'DetachVscFromFilesystems', + 'description' => '* Only CPFS for Lingjun supports this operation.'."\n" + .'* Batch execution is supported. In batch execution, only one VscId can be associated with multiple FileSystemIDs, meaning the VscId in the ResourceIds must be the same.'."\n", + ], + 'AttachVscToFilesystems' => [ + 'summary' => 'Associates the VSC device with the file system.', + 'path' => '', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREnasOIBEFL', + ], + 'autoTest' => false, + 'notSupportAutoTestReason' => '特定账户使用', + 'tenantRelevance' => 'publicInformation', + ], + 'parameters' => [ + [ + 'name' => 'ResourceIds', + 'in' => 'query', + 'style' => 'flat', + 'schema' => [ + 'description' => 'The ID information of the file system and virtual storage channel. Each batch can contain up to 10 IDs.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The ID information of the file system and virtual storage channel. Each batch can contain up to 10 IDs.'."\n", + 'type' => 'object', + 'properties' => [ + 'FileSystemId' => [ + 'description' => 'The ID of the file system.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'bmcpfs-290t15yn4uo8lid****', + ], + 'VscId' => [ + 'description' => 'The ID of the virtual storage channel.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'vsc-8vb864o3ppwfvh****', + ], + ], + 'required' => false, + ], + 'required' => true, + ], + ], + [ + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => [ + 'description' => 'The client token that is used to ensure the idempotence of the request. You can use the client to generate the token, but you must make sure that the token is unique among different requests.'."\n" + ."\n" + .'The token can contain only ASCII characters and cannot exceed 64 characters in length. For more information, see [How do I ensure the idempotence?](~~25693~~)'."\n" + ."\n" + .'> If you do not specify this parameter, the system automatically uses the request ID as the client token. The request ID may be different for each request.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '123e4567-e89b-12d3-a456-42665544****', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'Schema of Response', + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'BC7C825C-5F65-4B56-BEF6-98C56C7C****', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The parameter is invalid.', + ], + [ + 'errorCode' => 'InvalidParameter.ResourceIds', + 'errorMessage' => 'Invalid ResourceIds, can not be empty or batch size large than 10.', + ], + [ + 'errorCode' => 'InvalidParameter.FileSystem', + 'errorMessage' => 'Invalid FileSystem in ResourceIds.', + ], + [ + 'errorCode' => 'InvalidFilesystemType.NotSupport', + 'errorMessage' => 'This Api does not support this fileSystem type.', + ], + [ + 'errorCode' => 'InvalidParameter.VscId', + 'errorMessage' => 'Invalid VscId in ResourceIds.', + ], + [ + 'errorCode' => 'InvalidParameter.VscIds', + 'errorMessage' => 'Invalid VscId in ResourceIds.VscIds must be the same.', + ], + [ + 'errorCode' => 'Ram.AddRamParamFailed', + 'errorMessage' => 'Ram check has failed due to param invalid, please check param.', + ], + [ + 'errorCode' => 'FeatureOrAPI.NotSupported', + 'errorMessage' => 'The Feature/API is not supported in this region now.', + ], + ], + 403 => [ + [ + 'errorCode' => 'Forbbiden.Ram', + 'errorMessage' => 'User not authorized to operate on the specified resource, or this API doesn\'t support RAM.', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"BC7C825C-5F65-4B56-BEF6-98C56C7C****\\"\\n}","type":"json"}]', + 'title' => 'AttachVscToFilesystems', + 'description' => '* Only CPFS for Lingjun supports this operation.'."\n" + .'* Batch execution is supported. In batch execution, only one VscId can be associated with multiple FileSystemIDs, meaning the VscId in the ResourceIds must be the same.'."\n", + ], + 'DescribeFilesystemsVscAttachInfo' => [ + 'summary' => 'Queries information about virtual storage channels associated with a file system.', + 'path' => '', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'list', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '191088', + 'abilityTreeNodes' => [ + 'FEATUREnasOIBEFL', + ], + 'autoTest' => false, + 'notSupportAutoTestReason' => '特殊账号使用', + 'tenantRelevance' => 'publicInformation', + ], + 'parameters' => [ + [ + 'name' => 'ResourceIds', + 'in' => 'query', + 'style' => 'flat', + 'schema' => [ + 'description' => 'The ID information of the file system and virtual storage channel. Each batch can contain up to 10 IDs.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The ID information of the file system and virtual storage channel. Each batch can contain up to 10 IDs.'."\n", + 'type' => 'object', + 'properties' => [ + 'FileSystemId' => [ + 'description' => 'The ID of the file system.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'bmcpfs-290t15yn4uo8lid****'."\n", + ], + 'VscId' => [ + 'description' => 'The ID of the virtual storage channel.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'vsc-8vb864o3ppwfvh****'."\n", + ], + ], + 'required' => false, + ], + 'required' => true, + 'minItems' => 1, + ], + ], + [ + 'name' => 'NextToken', + 'in' => 'query', + 'schema' => [ + 'description' => 'Query token, which is the NextToken value returned from the previous API call.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'TGlzdFJlc291cmNlU****mVzJjE1MTI2NjY4NzY5MTAzOTEmMiZORnI4NDhVeEtrUT0=', + ], + ], + [ + 'name' => 'MaxResults', + 'in' => 'query', + 'allowEmptyValue' => false, + 'schema' => [ + 'description' => 'The number of results for each query.'."\n" + ."\n" + .'Valid values: 10 to 100. Default value: 10.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'maximum' => '100', + 'minimum' => '1', + 'example' => '10', + 'default' => '10', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => '', + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'BC7C825C-5F65-4B56-BEF6-98C56C7C****', + ], + 'NextToken' => [ + 'description' => 'Query token, which is the NextToken value returned from the previous API call.'."\n", + 'type' => 'string', + 'example' => 'TGlzdFJlc291cmNlU****mVzJjE1MTI2NjY4NzY5MTAzOTEmMiZORnI4NDhVeEtrUT0=', + ], + 'TotalCount' => [ + 'description' => 'The total number of associated information.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '1', + ], + 'MaxResults' => [ + 'description' => 'The number of directories to return for each query.'."\n" + ."\n" + .'Valid values: 10 to 1000.'."\n" + ."\n" + .'Default value: 10.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '10', + ], + 'VscAttachInfo' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'VscAttachInfo' => [ + 'description' => 'A collection of file system and virtual channel association data.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'FileSystemId' => [ + 'description' => 'The ID of the file system.'."\n", + 'type' => 'string', + 'example' => 'bmcpfs-290t15yn4uo8lid****'."\n", + ], + 'VscId' => [ + 'description' => 'The ID of the virtual storage channel.'."\n", + 'type' => 'string', + 'example' => 'vsc-8vb864o3ppwfvh****'."\n", + ], + 'Status' => [ + 'description' => 'The association status of the file system and virtual channel. Valid values:'."\n" + ."\n" + .'* Attaching: The association is being made.'."\n" + .'* Attached: The association is complete.'."\n" + .'* Detaching: The association is being canceled.'."\n" + .'* Detached: The association is canceled.'."\n" + .'* Failed: The association failed.'."\n", + 'type' => 'string', + 'example' => 'Attached', + ], + ], + 'description' => '', + ], + ], + ], + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The parameter is invalid.', + ], + [ + 'errorCode' => 'InvalidParameter.ResourceIds', + 'errorMessage' => 'Invalid ResourceIds, can not be empty or batch size large than 10.', + ], + [ + 'errorCode' => 'InvalidParameter.FileSystem', + 'errorMessage' => 'Invalid FileSystem in ResourceIds.', + ], + [ + 'errorCode' => 'InvalidFilesystemType.NotSupport', + 'errorMessage' => 'This Api does not support this fileSystem type.', + ], + [ + 'errorCode' => 'InvalidParameter.VscId', + 'errorMessage' => 'Invalid VscId in ResourceIds.', + ], + [ + 'errorCode' => 'InvalidParameter.VscIds', + 'errorMessage' => 'Invalid VscId in ResourceIds.VscIds must be the same.', + ], + [ + 'errorCode' => 'Ram.AddRamParamFailed', + 'errorMessage' => 'Ram check has failed due to param invalid, please check param.', + ], + [ + 'errorCode' => 'FeatureOrAPI.NotSupported', + 'errorMessage' => 'The Feature/API is not supported in this region now.', + ], + ], + 403 => [ + [ + 'errorCode' => 'Forbbiden.Ram', + 'errorMessage' => 'User not authorized to operate on the specified resource, or this API doesn\'t support RAM.', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"BC7C825C-5F65-4B56-BEF6-98C56C7C****\\",\\n \\"NextToken\\": \\"TGlzdFJlc291cmNlU****mVzJjE1MTI2NjY4NzY5MTAzOTEmMiZORnI4NDhVeEtrUT0=\\",\\n \\"TotalCount\\": 1,\\n \\"MaxResults\\": 10,\\n \\"VscAttachInfo\\": {\\n \\"VscAttachInfo\\": [\\n {\\n \\"FileSystemId\\": \\"bmcpfs-290t15yn4uo8lid****\\\\n\\",\\n \\"VscId\\": \\"vsc-8vb864o3ppwfvh****\\\\n\\",\\n \\"Status\\": \\"Attached\\"\\n }\\n ]\\n }\\n}","type":"json"}]', + 'title' => 'DescribeFilesystemsVscAttachInfo', + 'description' => '* Only CPFS for Lingjun supports this operation.'."\n" + .'* Batch execution is supported. In batch execution, only one VscId can be associated with multiple FileSystemIDs, meaning the VscId in the ResourceIds must be the same.'."\n", + ], + 'AddClientToBlackList' => [ + 'summary' => 'Adds a client to the blacklist of a Cloud Parallel File Storage (CPFS) file system and revokes the write access from the client. The blacklist serves as an I/O fence.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'deprecated' => true, + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '13916', + 'abilityTreeNodes' => [ + 'FEATUREnas2SBOJD', + ], + 'autoTest' => false, + 'notSupportAutoTestReason' => '弃用接口', + 'tenantRelevance' => 'publicInformation', + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the region where the file system resides.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'FileSystemId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the file system.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'cpfs-00dfe7963fc6****', + ], + ], + [ + 'name' => 'ClientIP', + 'in' => 'query', + 'schema' => [ + 'description' => 'The IP address of the client to add.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '192.168.0.0', + ], + ], + [ + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => [ + 'description' => 'The client token that is used to ensure the idempotence of the request. You can use the client to generate the token, but you must make sure that the token is unique among different requests. The token can contain only ASCII characters and cannot exceed 64 characters in length.'."\n" + ."\n" + .'For more information, see [How to ensure idempotence](~~25693~~).'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '123e4567-e89b-12d3-a456-426655440000', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'A70BEE5D-76D3-49FB-B58F-1F398211A5C3', + ], + ], + 'description' => '', + ], + ], + ], + 'staticInfo' => [ + 'noSubstitutionReason' => '无替代API,历史原因导致该API被标记为弃用。', + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"A70BEE5D-76D3-49FB-B58F-1F398211A5C3\\"\\n}","errorExample":""},{"type":"xml","example":"<?xml version=\\"1.0\\" encoding=\\"UTF-8\\"?>\\r\\n<EvictClientResponse>\\r\\n <RequestId>A70BEE5D-76D3-49FB-B58F-1F398211A5C3</RequestId>\\r\\n</EvictClientResponse>","errorExample":""}]', + 'title' => 'AddClientToBlackList', + 'description' => 'The API operation is available only for CPFS file systems.'."\n", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'DescribeBlackListClients' => [ + 'summary' => 'Queries the status of clients in the blacklist of a Cloud Parallel File Storage (CPFS) file system.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'deprecated' => true, + 'systemTags' => [ + 'operationType' => 'list', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '13949', + 'abilityTreeNodes' => [ + 'FEATUREnasI92PYN', + ], + 'autoTest' => false, + 'notSupportAutoTestReason' => '废弃接口', + 'tenantRelevance' => 'publicInformation', + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the region where the file system resides.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'FileSystemId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the file system.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'cpfs-123458****', + ], + ], + [ + 'name' => 'ClientIP', + 'in' => 'query', + 'schema' => [ + 'description' => 'The IP address of the client.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '192.168.0.0', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'A70BEE5D-76D3-49FB-B58F-1F398211A5C3', + ], + 'Clients' => [ + 'description' => 'The IDs of clients and the status of each client. The parameter value is a JSON string, for example, `{"client1": "EVICTING","client2":"EVICTED"}`.'."\n" + ."\n" + .'Available client statuses include:'."\n" + ."\n" + .'* EVICTING: The client is being evicted.'."\n" + .'* EVICTED: The client is evicted.'."\n" + .'* ACCEPTING: The write access to the file system is being granted to the client.'."\n" + .'* ACCEPTABLE: The write access to the file system is granted to the client.'."\n", + 'type' => 'string', + 'example' => '{"client1": "EVICTING","client2":"EVICTED"}', + ], + ], + 'description' => '', + ], + ], + ], + 'staticInfo' => [ + 'noSubstitutionReason' => '无替代API,历史原因导致该API被标记为弃用。', + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"A70BEE5D-76D3-49FB-B58F-1F398211A5C3\\",\\n \\"Clients\\": \\"{\\\\\\"client1\\\\\\": \\\\\\"EVICTING\\\\\\",\\\\\\"client2\\\\\\":\\\\\\"EVICTED\\\\\\"}\\"\\n}","errorExample":""},{"type":"xml","example":"<DescribeBlackListClientsResponse>\\n <RequestId>A70BEE5D-76D3-49FB-B58F-1F398211A5C3</RequestId>\\n <Clients>{\\"client1\\": \\"EVICTING\\",\\"client2\\":\\"EVICTED\\"}</Clients>\\n</DescribeBlackListClientsResponse>","errorExample":""}]', + 'title' => 'DescribeBlackListClients', + 'description' => 'The API operation is available only for CPFS file systems.', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'RemoveClientFromBlackList' => [ + 'summary' => 'Remove the client from the blacklist.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'deprecated' => true, + 'systemTags' => [ + 'operationType' => 'delete', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '13982', + 'abilityTreeNodes' => [ + 'FEATUREnas2SBOJD', + ], + 'autoTest' => false, + 'notSupportAutoTestReason' => '弃用接口', + 'tenantRelevance' => 'publicInformation', + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the region where the file system resides.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'FileSystemId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the file system.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'cpfs-00d91ca404a348****', + ], + ], + [ + 'name' => 'ClientIP', + 'in' => 'query', + 'schema' => [ + 'description' => 'The IP address of a client to remove from the blacklist.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '192.168.0.0', + ], + ], + [ + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => [ + 'description' => 'This parameter ensures the idempotency of each request. A ClientToken is generated for each client. Make sure that each ClientToken is unique between different requests. The parameter can be a maximum of 64 characters in length and contain only ASCII characters.'."\n" + ."\n" + .'For more information, see [How to ensure idempotence](https://www.alibabacloud.com/help/doc-detail/25693.htm).'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '123e4567-e89b-12d3-a456-42665544****', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => 'A70BEE5D-76D3-49FB-B58F-1F398211****', + ], + ], + ], + ], + ], + 'staticInfo' => [ + 'noSubstitutionReason' => '无替代API,历史原因导致该API被标记为弃用。', + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"A70BEE5D-76D3-49FB-B58F-1F398211****\\"\\n}","errorExample":""},{"type":"xml","example":"<RemoveClientFromBlackListResponse>\\n <RequestId>A70BEE5D-76D3-49FB-B58F-1F398211****</RequestId>\\n</RemoveClientFromBlackListResponse>","errorExample":""}]', + 'title' => 'RemoveClientFromBlackList', + 'description' => 'The API operation is available only for CPFS file systems.', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'CreateLDAPConfig' => [ + 'summary' => 'Creates LDAP configurations.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'deprecated' => true, + 'systemTags' => [ + 'operationType' => 'create', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREnasQ7YV89', + 'FEATUREnas0GUIX5', + ], + 'autoTest' => false, + 'notSupportAutoTestReason' => 'cpfs1.0支持的功能,仅支持存量用户使用', + 'tenantRelevance' => 'publicInformation', + ], + 'parameters' => [ + [ + 'name' => 'FileSystemId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the file system.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '109c04****', + ], + ], + [ + 'name' => 'URI', + 'in' => 'query', + 'schema' => [ + 'description' => 'An LDAP URI.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'ldap://ldap.example.example', + ], + ], + [ + 'name' => 'BindDN', + 'in' => 'query', + 'schema' => [ + 'description' => 'An LDAP entry.'."\n", + 'type' => 'string', + 'required' => false, + 'docRequired' => true, + 'example' => 'cn=alibaba,dc=com', + ], + ], + [ + 'name' => 'SearchBase', + 'in' => 'query', + 'schema' => [ + 'description' => 'An LDAP search base.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'dc=example', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '5B4511A7-C99E-4071-AA8C-32E2529D****', + ], + ], + ], + ], + ], + 'errorCodes' => [], + 'staticInfo' => [ + 'noSubstitutionReason' => '无替代API,历史原因导致该API被标记为弃用。', + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"5B4511A7-C99E-4071-AA8C-32E2529D****\\"\\n}","errorExample":""},{"type":"xml","example":"<RequestId>5B4511A7-C99E-4071-AA8C-32E2529D****</RequestId>","errorExample":""}]', + 'title' => 'CreateLDAPConfig', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'DeleteLDAPConfig' => [ + 'summary' => '{"summary1":""}', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'deprecated' => true, + 'systemTags' => [ + 'operationType' => 'delete', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREnasQ7YV89', + 'FEATUREnas0GUIX5', + ], + 'autoTest' => false, + 'notSupportAutoTestReason' => 'cpfs1.0支持的功能,仅支持存量用户使用', + 'tenantRelevance' => 'publicInformation', + ], + 'parameters' => [ + [ + 'name' => 'FileSystemId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the file system.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '1ca404a348', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => '5B4511A7-C99E-4071-AA8C-32E2529DA963', + ], + ], + ], + ], + ], + 'errorCodes' => [], + 'staticInfo' => [ + 'noSubstitutionReason' => '无替代API,历史原因导致该API被标记为弃用。', + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"5B4511A7-C99E-4071-AA8C-32E2529DA963\\"\\n}","errorExample":""},{"type":"xml","example":"<?xml version=\\"1.0\\" encoding=\\"UTF-8\\"?>\\r\\n<DeleteLDAPConfigResponse>\\r\\n <RequestId>5B4511A7-C99E-4071-AA8C-32E2529DA963</RequestId>\\r\\n</DeleteLDAPConfigResponse>","errorExample":""}]', + 'title' => '{"title1":"DeleteLDAPConfig"}', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'ModifyLDAPConfig' => [ + 'summary' => 'Used to modify LDAP configuration.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'deprecated' => true, + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREnasQ7YV89', + 'FEATUREnas0GUIX5', + ], + 'autoTest' => false, + 'notSupportAutoTestReason' => 'cpfs1.0支持的功能,仅支持存量用户使用', + 'tenantRelevance' => 'publicInformation', + ], + 'parameters' => [ + [ + 'name' => 'FileSystemId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the file system.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '109c042666', + ], + ], + [ + 'name' => 'URI', + 'in' => 'query', + 'schema' => [ + 'description' => 'The LDAP service address.', + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'ldap://ldap.example.example', + ], + ], + [ + 'name' => 'BindDN', + 'in' => 'query', + 'schema' => [ + 'description' => 'The LDAP entry.'."\n", + 'type' => 'string', + 'required' => false, + 'docRequired' => true, + 'example' => 'cn=alibaba,dc=com', + ], + ], + [ + 'name' => 'SearchBase', + 'in' => 'query', + 'schema' => [ + 'description' => 'The LDAP search base.', + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'dc=example', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '5B4511A7-C99E-4071-AA8C-32E2529DA963', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [], + 'staticInfo' => [ + 'noSubstitutionReason' => '无替代API,历史原因导致该API被标记为弃用。', + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"5B4511A7-C99E-4071-AA8C-32E2529DA963\\"\\n}","errorExample":""},{"type":"xml","example":"<RequestId>5B4511A7-C99E-4071-AA8C-32E2529DA963</RequestId>","errorExample":""}]', + 'title' => '用于修改LDAP配置', + 'description' => 'The API operation is available only for Cloud Parallel File Storage (CPFS) file systems.'."\n", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'DescribeFileSystemStatistics' => [ + 'summary' => 'Queries the statistics of file systems that are owned by the current account.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'deprecated' => true, + 'systemTags' => [ + 'operationType' => 'list', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '13952', + 'abilityTreeNodes' => [ + 'FEATUREnasI92PYN', + ], + 'autoTest' => true, + 'tenantRelevance' => 'publicInformation', + ], + 'parameters' => [ + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of entries per page.'."\n" + ."\n" + .'Valid values: 1 to 100.'."\n" + ."\n" + .'Default value: 10.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'maximum' => '100', + 'minimum' => '1', + 'example' => '10', + 'default' => '10', + ], + ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => [ + 'description' => 'The page number.'."\n" + ."\n" + .'Pages start from page 1. Default value: 1.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'minimum' => '1', + 'example' => '1', + 'default' => '', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'FileSystems' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'FileSystem' => [ + 'description' => 'The queried file systems.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Status' => [ + 'description' => 'The status of the file system.'."\n" + ."\n" + .'This parameter is returned for Extreme NAS file systems and Cloud Parallel File Storage (CPFS) file systems. Valid values:'."\n" + ."\n" + .'* Pending: The file system is being created or modified.'."\n" + .'* Running: The file system is available. Before you create a mount target for the file system, make sure that the file system is in the Running state.'."\n" + .'* Stopped: The file system is unavailable.'."\n" + .'* Extending: The file system is being scaled out.'."\n" + .'* Stopping: The file system is being disabled.'."\n" + .'* Deleting: The file system is being deleted.'."\n", + 'type' => 'string', + 'example' => 'Pending', + ], + 'Capacity' => [ + 'description' => 'The capacity of the file system.'."\n" + ."\n" + .'Unit: GiB.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1', + ], + 'MeteredIASize' => [ + 'description' => 'The storage usage of the Infrequent Access (IA) storage medium.'."\n" + ."\n" + .'Unit: bytes.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '362832', + ], + 'CreateTime' => [ + 'description' => 'The time when the NAS file system was created.'."\n", + 'type' => 'string', + 'example' => '2017-05-27T15:43:06CST', + ], + 'ChargeType' => [ + 'description' => 'The billing method.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'* Subscription: The subscription billing method is used.'."\n" + .'* PayAsYouGo: The pay-as-you-go billing method is used.'."\n" + .'* Package: A storage plan is attached to the file system.'."\n", + 'type' => 'string', + 'example' => 'PayAsYouGo', + ], + 'StorageType' => [ + 'description' => 'The storage type.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'* Valid values for General-purpose NAS file systems: Capacity and Performance.'."\n" + .'* Valid values for Extreme NAS file systems: standard and advance.'."\n" + .'* Valid values for CPFS file systems: advance\\_100 (100 MB/s/TiB baseline) and advance\\_200 (200 MB/s/TiB baseline).'."\n", + 'type' => 'string', + 'example' => 'Performance', + ], + 'RegionId' => [ + 'description' => 'The region ID.'."\n", + 'type' => 'string', + 'example' => 'cn-hangzhou', + ], + 'FileSystemType' => [ + 'description' => 'The type of the file system.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'* standard: General-purpose NAS file system'."\n" + .'* extreme: Extreme NAS file system'."\n" + .'* cpfs: CPFS file system'."\n", + 'type' => 'string', + 'example' => 'standard', + ], + 'FileSystemId' => [ + 'description' => 'The ID of the file system.'."\n", + 'type' => 'string', + 'example' => '109c04****', + ], + 'MeteredSize' => [ + 'description' => 'The storage usage of the file system.'."\n" + ."\n" + .'The value of this parameter is the maximum storage usage of the file system over the last hour. Unit: bytes.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1611661312', + ], + 'Description' => [ + 'description' => 'The description of the file system.'."\n", + 'type' => 'string', + 'example' => '31a8e48eda', + ], + 'ExpiredTime' => [ + 'description' => 'The time when the file system expires.'."\n", + 'type' => 'string', + 'example' => '2017-08-27T15:43:06CST', + ], + 'ZoneId' => [ + 'description' => 'The zone ID.'."\n", + 'type' => 'string', + 'example' => 'cn-hangzhou-b', + ], + 'Packages' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'Package' => [ + 'description' => 'The information about storage plans.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'StartTime' => [ + 'description' => 'The start time of the validity period for the storage plan.'."\n", + 'type' => 'string', + 'example' => '2019-12-05T01:40:56Z', + ], + 'ExpiredTime' => [ + 'description' => 'The end time of the validity period for the storage plan.'."\n", + 'type' => 'string', + 'example' => '2020-01-05T16:00:00Z', + ], + 'Size' => [ + 'description' => 'The capacity of the storage plan.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '107374182400', + ], + 'PackageId' => [ + 'description' => 'The ID of the storage plan.'."\n", + 'type' => 'string', + 'example' => 'naspackage-0be9c4b624-37****', + ], + ], + ], + ], + ], + ], + 'ProtocolType' => [ + 'description' => 'The protocol type of the file system.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'* NFS: Network File System (NFS)'."\n" + .'* SMB: Server Message Block (SMB)'."\n" + .'* cpfs: the protocol type supported by the CPFS file system'."\n", + 'type' => 'string', + 'example' => 'NFS', + ], + ], + ], + ], + ], + ], + 'TotalCount' => [ + 'description' => 'The total number of file system entries.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '100', + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '9F088138-FD73-4B68-95CC-DFAD4D85****', + ], + 'PageSize' => [ + 'description' => 'The number of entries per page.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '1', + ], + 'PageNumber' => [ + 'description' => 'The page number.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '1', + ], + 'FileSystemStatistics' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'FileSystemStatistic' => [ + 'description' => 'The statistics of file systems.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'FileSystemType' => [ + 'description' => 'The type of the file system.'."\n", + 'type' => 'string', + 'example' => 'standard', + ], + 'MeteredSize' => [ + 'description' => 'The storage usage of the file system.'."\n" + ."\n" + .'The value of this parameter is the maximum storage usage of the file system over the last hour.'."\n" + ."\n" + .'Unit: bytes.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1611', + ], + 'ExpiringCount' => [ + 'description' => 'The number of expiring file systems.'."\n" + ."\n" + .'File systems whose expiration time is less than or equal to seven days away from the current time are counted.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '1', + ], + 'TotalCount' => [ + 'description' => 'The number of file systems of the current type.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '10', + ], + 'ExpiredCount' => [ + 'description' => 'The number of expired file systems.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '1', + ], + ], + ], + ], + ], + ], + ], + ], + ], + ], + 'staticInfo' => [ + 'substitutions' => [ + 'NAS::2017-06-26::DescribeResourceStatistics', + ], + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"FileSystems\\": {\\n \\"FileSystem\\": [\\n {\\n \\"Status\\": \\"Pending\\",\\n \\"Capacity\\": 1,\\n \\"MeteredIASize\\": 362832,\\n \\"CreateTime\\": \\"2017-05-27T15:43:06CST\\",\\n \\"ChargeType\\": \\"PayAsYouGo\\",\\n \\"StorageType\\": \\"Performance\\",\\n \\"RegionId\\": \\"cn-hangzhou\\",\\n \\"FileSystemType\\": \\"standard\\",\\n \\"FileSystemId\\": \\"109c04****\\",\\n \\"MeteredSize\\": 1611661312,\\n \\"Description\\": \\"31a8e48eda\\",\\n \\"ExpiredTime\\": \\"2017-08-27T15:43:06CST\\",\\n \\"ZoneId\\": \\"cn-hangzhou-b\\",\\n \\"Packages\\": {\\n \\"Package\\": [\\n {\\n \\"StartTime\\": \\"2019-12-05T01:40:56Z\\",\\n \\"ExpiredTime\\": \\"2020-01-05T16:00:00Z\\",\\n \\"Size\\": 107374182400,\\n \\"PackageId\\": \\"naspackage-0be9c4b624-37****\\"\\n }\\n ]\\n },\\n \\"ProtocolType\\": \\"NFS\\"\\n }\\n ]\\n },\\n \\"TotalCount\\": 100,\\n \\"RequestId\\": \\"9F088138-FD73-4B68-95CC-DFAD4D85****\\",\\n \\"PageSize\\": 1,\\n \\"PageNumber\\": 1,\\n \\"FileSystemStatistics\\": {\\n \\"FileSystemStatistic\\": [\\n {\\n \\"FileSystemType\\": \\"standard\\",\\n \\"MeteredSize\\": 1611,\\n \\"ExpiringCount\\": 1,\\n \\"TotalCount\\": 10,\\n \\"ExpiredCount\\": 1\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<TotalCount>100</TotalCount>\\n<RequestId>9F088138-FD73-4B68-95CC-DFAD4D85****</RequestId>\\n<PageSize>10000</PageSize>\\n<PageNumber>1</PageNumber>\\n<FileSystemStatistics>\\n <FileSystemStatistic>\\n <TotalCount>55</TotalCount>\\n <ExpiredCount>0</ExpiredCount>\\n <FileSystemType>standard</FileSystemType>\\n <MeteredSize>200704</MeteredSize>\\n <ExpiringCount>0</ExpiringCount>\\n </FileSystemStatistic>\\n <FileSystemStatistic>\\n <TotalCount>33</TotalCount>\\n <ExpiredCount>0</ExpiredCount>\\n <FileSystemType>extreme</FileSystemType>\\n <MeteredSize>849346560</MeteredSize>\\n <ExpiringCount>0</ExpiringCount>\\n </FileSystemStatistic>\\n <FileSystemStatistic>\\n <TotalCount>12</TotalCount>\\n <ExpiredCount>0</ExpiredCount>\\n <FileSystemType>cpfs</FileSystemType>\\n <MeteredSize>0</MeteredSize>\\n <ExpiringCount>0</ExpiringCount>\\n </FileSystemStatistic>\\n</FileSystemStatistics>","errorExample":""}]', + 'title' => 'DescribeFileSystemStatistics', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'DescribeStoragePackages' => [ + 'summary' => 'You can call the DescribeStoragePackages operation to query the list of storage plans.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '13962', + 'abilityTreeNodes' => [ + 'FEATUREnasI92PYN', + ], + 'autoTest' => true, + 'tenantRelevance' => 'tenant', + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of storage plans to return on each page.'."\n" + ."\n" + .'Valid values: 1 to 100.'."\n" + ."\n" + .'Default value: 10.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'maximum' => '100', + 'minimum' => '1', + 'example' => '10', + 'default' => '10', + ], + ], + [ + 'name' => 'UseUTCDateTime', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether the time to return is in UTC.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'* true (default): returns UTC time.'."\n" + .'* false: returns UNIX timestamp.'."\n", + 'type' => 'boolean', + 'required' => false, + 'minimum' => '1', + 'example' => 'true', + 'default' => 'true', + ], + ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of the page to return.'."\n" + ."\n" + .'Pages start from page 1. Default value: 1.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'minimum' => '1', + 'example' => '1', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'TotalCount' => [ + 'description' => 'The number of storage plans.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '3', + ], + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => '035B3A3A-E514-4B41-B906-5D906CFB****', + ], + 'PageSize' => [ + 'description' => 'The number of storage plans returned per page.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '1', + ], + 'PageNumber' => [ + 'description' => 'The page number of the returned page.', + 'type' => 'integer', + 'format' => 'int32', + 'example' => '1', + ], + 'Packages' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'Package' => [ + 'description' => 'The list of storage plans.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Status' => [ + 'description' => 'The status of the storage plan.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'* free: The storage plan is not bound to a file system. You can bind the storage plan to a file system of the same storage type.'."\n" + .'* bound: The storage plan is bound to a file system.'."\n", + 'type' => 'string', + 'example' => 'free', + ], + 'FileSystemId' => [ + 'description' => 'The ID of the file system that is bound to the storage plan.'."\n", + 'type' => 'string', + 'example' => '109c****66', + ], + 'StartTime' => [ + 'description' => 'The start time of the validity period for the storage plan.'."\n", + 'type' => 'string', + 'example' => '2019-12-05T01:40:56Z', + ], + 'ExpiredTime' => [ + 'description' => 'The end time of the validity period for the storage plan.'."\n", + 'type' => 'string', + 'example' => '2020-01-05T16:00:00Z', + ], + 'Size' => [ + 'description' => 'The capacity of the storage plan.'."\n" + ."\n" + .'Unit: bytes.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '10', + ], + 'StorageType' => [ + 'description' => 'The type of the storage plan.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'* Performance'."\n" + .'* Capacity'."\n", + 'type' => 'string', + 'example' => 'Capacity', + ], + 'PackageId' => [ + 'description' => 'The ID of the storage plan.'."\n", + 'type' => 'string', + 'example' => 'naspackage-@string(\'*****\', *)-@string(\'*****\', *)', + ], + ], + ], + ], + ], + ], + ], + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"PageNumber\\": 1,\\n \\"RequestId\\": \\"035B3A3A-E514-4B41-B906-5D906CFB****\\",\\n \\"PageSize\\": 1,\\n \\"TotalCount\\": 3,\\n \\"Packages\\": {\\n \\"Package\\": [\\n {\\n \\"Status\\": \\"free\\",\\n \\"FileSystemId\\": \\"109c****66\\",\\n \\"StartTime\\": \\"2019-12-05T01:40:56Z\\",\\n \\"ExpiredTime\\": \\"2020-01-05T16:00:00Z\\",\\n \\"Size\\": 10,\\n \\"StorageType\\": \\"Capacity\\",\\n \\"PackageId\\": \\"naspackage-@string(\'*****\', *)-@string(\'*****\', *)\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<TotalCount>3</TotalCount>\\n<PageSize>1</PageSize>\\n<RequestId>035B3A3A-E514-4B41-B906-5D906CFB****</RequestId>\\n<PageNumber>1</PageNumber>\\n<Packages>\\n <Package>\\n <Status>free</Status>\\n <StorageType>Capacity</StorageType>\\n <Size>10</Size>\\n <ExpiredTime>2020-01-05T16:00:00Z</ExpiredTime>\\n <StartTime>2019-12-05T01:40:56Z</StartTime>\\n <FileSystemId>109c****66</FileSystemId>\\n <PackageId>naspackage-@string(\'*****\', *)-@string(\'*****\', *)</PackageId>\\n </Package>\\n</Packages>","errorExample":""}]', + 'title' => 'DescribeStoragePackages', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + ], + 'endpoints' => [ + [ + 'regionId' => 'cn-qingdao', + 'endpoint' => 'nas.cn-qingdao.aliyuncs.com', + ], + [ + 'regionId' => 'cn-beijing', + 'endpoint' => 'nas.cn-beijing.aliyuncs.com', + ], + [ + 'regionId' => 'cn-zhangjiakou', + 'endpoint' => 'nas.cn-zhangjiakou.aliyuncs.com', + ], + [ + 'regionId' => 'cn-zhengzhou-jva', + 'endpoint' => 'nas.cn-zhengzhou-jva.aliyuncs.com', + ], + [ + 'regionId' => 'cn-huhehaote', + 'endpoint' => 'nas.cn-huhehaote.aliyuncs.com', + ], + [ + 'regionId' => 'cn-wulanchabu', + 'endpoint' => 'nas.cn-wulanchabu.aliyuncs.com', + ], + [ + 'regionId' => 'cn-hangzhou', + 'endpoint' => 'nas.cn-hangzhou.aliyuncs.com', + ], + [ + 'regionId' => 'cn-shanghai', + 'endpoint' => 'nas.cn-shanghai.aliyuncs.com', + ], + [ + 'regionId' => 'cn-shenzhen', + 'endpoint' => 'nas.cn-shenzhen.aliyuncs.com', + ], + [ + 'regionId' => 'cn-heyuan', + 'endpoint' => 'nas.cn-heyuan.aliyuncs.com', + ], + [ + 'regionId' => 'cn-guangzhou', + 'endpoint' => 'nas.cn-guangzhou.aliyuncs.com', + ], + [ + 'regionId' => 'cn-chengdu', + 'endpoint' => 'nas.cn-chengdu.aliyuncs.com', + ], + [ + 'regionId' => 'cn-hongkong', + 'endpoint' => 'nas.cn-hongkong.aliyuncs.com', + ], + [ + 'regionId' => 'ap-northeast-1', + 'endpoint' => 'nas.ap-northeast-1.aliyuncs.com', + ], + [ + 'regionId' => 'ap-northeast-2', + 'endpoint' => 'nas.ap-northeast-2.aliyuncs.com', + ], + [ + 'regionId' => 'ap-southeast-1', + 'endpoint' => 'nas.ap-southeast-1.aliyuncs.com', + ], + [ + 'regionId' => 'ap-southeast-3', + 'endpoint' => 'nas.ap-southeast-3.aliyuncs.com', + ], + [ + 'regionId' => 'ap-southeast-5', + 'endpoint' => 'nas.ap-southeast-5.aliyuncs.com', + ], + [ + 'regionId' => 'ap-southeast-6', + 'endpoint' => 'nas.ap-southeast-6.aliyuncs.com', + ], + [ + 'regionId' => 'us-east-1', + 'endpoint' => 'nas.us-east-1.aliyuncs.com', + ], + [ + 'regionId' => 'us-west-1', + 'endpoint' => 'nas.us-west-1.aliyuncs.com', + ], + [ + 'regionId' => 'eu-west-1', + 'endpoint' => 'nas.eu-west-1.aliyuncs.com', + ], + [ + 'regionId' => 'eu-central-1', + 'endpoint' => 'nas.eu-central-1.aliyuncs.com', + ], + [ + 'regionId' => 'ap-south-1', + 'endpoint' => 'nas.ap-south-1.aliyuncs.com', + ], + [ + 'regionId' => 'me-east-1', + 'endpoint' => 'nas.me-east-1.aliyuncs.com', + ], + [ + 'regionId' => 'cn-hangzhou-finance', + 'endpoint' => 'nas.cn-hangzhou-finance.aliyuncs.com', + ], + [ + 'regionId' => 'cn-shanghai-finance-1', + 'endpoint' => 'nas.cn-shanghai-finance-1.aliyuncs.com', + ], + [ + 'regionId' => 'cn-shenzhen-finance-1', + 'endpoint' => 'nas.cn-shenzhen-finance-1.aliyuncs.com', + ], + [ + 'regionId' => 'ap-southeast-7', + 'endpoint' => 'nas.ap-southeast-7.aliyuncs.com', + ], + [ + 'regionId' => 'cn-beijing-finance-1', + 'endpoint' => 'nas.cn-beijing-finance-1.aliyuncs.com', + ], + [ + 'regionId' => 'me-central-1', + 'endpoint' => 'nas.me-central-1.aliyuncs.com', + ], + ], +]; |
